1 /* This is test.g which tests a simple DLG-based scanner using string input */
4 typedef ANTLRCommonToken ANTLRToken;
9 int main(int argc, char **argv)
11 if ( argc==1 ) {fprintf(stderr, "how about an argument?\n"); exit(1);}
12 DLGStringInput in(argv[1]); /* create an input stream for DLG */
13 DLGLexer scan(&in); /* create scanner reading from stdin */
14 ANTLRTokenBuffer pipe(&scan); /* make pipe between lexer & parser */
15 ANTLRTokenPtr aToken = new ANTLRToken;
16 scan.setToken(mytoken(aToken));
17 Expr parser(&pipe); /* create parser of type Expr hooked to scanner */
18 parser.init(); /* init the parser; prime lookahead etc... */
19 parser.e(); /* start parsing at rule 'e' of that parser */
25 #token "[\ \t\n]+" <<skip();>>
28 #tokclass My { IDENTIFIER NUMBER }
30 class Expr { /* Define a grammar class */
33 <<fprintf(stderr, "text is %s,%s\n", $1->getText(), $2->getText());>>
38 #token IDENTIFIER "[a-z]+"
39 #token NUMBER "[0-9]+"