Author: bernhard
Date: Sat Jan 6 11:08:03 2007
New Revision: 16434
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]
Print the sea surrounding the PHP code island.
Modified: trunk/languages/plumhead/src/antlr3/GenPastPir.g
==============================================================================
--- trunk/languages/plumhead/src/antlr3/GenPastPir.g (original)
+++ trunk/languages/plumhead/src/antlr3/GenPastPir.g Sat Jan 6 11:08:03 2007
@@ -76,7 +76,7 @@
+ "
\n"
);
}
- ^( CODE_START node["past_stmts"]* )
+ ^( PROGRAM node["past_stmts"]* )
{
System.out.println(
"
\n"
@@ -114,6 +114,10 @@
node[String reg_mother]
: ^( ECHO STRING )
{
+ String without_anno = $STRING.text;
+ without_anno = without_anno.replace( "start_sea", "\"" );
+ without_anno = without_anno.replace( "end_sea", "\"" );
+ without_anno = without_anno.replace( "\n", "\\n" );
System.out.println(
" # start of generic node
\n"
+ " .local pmc past_node_id2244476
\n"
@@ -127,10 +131,7 @@
+ " .local pmc past_node_id2244480
\n"
+ " past_node_id2244480 = new 'PAST::Val'
\n"
+ "
\n"
- + " .local string decoded
\n"
- + " decoded = " + $STRING.text + "
\n"
- + " past_node_id2244480.'attr'( 'name', decoded, 1 )
\n"
- + " null decoded
\n"
+ + " past_node_id2244480.'attr'( 'name', " + without_anno + ", 1 )
\n"
+ " past_node_id2244480.'attr'( 'ctype', 's~', 1 )
\n"
+ "
\n"
+ "
\n"
Modified: trunk/languages/plumhead/src/antlr3/GenPastPirTreeParser.java
==============================================================================
--- trunk/languages/plumhead/src/antlr3/GenPastPirTreeParser.java
(original)
+++ trunk/languages/plumhead/src/antlr3/GenPastPirTreeParser.java Sat Jan
6 11:08:03 2007
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 src/antlr3/GenPastPir.g 2007-01-06 17:04:43
+// $ANTLR 3.0b5 src/antlr3/GenPastPir.g 2007-01-06 19:05:11
import java.util.regex.*;
@@ -10,28 +10,29 @@
public class GenPastPirTreeParser extends TreeParser {
public static final String[] tokenNames = new String[] {
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "SEA", "CODE_START",
"CODE_END", "WS", "STRING", "ECHO", "';'", "PRINT", "FUNCTION", "LETTER",
"ASSIGN_OP", "VAR", "NUMBER", "PLUS", "MINUS", "MUL_OP", "REL_OP", "NEWLINE",
"If", "STMTS"
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PROGRAM", "SEA",
"CODE_START", "CODE_END", "WS", "STRING", "ECHO", "';'", "PRINT", "FUNCTION",
"LETTER", "ASSIGN_OP", "VAR", "NUMBER", "PLUS", "MINUS", "MUL_OP", "REL_OP",
"NEWLINE", "If", "STMTS"
};
- public static final int CODE_START=5;
- public static final int LETTER=13;
- public static final int MINUS=18;
- public static final int If=22;
- public static final int WS=7;
- public static final int NUMBER=16;
- public static final int STRING=8;
- public static final int MUL_OP=19;
- public static final int SEA=4;
- public static final int CODE_END=6;
- public static final int STMTS=23;
- public static final int NEWLINE=21;
- public static final int VAR=15;
- public static final int ASSIGN_OP=14;
- public static final int ECHO=9;
- public static final int PRINT=11;
- public static final int FUNCTION=12;
+ public static final int CODE_START=6;
+ public static final int LETTER=14;
+ public static final int MINUS=19;
+ public static final int If=23;
+ public static final int WS=8;
+ public static final int NUMBER=17;
+ public static final int STRING=9;
+ public static final int MUL_OP=20;
+ public static final int SEA=5;
+ public static final int CODE_END=7;
+ public static final int STMTS=24;
+ public static final int PROGRAM=4;
+ public static final int NEWLINE=22;
+ public static final int VAR=16;
+ public static final int ASSIGN_OP=15;
+ public static final int ECHO=10;
+ public static final int PRINT=12;
+ public static final int FUNCTION=13;
public static final int EOF=-1;
- public static final int REL_OP=20;
- public static final int PLUS=17;
+ public static final int REL_OP=21;
+ public static final int PLUS=18;
public GenPastPirTreeParser(TreeNodeStream input) {
super(input);
@@ -48,11 +49,11 @@
// $ANTLR start gen_pir_past
- // src/antlr3/GenPastPir.g:28:1: gen_pir_past : ^( CODE_START (
node["past_stmts"] )* ) ;
+ // src/antlr3/GenPastPir.g:28:1: gen_pir_past : ^( PROGRAM (
node["past_stmts"] )* ) ;
public void gen_pir_past() throws RecognitionException {
try {
- // src/antlr3/GenPastPir.g:29:5: ( ^( CODE_START (
node[\"past_stmts\"] )* ) )
- // src/antlr3/GenPastPir.g:29:5: ^( CODE_START (
node[\"past_stmts\"] )* )
+ // src/antlr3/GenPastPir.g:29:5: ( ^( PROGRAM (
node[\"past_stmts\"] )* ) )
+ // src/antlr3/GenPastPir.g:29:5: ^( PROGRAM ( node[\"past_stmts\"]
)* )
{
System.out.println(
@@ -104,11 +105,11 @@
+ "
\n"
);
- match(input,CODE_START,FOLLOW_CODE_START_in_gen_pir_past75);
+ match(input,PROGRAM,FOLLOW_PROGRAM_in_gen_pir_past75);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
- // src/antlr3/GenPastPir.g:79:19: ( node[\"past_stmts\"] )*
+ // src/antlr3/GenPastPir.g:79:16: ( node[\"past_stmts\"] )*
loop1:
do {
int alt1=2;
@@ -120,7 +121,7 @@
switch (alt1) {
case 1 :
- // src/antlr3/GenPastPir.g:79:19:
node[\"past_stmts\"]
+ // src/antlr3/GenPastPir.g:79:16:
node[\"past_stmts\"]
{
pushFollow(FOLLOW_node_in_gen_pir_past77);
node("past_stmts");
@@ -254,6 +255,10 @@
match(input, Token.UP, null);
+ String without_anno = STRING1.getText();
+ without_anno = without_anno.replace( "start_sea",
"\"" );
+ without_anno = without_anno.replace( "end_sea", "\""
);
+ without_anno = without_anno.replace( "\n", "\\n" );
System.out.println(
" # start of generic node
\n"
+ " .local pmc past_node_id2244476
\n"
@@ -267,10 +272,7 @@
+ " .local pmc past_node_id2244480
\n"
+ " past_node_id2244480 = new 'PAST::Val'
\n"
+ "
\n"
- + " .local string decoded
\n"
- + " decoded = " + STRING1.getText() + "
\n"
- + " past_node_id2244480.'attr'( 'name',
decoded, 1 ) \n"
- + " null decoded
\n"
+ + " past_node_id2244480.'attr'( 'name', " +
without_anno + ", 1 ) \n"
+ " past_node_id2244480.'attr'( 'ctype', 's~', 1
) \n"
+ "
\n"
+ "
\n"
@@ -292,7 +294,7 @@
}
break;
case 2 :
- // src/antlr3/GenPastPir.g:151:5: ^( PRINT
node[\"reg_expression_exp\"] )
+ // src/antlr3/GenPastPir.g:152:5: ^( PRINT
node[\"reg_expression_exp\"] )
{
match(input,PRINT,FOLLOW_PRINT_in_node121);
@@ -317,7 +319,7 @@
}
break;
case 3 :
- // src/antlr3/GenPastPir.g:162:5: ^( FUNCTION LETTER )
+ // src/antlr3/GenPastPir.g:163:5: ^( FUNCTION LETTER )
{
match(input,FUNCTION,FOLLOW_FUNCTION_in_node140);
@@ -332,7 +334,7 @@
}
break;
case 4 :
- // src/antlr3/GenPastPir.g:166:5: ^( ASSIGN_OP ^( VAR
LETTER ) node[\"reg_assign_lhs\"] )
+ // src/antlr3/GenPastPir.g:167:5: ^( ASSIGN_OP ^( VAR
LETTER ) node[\"reg_assign_lhs\"] )
{
System.out.print(
@@ -380,7 +382,7 @@
}
break;
case 5 :
- // src/antlr3/GenPastPir.g:193:5: NUMBER
+ // src/antlr3/GenPastPir.g:194:5: NUMBER
{
NUMBER3=(CommonTree)input.LT(1);
match(input,NUMBER,FOLLOW_NUMBER_in_node187);
@@ -400,7 +402,7 @@
}
break;
case 6 :
- // src/antlr3/GenPastPir.g:206:5: ^(infix=
(PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] )
+ // src/antlr3/GenPastPir.g:207:5: ^(infix=
(PLUS|MINUS|MUL_OP|REL_OP) node[reg] node[reg] )
{
reg_num++;
@@ -450,7 +452,7 @@
}
break;
case 7 :
- // src/antlr3/GenPastPir.g:228:5: ^( VAR LETTER )
+ // src/antlr3/GenPastPir.g:229:5: ^( VAR LETTER )
{
match(input,VAR,FOLLOW_VAR_in_node247);
@@ -476,7 +478,7 @@
}
break;
case 8 :
- // src/antlr3/GenPastPir.g:242:5: NEWLINE
+ // src/antlr3/GenPastPir.g:243:5: NEWLINE
{
match(input,NEWLINE,FOLLOW_NEWLINE_in_node263);
@@ -495,7 +497,7 @@
}
break;
case 9 :
- // src/antlr3/GenPastPir.g:255:5: STRING
+ // src/antlr3/GenPastPir.g:256:5: STRING
{
STRING5=(CommonTree)input.LT(1);
match(input,STRING,FOLLOW_STRING_in_node275);
@@ -518,7 +520,7 @@
}
break;
case 10 :
- // src/antlr3/GenPastPir.g:271:5: ^( If
node[\"reg_if_op\"] node[\"reg_if_op\"] )
+ // src/antlr3/GenPastPir.g:272:5: ^( If
node[\"reg_if_op\"] node[\"reg_if_op\"] )
{
reg_num++;
@@ -557,7 +559,7 @@
}
break;
case 11 :
- // src/antlr3/GenPastPir.g:292:5: ^( STMTS (
node[reg_stmts] )* )
+ // src/antlr3/GenPastPir.g:293:5: ^( STMTS (
node[reg_stmts] )* )
{
reg_num++;
@@ -571,7 +573,7 @@
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
- // src/antlr3/GenPastPir.g:300:14: ( node[reg_stmts] )*
+ // src/antlr3/GenPastPir.g:301:14: ( node[reg_stmts] )*
loop2:
do {
int alt2=2;
@@ -583,7 +585,7 @@
switch (alt2) {
case 1 :
- // src/antlr3/GenPastPir.g:300:14:
node[reg_stmts]
+ // src/antlr3/GenPastPir.g:301:14:
node[reg_stmts]
{
pushFollow(FOLLOW_node_in_node325);
node(reg_stmts);
@@ -627,8 +629,8 @@
- public static final BitSet FOLLOW_CODE_START_in_gen_pir_past75 = new
BitSet(new long[]{0x0000000000000004L});
- public static final BitSet FOLLOW_node_in_gen_pir_past77 = new BitSet(new
long[]{0x0000000000FFDB08L});
+ 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[]{0x0000000001FFB608L});
public static final BitSet FOLLOW_ECHO_in_node103 = new BitSet(new
long[]{0x0000000000000004L});
public static final BitSet FOLLOW_STRING_in_node105 = new BitSet(new
long[]{0x0000000000000008L});
public static final BitSet FOLLOW_PRINT_in_node121 = new BitSet(new
long[]{0x0000000000000004L});
@@ -641,16 +643,16 @@
public static final BitSet FOLLOW_node_in_node172 = new BitSet(new
long[]{0x0000000000000008L});
public static final BitSet FOLLOW_NUMBER_in_node187 = new BitSet(new
long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_node211 = new BitSet(new
long[]{0x0000000000000004L});
- public static final BitSet FOLLOW_node_in_node227 = new BitSet(new
long[]{0x0000000000FFDB00L});
+ public static final BitSet FOLLOW_node_in_node227 = new BitSet(new
long[]{0x0000000001FFB600L});
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_NEWLINE_in_node263 = new BitSet(new
long[]{0x0000000000000002L});
public static final BitSet FOLLOW_STRING_in_node275 = new BitSet(new
long[]{0x0000000000000002L});
public static final BitSet FOLLOW_If_in_node295 = new BitSet(new
long[]{0x0000000000000004L});
- public static final BitSet FOLLOW_node_in_node297 = new BitSet(new
long[]{0x0000000000FFDB00L});
+ public static final BitSet FOLLOW_node_in_node297 = new BitSet(new
long[]{0x0000000001FFB600L});
public static final BitSet FOLLOW_node_in_node300 = new BitSet(new
long[]{0x0000000000000008L});
public static final BitSet FOLLOW_STMTS_in_node323 = new BitSet(new
long[]{0x0000000000000004L});
- public static final BitSet FOLLOW_node_in_node325 = new BitSet(new
long[]{0x0000000000FFDB08L});
+ public static final BitSet FOLLOW_node_in_node325 = new BitSet(new
long[]{0x0000000001FFB608L});
}
\ 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 Sat Jan 6 11:08:03 2007
@@ -13,6 +13,10 @@
ASTLabelType = CommonTree;
}
+tokens
+{
+ PROGRAM;
+}
// virtual tokens
// real tokens
@@ -24,15 +28,15 @@
ECHO : 'echo' ;
program
- : sea code sea WS? -> code
+ : s1=sea code s2=sea WS? -> ^( PROGRAM $s1 code $s2 )
;
sea
- : SEA
+ : SEA -> ^( ECHO STRING[$SEA] )
;
code
- : CODE_START statements WS? CODE_END -> ^( CODE_START statements )
+ : CODE_START statements WS? CODE_END WS? -> statements
;
statements
Modified: trunk/languages/plumhead/src/antlr3/PlumheadLexer.java
==============================================================================
--- trunk/languages/plumhead/src/antlr3/PlumheadLexer.java (original)
+++ trunk/languages/plumhead/src/antlr3/PlumheadLexer.java Sat Jan 6
11:08:03 2007
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-06 17:04:42
+// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-06 19:05:09
import org.antlr.runtime.*;
import java.util.Stack;
@@ -6,26 +6,27 @@
import java.util.ArrayList;
public class PlumheadLexer extends Lexer {
- public static final int T10=10;
- public static final int CODE_START=5;
- public static final int ECHO=9;
+ public static final int CODE_START=6;
+ public static final int ECHO=10;
+ public static final int T11=11;
public static final int EOF=-1;
- public static final int WS=7;
- public static final int STRING=8;
- public static final int Tokens=11;
- public static final int SEA=4;
- public static final int CODE_END=6;
+ public static final int WS=8;
+ public static final int STRING=9;
+ public static final int Tokens=12;
+ public static final int SEA=5;
+ public static final int CODE_END=7;
+ public static final int PROGRAM=4;
public PlumheadLexer() {;}
public PlumheadLexer(CharStream input) {
super(input);
}
public String getGrammarFileName() { return "src/antlr3/Plumhead.g"; }
- // $ANTLR start T10
- public void mT10() throws RecognitionException {
+ // $ANTLR start T11
+ public void mT11() throws RecognitionException {
try {
ruleNestingLevel++;
- int _type = T10;
+ int _type = T11;
int _start = getCharIndex();
int _line = getLine();
int _charPosition = getCharPositionInLine();
@@ -48,7 +49,7 @@
ruleNestingLevel--;
}
}
- // $ANTLR end T10
+ // $ANTLR end T11
// $ANTLR start SEA
public void mSEA() throws RecognitionException {
@@ -59,12 +60,12 @@
int _line = getLine();
int _charPosition = getCharPositionInLine();
int _channel = Token.DEFAULT_CHANNEL;
- // src/antlr3/Plumhead.g:19:14: ( 'start_sea' ( options
{greedy=false; } : . )* 'end_sea' )
- // src/antlr3/Plumhead.g:19:14: 'start_sea' ( options
{greedy=false; } : . )* 'end_sea'
+ // src/antlr3/Plumhead.g:23:14: ( 'start_sea' ( options
{greedy=false; } : . )* 'end_sea' )
+ // src/antlr3/Plumhead.g:23:14: 'start_sea' ( options
{greedy=false; } : . )* 'end_sea'
{
match("start_sea");
- // src/antlr3/Plumhead.g:19:26: ( options {greedy=false; } : . )*
+ // src/antlr3/Plumhead.g:23:26: ( options {greedy=false; } : . )*
loop1:
do {
int alt1=2;
@@ -127,7 +128,7 @@
switch (alt1) {
case 1 :
- // src/antlr3/Plumhead.g:19:54: .
+ // src/antlr3/Plumhead.g:23:54: .
{
matchAny();
@@ -166,8 +167,8 @@
int _line = getLine();
int _charPosition = getCharPositionInLine();
int _channel = Token.DEFAULT_CHANNEL;
- // src/antlr3/Plumhead.g:20:14: ( '<?php' )
- // src/antlr3/Plumhead.g:20:14: '<?php'
+ // src/antlr3/Plumhead.g:24:14: ( '<?php' )
+ // src/antlr3/Plumhead.g:24:14: '<?php'
{
match("<?php");
@@ -196,8 +197,8 @@
int _line = getLine();
int _charPosition = getCharPositionInLine();
int _channel = Token.DEFAULT_CHANNEL;
- // src/antlr3/Plumhead.g:21:14: ( '?>' )
- // src/antlr3/Plumhead.g:21:14: '?>'
+ // src/antlr3/Plumhead.g:25:14: ( '?>' )
+ // src/antlr3/Plumhead.g:25:14: '?>'
{
match("?>");
@@ -226,10 +227,10 @@
int _line = getLine();
int _charPosition = getCharPositionInLine();
int _channel = Token.DEFAULT_CHANNEL;
- // src/antlr3/Plumhead.g:22:14: ( ( (' '|'\\t'|'\\r'|'\\n'))+ )
- // src/antlr3/Plumhead.g:22:14: ( (' '|'\\t'|'\\r'|'\\n'))+
+ // src/antlr3/Plumhead.g:26:14: ( ( (' '|'\\t'|'\\r'|'\\n'))+ )
+ // src/antlr3/Plumhead.g:26:14: ( (' '|'\\t'|'\\r'|'\\n'))+
{
- // src/antlr3/Plumhead.g:22:14: ( (' '|'\\t'|'\\r'|'\\n'))+
+ // src/antlr3/Plumhead.g:26:14: ( (' '|'\\t'|'\\r'|'\\n'))+
int cnt2=0;
loop2:
do {
@@ -242,7 +243,7 @@
switch (alt2) {
case 1 :
- // src/antlr3/Plumhead.g:22:16: (' '|'\\t'|'\\r'|'\\n')
+ // src/antlr3/Plumhead.g:26:16: (' '|'\\t'|'\\r'|'\\n')
{
if ( (input.LA(1)>='\t' &&
input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
input.consume();
@@ -292,11 +293,11 @@
int _line = getLine();
int _charPosition = getCharPositionInLine();
int _channel = Token.DEFAULT_CHANNEL;
- // src/antlr3/Plumhead.g:23:14: ( '\\\"' (~ '\\\"' )* '\\\"' )
- // src/antlr3/Plumhead.g:23:14: '\\\"' (~ '\\\"' )* '\\\"'
+ // src/antlr3/Plumhead.g:27:14: ( '\\\"' (~ '\\\"' )* '\\\"' )
+ // src/antlr3/Plumhead.g:27:14: '\\\"' (~ '\\\"' )* '\\\"'
{
match('\"');
- // src/antlr3/Plumhead.g:23:19: (~ '\\\"' )*
+ // src/antlr3/Plumhead.g:27:19: (~ '\\\"' )*
loop3:
do {
int alt3=2;
@@ -308,7 +309,7 @@
switch (alt3) {
case 1 :
- // src/antlr3/Plumhead.g:23:21: ~ '\\\"'
+ // src/antlr3/Plumhead.g:27:21: ~ '\\\"'
{
if ( (input.LA(1)>='\u0000' &&
input.LA(1)<='!')||(input.LA(1)>='#' && input.LA(1)<='\uFFFE') ) {
input.consume();
@@ -355,8 +356,8 @@
int _line = getLine();
int _charPosition = getCharPositionInLine();
int _channel = Token.DEFAULT_CHANNEL;
- // src/antlr3/Plumhead.g:24:14: ( 'echo' )
- // src/antlr3/Plumhead.g:24:14: 'echo'
+ // src/antlr3/Plumhead.g:28:14: ( 'echo' )
+ // src/antlr3/Plumhead.g:28:14: 'echo'
{
match("echo");
@@ -377,7 +378,7 @@
// $ANTLR end ECHO
public void mTokens() throws RecognitionException {
- // src/antlr3/Plumhead.g:1:10: ( T10 | SEA | CODE_START | CODE_END |
WS | STRING | ECHO )
+ // src/antlr3/Plumhead.g:1:10: ( T11 | SEA | CODE_START | CODE_END |
WS | STRING | ECHO )
int alt4=7;
switch ( input.LA(1) ) {
case ';':
@@ -406,16 +407,16 @@
break;
default:
NoViableAltException nvae =
- new NoViableAltException("1:1: Tokens : ( T10 | SEA |
CODE_START | CODE_END | WS | STRING | ECHO );", 4, 0, input);
+ new NoViableAltException("1:1: Tokens : ( T11 | SEA |
CODE_START | CODE_END | WS | STRING | ECHO );", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
- // src/antlr3/Plumhead.g:1:10: T10
+ // src/antlr3/Plumhead.g:1:10: T11
{
- mT10();
+ mT11();
}
break;
Modified: trunk/languages/plumhead/src/antlr3/PlumheadParser.java
==============================================================================
--- trunk/languages/plumhead/src/antlr3/PlumheadParser.java (original)
+++ trunk/languages/plumhead/src/antlr3/PlumheadParser.java Sat Jan 6
11:08:03 2007
@@ -1,4 +1,4 @@
-// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-06 17:04:42
+// $ANTLR 3.0b5 src/antlr3/Plumhead.g 2007-01-06 19:05:09
import org.antlr.runtime.*;
import java.util.Stack;
@@ -10,15 +10,16 @@
public class PlumheadParser extends Parser {
public static final String[] tokenNames = new String[] {
- "<invalid>", "<EOR>", "<DOWN>", "<UP>", "SEA", "CODE_START",
"CODE_END", "WS", "STRING", "ECHO", "';'"
+ "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PROGRAM", "SEA",
"CODE_START", "CODE_END", "WS", "STRING", "ECHO", "';'"
};
- public static final int CODE_START=5;
- public static final int ECHO=9;
+ public static final int CODE_START=6;
+ public static final int ECHO=10;
+ public static final int WS=8;
public static final int EOF=-1;
- public static final int WS=7;
- public static final int STRING=8;
- public static final int SEA=4;
- public static final int CODE_END=6;
+ public static final int STRING=9;
+ public static final int SEA=5;
+ public static final int CODE_END=7;
+ public static final int PROGRAM=4;
public PlumheadParser(TokenStream input) {
super(input);
@@ -43,45 +44,45 @@
};
// $ANTLR start program
- // src/antlr3/Plumhead.g:26:1: program : sea code sea ( WS )? -> code ;
+ // src/antlr3/Plumhead.g:30:1: program : s1= sea code s2= sea ( WS )? ->
^( PROGRAM $s1 code $s2) ;
public program_return program() throws RecognitionException {
program_return retval = new program_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
- Token WS4=null;
- sea_return sea1 = null;
+ Token WS2=null;
+ sea_return s1 = null;
- code_return code2 = null;
+ sea_return s2 = null;
- sea_return sea3 = null;
+ code_return code1 = null;
List list_code=new ArrayList();
List list_sea=new ArrayList();
List list_WS=new ArrayList();
- CommonTree WS4_tree=null;
+ CommonTree WS2_tree=null;
try {
- // src/antlr3/Plumhead.g:27:5: ( sea code sea ( WS )? -> code )
- // src/antlr3/Plumhead.g:27:5: sea code sea ( WS )?
+ // src/antlr3/Plumhead.g:31:5: (s1= sea code s2= sea ( WS )? -> ^(
PROGRAM $s1 code $s2) )
+ // src/antlr3/Plumhead.g:31:5: s1= sea code s2= sea ( WS )?
{
- pushFollow(FOLLOW_sea_in_program179);
- sea1=sea();
+ pushFollow(FOLLOW_sea_in_program190);
+ s1=sea();
_fsp--;
- list_sea.add(sea1.tree);
- pushFollow(FOLLOW_code_in_program181);
- code2=code();
+ list_sea.add(s1.tree);
+ pushFollow(FOLLOW_code_in_program192);
+ code1=code();
_fsp--;
- list_code.add(code2.tree);
- pushFollow(FOLLOW_sea_in_program183);
- sea3=sea();
+ list_code.add(code1.tree);
+ pushFollow(FOLLOW_sea_in_program196);
+ s2=sea();
_fsp--;
- list_sea.add(sea3.tree);
- // src/antlr3/Plumhead.g:27:18: ( WS )?
+ list_sea.add(s2.tree);
+ // src/antlr3/Plumhead.g:31:24: ( WS )?
int alt1=2;
int LA1_0 = input.LA(1);
if ( (LA1_0==WS) ) {
@@ -89,11 +90,11 @@
}
switch (alt1) {
case 1 :
- // src/antlr3/Plumhead.g:27:18: WS
+ // src/antlr3/Plumhead.g:31:24: WS
{
- WS4=(Token)input.LT(1);
- match(input,WS,FOLLOW_WS_in_program185);
- list_WS.add(WS4);
+ WS2=(Token)input.LT(1);
+ match(input,WS,FOLLOW_WS_in_program198);
+ list_WS.add(WS2);
}
@@ -106,9 +107,19 @@
int i_0 = 0;
retval.tree = root_0;
root_0 = (CommonTree)adaptor.nil();
- // 27:22: -> code
+ // 31:28: -> ^( PROGRAM $s1 code $s2)
{
- adaptor.addChild(root_0, list_code.get(i_0));
+ // src/antlr3/Plumhead.g:31:31: ^( PROGRAM $s1 code $s2)
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 =
(CommonTree)adaptor.becomeRoot(adaptor.create(PROGRAM, "PROGRAM"), root_1);
+
+ adaptor.addChild(root_1, s1.tree);
+ adaptor.addChild(root_1, list_code.get(i_0));
+ adaptor.addChild(root_1, s2.tree);
+
+ adaptor.addChild(root_0, root_1);
+ }
}
@@ -138,27 +149,44 @@
};
// $ANTLR start sea
- // src/antlr3/Plumhead.g:30:1: sea : SEA ;
+ // src/antlr3/Plumhead.g:34:1: sea : SEA -> ^( ECHO STRING[$SEA] ) ;
public sea_return sea() throws RecognitionException {
sea_return retval = new sea_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
- Token SEA5=null;
-
- CommonTree SEA5_tree=null;
+ Token SEA3=null;
+ List list_SEA=new ArrayList();
+ CommonTree SEA3_tree=null;
try {
- // src/antlr3/Plumhead.g:31:5: ( SEA )
- // src/antlr3/Plumhead.g:31:5: SEA
+ // src/antlr3/Plumhead.g:35:5: ( SEA -> ^( ECHO STRING[$SEA] ) )
+ // src/antlr3/Plumhead.g:35:5: SEA
{
+ SEA3=(Token)input.LT(1);
+ match(input,SEA,FOLLOW_SEA_in_sea228);
+ list_SEA.add(SEA3);
+
+
+ // AST REWRITE
+ int i_0 = 0;
+ retval.tree = root_0;
root_0 = (CommonTree)adaptor.nil();
+ // 35:9: -> ^( ECHO STRING[$SEA] )
+ {
+ // src/antlr3/Plumhead.g:35:12: ^( ECHO STRING[$SEA] )
+ {
+ CommonTree root_1 = (CommonTree)adaptor.nil();
+ root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(ECHO,
"ECHO"), root_1);
+
+ adaptor.addChild(root_1, adaptor.create(STRING, SEA3));
+
+ adaptor.addChild(root_0, root_1);
+ }
+
+ }
- SEA5=(Token)input.LT(1);
- match(input,SEA,FOLLOW_SEA_in_sea203);
- SEA5_tree = (CommonTree)adaptor.create(SEA5);
- adaptor.addChild(root_0, SEA5_tree);
}
@@ -185,40 +213,42 @@
};
// $ANTLR start code
- // src/antlr3/Plumhead.g:34:1: code : CODE_START statements ( WS )?
CODE_END -> ^( CODE_START statements ) ;
+ // src/antlr3/Plumhead.g:38:1: code : CODE_START statements ( WS )?
CODE_END ( WS )? -> statements ;
public code_return code() throws RecognitionException {
code_return retval = new code_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
- Token CODE_START6=null;
+ Token CODE_START4=null;
+ Token WS6=null;
+ Token CODE_END7=null;
Token WS8=null;
- Token CODE_END9=null;
- statements_return statements7 = null;
+ statements_return statements5 = null;
List list_statements=new ArrayList();
List list_CODE_START=new ArrayList();
List list_WS=new ArrayList();
List list_CODE_END=new ArrayList();
- CommonTree CODE_START6_tree=null;
+ CommonTree CODE_START4_tree=null;
+ CommonTree WS6_tree=null;
+ CommonTree CODE_END7_tree=null;
CommonTree WS8_tree=null;
- CommonTree CODE_END9_tree=null;
try {
- // src/antlr3/Plumhead.g:35:5: ( CODE_START statements ( WS )?
CODE_END -> ^( CODE_START statements ) )
- // src/antlr3/Plumhead.g:35:5: CODE_START statements ( WS )?
CODE_END
+ // src/antlr3/Plumhead.g:39:5: ( CODE_START statements ( WS )?
CODE_END ( WS )? -> statements )
+ // src/antlr3/Plumhead.g:39:5: CODE_START statements ( WS )?
CODE_END ( WS )?
{
- CODE_START6=(Token)input.LT(1);
- match(input,CODE_START,FOLLOW_CODE_START_in_code216);
- list_CODE_START.add(CODE_START6);
+ CODE_START4=(Token)input.LT(1);
+ match(input,CODE_START,FOLLOW_CODE_START_in_code252);
+ list_CODE_START.add(CODE_START4);
- pushFollow(FOLLOW_statements_in_code218);
- statements7=statements();
+ pushFollow(FOLLOW_statements_in_code254);
+ statements5=statements();
_fsp--;
- list_statements.add(statements7.tree);
- // src/antlr3/Plumhead.g:35:27: ( WS )?
+ list_statements.add(statements5.tree);
+ // src/antlr3/Plumhead.g:39:27: ( WS )?
int alt2=2;
int LA2_0 = input.LA(1);
if ( (LA2_0==WS) ) {
@@ -226,10 +256,34 @@
}
switch (alt2) {
case 1 :
- // src/antlr3/Plumhead.g:35:27: WS
+ // src/antlr3/Plumhead.g:39:27: WS
+ {
+ WS6=(Token)input.LT(1);
+ match(input,WS,FOLLOW_WS_in_code256);
+ list_WS.add(WS6);
+
+
+ }
+ break;
+
+ }
+
+ CODE_END7=(Token)input.LT(1);
+ match(input,CODE_END,FOLLOW_CODE_END_in_code259);
+ list_CODE_END.add(CODE_END7);
+
+ // src/antlr3/Plumhead.g:39:40: ( WS )?
+ int alt3=2;
+ int LA3_0 = input.LA(1);
+ if ( (LA3_0==WS) ) {
+ alt3=1;
+ }
+ switch (alt3) {
+ case 1 :
+ // src/antlr3/Plumhead.g:39:40: WS
{
WS8=(Token)input.LT(1);
- match(input,WS,FOLLOW_WS_in_code220);
+ match(input,WS,FOLLOW_WS_in_code261);
list_WS.add(WS8);
@@ -238,26 +292,14 @@
}
- CODE_END9=(Token)input.LT(1);
- match(input,CODE_END,FOLLOW_CODE_END_in_code223);
- list_CODE_END.add(CODE_END9);
-
// AST REWRITE
int i_0 = 0;
retval.tree = root_0;
root_0 = (CommonTree)adaptor.nil();
- // 35:40: -> ^( CODE_START statements )
+ // 39:44: -> statements
{
- // src/antlr3/Plumhead.g:35:43: ^( CODE_START statements )
- {
- CommonTree root_1 = (CommonTree)adaptor.nil();
- root_1 =
(CommonTree)adaptor.becomeRoot((Token)list_CODE_START.get(i_0), root_1);
-
- adaptor.addChild(root_1, list_statements.get(i_0));
-
- adaptor.addChild(root_0, root_1);
- }
+ adaptor.addChild(root_0, list_statements.get(i_0));
}
@@ -287,53 +329,53 @@
};
// $ANTLR start statements
- // src/antlr3/Plumhead.g:38:1: statements : ( statement )+ ;
+ // src/antlr3/Plumhead.g:42:1: statements : ( statement )+ ;
public statements_return statements() throws RecognitionException {
statements_return retval = new statements_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
- statement_return statement10 = null;
+ statement_return statement9 = null;
try {
- // src/antlr3/Plumhead.g:39:5: ( ( statement )+ )
- // src/antlr3/Plumhead.g:39:5: ( statement )+
+ // src/antlr3/Plumhead.g:43:5: ( ( statement )+ )
+ // src/antlr3/Plumhead.g:43:5: ( statement )+
{
root_0 = (CommonTree)adaptor.nil();
- // src/antlr3/Plumhead.g:39:5: ( statement )+
- int cnt3=0;
- loop3:
+ // src/antlr3/Plumhead.g:43:5: ( statement )+
+ int cnt4=0;
+ loop4:
do {
- int alt3=2;
- int LA3_0 = input.LA(1);
- if ( (LA3_0==WS) ) {
- int LA3_1 = input.LA(2);
- if ( (LA3_1==ECHO) ) {
- alt3=1;
+ int alt4=2;
+ int LA4_0 = input.LA(1);
+ if ( (LA4_0==WS) ) {
+ int LA4_1 = input.LA(2);
+ if ( (LA4_1==ECHO) ) {
+ alt4=1;
}
}
- else if ( (LA3_0==ECHO) ) {
- alt3=1;
+ else if ( (LA4_0==ECHO) ) {
+ alt4=1;
}
- switch (alt3) {
+ switch (alt4) {
case 1 :
- // src/antlr3/Plumhead.g:39:7: statement
+ // src/antlr3/Plumhead.g:43:7: statement
{
CommonTree root_1 = (CommonTree)adaptor.nil();
- pushFollow(FOLLOW_statement_in_statements248);
- statement10=statement();
+ pushFollow(FOLLOW_statement_in_statements281);
+ statement9=statement();
_fsp--;
- adaptor.addChild(root_1, statement10.tree);
+ adaptor.addChild(root_1, statement9.tree);
adaptor.addChild(root_0, root_1);
@@ -341,12 +383,12 @@
break;
default :
- if ( cnt3 >= 1 ) break loop3;
+ if ( cnt4 >= 1 ) break loop4;
EarlyExitException eee =
- new EarlyExitException(3, input);
+ new EarlyExitException(4, input);
throw eee;
}
- cnt3++;
+ cnt4++;
} while (true);
@@ -374,59 +416,35 @@
};
// $ANTLR start statement
- // src/antlr3/Plumhead.g:42:1: statement : ( WS )? ECHO ( WS )? STRING (
WS )? ';' -> ^( ECHO STRING ) ;
+ // src/antlr3/Plumhead.g:46:1: statement : ( WS )? ECHO ( WS )? STRING (
WS )? ';' -> ^( ECHO STRING ) ;
public statement_return statement() throws RecognitionException {
statement_return retval = new statement_return();
retval.start = input.LT(1);
CommonTree root_0 = null;
- Token WS11=null;
- Token ECHO12=null;
- Token WS13=null;
- Token STRING14=null;
- Token WS15=null;
- Token char_literal16=null;
- List list_10=new ArrayList();
+ Token WS10=null;
+ Token ECHO11=null;
+ Token WS12=null;
+ Token STRING13=null;
+ Token WS14=null;
+ Token char_literal15=null;
List list_ECHO=new ArrayList();
+ List list_11=new ArrayList();
List list_WS=new ArrayList();
List list_STRING=new ArrayList();
- CommonTree WS11_tree=null;
- CommonTree ECHO12_tree=null;
- CommonTree WS13_tree=null;
- CommonTree STRING14_tree=null;
- CommonTree WS15_tree=null;
- CommonTree char_literal16_tree=null;
+ CommonTree WS10_tree=null;
+ CommonTree ECHO11_tree=null;
+ CommonTree WS12_tree=null;
+ CommonTree STRING13_tree=null;
+ CommonTree WS14_tree=null;
+ CommonTree char_literal15_tree=null;
try {
- // src/antlr3/Plumhead.g:43:5: ( ( WS )? ECHO ( WS )? STRING ( WS
)? ';' -> ^( ECHO STRING ) )
- // src/antlr3/Plumhead.g:43:5: ( WS )? ECHO ( WS )? STRING ( WS )?
';'
+ // src/antlr3/Plumhead.g:47:5: ( ( WS )? ECHO ( WS )? STRING ( WS
)? ';' -> ^( ECHO STRING ) )
+ // src/antlr3/Plumhead.g:47:5: ( WS )? ECHO ( WS )? STRING ( WS )?
';'
{
- // src/antlr3/Plumhead.g:43:5: ( WS )?
- int alt4=2;
- int LA4_0 = input.LA(1);
- if ( (LA4_0==WS) ) {
- alt4=1;
- }
- switch (alt4) {
- case 1 :
- // src/antlr3/Plumhead.g:43:5: WS
- {
- WS11=(Token)input.LT(1);
- match(input,WS,FOLLOW_WS_in_statement264);
- list_WS.add(WS11);
-
-
- }
- break;
-
- }
-
- ECHO12=(Token)input.LT(1);
- match(input,ECHO,FOLLOW_ECHO_in_statement267);
- list_ECHO.add(ECHO12);
-
- // src/antlr3/Plumhead.g:43:14: ( WS )?
+ // src/antlr3/Plumhead.g:47:5: ( WS )?
int alt5=2;
int LA5_0 = input.LA(1);
if ( (LA5_0==WS) ) {
@@ -434,11 +452,11 @@
}
switch (alt5) {
case 1 :
- // src/antlr3/Plumhead.g:43:14: WS
+ // src/antlr3/Plumhead.g:47:5: WS
{
- WS13=(Token)input.LT(1);
- match(input,WS,FOLLOW_WS_in_statement269);
- list_WS.add(WS13);
+ WS10=(Token)input.LT(1);
+ match(input,WS,FOLLOW_WS_in_statement297);
+ list_WS.add(WS10);
}
@@ -446,11 +464,11 @@
}
- STRING14=(Token)input.LT(1);
- match(input,STRING,FOLLOW_STRING_in_statement272);
- list_STRING.add(STRING14);
+ ECHO11=(Token)input.LT(1);
+ match(input,ECHO,FOLLOW_ECHO_in_statement300);
+ list_ECHO.add(ECHO11);
- // src/antlr3/Plumhead.g:43:25: ( WS )?
+ // src/antlr3/Plumhead.g:47:14: ( WS )?
int alt6=2;
int LA6_0 = input.LA(1);
if ( (LA6_0==WS) ) {
@@ -458,11 +476,35 @@
}
switch (alt6) {
case 1 :
- // src/antlr3/Plumhead.g:43:25: WS
+ // src/antlr3/Plumhead.g:47:14: WS
+ {
+ WS12=(Token)input.LT(1);
+ match(input,WS,FOLLOW_WS_in_statement302);
+ list_WS.add(WS12);
+
+
+ }
+ break;
+
+ }
+
+ STRING13=(Token)input.LT(1);
+ match(input,STRING,FOLLOW_STRING_in_statement305);
+ list_STRING.add(STRING13);
+
+ // src/antlr3/Plumhead.g:47:25: ( WS )?
+ int alt7=2;
+ int LA7_0 = input.LA(1);
+ if ( (LA7_0==WS) ) {
+ alt7=1;
+ }
+ switch (alt7) {
+ case 1 :
+ // src/antlr3/Plumhead.g:47:25: WS
{
- WS15=(Token)input.LT(1);
- match(input,WS,FOLLOW_WS_in_statement274);
- list_WS.add(WS15);
+ WS14=(Token)input.LT(1);
+ match(input,WS,FOLLOW_WS_in_statement307);
+ list_WS.add(WS14);
}
@@ -470,18 +512,18 @@
}
- char_literal16=(Token)input.LT(1);
- match(input,10,FOLLOW_10_in_statement277);
- list_10.add(char_literal16);
+ char_literal15=(Token)input.LT(1);
+ match(input,11,FOLLOW_11_in_statement310);
+ list_11.add(char_literal15);
// AST REWRITE
int i_0 = 0;
retval.tree = root_0;
root_0 = (CommonTree)adaptor.nil();
- // 43:33: -> ^( ECHO STRING )
+ // 47:33: -> ^( ECHO STRING )
{
- // src/antlr3/Plumhead.g:43:36: ^( ECHO STRING )
+ // src/antlr3/Plumhead.g:47:36: ^( ECHO STRING )
{
CommonTree root_1 = (CommonTree)adaptor.nil();
root_1 =
(CommonTree)adaptor.becomeRoot((Token)list_ECHO.get(i_0), root_1);
@@ -516,21 +558,22 @@
- public static final BitSet FOLLOW_sea_in_program179 = new BitSet(new
long[]{0x0000000000000020L});
- public static final BitSet FOLLOW_code_in_program181 = new BitSet(new
long[]{0x0000000000000010L});
- public static final BitSet FOLLOW_sea_in_program183 = new BitSet(new
long[]{0x0000000000000082L});
- public static final BitSet FOLLOW_WS_in_program185 = new BitSet(new
long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_SEA_in_sea203 = new BitSet(new
long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_CODE_START_in_code216 = new BitSet(new
long[]{0x0000000000000280L});
- public static final BitSet FOLLOW_statements_in_code218 = new BitSet(new
long[]{0x00000000000000C0L});
- public static final BitSet FOLLOW_WS_in_code220 = new BitSet(new
long[]{0x0000000000000040L});
- public static final BitSet FOLLOW_CODE_END_in_code223 = new BitSet(new
long[]{0x0000000000000002L});
- public static final BitSet FOLLOW_statement_in_statements248 = new
BitSet(new long[]{0x0000000000000282L});
- public static final BitSet FOLLOW_WS_in_statement264 = new BitSet(new
long[]{0x0000000000000200L});
- public static final BitSet FOLLOW_ECHO_in_statement267 = new BitSet(new
long[]{0x0000000000000180L});
- public static final BitSet FOLLOW_WS_in_statement269 = new BitSet(new
long[]{0x0000000000000100L});
- public static final BitSet FOLLOW_STRING_in_statement272 = new BitSet(new
long[]{0x0000000000000480L});
- public static final BitSet FOLLOW_WS_in_statement274 = new BitSet(new
long[]{0x0000000000000400L});
- public static final BitSet FOLLOW_10_in_statement277 = new BitSet(new
long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_sea_in_program190 = new BitSet(new
long[]{0x0000000000000040L});
+ public static final BitSet FOLLOW_code_in_program192 = new BitSet(new
long[]{0x0000000000000020L});
+ public static final BitSet FOLLOW_sea_in_program196 = new BitSet(new
long[]{0x0000000000000102L});
+ public static final BitSet FOLLOW_WS_in_program198 = new BitSet(new
long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_SEA_in_sea228 = new BitSet(new
long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_CODE_START_in_code252 = new BitSet(new
long[]{0x0000000000000500L});
+ public static final BitSet FOLLOW_statements_in_code254 = new BitSet(new
long[]{0x0000000000000180L});
+ public static final BitSet FOLLOW_WS_in_code256 = new BitSet(new
long[]{0x0000000000000080L});
+ public static final BitSet FOLLOW_CODE_END_in_code259 = new BitSet(new
long[]{0x0000000000000102L});
+ public static final BitSet FOLLOW_WS_in_code261 = new BitSet(new
long[]{0x0000000000000002L});
+ public static final BitSet FOLLOW_statement_in_statements281 = new
BitSet(new long[]{0x0000000000000502L});
+ public static final BitSet FOLLOW_WS_in_statement297 = new BitSet(new
long[]{0x0000000000000400L});
+ public static final BitSet FOLLOW_ECHO_in_statement300 = new BitSet(new
long[]{0x0000000000000300L});
+ public static final BitSet FOLLOW_WS_in_statement302 = new BitSet(new
long[]{0x0000000000000200L});
+ public static final BitSet FOLLOW_STRING_in_statement305 = new BitSet(new
long[]{0x0000000000000900L});
+ public static final BitSet FOLLOW_WS_in_statement307 = new BitSet(new
long[]{0x0000000000000800L});
+ public static final BitSet FOLLOW_11_in_statement310 = new BitSet(new
long[]{0x0000000000000002L});
}
\ No newline at end of file