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

diff --git a/testcpp/12/test.g b/testcpp/12/test.g
new file mode 100755 (executable)
index 0000000..afedf0e
--- /dev/null
@@ -0,0 +1,39 @@
+/* This is test.g which tests a simple DLG-based scanner using string input */
+
+<<
+typedef ANTLRCommonToken ANTLRToken;
+
+#include "DLGLexer.h"
+#include "PBlackBox.h"
+
+int main(int argc, char **argv)
+{
+       if ( argc==1 ) {fprintf(stderr, "how about an argument?\n"); exit(1);}
+       DLGStringInput in(argv[1]);             /* create an input stream for DLG */
+       DLGLexer scan(&in);                             /* create scanner reading from stdin */
+       ANTLRTokenBuffer pipe(&scan);   /* make pipe between lexer & parser */
+       ANTLRTokenPtr aToken = new ANTLRToken;
+       scan.setToken(mytoken(aToken));
+       Expr parser(&pipe);             /* create parser of type Expr hooked to scanner */
+       parser.init();                  /* init the parser; prime lookahead etc... */
+       parser.e();                             /* start parsing at rule 'e' of that parser */
+
+       return 0;
+}
+>>
+
+#token "[\ \t\n]+"     <<skip();>>
+#token Eof "@"
+
+#tokclass My { IDENTIFIER NUMBER }
+
+class Expr {                           /* Define a grammar class */
+
+e      :       My My Eof
+               <<fprintf(stderr, "text is %s,%s\n", $1->getText(), $2->getText());>>
+       ;
+
+}
+
+#token IDENTIFIER      "[a-z]+"
+#token NUMBER          "[0-9]+"