Author: bernhard
Date: Wed Feb  1 02:39:56 2006
New Revision: 11395

Added:
   trunk/languages/bc/grammar/antlr_3/antlr_past2pir_past.g
      - copied, changed from r11392, 
trunk/languages/bc/grammar/antlr_2/antlr_past2pir_past.g
Modified:
   trunk/MANIFEST
   trunk/MANIFEST.SKIP
   trunk/languages/bc/config/makefiles/root.in
   trunk/languages/bc/docs/antlr_3.pod
   trunk/languages/bc/grammar/antlr_3/   (props changed)
   trunk/languages/bc/grammar/antlr_3/bc.g
Log:
Parrot bc: Add a dummy ANTLR3 tree grammar that should generate
Allison's PAST from an ANTLR3 AST.


Modified: trunk/MANIFEST
==============================================================================
--- trunk/MANIFEST      (original)
+++ trunk/MANIFEST      Wed Feb  1 02:39:56 2006
@@ -746,6 +746,7 @@ languages/bc/docs/antlr_3.pod           
 languages/bc/docs/parrot_bc.pod                                                
        [bc]
 languages/bc/grammar/antlr_2/antlr_past2pir_past.g                             
        [bc]
 languages/bc/grammar/antlr_2/bc_python.g                                       
        [bc]
+languages/bc/grammar/antlr_3/antlr_past2pir_past.g                             
        [bc]
 languages/bc/grammar/antlr_3/bc.g                                              
        [bc]
 languages/bc/lib/Parrot/Test/Bc.pm                                             
        [bc]
 languages/bc/lib/Parrot/Test/Bc/Antlr2.pm                                      
        [bc]

Modified: trunk/MANIFEST.SKIP
==============================================================================
--- trunk/MANIFEST.SKIP (original)
+++ trunk/MANIFEST.SKIP Wed Feb  1 02:39:56 2006
@@ -1,5 +1,5 @@
 # $Id$
-# generated by tools/dev/gen_manifest_skip.pl Mon Jan 30 22:26:26 2006
+# generated by tools/dev/gen_manifest_skip.pl Wed Feb  1 11:25:50 2006
 #
 # This file should contain a transcript of the svn:ignore properties
 # of the directories in the Parrot subversion repository. (Needed for
@@ -205,126 +205,6 @@
 ^docs/packfile-perl\.pod$
 ^docs/packfile-perl\.pod/
 # generated from svn:ignore of 'docs/dev/'
-# generated from svn:ignore of 'docs/html/'
-# generated from svn:ignore of 'docs/html/config/auto/'
-# generated from svn:ignore of 'docs/html/config/gen/'
-# generated from svn:ignore of 'docs/html/config/gen/cpu/i386/'
-# generated from svn:ignore of 'docs/html/config/gen/cpu/x86_64/'
-# generated from svn:ignore of 'docs/html/config/init/'
-# generated from svn:ignore of 'docs/html/config/inter/'
-# generated from svn:ignore of 'docs/html/docs/'
-# generated from svn:ignore of 'docs/html/docs/dev/'
-# generated from svn:ignore of 'docs/html/docs/imcc/'
-# generated from svn:ignore of 'docs/html/docs/ops/'
-# generated from svn:ignore of 'docs/html/docs/pdds/'
-# generated from svn:ignore of 'docs/html/docs/pdds/clip/'
-# generated from svn:ignore of 'docs/html/docs/pmc/'
-# generated from svn:ignore of 'docs/html/editor/'
-# generated from svn:ignore of 'docs/html/examples/benchmarks/'
-# generated from svn:ignore of 'docs/html/examples/c/'
-# generated from svn:ignore of 'docs/html/examples/io/'
-# generated from svn:ignore of 'docs/html/examples/library/'
-# generated from svn:ignore of 'docs/html/examples/mops/'
-# generated from svn:ignore of 'docs/html/examples/nci/'
-# generated from svn:ignore of 'docs/html/examples/pasm/'
-# generated from svn:ignore of 'docs/html/examples/pir/'
-# generated from svn:ignore of 'docs/html/examples/streams/'
-# generated from svn:ignore of 'docs/html/examples/subs/'
-# generated from svn:ignore of 'docs/html/languages/'
-# generated from svn:ignore of 'docs/html/languages/BASIC/compiler/'
-# generated from svn:ignore of 'docs/html/languages/bc/lib/Parrot/Test/'
-# generated from svn:ignore of 'docs/html/languages/bc/t/'
-# generated from svn:ignore of 'docs/html/languages/befunge/t/'
-# generated from svn:ignore of 'docs/html/languages/bf/t/'
-# generated from svn:ignore of 'docs/html/languages/conversion/examples/'
-# generated from svn:ignore of 'docs/html/languages/forth/'
-# generated from svn:ignore of 'docs/html/languages/jako/docs/'
-# generated from svn:ignore of 'docs/html/languages/jako/lib/Jako/Construct/'
-# generated from svn:ignore of 'docs/html/languages/jako/t/'
-# generated from svn:ignore of 'docs/html/languages/lua/'
-# generated from svn:ignore of 'docs/html/languages/lua/doc/'
-# generated from svn:ignore of 'docs/html/languages/lua/lib/'
-# generated from svn:ignore of 'docs/html/languages/lua/pmc/'
-# generated from svn:ignore of 'docs/html/languages/lua/t/'
-# generated from svn:ignore of 'docs/html/languages/lua/t/Parrot/Test/'
-# generated from svn:ignore of 'docs/html/languages/lua/t/lib/'
-# generated from svn:ignore of 'docs/html/languages/lua/t/pmc/'
-# generated from svn:ignore of 'docs/html/languages/m4/'
-# generated from svn:ignore of 'docs/html/languages/m4/doc/'
-# generated from svn:ignore of 'docs/html/languages/m4/examples/'
-# generated from svn:ignore of 'docs/html/languages/m4/lib/Parrot/Test/'
-# generated from svn:ignore of 'docs/html/languages/m4/src/'
-# generated from svn:ignore of 'docs/html/languages/m4/t/'
-# generated from svn:ignore of 'docs/html/languages/m4/t/regex/'
-# generated from svn:ignore of 'docs/html/languages/m4/tools/'
-# generated from svn:ignore of 'docs/html/languages/miniperl/Miniperl/'
-# generated from svn:ignore of 'docs/html/languages/ook/'
-# generated from svn:ignore of 'docs/html/languages/ook/t/'
-# generated from svn:ignore of 
'docs/html/languages/parrot_compiler/lib/Parrot/Test/'
-# generated from svn:ignore of 'docs/html/languages/parrot_compiler/t/'
-# generated from svn:ignore of 'docs/html/languages/python/pmc/'
-# generated from svn:ignore of 'docs/html/languages/python/t/'
-# generated from svn:ignore of 'docs/html/languages/python/t/pmc/'
-# generated from svn:ignore of 'docs/html/languages/regex/docs/'
-# generated from svn:ignore of 'docs/html/languages/regex/lib/Parrot/Test/'
-# generated from svn:ignore of 'docs/html/languages/regex/lib/Regex/'
-# generated from svn:ignore of 'docs/html/languages/regex/lib/Regex/Parse/'
-# generated from svn:ignore of 'docs/html/languages/regex/t/'
-# generated from svn:ignore of 'docs/html/languages/ruby/Yacc/'
-# generated from svn:ignore of 'docs/html/languages/scheme/'
-# generated from svn:ignore of 'docs/html/languages/scheme/Scheme/'
-# generated from svn:ignore of 'docs/html/languages/scheme/t/'
-# generated from svn:ignore of 'docs/html/languages/tcl/'
-# generated from svn:ignore of 'docs/html/languages/tcl/classes/'
-# generated from svn:ignore of 'docs/html/languages/tcl/docs/'
-# generated from svn:ignore of 'docs/html/languages/tcl/lib/'
-# generated from svn:ignore of 'docs/html/languages/tcl/lib/commands/'
-# generated from svn:ignore of 'docs/html/languages/tcl/t/'
-# generated from svn:ignore of 'docs/html/languages/tcl/t/Parrot/Test/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/Configure/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/Configure/Step/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/Docs/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/Docs/Section/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/IO/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/OpLib/'
-# generated from svn:ignore of 'docs/html/lib/Parrot/OpTrans/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/include/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/Data/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/Data/Dumper/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/Digest/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/File/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/File/Spec/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/Getopt/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/JSON/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/PGE/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/SDL/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/Stream/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/Test/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/Test/Builder/'
-# generated from svn:ignore of 'docs/html/runtime/parrot/library/YAML/Parser/'
-# generated from svn:ignore of 'docs/html/src/'
-# generated from svn:ignore of 'docs/html/src/dynoplibs/'
-# generated from svn:ignore of 'docs/html/src/dynpmc/'
-# generated from svn:ignore of 'docs/html/src/encodings/'
-# generated from svn:ignore of 'docs/html/src/io/'
-# generated from svn:ignore of 'docs/html/src/ops/'
-# generated from svn:ignore of 'docs/html/src/packfile/'
-# generated from svn:ignore of 'docs/html/src/pmc/'
-# generated from svn:ignore of 'docs/html/t/'
-# generated from svn:ignore of 'docs/html/t/compilers/imcc/syn/'
-# generated from svn:ignore of 'docs/html/t/examples/'
-# generated from svn:ignore of 'docs/html/t/library/'
-# generated from svn:ignore of 'docs/html/t/native_pbc/'
-# generated from svn:ignore of 'docs/html/t/op/'
-# generated from svn:ignore of 'docs/html/t/pmc/'
-# generated from svn:ignore of 'docs/html/t/src/'
-# generated from svn:ignore of 'docs/html/t/stress/'
-# generated from svn:ignore of 'docs/html/tools/build/'
-# generated from svn:ignore of 'docs/html/tools/dev/'
-# generated from svn:ignore of 'docs/html/tools/docs/'
-# generated from svn:ignore of 'docs/html/tools/util/'
 # generated from svn:ignore of 'docs/imcc/'
 # generated from svn:ignore of 'docs/ops/'
 ^docs/ops/.*\.pod$
@@ -474,6 +354,8 @@
 ^languages/bc/grammar/antlr_3/.*\.java/
 ^languages/bc/grammar/antlr_3/.*\.class$
 ^languages/bc/grammar/antlr_3/.*\.class/
+^languages/bc/grammar/antlr_3/AntlrPast2PirPast\.tokens$
+^languages/bc/grammar/antlr_3/AntlrPast2PirPast\.tokens/
 ^languages/bc/grammar/antlr_3/BcParser\.lexer\.g$
 ^languages/bc/grammar/antlr_3/BcParser\.lexer\.g/
 ^languages/bc/grammar/antlr_3/BcParser\.tokens$

Modified: trunk/languages/bc/config/makefiles/root.in
==============================================================================
--- trunk/languages/bc/config/makefiles/root.in (original)
+++ trunk/languages/bc/config/makefiles/root.in Wed Feb  1 02:39:56 2006
@@ -79,6 +79,7 @@ maintain-python: $(PYTHON_RUNTIME_FILES)
 maintain-java: grammar/antlr_3/bc.g
        @echo 'Be sure to set CLASSPATH first'
        java org.antlr.Tool grammar/antlr_3/bc.g
+       java org.antlr.Tool grammar/antlr_3/antlr_past2pir_past.g
        javac grammar/antlr_3/*.java
 
 # BcLexer.py will be created too

Modified: trunk/languages/bc/docs/antlr_3.pod
==============================================================================
--- trunk/languages/bc/docs/antlr_3.pod (original)
+++ trunk/languages/bc/docs/antlr_3.pod Wed Feb  1 02:39:56 2006
@@ -8,6 +8,8 @@ These are some rumblings on using ANTLR 
 
 =head1 ANTLR 3
 
+See http://www.antlr.org/v3/index.html.
+
 =head2 Running
 
   export 
CLASSPATH=/home/bernhard/devel/ANTLR/v3/antlr-3.0ea7/lib/antlr-3.0ea7.jar:/home/bernhard/devel/ANTLR/v3/antlr-3.0ea7/lib/antlr-2.7.5.jar:/home/bernhard/devel/ANTLR/v3/antlr-3.0ea7/lib/stringtemplate-2.3b4.jar:$CLASSPATH
@@ -17,7 +19,7 @@ And see Makefile.
 =head2 Syntax
 
 Lexer, Parser and TreeParser are in the same file, speak grammar.
-C-comments serve as comments. C++ style as well ?
+C and C++ style comments are accepted.
 
 '+' is one or many
 

Copied: trunk/languages/bc/grammar/antlr_3/antlr_past2pir_past.g (from r11392, 
trunk/languages/bc/grammar/antlr_2/antlr_past2pir_past.g)
==============================================================================
--- trunk/languages/bc/grammar/antlr_2/antlr_past2pir_past.g    (original)
+++ trunk/languages/bc/grammar/antlr_3/antlr_past2pir_past.g    Wed Feb  1 
02:39:56 2006
@@ -1,47 +1,39 @@
-// Copyright: 2005 The Perl Foundation.  All Rights Reserved.
+// Copyright: 2006 The Perl Foundation.  All Rights Reserved.
 // $Id$
 
-header "AntlrPast2PirPastTreeWalker.__init__" 
-{
-  self.reg       = 10;  // counter for unlimited number of PMC registers
-}
+// header "AntlrPast2PirPastTreeWalker.__init__" 
+// {
+  // self.reg       = 10;  // counter for unlimited number of PMC registers
+// }
 
 //-----------------------------------------------------------------------------
 // Options for ANTLR
 //-----------------------------------------------------------------------------
-options 
-{
-  language = "Python";      // generate Lexer, Parser and TreeParser in Python
-}
+// options 
+// {
+  // language = "Python";      // generate Lexer, Parser and TreeParser in 
Python
+// }
 
 
 //----------------------------------------------------------------------------
 // Transform ANTLR PAST to PIR that sets up PAST
 //----------------------------------------------------------------------------
-class AntlrPast2PirPastTreeWalker extends TreeParser;
+tree grammar AntlrPast2PirPast;
 
 options
 {
-  buildAST    = true;    // transform AST 
-  importVocab = BcLexer; // Vocabulary that contains only the PAST nodes 
+  ASTLabelType=CommonTree;
+  tokenVocab='grammar/antlr_3/BcParser';
 }
 
-//tokens 
-//{
-  // These tokens are not in the parse tree.
-  // They make up an AST that is equivalent to the PAST data structure.
-  // PAST_Stmts;
-  // PAST_Stmt;
-  // PAST_Exp;
-  // PAST_Op;
-  // PAST_Val_Strqq;
-  // PAST_Val_Num;
-//}
-
-gen_pir_past!
-  : #(PAST_Stmts PEPN:code_blocks )
+gen_pir_past
+  : ^(PROGRAM INT)
     {
-      pir_before = """
+      System.out.println(" OK in antlr_past2pir_past");
+    }
+  ;
+/*      
+pir_before = """
 .local pmc stmts_children
 stmts_children = new PerlArray
 #"""
@@ -54,154 +46,4 @@ stmts.set_node('1', 1, stmts_children)
 #"""
 
       #gen_pir_past = #( [ PIR_OP, pir_before ], #PEPN, [PIR_OP, pir_after] ); 
-    }
-  ;
-
-code_blocks
-  : ( #( PAST_Code stmt stmt ) )+
-  ;
-
-stmt! 
-  : #( PAST_Stmt reg_E=E:exp )
-    {
-      reg = self.reg
-      self.reg = self.reg + 10;
-      pir = """
-    $P%d = new 'PAST::Stmt'
-    $P%d = new PerlArray
-
-    push $P%d, $P%d 
-    $P%d.set_node('1', 1 ,$P%d)
-
-    push stmts_children, $P%d
-#""" % (
-    reg,
-    reg + 1,
-    reg + 1, reg_E,
-    reg, reg + 1,
-    reg
-       )
-
-      #stmt = #( [ PIR_NOOP, "noop" ], #E, [PIR_OP, pir] ); 
-    }
-  ;
-
-exp! returns[reg]
-  : #( PAST_Exp ( reg_O=O:op
-                  {
-                    reg = self.reg;
-                    self.reg = self.reg + 10;
-                    pir = """
-                              $P%d = new 'PAST::Exp'
-                              $P%d = new PerlArray
-              
-                              push $P%d, $P%d 
-                              $P%d.set_node('1', 1, $P%d)
-              #""" % (
-                              reg,
-                              reg + 1,
-              
-                              reg + 1, reg_O,
-                              reg, reg + 1
-                     )
-
-                    #exp = #( [ PIR_NOOP, "noop" ], #O, [PIR_OP, pir] ); 
-                  }
-                  | 
-                  reg_V_STRQQ=V_STRQQ:val_strqq
-                  {
-                    reg = self.reg;
-                    self.reg = self.reg + 10;
-                    pir = """
-                              $P%d = new 'PAST::Exp'
-                              $P%d = new PerlArray
-
-                              push $P%d, $P%d 
-                              $P%d.set_node('1', 1, $P%d)
-              #""" % (
-                              reg,
-                              reg + 1,
-              
-                              reg + 1, reg_V_STRQQ,
-                              reg, reg + 1
-                     )
-
-                    #exp = #( [ PIR_NOOP, "noop" ], #V_STRQQ, [PIR_OP, pir] ); 
-                  }
-                  | 
-                  reg_V_NUM=V_NUM:val_num
-                  {
-                    reg = self.reg;
-                    self.reg = self.reg + 10;
-                    pir = """
-                              $P%d = new 'PAST::Exp'
-                              $P%d = new PerlArray
-
-                              push $P%d, $P%d 
-                              $P%d.set_node('1', 1, $P%d)
-              #""" % (
-                              reg,
-                              reg + 1,
-              
-                              reg + 1, reg_V_NUM,
-                              reg, reg + 1
-                     )
-
-                    #exp = #( [ PIR_NOOP, "noop" ], #V_NUM, [PIR_OP, pir] ); 
-                  }
-                )
-     )
-  ;
-
-op! returns[reg]
-  : #( PAST_Op reg_E=E:exp ) 
-    {
-      reg = self.reg;
-      self.reg = self.reg + 10;
-      pir = """
-            $P%d = new 'PAST::Op'
-            $P%d = new PerlArray
-
-            push $P%d, $P%d 
-            $P%d.set_node('1', 1, 'print' ,$P%d)
-#""" % (
-            reg,
-            reg + 1,
-
-            reg + 1, reg_E,
-            reg, reg + 1
-       )
-
-      #op = #( [ PIR_NOOP, "noop" ], #E, [PIR_OP, pir] ); 
-    }
-  ;
-
-val_strqq! returns[reg]
-  : V:PAST_Val_Strqq 
-    {
-      reg = self.reg;
-      self.reg = self.reg + 10;
-      pir = """
-                    $P%d = new 'PAST::Val'
-                    $P%d.set_node( '1', 0, '%s' )
-                    $P%d.valtype( 'strqq' )
-#""" % ( reg, reg, V.getText(), reg )
-       
-      #val_strqq = #( [PIR_OP, pir] ); 
-    }
-  ;
-
-val_num! returns[reg]
-  : V:PAST_Val_Num 
-    {
-      reg = self.reg;
-      self.reg = self.reg + 10;
-      pir = """
-                    $P%d = new 'PAST::Val'
-                    $P%d.set_node( '1', 0, '%s' )
-                    $P%d.valtype( 'num' )
-#""" % ( reg, reg, V.getText(), reg )
-       
-      #val_num = #( [PIR_OP, pir] ); 
-    }
-  ;
+*/

Modified: trunk/languages/bc/grammar/antlr_3/bc.g
==============================================================================
--- trunk/languages/bc/grammar/antlr_3/bc.g     (original)
+++ trunk/languages/bc/grammar/antlr_3/bc.g     Wed Feb  1 02:39:56 2006
@@ -9,12 +9,14 @@ options 
   ASTLabelType=CommonTree;
 }
 
-  /* PROGRAM; */
-
+tokens 
+{
+  PROGRAM;
+} 
 
 
 program 
-  : INT WS quit WS
+  : INT WS quit WS -> ^( PROGRAM INT )
   ;
 
 INT

Reply via email to