1 /* This tests a simple DLG-based scanner plus (...)? predicates */
4 typedef ANTLRCommonToken ANTLRToken;
10 ParserBlackBox<DLGLexer, Expr, ANTLRToken> p(stdin);
17 printf("LT(1) is %s\n", ((ANTLRToken *)p->LT(1))->getText());
18 printf("LT(2) is %s\n", ((ANTLRToken *)p->LT(2))->getText());
19 printf("LT(3) is %s\n", ((ANTLRToken *)p->LT(3))->getText());
20 printf("LT(4) is %s\n", ((ANTLRToken *)p->LT(4))->getText());
21 printf("LT(5) is %s\n", ((ANTLRToken *)p->LT(5))->getText());
22 printf("LT(6) is %s\n", ((ANTLRToken *)p->LT(6))->getText());
23 printf("LT(7) is %s\n", ((ANTLRToken *)p->LT(7))->getText());
24 printf("LT(8) is %s\n", ((ANTLRToken *)p->LT(8))->getText());
25 printf("LT(9) is %s\n", ((ANTLRToken *)p->LT(9))->getText());
26 printf("LT(10) is %s\n", ((ANTLRToken *)p->LT(10))->getText());
27 printf("LT(11) is %s\n", ((ANTLRToken *)p->LT(11))->getText());
31 #token "[\ \t\n]+" <<skip();>>
34 class Expr { /* Define a grammar class */
41 e : ( list "=" )? list "=" list Eof
42 <<printf("list = list\n");>>
47 list: "\(" (IDENTIFIER|NUMBER)* "\)"
51 : ( "\(" (IDENTIFIER|NUMBER)* "\)" "=")?
56 Here's another example...
62 begin: "extern" "char" declarator ";"
69 expr: IDENTIFIER "=" NUMBER
72 decl: "int" declarator ";"
76 : ( "\*" )? "\*" declarator
83 #token IDENTIFIER "[a-z]+"
84 #token NUMBER "[0-9]+"