]> pd.if.org Git - pccts/commitdiff
auto commit for import
authorTerence Parr <>
Thu, 14 Sep 1995 00:43:36 +0000 (19:43 -0500)
committerNathan Wagner <nw@hydaspes.if.org>
Sun, 26 Feb 2017 02:16:51 +0000 (20:16 -0600)
testcpp/9/test.g [new file with mode: 0755]

diff --git a/testcpp/9/test.g b/testcpp/9/test.g
new file mode 100755 (executable)
index 0000000..6669c07
--- /dev/null
@@ -0,0 +1,49 @@
+/* This is test.g which tests simple AST refs and construction */
+
+<<
+typedef ANTLRCommonToken ANTLRToken;
+#include "DLGLexer.h"
+#include "PBlackBox.h"
+
+class AST : public ASTBase {
+public:
+       ANTLRTokenPtr token;
+       AST(ANTLRTokenPtr t) { token = t; }
+       void preorder_action() {
+               char *s = token->getText();
+               printf(" %s", s);
+       }
+};
+
+int main()
+{
+       ParserBlackBox<DLGLexer, Expr, ANTLRToken> p(stdin);
+       ASTBase *root = NULL;
+       p.parser()->e(&root);
+       root->preorder();
+       printf("\n");
+       root->destroy();
+       return 0;
+}
+>>
+
+#token "[\ \t\n]+"     <<skip();>>
+#token Eof "@"
+
+class Expr {                           /* Define a grammar class */
+
+e      :       mult_expr ( ("\+"^|"\-"^) mult_expr )*
+       ;
+
+mult_expr
+       :       atom ( ("\*"^|"\/"^) atom )*
+       ;
+
+atom:  IDENTIFIER
+       |       NUMBER
+       ;
+
+}
+
+#token IDENTIFIER      "[a-z]+"
+#token NUMBER          "[0-9]+"