From f665cf01d305fabe5be6bfa9346da2444c614245 Mon Sep 17 00:00:00 2001 From: Terence Parr <> Date: Wed, 13 Sep 1995 19:48:42 -0500 Subject: [PATCH] auto commit for import --- testcpp/10/test.g | 84 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100755 testcpp/10/test.g diff --git a/testcpp/10/test.g b/testcpp/10/test.g new file mode 100755 index 0000000..f47a767 --- /dev/null +++ b/testcpp/10/test.g @@ -0,0 +1,84 @@ +/* This tests a simple DLG-based scanner plus (...)? predicates */ + +<< +typedef ANTLRCommonToken ANTLRToken; +#include "DLGLexer.h" +#include "PBlackBox.h" + +int main() +{ + ParserBlackBox p(stdin); + p.parser()->begin(); + return 0; +} + +void doit(Expr *p) +{ + printf("LT(1) is %s\n", ((ANTLRToken *)p->LT(1))->getText()); + printf("LT(2) is %s\n", ((ANTLRToken *)p->LT(2))->getText()); + printf("LT(3) is %s\n", ((ANTLRToken *)p->LT(3))->getText()); + printf("LT(4) is %s\n", ((ANTLRToken *)p->LT(4))->getText()); + printf("LT(5) is %s\n", ((ANTLRToken *)p->LT(5))->getText()); + printf("LT(6) is %s\n", ((ANTLRToken *)p->LT(6))->getText()); + printf("LT(7) is %s\n", ((ANTLRToken *)p->LT(7))->getText()); + printf("LT(8) is %s\n", ((ANTLRToken *)p->LT(8))->getText()); + printf("LT(9) is %s\n", ((ANTLRToken *)p->LT(9))->getText()); + printf("LT(10) is %s\n", ((ANTLRToken *)p->LT(10))->getText()); + printf("LT(11) is %s\n", ((ANTLRToken *)p->LT(11))->getText()); +} +>> + +#token "[\ \t\n]+" <> +#token Eof "@" + +class Expr { /* Define a grammar class */ + +begin + : <> + e + ; + +e : ( list "=" )? list "=" list Eof + <> + | list Eof + <> + ; + +list: "\(" (IDENTIFIER|NUMBER)* "\)" + ; + +predict + : ( "\(" (IDENTIFIER|NUMBER)* "\)" "=")? + | "\(" "\)" "=" + ; + +/* +Here's another example... +#token INT "int" +#token SEMI ";" +#token STAR "\*" +#token ASSIGN "=" + +begin: "extern" "char" declarator ";" + ; + +e : (decl)? + | expr + ; + +expr: IDENTIFIER "=" NUMBER + ; + +decl: "int" declarator ";" + ; + +declarator + : ( "\*" )? "\*" declarator + | IDENTIFIER + ; +*/ + +} + +#token IDENTIFIER "[a-z]+" +#token NUMBER "[0-9]+" -- 2.40.0