klexlib/derived/RegExpParseNFA.i3


INTERFACE RegExpParseNFA;
generated by kext
 extended parser definition 
IMPORT RegExpParse;
IMPORT RegExpLexStd;
IMPORT NFA;
TYPE
  expr = RegExpParse.expr BRANDED "RegExpParseNFA.expr" OBJECT
    val: NFA.T
  END;
  COUNT = RegExpLexStd.COUNT;
  CHAR_RANGE = RegExpLexStd.CHAR_RANGE;
  STRING = RegExpLexStd.STRING;
  IDENTIFIER = RegExpLexStd.IDENTIFIER;

  T <: Public;
  Public = RegExpParse.T OBJECT
  METHODS
    init(): T;
    parseText(t: TEXT): NFA.T;
    putMacro(name: TEXT; n: NFA.T);
  END;

  (* And now, for a hack to allow compatible methods *)
  (* ... without importing the original parser *)
  Original_Parser = RegExpParse.Original_Parser;
  Original_expr = RegExpParse.Original_expr;
  (* ... and without importing the original token *)
  Original_COUNT = RegExpParse.Original_COUNT;
  Original_IDENTIFIER = RegExpParse.Original_IDENTIFIER;
  Original_CHAR_RANGE = RegExpParse.Original_CHAR_RANGE;
  Original_STRING = RegExpParse.Original_STRING;

  (* Make this interface as good as any token interface *)
  Token = RegExpLexStd.Token;
  ConstToken = RegExpLexStd.ConstToken;
  ParseType = RegExpLexStd.ParseType;
  Allocator = RegExpLexStd.Allocator;
  Lexer = RegExpLexStd.Lexer;
  RdLexer = RegExpLexStd.RdLexer;
CONST
  NewPT = RegExpLexStd.NewPT;
  Purge = RegExpLexStd.Purge;
  NewConstToken = RegExpLexStd.NewConstToken;
END RegExpParseNFA.