DEFINITION RXA; (* portable *)

 IMPORT Texts;

 CONST
  noerror = 0;
  noposfree = -1;
  nostatesfree = -2;
  nometaexp = -3;
  chrleft = -4;
  wsubexpr = -5;
  subexprrest = -6;
  wshorthand = -7;
  notnotexp = -8;
  nodfa = -9;
  repllinefull = -10;
  linecopofl = -11;

 TYPE
  DFA = POINTER TO DFADesc;
 PROCEDURE Dump (dfa: DFA; VAR w: Texts.Writer);
 PROCEDURE New (rx: ARRAY OF CHAR; VAR dfa: DFA; VAR error, pos: INTEGER);
 PROCEDURE Search (dfa: DFA; line: ARRAY OF CHAR; VAR beg, end: INTEGER);
 PROCEDURE Replace (dfa: DFA; VAR line: ARRAY OF CHAR; replpat: ARRAY OF CHAR; 
          beg, end: INTEGER; VAR error, pos: INTEGER);

END RXA.