Author: bernhard
Date: Sun Jan  7 10:17:19 2007
New Revision: 16472

Modified:
   trunk/languages/plumhead/src/antlr3/GenPastPir.g
   trunk/languages/plumhead/src/antlr3/GenPastPirTreeParser.java
   trunk/languages/plumhead/src/antlr3/Plumhead.g
   trunk/languages/plumhead/src/antlr3/PlumheadLexer.java
   trunk/languages/plumhead/src/antlr3/PlumheadParser.java

Log:
[Plumhead antlr3]
Some cleanup.


Modified: trunk/languages/plumhead/src/antlr3/GenPastPir.g
==============================================================================
--- trunk/languages/plumhead/src/antlr3/GenPastPir.g    (original)
+++ trunk/languages/plumhead/src/antlr3/GenPastPir.g    Sun Jan  7 10:17:19 2007
@@ -77,12 +77,10 @@
       System.out.println( 
           "                                                                  
\n"
         + "                                                                  
\n"
-        + "  past_node_id2244466.'push'( past_stmts )               \n"
-        + "  null past_stmts                                        \n"
+        + "  past_node_id2244466.'push'( past_stmts )                        
\n"
+        + "  null past_stmts                                                 
\n"
         + "  # end of generic node                                           
\n"
         + "                                                                  
\n"
-        + "                                                                  
\n"
-        + "                                                                  
\n"
         + "    # '_dumper'(past_node_id2244466, 'past')                      
\n"
         + "    # '_dumper'(superglobal_POST , 'superglobal_POST')            
\n"
         + "    # '_dumper'(superglobal_GET , 'superglobal_GET')              
\n"
@@ -185,6 +183,13 @@
         + "    # leaving ( PLUS | MINUS | MUL | DIV )                         
\n"
       );
     }
+  ;
+
+
+
+
+/* probably obsolete
+
   | ^( FUNCTION LETTER )
     {
       // do nothing for now
@@ -267,4 +272,5 @@
         + "  # leaving 'STMTS node*'                                          
\n"
       );
     }
-  ;
+
+*/

Modified: trunk/languages/plumhead/src/antlr3/GenPastPirTreeParser.java
==============================================================================
--- trunk/languages/plumhead/src/antlr3/GenPastPirTreeParser.java       
(original)
+++ trunk/languages/plumhead/src/antlr3/GenPastPirTreeParser.java       Sun Jan 
 7 10:17:19 2007
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 src/antlr3/GenPastPir.g 2007-01-07 18:06:38
+// $ANTLR 3.0b5 src/antlr3/GenPastPir.g 2007-01-07 18:14:31
 
   import java.util.regex.*;
 
@@ -10,28 +10,22 @@
 
 public class GenPastPirTreeParser extends TreeParser {
     public static final String[] tokenNames = new String[] {
-        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PROGRAM", "SEA", 
"CODE_START", "CODE_END", "WS", "STRING", "ECHO", "INTEGER", "NUMBER", "MINUS", 
"PLUS", "MUL_OP", "REL_OP", "';'", "'('", "')'", "FUNCTION", "LETTER", 
"ASSIGN_OP", "VAR", "If", "STMTS"
+        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PROGRAM", "SEA", 
"CODE_START", "CODE_END", "WS", "STRING", "ECHO", "INTEGER", "NUMBER", "MINUS", 
"PLUS", "MUL_OP", "REL_OP", "';'", "'('", "')'"
     };
     public static final int CODE_START=6;
+    public static final int INTEGER=11;
     public static final int MINUS=13;
-    public static final int LETTER=21;
-    public static final int If=24;
-    public static final int NUMBER=12;
+    public static final int ECHO=10;
     public static final int WS=8;
+    public static final int NUMBER=12;
+    public static final int EOF=-1;
     public static final int STRING=9;
+    public static final int REL_OP=16;
     public static final int MUL_OP=15;
+    public static final int PLUS=14;
     public static final int SEA=5;
     public static final int CODE_END=7;
-    public static final int STMTS=25;
     public static final int PROGRAM=4;
-    public static final int VAR=23;
-    public static final int INTEGER=11;
-    public static final int ASSIGN_OP=22;
-    public static final int ECHO=10;
-    public static final int FUNCTION=20;
-    public static final int EOF=-1;
-    public static final int REL_OP=16;
-    public static final int PLUS=14;
 
         public GenPastPirTreeParser(TreeNodeStream input) {
             super(input);
@@ -109,7 +103,7 @@
                 do {
                     int alt1=2;
                     int LA1_0 = input.LA(1);
-                    if ( ((LA1_0>=STRING && LA1_0<=ECHO)||(LA1_0>=NUMBER && 
LA1_0<=REL_OP)||LA1_0==FUNCTION||(LA1_0>=ASSIGN_OP && LA1_0<=STMTS)) ) {
+                    if ( ((LA1_0>=STRING && LA1_0<=ECHO)||(LA1_0>=NUMBER && 
LA1_0<=REL_OP)) ) {
                         alt1=1;
                     }
 
@@ -138,12 +132,10 @@
                   System.out.println( 
                       "                                                        
          \n"
                     + "                                                        
          \n"
-                    + "  past_node_id2244466.'push'( past_stmts )              
 \n"
-                    + "  null past_stmts                                       
 \n"
+                    + "  past_node_id2244466.'push'( past_stmts )              
          \n"
+                    + "  null past_stmts                                       
          \n"
                     + "  # end of generic node                                 
          \n"
                     + "                                                        
          \n"
-                    + "                                                        
          \n"
-                    + "                                                        
          \n"
                     + "    # '_dumper'(past_node_id2244466, 'past')            
          \n"
                     + "    # '_dumper'(superglobal_POST , 'superglobal_POST')  
          \n"
                     + "    # '_dumper'(superglobal_GET , 'superglobal_GET')    
          \n"
@@ -182,58 +174,41 @@
 
 
     // $ANTLR start node
-    // src/antlr3/GenPastPir.g:110:1: node[String reg_mother] : ( ^( ECHO 
node["past_echo"] ) | STRING | NUMBER | ^(infix= (PLUS|MINUS|MUL_OP|REL_OP) 
node[reg] node[reg] ) | ^( FUNCTION LETTER ) | ^( ASSIGN_OP ^( VAR LETTER ) 
node["reg_assign_lhs"] ) | ^( VAR LETTER ) | ^( If node["reg_if_op"] 
node["reg_if_op"] ) | ^( STMTS ( node[reg_stmts] )* ) );
+    // src/antlr3/GenPastPir.g:108:1: node[String reg_mother] : ( ^( ECHO 
node["past_echo"] ) | STRING | NUMBER | ^(infix= (PLUS|MINUS|MUL_OP|REL_OP) 
node[reg] node[reg] ) );
     public void node(String reg_mother) throws RecognitionException {   
         CommonTree infix=null;
         CommonTree STRING1=null;
         CommonTree NUMBER2=null;
-        CommonTree LETTER3=null;
-        CommonTree LETTER4=null;
 
         try {
-            // src/antlr3/GenPastPir.g:111:5: ( ^( ECHO node[\"past_echo\"] ) 
| STRING | NUMBER | ^(infix= (PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] ) | 
^( FUNCTION LETTER ) | ^( ASSIGN_OP ^( VAR LETTER ) node[\"reg_assign_lhs\"] ) 
| ^( VAR LETTER ) | ^( If node[\"reg_if_op\"] node[\"reg_if_op\"] ) | ^( STMTS 
( node[reg_stmts] )* ) )
-            int alt3=9;
+            // src/antlr3/GenPastPir.g:109:5: ( ^( ECHO node[\"past_echo\"] ) 
| STRING | NUMBER | ^(infix= (PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] ) )
+            int alt2=4;
             switch ( input.LA(1) ) {
             case ECHO:
-                alt3=1;
+                alt2=1;
                 break;
             case STRING:
-                alt3=2;
+                alt2=2;
                 break;
             case NUMBER:
-                alt3=3;
+                alt2=3;
                 break;
             case MINUS:
             case PLUS:
             case MUL_OP:
             case REL_OP:
-                alt3=4;
-                break;
-            case FUNCTION:
-                alt3=5;
-                break;
-            case ASSIGN_OP:
-                alt3=6;
-                break;
-            case VAR:
-                alt3=7;
-                break;
-            case If:
-                alt3=8;
-                break;
-            case STMTS:
-                alt3=9;
+                alt2=4;
                 break;
             default:
                 NoViableAltException nvae =
-                    new NoViableAltException("110:1: node[String reg_mother] : 
( ^( ECHO node[\"past_echo\"] ) | STRING | NUMBER | ^(infix= 
(PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] ) | ^( FUNCTION LETTER ) | ^( 
ASSIGN_OP ^( VAR LETTER ) node[\"reg_assign_lhs\"] ) | ^( VAR LETTER ) | ^( If 
node[\"reg_if_op\"] node[\"reg_if_op\"] ) | ^( STMTS ( node[reg_stmts] )* ) 
);", 3, 0, input);
+                    new NoViableAltException("108:1: node[String reg_mother] : 
( ^( ECHO node[\"past_echo\"] ) | STRING | NUMBER | ^(infix= 
(PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] ) );", 2, 0, input);
 
                 throw nvae;
             }
 
-            switch (alt3) {
+            switch (alt2) {
                 case 1 :
-                    // src/antlr3/GenPastPir.g:111:5: ^( ECHO 
node[\"past_echo\"] )
+                    // src/antlr3/GenPastPir.g:109:5: ^( ECHO 
node[\"past_echo\"] )
                     {
 
                           System.out.println( 
@@ -264,7 +239,7 @@
                     }
                     break;
                 case 2 :
-                    // src/antlr3/GenPastPir.g:128:5: STRING
+                    // src/antlr3/GenPastPir.g:126:5: STRING
                     {
                     STRING1=(CommonTree)input.LT(1);
                     match(input,STRING,FOLLOW_STRING_in_node126); 
@@ -290,7 +265,7 @@
                     }
                     break;
                 case 3 :
-                    // src/antlr3/GenPastPir.g:147:5: NUMBER
+                    // src/antlr3/GenPastPir.g:145:5: NUMBER
                     {
                     NUMBER2=(CommonTree)input.LT(1);
                     match(input,NUMBER,FOLLOW_NUMBER_in_node138); 
@@ -311,7 +286,7 @@
                     }
                     break;
                 case 4 :
-                    // src/antlr3/GenPastPir.g:161:5: ^(infix= 
(PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] )
+                    // src/antlr3/GenPastPir.g:159:5: ^(infix= 
(PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] )
                     {
 
                           reg_num++;
@@ -365,189 +340,6 @@
 
                     }
                     break;
-                case 5 :
-                    // src/antlr3/GenPastPir.g:188:5: ^( FUNCTION LETTER )
-                    {
-                    match(input,FUNCTION,FOLLOW_FUNCTION_in_node198); 
-
-                    match(input, Token.DOWN, null); 
-                    match(input,LETTER,FOLLOW_LETTER_in_node200); 
-
-                    match(input, Token.UP, null); 
-
-                          // do nothing for now
-                        
-
-                    }
-                    break;
-                case 6 :
-                    // src/antlr3/GenPastPir.g:192:5: ^( ASSIGN_OP ^( VAR 
LETTER ) node[\"reg_assign_lhs\"] )
-                    {
-
-                          System.out.print( 
-                              "                                                
                   \n"
-                            + "  # entering 'assign'                           
                   \n"
-                            + "    reg_assign_lhs = new 'PAST::Exp'            
                   \n"
-                          );
-                        
-                    match(input,ASSIGN_OP,FOLLOW_ASSIGN_OP_in_node222); 
-
-                    match(input, Token.DOWN, null); 
-                    match(input,VAR,FOLLOW_VAR_in_node225); 
-
-                    match(input, Token.DOWN, null); 
-                    LETTER3=(CommonTree)input.LT(1);
-                    match(input,LETTER,FOLLOW_LETTER_in_node227); 
-
-                    match(input, Token.UP, null); 
-                    pushFollow(FOLLOW_node_in_node230);
-                    node("reg_assign_lhs");
-                    _fsp--;
-
-
-                    match(input, Token.UP, null); 
-
-                          // TODO: strip String
-                          System.out.print(     
-                              "                                                
                   \n"
-                            + "    # entering 'ASSIGN_OP ^(VAR LETTER) node'   
                   \n"
-                            + "      .sym pmc past_op                          
                   \n"
-                            + "      past_op = new 'PAST::Op'                  
                   \n"
-                            + "      past_op.'op'( 'infix:=' )                 
                   \n"
-                            + "        .sym pmc past_var                       
                   \n"
-                            + "        past_var = new 'PAST::Var'              
                   \n"
-                            + "        past_var.'varname'( '" + 
LETTER3.getText() + "' )               \n"
-                            + "        past_var.'vartype'( 'scalar' )          
                   \n"
-                            + "        past_var.'scope'( 'global' )            
                   \n"
-                            + "      past_op.'add_child'( past_var )           
                   \n"
-                            + "      past_op.'add_child'( reg_assign_lhs )     
                   \n"
-                            + "    " + reg_mother + ".'add_child'( past_op )   
             \n"
-                            + "    # leaving  'ASSIGN_OP named_expression 
NUMBER'                 \n"
-                          );
-                        
-
-                    }
-                    break;
-                case 7 :
-                    // src/antlr3/GenPastPir.g:219:5: ^( VAR LETTER )
-                    {
-                    match(input,VAR,FOLLOW_VAR_in_node247); 
-
-                    match(input, Token.DOWN, null); 
-                    LETTER4=(CommonTree)input.LT(1);
-                    match(input,LETTER,FOLLOW_LETTER_in_node249); 
-
-                    match(input, Token.UP, null); 
-
-                          System.out.print( 
-                              "                                                
                   \n"
-                            + " # entering '( VAR LETTER )                     
                   \n"
-                            + "    past_temp = new 'PAST::Var'                 
                    \n"
-                            + "    past_temp.'varname'( '" + LETTER4.getText() 
+ "' )                   \n"
-                            + "    past_temp.'vartype'( 'scalar' )             
                    \n"
-                            + "    past_temp.'scope'( 'global' )               
                    \n"
-                            + "  " + reg_mother + ".'add_child'( past_temp )   
              \n"
-                            + "    null past_temp                              
                    \n"
-                            + "  # leaving '(VAR LETTER)'                      
                   \n"
-                          );
-                        
-
-                    }
-                    break;
-                case 8 :
-                    // src/antlr3/GenPastPir.g:233:5: ^( If 
node[\"reg_if_op\"] node[\"reg_if_op\"] )
-                    {
-
-                          reg_num++;
-                          String reg_exp   = "reg_expression_" + reg_num;
-                          System.out.print( 
-                              "  # entering 'If node node                      
                   \n"
-                            + "      reg_if_op = new 'PAST::Op'                
                   \n"
-                            + "      reg_if_op.'op'( 'if' )                    
                   \n"
-                            + "        .sym pmc " + reg_exp + "                
                   \n"
-                            + "        " + reg_exp + " = new 'PAST::Exp'       
                   \n"
-                            + "                                                
                   \n"
-                          );
-                        
-                    match(input,If,FOLLOW_If_in_node271); 
-
-                    match(input, Token.DOWN, null); 
-                    pushFollow(FOLLOW_node_in_node273);
-                    node("reg_if_op");
-                    _fsp--;
-
-                    pushFollow(FOLLOW_node_in_node276);
-                    node("reg_if_op");
-                    _fsp--;
-
-
-                    match(input, Token.UP, null); 
-
-                           // Create a node for If
-                          System.out.print( 
-                              "  # entering 'STMTS node*'                      
                   \n"
-                            + "  " + reg_mother + ".'add_child'( reg_if_op )   
             \n"
-                            + "  # leaving 'If node node                       
                   \n"
-                          );
-                        
-
-                    }
-                    break;
-                case 9 :
-                    // src/antlr3/GenPastPir.g:254:5: ^( STMTS ( 
node[reg_stmts] )* )
-                    {
-
-                          reg_num++;
-                          String reg_stmts = "reg_stmts_" + reg_num;
-                          System.out.print( 
-                              "        .sym pmc " + reg_stmts + "              
                   \n"
-                            + "        " + reg_stmts + " = new 'PAST::Stmts'   
                   \n"
-                          );
-                        
-                    match(input,STMTS,FOLLOW_STMTS_in_node299); 
-
-                    if ( input.LA(1)==Token.DOWN ) {
-                        match(input, Token.DOWN, null); 
-                        // src/antlr3/GenPastPir.g:262:14: ( node[reg_stmts] )*
-                        loop2:
-                        do {
-                            int alt2=2;
-                            int LA2_0 = input.LA(1);
-                            if ( ((LA2_0>=STRING && 
LA2_0<=ECHO)||(LA2_0>=NUMBER && 
LA2_0<=REL_OP)||LA2_0==FUNCTION||(LA2_0>=ASSIGN_OP && LA2_0<=STMTS)) ) {
-                                alt2=1;
-                            }
-
-
-                            switch (alt2) {
-                               case 1 :
-                                   // src/antlr3/GenPastPir.g:262:14: 
node[reg_stmts]
-                                   {
-                                   pushFollow(FOLLOW_node_in_node301);
-                                   node(reg_stmts);
-                                   _fsp--;
-
-
-                                   }
-                                   break;
-
-                               default :
-                                   break loop2;
-                            }
-                        } while (true);
-
-
-                        match(input, Token.UP, null); 
-                    }
-
-                           // Create a node for If
-                          System.out.print( 
-                              "  " + reg_mother + ".'add_child'( " + reg_stmts 
+ " )        \n"
-                            + "  # leaving 'STMTS node*'                       
                   \n"
-                          );
-                        
-
-                    }
-                    break;
 
             }
         }
@@ -565,26 +357,13 @@
  
 
     public static final BitSet FOLLOW_PROGRAM_in_gen_pir_past75 = new 
BitSet(new long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_node_in_gen_pir_past77 = new BitSet(new 
long[]{0x0000000003D1F608L});
+    public static final BitSet FOLLOW_node_in_gen_pir_past77 = new BitSet(new 
long[]{0x000000000001F608L});
     public static final BitSet FOLLOW_ECHO_in_node109 = new BitSet(new 
long[]{0x0000000000000004L});
     public static final BitSet FOLLOW_node_in_node111 = new BitSet(new 
long[]{0x0000000000000008L});
     public static final BitSet FOLLOW_STRING_in_node126 = new BitSet(new 
long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_NUMBER_in_node138 = new BitSet(new 
long[]{0x0000000000000002L});
     public static final BitSet FOLLOW_set_in_node162 = new BitSet(new 
long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_node_in_node178 = new BitSet(new 
long[]{0x0000000003D1F600L});
+    public static final BitSet FOLLOW_node_in_node178 = new BitSet(new 
long[]{0x000000000001F600L});
     public static final BitSet FOLLOW_node_in_node181 = new BitSet(new 
long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_FUNCTION_in_node198 = new BitSet(new 
long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_LETTER_in_node200 = new BitSet(new 
long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_ASSIGN_OP_in_node222 = new BitSet(new 
long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_VAR_in_node225 = new BitSet(new 
long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_LETTER_in_node227 = new BitSet(new 
long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_node_in_node230 = new BitSet(new 
long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_VAR_in_node247 = new BitSet(new 
long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_LETTER_in_node249 = new BitSet(new 
long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_If_in_node271 = new BitSet(new 
long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_node_in_node273 = new BitSet(new 
long[]{0x0000000003D1F600L});
-    public static final BitSet FOLLOW_node_in_node276 = new BitSet(new 
long[]{0x0000000000000008L});
-    public static final BitSet FOLLOW_STMTS_in_node299 = new BitSet(new 
long[]{0x0000000000000004L});
-    public static final BitSet FOLLOW_node_in_node301 = new BitSet(new 
long[]{0x0000000003D1F608L});
 
 }
\ No newline at end of file

Modified: trunk/languages/plumhead/src/antlr3/Plumhead.g
==============================================================================
--- trunk/languages/plumhead/src/antlr3/Plumhead.g      (original)
+++ trunk/languages/plumhead/src/antlr3/Plumhead.g      Sun Jan  7 10:17:19 2007
@@ -13,11 +13,11 @@
   ASTLabelType = CommonTree;
 }
 
+// virtual tokens
 tokens 
 {
   PROGRAM;
 }
-// virtual tokens
 
 // real tokens
 SEA        : 'start_sea' ( options {greedy=false;} : . )* 'end_sea' ;
@@ -46,6 +46,8 @@
 REL_OP     : '==' | '<=' | '>=' | '!=' | '<'  | '>' ;
 
 
+// productions
+
 program 
   : s1=sea code s2=sea -> ^( PROGRAM $s1 code $s2 )
   ;

Modified: trunk/languages/plumhead/src/antlr3/PlumheadLexer.java
==============================================================================
--- trunk/languages/plumhead/src/antlr3/PlumheadLexer.java      (original)
+++ trunk/languages/plumhead/src/antlr3/PlumheadLexer.java      Sun Jan  7 
10:17:19 2007
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-07 18:06:36
+// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-07 18:14:30
 
 import org.antlr.runtime.*;
 import java.util.Stack;

Modified: trunk/languages/plumhead/src/antlr3/PlumheadParser.java
==============================================================================
--- trunk/languages/plumhead/src/antlr3/PlumheadParser.java     (original)
+++ trunk/languages/plumhead/src/antlr3/PlumheadParser.java     Sun Jan  7 
10:17:19 2007
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-07 18:06:34
+// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-07 18:14:29
 
 import org.antlr.runtime.*;
 import java.util.Stack;
@@ -50,7 +50,7 @@
     };
 
     // $ANTLR start program
-    // src/antlr3/Plumhead.g:49:1: program : s1= sea code s2= sea -> ^( 
PROGRAM $s1 code $s2) ;
+    // src/antlr3/Plumhead.g:51:1: program : s1= sea code s2= sea -> ^( 
PROGRAM $s1 code $s2) ;
     public program_return program() throws RecognitionException {   
         program_return retval = new program_return();
         retval.start = input.LT(1);
@@ -67,20 +67,20 @@
         List list_sea=new ArrayList();
 
         try {
-            // src/antlr3/Plumhead.g:50:5: (s1= sea code s2= sea -> ^( PROGRAM 
$s1 code $s2) )
-            // src/antlr3/Plumhead.g:50:5: s1= sea code s2= sea
+            // src/antlr3/Plumhead.g:52:5: (s1= sea code s2= sea -> ^( PROGRAM 
$s1 code $s2) )
+            // src/antlr3/Plumhead.g:52:5: s1= sea code s2= sea
             {
-            pushFollow(FOLLOW_sea_in_program323);
+            pushFollow(FOLLOW_sea_in_program325);
             s1=sea();
             _fsp--;
 
             list_sea.add(s1.tree);
-            pushFollow(FOLLOW_code_in_program325);
+            pushFollow(FOLLOW_code_in_program327);
             code1=code();
             _fsp--;
 
             list_code.add(code1.tree);
-            pushFollow(FOLLOW_sea_in_program329);
+            pushFollow(FOLLOW_sea_in_program331);
             s2=sea();
             _fsp--;
 
@@ -90,9 +90,9 @@
             int i_0 = 0;
             retval.tree = root_0;
             root_0 = (CommonTree)adaptor.nil();
-            // 50:24: -> ^( PROGRAM $s1 code $s2)
+            // 52:24: -> ^( PROGRAM $s1 code $s2)
             {
-                // src/antlr3/Plumhead.g:50:27: ^( PROGRAM $s1 code $s2)
+                // src/antlr3/Plumhead.g:52:27: ^( PROGRAM $s1 code $s2)
                 {
                 CommonTree root_1 = (CommonTree)adaptor.nil();
                 root_1 = 
(CommonTree)adaptor.becomeRoot(adaptor.create(PROGRAM, "PROGRAM"), root_1);
@@ -132,7 +132,7 @@
     };
 
     // $ANTLR start sea
-    // src/antlr3/Plumhead.g:53:1: sea : SEA -> ^( ECHO STRING[$SEA] ) ;
+    // src/antlr3/Plumhead.g:55:1: sea : SEA -> ^( ECHO STRING[$SEA] ) ;
     public sea_return sea() throws RecognitionException {   
         sea_return retval = new sea_return();
         retval.start = input.LT(1);
@@ -144,11 +144,11 @@
         CommonTree SEA2_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:54:5: ( SEA -> ^( ECHO STRING[$SEA] ) )
-            // src/antlr3/Plumhead.g:54:5: SEA
+            // src/antlr3/Plumhead.g:56:5: ( SEA -> ^( ECHO STRING[$SEA] ) )
+            // src/antlr3/Plumhead.g:56:5: SEA
             {
             SEA2=(Token)input.LT(1);
-            match(input,SEA,FOLLOW_SEA_in_sea358); 
+            match(input,SEA,FOLLOW_SEA_in_sea360); 
             list_SEA.add(SEA2);
 
 
@@ -156,9 +156,9 @@
             int i_0 = 0;
             retval.tree = root_0;
             root_0 = (CommonTree)adaptor.nil();
-            // 54:9: -> ^( ECHO STRING[$SEA] )
+            // 56:9: -> ^( ECHO STRING[$SEA] )
             {
-                // src/antlr3/Plumhead.g:54:12: ^( ECHO STRING[$SEA] )
+                // src/antlr3/Plumhead.g:56:12: ^( ECHO STRING[$SEA] )
                 {
                 CommonTree root_1 = (CommonTree)adaptor.nil();
                 root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(ECHO, 
"ECHO"), root_1);
@@ -196,7 +196,7 @@
     };
 
     // $ANTLR start code
-    // src/antlr3/Plumhead.g:57:1: code : CODE_START statements CODE_END -> 
statements ;
+    // src/antlr3/Plumhead.g:59:1: code : CODE_START statements CODE_END -> 
statements ;
     public code_return code() throws RecognitionException {   
         code_return retval = new code_return();
         retval.start = input.LT(1);
@@ -214,20 +214,20 @@
         CommonTree CODE_END5_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:58:5: ( CODE_START statements CODE_END -> 
statements )
-            // src/antlr3/Plumhead.g:58:5: CODE_START statements CODE_END
+            // src/antlr3/Plumhead.g:60:5: ( CODE_START statements CODE_END -> 
statements )
+            // src/antlr3/Plumhead.g:60:5: CODE_START statements CODE_END
             {
             CODE_START3=(Token)input.LT(1);
-            match(input,CODE_START,FOLLOW_CODE_START_in_code382); 
+            match(input,CODE_START,FOLLOW_CODE_START_in_code384); 
             list_CODE_START.add(CODE_START3);
 
-            pushFollow(FOLLOW_statements_in_code384);
+            pushFollow(FOLLOW_statements_in_code386);
             statements4=statements();
             _fsp--;
 
             list_statements.add(statements4.tree);
             CODE_END5=(Token)input.LT(1);
-            match(input,CODE_END,FOLLOW_CODE_END_in_code386); 
+            match(input,CODE_END,FOLLOW_CODE_END_in_code388); 
             list_CODE_END.add(CODE_END5);
 
 
@@ -235,7 +235,7 @@
             int i_0 = 0;
             retval.tree = root_0;
             root_0 = (CommonTree)adaptor.nil();
-            // 58:36: -> statements
+            // 60:36: -> statements
             {
                 adaptor.addChild(root_0, list_statements.get(i_0));
 
@@ -267,7 +267,7 @@
     };
 
     // $ANTLR start statements
-    // src/antlr3/Plumhead.g:61:1: statements : ( statement )+ ;
+    // src/antlr3/Plumhead.g:63:1: statements : ( statement )+ ;
     public statements_return statements() throws RecognitionException {   
         statements_return retval = new statements_return();
         retval.start = input.LT(1);
@@ -279,12 +279,12 @@
 
 
         try {
-            // src/antlr3/Plumhead.g:62:5: ( ( statement )+ )
-            // src/antlr3/Plumhead.g:62:5: ( statement )+
+            // src/antlr3/Plumhead.g:64:5: ( ( statement )+ )
+            // src/antlr3/Plumhead.g:64:5: ( statement )+
             {
             root_0 = (CommonTree)adaptor.nil();
 
-            // src/antlr3/Plumhead.g:62:5: ( statement )+
+            // src/antlr3/Plumhead.g:64:5: ( statement )+
             int cnt1=0;
             loop1:
             do {
@@ -297,11 +297,11 @@
 
                 switch (alt1) {
                case 1 :
-                   // src/antlr3/Plumhead.g:62:7: statement
+                   // src/antlr3/Plumhead.g:64:7: statement
                    {
                    CommonTree root_1 = (CommonTree)adaptor.nil();
 
-                   pushFollow(FOLLOW_statement_in_statements405);
+                   pushFollow(FOLLOW_statement_in_statements407);
                    statement6=statement();
                    _fsp--;
 
@@ -346,7 +346,7 @@
     };
 
     // $ANTLR start statement
-    // src/antlr3/Plumhead.g:65:1: statement : ECHO expression ';' -> ^( ECHO 
expression ) ;
+    // src/antlr3/Plumhead.g:67:1: statement : ECHO expression ';' -> ^( ECHO 
expression ) ;
     public statement_return statement() throws RecognitionException {   
         statement_return retval = new statement_return();
         retval.start = input.LT(1);
@@ -364,20 +364,20 @@
         CommonTree char_literal9_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:66:5: ( ECHO expression ';' -> ^( ECHO 
expression ) )
-            // src/antlr3/Plumhead.g:66:5: ECHO expression ';'
+            // src/antlr3/Plumhead.g:68:5: ( ECHO expression ';' -> ^( ECHO 
expression ) )
+            // src/antlr3/Plumhead.g:68:5: ECHO expression ';'
             {
             ECHO7=(Token)input.LT(1);
-            match(input,ECHO,FOLLOW_ECHO_in_statement421); 
+            match(input,ECHO,FOLLOW_ECHO_in_statement423); 
             list_ECHO.add(ECHO7);
 
-            pushFollow(FOLLOW_expression_in_statement423);
+            pushFollow(FOLLOW_expression_in_statement425);
             expression8=expression();
             _fsp--;
 
             list_expression.add(expression8.tree);
             char_literal9=(Token)input.LT(1);
-            match(input,17,FOLLOW_17_in_statement425); 
+            match(input,17,FOLLOW_17_in_statement427); 
             list_17.add(char_literal9);
 
 
@@ -385,9 +385,9 @@
             int i_0 = 0;
             retval.tree = root_0;
             root_0 = (CommonTree)adaptor.nil();
-            // 66:25: -> ^( ECHO expression )
+            // 68:25: -> ^( ECHO expression )
             {
-                // src/antlr3/Plumhead.g:66:28: ^( ECHO expression )
+                // src/antlr3/Plumhead.g:68:28: ^( ECHO expression )
                 {
                 CommonTree root_1 = (CommonTree)adaptor.nil();
                 root_1 = 
(CommonTree)adaptor.becomeRoot((Token)list_ECHO.get(i_0), root_1);
@@ -425,7 +425,7 @@
     };
 
     // $ANTLR start expression
-    // src/antlr3/Plumhead.g:69:1: expression : ( STRING | adding_expression );
+    // src/antlr3/Plumhead.g:71:1: expression : ( STRING | adding_expression );
     public expression_return expression() throws RecognitionException {   
         expression_return retval = new expression_return();
         retval.start = input.LT(1);
@@ -439,7 +439,7 @@
         CommonTree STRING10_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:70:5: ( STRING | adding_expression )
+            // src/antlr3/Plumhead.g:72:5: ( STRING | adding_expression )
             int alt2=2;
             int LA2_0 = input.LA(1);
             if ( (LA2_0==STRING) ) {
@@ -450,18 +450,18 @@
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("69:1: expression : ( STRING | 
adding_expression );", 2, 0, input);
+                    new NoViableAltException("71:1: expression : ( STRING | 
adding_expression );", 2, 0, input);
 
                 throw nvae;
             }
             switch (alt2) {
                 case 1 :
-                    // src/antlr3/Plumhead.g:70:5: STRING
+                    // src/antlr3/Plumhead.g:72:5: STRING
                     {
                     root_0 = (CommonTree)adaptor.nil();
 
                     STRING10=(Token)input.LT(1);
-                    match(input,STRING,FOLLOW_STRING_in_expression448); 
+                    match(input,STRING,FOLLOW_STRING_in_expression450); 
                     STRING10_tree = (CommonTree)adaptor.create(STRING10);
                     adaptor.addChild(root_0, STRING10_tree);
 
@@ -469,11 +469,11 @@
                     }
                     break;
                 case 2 :
-                    // src/antlr3/Plumhead.g:71:5: adding_expression
+                    // src/antlr3/Plumhead.g:73:5: adding_expression
                     {
                     root_0 = (CommonTree)adaptor.nil();
 
-                    pushFollow(FOLLOW_adding_expression_in_expression454);
+                    pushFollow(FOLLOW_adding_expression_in_expression456);
                     adding_expression11=adding_expression();
                     _fsp--;
 
@@ -505,7 +505,7 @@
     };
 
     // $ANTLR start adding_expression
-    // src/antlr3/Plumhead.g:74:1: adding_expression : multiplying_expression 
( ( PLUS^^ | MINUS^^ ) multiplying_expression )* ;
+    // src/antlr3/Plumhead.g:76:1: adding_expression : multiplying_expression 
( ( PLUS^^ | MINUS^^ ) multiplying_expression )* ;
     public adding_expression_return adding_expression() throws 
RecognitionException {   
         adding_expression_return retval = new adding_expression_return();
         retval.start = input.LT(1);
@@ -523,17 +523,17 @@
         CommonTree MINUS14_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:75:5: ( multiplying_expression ( ( PLUS^^ 
| MINUS^^ ) multiplying_expression )* )
-            // src/antlr3/Plumhead.g:75:5: multiplying_expression ( ( PLUS^^ | 
MINUS^^ ) multiplying_expression )*
+            // src/antlr3/Plumhead.g:77:5: ( multiplying_expression ( ( PLUS^^ 
| MINUS^^ ) multiplying_expression )* )
+            // src/antlr3/Plumhead.g:77:5: multiplying_expression ( ( PLUS^^ | 
MINUS^^ ) multiplying_expression )*
             {
             root_0 = (CommonTree)adaptor.nil();
 
-            pushFollow(FOLLOW_multiplying_expression_in_adding_expression467);
+            pushFollow(FOLLOW_multiplying_expression_in_adding_expression469);
             multiplying_expression12=multiplying_expression();
             _fsp--;
 
             adaptor.addChild(root_0, multiplying_expression12.tree);
-            // src/antlr3/Plumhead.g:75:28: ( ( PLUS^^ | MINUS^^ ) 
multiplying_expression )*
+            // src/antlr3/Plumhead.g:77:28: ( ( PLUS^^ | MINUS^^ ) 
multiplying_expression )*
             loop4:
             do {
                 int alt4=2;
@@ -545,11 +545,11 @@
 
                 switch (alt4) {
                case 1 :
-                   // src/antlr3/Plumhead.g:75:30: ( PLUS^^ | MINUS^^ ) 
multiplying_expression
+                   // src/antlr3/Plumhead.g:77:30: ( PLUS^^ | MINUS^^ ) 
multiplying_expression
                    {
                    CommonTree root_1 = (CommonTree)adaptor.nil();
 
-                   // src/antlr3/Plumhead.g:75:30: ( PLUS^^ | MINUS^^ )
+                   // src/antlr3/Plumhead.g:77:30: ( PLUS^^ | MINUS^^ )
                    int alt3=2;
                    int LA3_0 = input.LA(1);
                    if ( (LA3_0==PLUS) ) {
@@ -560,18 +560,18 @@
                    }
                    else {
                        NoViableAltException nvae =
-                           new NoViableAltException("75:30: ( PLUS^^ | MINUS^^ 
)", 3, 0, input);
+                           new NoViableAltException("77:30: ( PLUS^^ | MINUS^^ 
)", 3, 0, input);
 
                        throw nvae;
                    }
                    switch (alt3) {
                        case 1 :
-                           // src/antlr3/Plumhead.g:75:32: PLUS^^
+                           // src/antlr3/Plumhead.g:77:32: PLUS^^
                            {
                            CommonTree root_2 = (CommonTree)adaptor.nil();
 
                            PLUS13=(Token)input.LT(1);
-                           
match(input,PLUS,FOLLOW_PLUS_in_adding_expression473); 
+                           
match(input,PLUS,FOLLOW_PLUS_in_adding_expression475); 
                            PLUS13_tree = (CommonTree)adaptor.create(PLUS13);
                            root_0 = 
(CommonTree)adaptor.becomeRoot(PLUS13_tree, root_0);
 
@@ -581,12 +581,12 @@
                            }
                            break;
                        case 2 :
-                           // src/antlr3/Plumhead.g:75:41: MINUS^^
+                           // src/antlr3/Plumhead.g:77:41: MINUS^^
                            {
                            CommonTree root_2 = (CommonTree)adaptor.nil();
 
                            MINUS14=(Token)input.LT(1);
-                           
match(input,MINUS,FOLLOW_MINUS_in_adding_expression478); 
+                           
match(input,MINUS,FOLLOW_MINUS_in_adding_expression480); 
                            MINUS14_tree = (CommonTree)adaptor.create(MINUS14);
                            root_0 = 
(CommonTree)adaptor.becomeRoot(MINUS14_tree, root_0);
 
@@ -598,7 +598,7 @@
 
                    }
 
-                   
pushFollow(FOLLOW_multiplying_expression_in_adding_expression483);
+                   
pushFollow(FOLLOW_multiplying_expression_in_adding_expression485);
                    multiplying_expression15=multiplying_expression();
                    _fsp--;
 
@@ -639,7 +639,7 @@
     };
 
     // $ANTLR start multiplying_expression
-    // src/antlr3/Plumhead.g:78:1: multiplying_expression : unary_expression ( 
MUL_OP^^ unary_expression )* ;
+    // src/antlr3/Plumhead.g:80:1: multiplying_expression : unary_expression ( 
MUL_OP^^ unary_expression )* ;
     public multiplying_expression_return multiplying_expression() throws 
RecognitionException {   
         multiplying_expression_return retval = new 
multiplying_expression_return();
         retval.start = input.LT(1);
@@ -655,17 +655,17 @@
         CommonTree MUL_OP17_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:79:5: ( unary_expression ( MUL_OP^^ 
unary_expression )* )
-            // src/antlr3/Plumhead.g:79:5: unary_expression ( MUL_OP^^ 
unary_expression )*
+            // src/antlr3/Plumhead.g:81:5: ( unary_expression ( MUL_OP^^ 
unary_expression )* )
+            // src/antlr3/Plumhead.g:81:5: unary_expression ( MUL_OP^^ 
unary_expression )*
             {
             root_0 = (CommonTree)adaptor.nil();
 
-            pushFollow(FOLLOW_unary_expression_in_multiplying_expression500);
+            pushFollow(FOLLOW_unary_expression_in_multiplying_expression502);
             unary_expression16=unary_expression();
             _fsp--;
 
             adaptor.addChild(root_0, unary_expression16.tree);
-            // src/antlr3/Plumhead.g:79:22: ( MUL_OP^^ unary_expression )*
+            // src/antlr3/Plumhead.g:81:22: ( MUL_OP^^ unary_expression )*
             loop5:
             do {
                 int alt5=2;
@@ -677,16 +677,16 @@
 
                 switch (alt5) {
                case 1 :
-                   // src/antlr3/Plumhead.g:79:24: MUL_OP^^ unary_expression
+                   // src/antlr3/Plumhead.g:81:24: MUL_OP^^ unary_expression
                    {
                    CommonTree root_1 = (CommonTree)adaptor.nil();
 
                    MUL_OP17=(Token)input.LT(1);
-                   
match(input,MUL_OP,FOLLOW_MUL_OP_in_multiplying_expression504); 
+                   
match(input,MUL_OP,FOLLOW_MUL_OP_in_multiplying_expression506); 
                    MUL_OP17_tree = (CommonTree)adaptor.create(MUL_OP17);
                    root_0 = (CommonTree)adaptor.becomeRoot(MUL_OP17_tree, 
root_0);
 
-                   
pushFollow(FOLLOW_unary_expression_in_multiplying_expression507);
+                   
pushFollow(FOLLOW_unary_expression_in_multiplying_expression509);
                    unary_expression18=unary_expression();
                    _fsp--;
 
@@ -727,7 +727,7 @@
     };
 
     // $ANTLR start unary_expression
-    // src/antlr3/Plumhead.g:82:1: unary_expression : ( postfix_expression | 
MINUS postfix_expression -> ^( MUL_OP["n_mul"] NUMBER["-1"] postfix_expression 
) );
+    // src/antlr3/Plumhead.g:84:1: unary_expression : ( postfix_expression | 
MINUS postfix_expression -> ^( MUL_OP["n_mul"] NUMBER["-1"] postfix_expression 
) );
     public unary_expression_return unary_expression() throws 
RecognitionException {   
         unary_expression_return retval = new unary_expression_return();
         retval.start = input.LT(1);
@@ -744,7 +744,7 @@
         CommonTree MINUS20_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:83:5: ( postfix_expression | MINUS 
postfix_expression -> ^( MUL_OP[\"n_mul\"] NUMBER[\"-1\"] postfix_expression ) )
+            // src/antlr3/Plumhead.g:85:5: ( postfix_expression | MINUS 
postfix_expression -> ^( MUL_OP[\"n_mul\"] NUMBER[\"-1\"] postfix_expression ) )
             int alt6=2;
             int LA6_0 = input.LA(1);
             if ( (LA6_0==NUMBER||LA6_0==18) ) {
@@ -755,17 +755,17 @@
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("82:1: unary_expression : ( 
postfix_expression | MINUS postfix_expression -> ^( MUL_OP[\"n_mul\"] 
NUMBER[\"-1\"] postfix_expression ) );", 6, 0, input);
+                    new NoViableAltException("84:1: unary_expression : ( 
postfix_expression | MINUS postfix_expression -> ^( MUL_OP[\"n_mul\"] 
NUMBER[\"-1\"] postfix_expression ) );", 6, 0, input);
 
                 throw nvae;
             }
             switch (alt6) {
                 case 1 :
-                    // src/antlr3/Plumhead.g:83:5: postfix_expression
+                    // src/antlr3/Plumhead.g:85:5: postfix_expression
                     {
                     root_0 = (CommonTree)adaptor.nil();
 
-                    
pushFollow(FOLLOW_postfix_expression_in_unary_expression523);
+                    
pushFollow(FOLLOW_postfix_expression_in_unary_expression525);
                     postfix_expression19=postfix_expression();
                     _fsp--;
 
@@ -774,13 +774,13 @@
                     }
                     break;
                 case 2 :
-                    // src/antlr3/Plumhead.g:84:5: MINUS postfix_expression
+                    // src/antlr3/Plumhead.g:86:5: MINUS postfix_expression
                     {
                     MINUS20=(Token)input.LT(1);
-                    match(input,MINUS,FOLLOW_MINUS_in_unary_expression529); 
+                    match(input,MINUS,FOLLOW_MINUS_in_unary_expression531); 
                     list_MINUS.add(MINUS20);
 
-                    
pushFollow(FOLLOW_postfix_expression_in_unary_expression531);
+                    
pushFollow(FOLLOW_postfix_expression_in_unary_expression533);
                     postfix_expression21=postfix_expression();
                     _fsp--;
 
@@ -790,9 +790,9 @@
                     int i_0 = 0;
                     retval.tree = root_0;
                     root_0 = (CommonTree)adaptor.nil();
-                    // 84:30: -> ^( MUL_OP[\"n_mul\"] NUMBER[\"-1\"] 
postfix_expression )
+                    // 86:30: -> ^( MUL_OP[\"n_mul\"] NUMBER[\"-1\"] 
postfix_expression )
                     {
-                        // src/antlr3/Plumhead.g:84:33: ^( MUL_OP[\"n_mul\"] 
NUMBER[\"-1\"] postfix_expression )
+                        // src/antlr3/Plumhead.g:86:33: ^( MUL_OP[\"n_mul\"] 
NUMBER[\"-1\"] postfix_expression )
                         {
                         CommonTree root_1 = (CommonTree)adaptor.nil();
                         root_1 = 
(CommonTree)adaptor.becomeRoot(adaptor.create(MUL_OP, "n_mul"), root_1);
@@ -833,7 +833,7 @@
     };
 
     // $ANTLR start postfix_expression
-    // src/antlr3/Plumhead.g:87:1: postfix_expression : ( NUMBER | '(' 
expression ')' -> expression );
+    // src/antlr3/Plumhead.g:89:1: postfix_expression : ( NUMBER | '(' 
expression ')' -> expression );
     public postfix_expression_return postfix_expression() throws 
RecognitionException {   
         postfix_expression_return retval = new postfix_expression_return();
         retval.start = input.LT(1);
@@ -853,7 +853,7 @@
         CommonTree char_literal25_tree=null;
 
         try {
-            // src/antlr3/Plumhead.g:88:5: ( NUMBER | '(' expression ')' -> 
expression )
+            // src/antlr3/Plumhead.g:90:5: ( NUMBER | '(' expression ')' -> 
expression )
             int alt7=2;
             int LA7_0 = input.LA(1);
             if ( (LA7_0==NUMBER) ) {
@@ -864,18 +864,18 @@
             }
             else {
                 NoViableAltException nvae =
-                    new NoViableAltException("87:1: postfix_expression : ( 
NUMBER | '(' expression ')' -> expression );", 7, 0, input);
+                    new NoViableAltException("89:1: postfix_expression : ( 
NUMBER | '(' expression ')' -> expression );", 7, 0, input);
 
                 throw nvae;
             }
             switch (alt7) {
                 case 1 :
-                    // src/antlr3/Plumhead.g:88:5: NUMBER
+                    // src/antlr3/Plumhead.g:90:5: NUMBER
                     {
                     root_0 = (CommonTree)adaptor.nil();
 
                     NUMBER22=(Token)input.LT(1);
-                    
match(input,NUMBER,FOLLOW_NUMBER_in_postfix_expression558); 
+                    
match(input,NUMBER,FOLLOW_NUMBER_in_postfix_expression560); 
                     NUMBER22_tree = (CommonTree)adaptor.create(NUMBER22);
                     adaptor.addChild(root_0, NUMBER22_tree);
 
@@ -883,19 +883,19 @@
                     }
                     break;
                 case 2 :
-                    // src/antlr3/Plumhead.g:89:5: '(' expression ')'
+                    // src/antlr3/Plumhead.g:91:5: '(' expression ')'
                     {
                     char_literal23=(Token)input.LT(1);
-                    match(input,18,FOLLOW_18_in_postfix_expression564); 
+                    match(input,18,FOLLOW_18_in_postfix_expression566); 
                     list_18.add(char_literal23);
 
-                    pushFollow(FOLLOW_expression_in_postfix_expression566);
+                    pushFollow(FOLLOW_expression_in_postfix_expression568);
                     expression24=expression();
                     _fsp--;
 
                     list_expression.add(expression24.tree);
                     char_literal25=(Token)input.LT(1);
-                    match(input,19,FOLLOW_19_in_postfix_expression568); 
+                    match(input,19,FOLLOW_19_in_postfix_expression570); 
                     list_19.add(char_literal25);
 
 
@@ -903,7 +903,7 @@
                     int i_0 = 0;
                     retval.tree = root_0;
                     root_0 = (CommonTree)adaptor.nil();
-                    // 89:24: -> expression
+                    // 91:24: -> expression
                     {
                         adaptor.addChild(root_0, list_expression.get(i_0));
 
@@ -934,32 +934,32 @@
 
  
 
-    public static final BitSet FOLLOW_sea_in_program323 = new BitSet(new 
long[]{0x0000000000000040L});
-    public static final BitSet FOLLOW_code_in_program325 = new BitSet(new 
long[]{0x0000000000000020L});
-    public static final BitSet FOLLOW_sea_in_program329 = new BitSet(new 
long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_SEA_in_sea358 = new BitSet(new 
long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_CODE_START_in_code382 = new BitSet(new 
long[]{0x0000000000000400L});
-    public static final BitSet FOLLOW_statements_in_code384 = new BitSet(new 
long[]{0x0000000000000080L});
-    public static final BitSet FOLLOW_CODE_END_in_code386 = new BitSet(new 
long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_statement_in_statements405 = new 
BitSet(new long[]{0x0000000000000402L});
-    public static final BitSet FOLLOW_ECHO_in_statement421 = new BitSet(new 
long[]{0x0000000000043200L});
-    public static final BitSet FOLLOW_expression_in_statement423 = new 
BitSet(new long[]{0x0000000000020000L});
-    public static final BitSet FOLLOW_17_in_statement425 = new BitSet(new 
long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_STRING_in_expression448 = new BitSet(new 
long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_adding_expression_in_expression454 = new 
BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet 
FOLLOW_multiplying_expression_in_adding_expression467 = new BitSet(new 
long[]{0x0000000000006002L});
-    public static final BitSet FOLLOW_PLUS_in_adding_expression473 = new 
BitSet(new long[]{0x0000000000043000L});
-    public static final BitSet FOLLOW_MINUS_in_adding_expression478 = new 
BitSet(new long[]{0x0000000000043000L});
-    public static final BitSet 
FOLLOW_multiplying_expression_in_adding_expression483 = new BitSet(new 
long[]{0x0000000000006002L});
-    public static final BitSet 
FOLLOW_unary_expression_in_multiplying_expression500 = new BitSet(new 
long[]{0x0000000000008002L});
-    public static final BitSet FOLLOW_MUL_OP_in_multiplying_expression504 = 
new BitSet(new long[]{0x0000000000043000L});
-    public static final BitSet 
FOLLOW_unary_expression_in_multiplying_expression507 = new BitSet(new 
long[]{0x0000000000008002L});
-    public static final BitSet 
FOLLOW_postfix_expression_in_unary_expression523 = new BitSet(new 
long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_MINUS_in_unary_expression529 = new 
BitSet(new long[]{0x0000000000041000L});
-    public static final BitSet 
FOLLOW_postfix_expression_in_unary_expression531 = new BitSet(new 
long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_NUMBER_in_postfix_expression558 = new 
BitSet(new long[]{0x0000000000000002L});
-    public static final BitSet FOLLOW_18_in_postfix_expression564 = new 
BitSet(new long[]{0x0000000000043200L});
-    public static final BitSet FOLLOW_expression_in_postfix_expression566 = 
new BitSet(new long[]{0x0000000000080000L});
-    public static final BitSet FOLLOW_19_in_postfix_expression568 = new 
BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_sea_in_program325 = new BitSet(new 
long[]{0x0000000000000040L});
+    public static final BitSet FOLLOW_code_in_program327 = new BitSet(new 
long[]{0x0000000000000020L});
+    public static final BitSet FOLLOW_sea_in_program331 = new BitSet(new 
long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_SEA_in_sea360 = new BitSet(new 
long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_CODE_START_in_code384 = new BitSet(new 
long[]{0x0000000000000400L});
+    public static final BitSet FOLLOW_statements_in_code386 = new BitSet(new 
long[]{0x0000000000000080L});
+    public static final BitSet FOLLOW_CODE_END_in_code388 = new BitSet(new 
long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_statement_in_statements407 = new 
BitSet(new long[]{0x0000000000000402L});
+    public static final BitSet FOLLOW_ECHO_in_statement423 = new BitSet(new 
long[]{0x0000000000043200L});
+    public static final BitSet FOLLOW_expression_in_statement425 = new 
BitSet(new long[]{0x0000000000020000L});
+    public static final BitSet FOLLOW_17_in_statement427 = new BitSet(new 
long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_STRING_in_expression450 = new BitSet(new 
long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_adding_expression_in_expression456 = new 
BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet 
FOLLOW_multiplying_expression_in_adding_expression469 = new BitSet(new 
long[]{0x0000000000006002L});
+    public static final BitSet FOLLOW_PLUS_in_adding_expression475 = new 
BitSet(new long[]{0x0000000000043000L});
+    public static final BitSet FOLLOW_MINUS_in_adding_expression480 = new 
BitSet(new long[]{0x0000000000043000L});
+    public static final BitSet 
FOLLOW_multiplying_expression_in_adding_expression485 = new BitSet(new 
long[]{0x0000000000006002L});
+    public static final BitSet 
FOLLOW_unary_expression_in_multiplying_expression502 = new BitSet(new 
long[]{0x0000000000008002L});
+    public static final BitSet FOLLOW_MUL_OP_in_multiplying_expression506 = 
new BitSet(new long[]{0x0000000000043000L});
+    public static final BitSet 
FOLLOW_unary_expression_in_multiplying_expression509 = new BitSet(new 
long[]{0x0000000000008002L});
+    public static final BitSet 
FOLLOW_postfix_expression_in_unary_expression525 = new BitSet(new 
long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_MINUS_in_unary_expression531 = new 
BitSet(new long[]{0x0000000000041000L});
+    public static final BitSet 
FOLLOW_postfix_expression_in_unary_expression533 = new BitSet(new 
long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_NUMBER_in_postfix_expression560 = new 
BitSet(new long[]{0x0000000000000002L});
+    public static final BitSet FOLLOW_18_in_postfix_expression566 = new 
BitSet(new long[]{0x0000000000043200L});
+    public static final BitSet FOLLOW_expression_in_postfix_expression568 = 
new BitSet(new long[]{0x0000000000080000L});
+    public static final BitSet FOLLOW_19_in_postfix_expression570 = new 
BitSet(new long[]{0x0000000000000002L});
 
 }
\ No newline at end of file

Reply via email to