test.g
上传用户:itx_2006
上传日期:2007-01-06
资源大小:493k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. /* Ariel Tamches (tamches@cs.wisc.edu):
  2.  * This tests linking in a simple non-DLG scanner
  3.  */
  4. /* We assume that #tokdefs is not employed for this example; i.e.,
  5.  * ANTLR assigns token numbers.
  6.  *
  7.  * ANTLR option -gx must be used to turn off generation of DLG crud (when you
  8.  * want to define your own token stream).
  9.  */
  10. /* user must define ANTLRToken outside of #header */
  11. <<
  12. typedef ANTLRCommonToken ANTLRToken; /* use a predefined Token class */
  13. >>
  14. /* At this point, ANTLRToken and ANTLRTokenStream are defined, user must now
  15.  * derive a class from ANTLRTokenStream (which embodies the user's scanner)
  16.  */
  17. <<#include "MyLexer.h">>
  18. <<
  19. int main()
  20. {
  21. /* create one of my scanners */
  22. MyLexer scan;
  23. ANTLRTokenBuffer pipe(&scan);
  24. /* create a parser of type Expr hooked to my scanner */
  25. Expr parser(&pipe);
  26. parser.init();
  27. parser.setEofToken(Eof);
  28. parser.e(); /* start parsing at rule 'e' of that parser */
  29. return 0;
  30. }
  31. >>
  32. class Expr { /* Define a grammar class */
  33. e : IDENTIFIER NUMBER
  34. <<fprintf(stderr, "text is %s,%sn", $1->getText(), $2->getText());>>
  35. Eof
  36. ;
  37. }