jaitools.jiffle.parser.RuntimeSourceGenerator Maven / Gradle / Ivy
// $ANTLR 3.3 Nov 30, 2010 12:46:29 jaitools/jiffle/parser/RuntimeSourceGenerator.g 2011-03-08 17:37:55
package jaitools.jiffle.parser;
import jaitools.jiffle.Jiffle;
import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import org.antlr.stringtemplate.*;
import org.antlr.stringtemplate.language.*;
import java.util.HashMap;
/**
* Generates Java sources for the runtime class from the final AST.
*
* @author Michael Bedward
*/
public class RuntimeSourceGenerator extends AbstractSourceGenerator {
public static final String[] tokenNames = new String[] {
"", "", "", "", "JIFFLE_OPTION", "IMAGE_SCOPE_VAR_DECL", "EXPR_LIST", "DECLARED_LIST", "PAR", "FUNC_CALL", "IF_CALL", "BLOCK", "IMAGE_POS", "BAND_REF", "PIXEL_REF", "ABS_POS", "REL_POS", "PREFIX", "POSTFIX", "SEQUENCE", "CONSTANT", "IMAGE_WRITE", "VAR_DEST", "VAR_SOURCE", "VAR_IMAGE_SCOPE", "VAR_PIXEL_SCOPE", "VAR_PROVIDED", "VAR_LOOP", "VAR_LIST", "LIST_NEW", "OPTIONS", "LCURLY", "RCURLY", "ID", "EQ", "SEMI", "INIT", "BREAKIF", "LPAR", "RPAR", "WHILE", "UNTIL", "FOREACH", "IN", "COMMA", "COLON", "IF", "APPEND", "TIMESEQ", "DIVEQ", "MODEQ", "PLUSEQ", "MINUSEQ", "QUESTION", "OR", "XOR", "AND", "LOGICALEQ", "NE", "GT", "GE", "LE", "LT", "PLUS", "MINUS", "TIMES", "DIV", "MOD", "NOT", "INCR", "DECR", "POW", "LSQUARE", "RSQUARE", "ABS_POS_PREFIX", "INT_LITERAL", "FLOAT_LITERAL", "TRUE", "FALSE", "NULL", "COMMENT", "INT_TYPE", "FLOAT_TYPE", "DOUBLE_TYPE", "BOOLEAN_TYPE", "Letter", "UNDERSCORE", "Digit", "Dot", "NonZeroDigit", "FloatExp", "WS", "ESC_SEQ", "CHAR", "HEX_DIGIT", "UNICODE_ESC", "OCTAL_ESC"
};
public static final int EOF=-1;
public static final int JIFFLE_OPTION=4;
public static final int IMAGE_SCOPE_VAR_DECL=5;
public static final int EXPR_LIST=6;
public static final int DECLARED_LIST=7;
public static final int PAR=8;
public static final int FUNC_CALL=9;
public static final int IF_CALL=10;
public static final int BLOCK=11;
public static final int IMAGE_POS=12;
public static final int BAND_REF=13;
public static final int PIXEL_REF=14;
public static final int ABS_POS=15;
public static final int REL_POS=16;
public static final int PREFIX=17;
public static final int POSTFIX=18;
public static final int SEQUENCE=19;
public static final int CONSTANT=20;
public static final int IMAGE_WRITE=21;
public static final int VAR_DEST=22;
public static final int VAR_SOURCE=23;
public static final int VAR_IMAGE_SCOPE=24;
public static final int VAR_PIXEL_SCOPE=25;
public static final int VAR_PROVIDED=26;
public static final int VAR_LOOP=27;
public static final int VAR_LIST=28;
public static final int LIST_NEW=29;
public static final int OPTIONS=30;
public static final int LCURLY=31;
public static final int RCURLY=32;
public static final int ID=33;
public static final int EQ=34;
public static final int SEMI=35;
public static final int INIT=36;
public static final int BREAKIF=37;
public static final int LPAR=38;
public static final int RPAR=39;
public static final int WHILE=40;
public static final int UNTIL=41;
public static final int FOREACH=42;
public static final int IN=43;
public static final int COMMA=44;
public static final int COLON=45;
public static final int IF=46;
public static final int APPEND=47;
public static final int TIMESEQ=48;
public static final int DIVEQ=49;
public static final int MODEQ=50;
public static final int PLUSEQ=51;
public static final int MINUSEQ=52;
public static final int QUESTION=53;
public static final int OR=54;
public static final int XOR=55;
public static final int AND=56;
public static final int LOGICALEQ=57;
public static final int NE=58;
public static final int GT=59;
public static final int GE=60;
public static final int LE=61;
public static final int LT=62;
public static final int PLUS=63;
public static final int MINUS=64;
public static final int TIMES=65;
public static final int DIV=66;
public static final int MOD=67;
public static final int NOT=68;
public static final int INCR=69;
public static final int DECR=70;
public static final int POW=71;
public static final int LSQUARE=72;
public static final int RSQUARE=73;
public static final int ABS_POS_PREFIX=74;
public static final int INT_LITERAL=75;
public static final int FLOAT_LITERAL=76;
public static final int TRUE=77;
public static final int FALSE=78;
public static final int NULL=79;
public static final int COMMENT=80;
public static final int INT_TYPE=81;
public static final int FLOAT_TYPE=82;
public static final int DOUBLE_TYPE=83;
public static final int BOOLEAN_TYPE=84;
public static final int Letter=85;
public static final int UNDERSCORE=86;
public static final int Digit=87;
public static final int Dot=88;
public static final int NonZeroDigit=89;
public static final int FloatExp=90;
public static final int WS=91;
public static final int ESC_SEQ=92;
public static final int CHAR=93;
public static final int HEX_DIGIT=94;
public static final int UNICODE_ESC=95;
public static final int OCTAL_ESC=96;
// delegates
// delegators
public RuntimeSourceGenerator(TreeNodeStream input) {
this(input, new RecognizerSharedState());
}
public RuntimeSourceGenerator(TreeNodeStream input, RecognizerSharedState state) {
super(input, state);
}
protected StringTemplateGroup templateLib =
new StringTemplateGroup("RuntimeSourceGeneratorTemplates", AngleBracketTemplateLexer.class);
public void setTemplateLib(StringTemplateGroup templateLib) {
this.templateLib = templateLib;
}
public StringTemplateGroup getTemplateLib() {
return templateLib;
}
/** allows convenient multi-value initialization:
* "new STAttrMap().put(...).put(...)"
*/
public static class STAttrMap extends HashMap {
public STAttrMap put(String attrName, Object value) {
super.put(attrName, value);
return this;
}
public STAttrMap put(String attrName, int value) {
super.put(attrName, new Integer(value));
return this;
}
}
public String[] getTokenNames() { return RuntimeSourceGenerator.tokenNames; }
public String getGrammarFileName() { return "jaitools/jiffle/parser/RuntimeSourceGenerator.g"; }
private SymbolScopeStack varScope = new SymbolScopeStack();
private String getConstantString(String name) {
String s = String.valueOf(ConstantLookup.getValue(name));
if ("NaN".equals(s)) {
return "Double.NaN";
}
return s;
}
public static class generate_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "generate"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:58:1: generate : (o+= jiffleOption )* (v+= varDeclaration )* (s+= statement )+ -> runtime(pkgname=pkgNameimports=importsname=classNamebase=baseClassNameopts=$ofields=$veval=$s);
public final RuntimeSourceGenerator.generate_return generate() throws RecognitionException {
RuntimeSourceGenerator.generate_return retval = new RuntimeSourceGenerator.generate_return();
retval.start = input.LT(1);
List list_o=null;
List list_v=null;
List list_s=null;
RuleReturnScope o = null;
RuleReturnScope v = null;
RuleReturnScope s = null;
varScope.addLevel("top");
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:17: ( (o+= jiffleOption )* (v+= varDeclaration )* (s+= statement )+ -> runtime(pkgname=pkgNameimports=importsname=classNamebase=baseClassNameopts=$ofields=$veval=$s))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:19: (o+= jiffleOption )* (v+= varDeclaration )* (s+= statement )+
{
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:20: (o+= jiffleOption )*
loop1:
do {
int alt1=2;
switch ( input.LA(1) ) {
case JIFFLE_OPTION:
{
alt1=1;
}
break;
}
switch (alt1) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:20: o+= jiffleOption
{
pushFollow(FOLLOW_jiffleOption_in_generate105);
o=jiffleOption();
state._fsp--;
if (list_o==null) list_o=new ArrayList();
list_o.add(o.getTemplate());
}
break;
default :
break loop1;
}
} while (true);
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:37: (v+= varDeclaration )*
loop2:
do {
int alt2=2;
switch ( input.LA(1) ) {
case IMAGE_SCOPE_VAR_DECL:
{
alt2=1;
}
break;
}
switch (alt2) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:37: v+= varDeclaration
{
pushFollow(FOLLOW_varDeclaration_in_generate110);
v=varDeclaration();
state._fsp--;
if (list_v==null) list_v=new ArrayList();
list_v.add(v.getTemplate());
}
break;
default :
break loop2;
}
} while (true);
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:56: (s+= statement )+
int cnt3=0;
loop3:
do {
int alt3=2;
switch ( input.LA(1) ) {
case DECLARED_LIST:
case PAR:
case FUNC_CALL:
case IF_CALL:
case BLOCK:
case IMAGE_POS:
case PREFIX:
case POSTFIX:
case CONSTANT:
case IMAGE_WRITE:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_PROVIDED:
case VAR_LOOP:
case VAR_LIST:
case EQ:
case WHILE:
case UNTIL:
case FOREACH:
case APPEND:
case TIMESEQ:
case DIVEQ:
case MODEQ:
case PLUSEQ:
case MINUSEQ:
case OR:
case XOR:
case AND:
case LOGICALEQ:
case NE:
case GT:
case GE:
case LE:
case LT:
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
case POW:
case INT_LITERAL:
case FLOAT_LITERAL:
{
alt3=1;
}
break;
}
switch (alt3) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:62:56: s+= statement
{
pushFollow(FOLLOW_statement_in_generate115);
s=statement();
state._fsp--;
if (list_s==null) list_s=new ArrayList();
list_s.add(s.getTemplate());
}
break;
default :
if ( cnt3 >= 1 ) break loop3;
EarlyExitException eee =
new EarlyExitException(3, input);
throw eee;
}
cnt3++;
} while (true);
// TEMPLATE REWRITE
// 64:17: -> runtime(pkgname=pkgNameimports=importsname=classNamebase=baseClassNameopts=$ofields=$veval=$s)
{
retval.st = templateLib.getInstanceOf("runtime",
new STAttrMap().put("pkgname", pkgName).put("imports", imports).put("name", className).put("base", baseClassName).put("opts", list_o).put("fields", list_v).put("eval", list_s));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "generate"
public static class jiffleOption_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "jiffleOption"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:70:1: jiffleOption : ^( JIFFLE_OPTION ID optionValue ) -> {%{getOptionExpr($ID.text, $optionValue.src)}};
public final RuntimeSourceGenerator.jiffleOption_return jiffleOption() throws RecognitionException {
RuntimeSourceGenerator.jiffleOption_return retval = new RuntimeSourceGenerator.jiffleOption_return();
retval.start = input.LT(1);
CommonTree ID1=null;
RuntimeSourceGenerator.optionValue_return optionValue2 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:70:17: ( ^( JIFFLE_OPTION ID optionValue ) -> {%{getOptionExpr($ID.text, $optionValue.src)}})
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:70:19: ^( JIFFLE_OPTION ID optionValue )
{
match(input,JIFFLE_OPTION,FOLLOW_JIFFLE_OPTION_in_jiffleOption258);
match(input, Token.DOWN, null);
ID1=(CommonTree)match(input,ID,FOLLOW_ID_in_jiffleOption260);
pushFollow(FOLLOW_optionValue_in_jiffleOption262);
optionValue2=optionValue();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 71:17: -> {%{getOptionExpr($ID.text, $optionValue.src)}}
{
retval.st = new StringTemplate(templateLib,getOptionExpr((ID1!=null?ID1.getText():null), (optionValue2!=null?optionValue2.src:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "jiffleOption"
public static class optionValue_return extends TreeRuleReturnScope {
public String src;
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "optionValue"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:75:1: optionValue returns [String src] : ( ID | literal | CONSTANT );
public final RuntimeSourceGenerator.optionValue_return optionValue() throws RecognitionException {
RuntimeSourceGenerator.optionValue_return retval = new RuntimeSourceGenerator.optionValue_return();
retval.start = input.LT(1);
CommonTree ID3=null;
CommonTree CONSTANT5=null;
RuntimeSourceGenerator.literal_return literal4 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:76:17: ( ID | literal | CONSTANT )
int alt4=3;
switch ( input.LA(1) ) {
case ID:
{
alt4=1;
}
break;
case INT_LITERAL:
case FLOAT_LITERAL:
{
alt4=2;
}
break;
case CONSTANT:
{
alt4=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 4, 0, input);
throw nvae;
}
switch (alt4) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:76:19: ID
{
ID3=(CommonTree)match(input,ID,FOLLOW_ID_in_optionValue329);
retval.src = (ID3!=null?ID3.getText():null);
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:77:19: literal
{
pushFollow(FOLLOW_literal_in_optionValue351);
literal4=literal();
state._fsp--;
retval.src = (literal4!=null?((CommonTree)literal4.start):null).getText();
}
break;
case 3 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:78:19: CONSTANT
{
CONSTANT5=(CommonTree)match(input,CONSTANT,FOLLOW_CONSTANT_in_optionValue373);
retval.src = getConstantString((CONSTANT5!=null?CONSTANT5.getText():null));
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "optionValue"
public static class varDeclaration_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "varDeclaration"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:82:1: varDeclaration : ^( IMAGE_SCOPE_VAR_DECL VAR_IMAGE_SCOPE e= expression ) -> field(name=$VAR_IMAGE_SCOPE.texttype=%{\"double\"}mods=%{\"private\"}init=$e.st);
public final RuntimeSourceGenerator.varDeclaration_return varDeclaration() throws RecognitionException {
RuntimeSourceGenerator.varDeclaration_return retval = new RuntimeSourceGenerator.varDeclaration_return();
retval.start = input.LT(1);
CommonTree VAR_IMAGE_SCOPE6=null;
RuntimeSourceGenerator.expression_return e = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:82:17: ( ^( IMAGE_SCOPE_VAR_DECL VAR_IMAGE_SCOPE e= expression ) -> field(name=$VAR_IMAGE_SCOPE.texttype=%{\"double\"}mods=%{\"private\"}init=$e.st))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:82:19: ^( IMAGE_SCOPE_VAR_DECL VAR_IMAGE_SCOPE e= expression )
{
match(input,IMAGE_SCOPE_VAR_DECL,FOLLOW_IMAGE_SCOPE_VAR_DECL_in_varDeclaration403);
match(input, Token.DOWN, null);
VAR_IMAGE_SCOPE6=(CommonTree)match(input,VAR_IMAGE_SCOPE,FOLLOW_VAR_IMAGE_SCOPE_in_varDeclaration405);
pushFollow(FOLLOW_expression_in_varDeclaration409);
e=expression();
state._fsp--;
match(input, Token.UP, null);
varScope.addSymbol((VAR_IMAGE_SCOPE6!=null?VAR_IMAGE_SCOPE6.getText():null), SymbolType.SCALAR, ScopeType.IMAGE);
// TEMPLATE REWRITE
// 86:17: -> field(name=$VAR_IMAGE_SCOPE.texttype=%{\"double\"}mods=%{\"private\"}init=$e.st)
{
retval.st = templateLib.getInstanceOf("field",
new STAttrMap().put("name", (VAR_IMAGE_SCOPE6!=null?VAR_IMAGE_SCOPE6.getText():null)).put("type", new StringTemplate(templateLib,"double")).put("mods", new StringTemplate(templateLib,"private")).put("init", (e!=null?e.st:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "varDeclaration"
public static class block_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "block"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:90:1: block : ^( BLOCK (s+= blockStatement )* ) -> block(stmts=$s);
public final RuntimeSourceGenerator.block_return block() throws RecognitionException {
RuntimeSourceGenerator.block_return retval = new RuntimeSourceGenerator.block_return();
retval.start = input.LT(1);
List list_s=null;
RuleReturnScope s = null;
varScope.addLevel("block");
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:97:17: ( ^( BLOCK (s+= blockStatement )* ) -> block(stmts=$s))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:97:19: ^( BLOCK (s+= blockStatement )* )
{
match(input,BLOCK,FOLLOW_BLOCK_in_block521);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:97:28: (s+= blockStatement )*
loop5:
do {
int alt5=2;
switch ( input.LA(1) ) {
case DECLARED_LIST:
case PAR:
case FUNC_CALL:
case IF_CALL:
case BLOCK:
case IMAGE_POS:
case PREFIX:
case POSTFIX:
case CONSTANT:
case IMAGE_WRITE:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_PROVIDED:
case VAR_LOOP:
case VAR_LIST:
case EQ:
case BREAKIF:
case WHILE:
case UNTIL:
case FOREACH:
case APPEND:
case TIMESEQ:
case DIVEQ:
case MODEQ:
case PLUSEQ:
case MINUSEQ:
case OR:
case XOR:
case AND:
case LOGICALEQ:
case NE:
case GT:
case GE:
case LE:
case LT:
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
case POW:
case INT_LITERAL:
case FLOAT_LITERAL:
{
alt5=1;
}
break;
}
switch (alt5) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:97:28: s+= blockStatement
{
pushFollow(FOLLOW_blockStatement_in_block525);
s=blockStatement();
state._fsp--;
if (list_s==null) list_s=new ArrayList();
list_s.add(s.getTemplate());
}
break;
default :
break loop5;
}
} while (true);
match(input, Token.UP, null);
}
// TEMPLATE REWRITE
// 98:17: -> block(stmts=$s)
{
retval.st = templateLib.getInstanceOf("block",
new STAttrMap().put("stmts", list_s));
}
}
varScope.dropLevel();
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "block"
public static class blockStatement_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "blockStatement"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:102:1: blockStatement : ( statement -> {$statement.st} | ^( BREAKIF expression ) -> breakif(cond=$expression.st));
public final RuntimeSourceGenerator.blockStatement_return blockStatement() throws RecognitionException {
RuntimeSourceGenerator.blockStatement_return retval = new RuntimeSourceGenerator.blockStatement_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.statement_return statement7 = null;
RuntimeSourceGenerator.expression_return expression8 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:102:17: ( statement -> {$statement.st} | ^( BREAKIF expression ) -> breakif(cond=$expression.st))
int alt6=2;
switch ( input.LA(1) ) {
case DECLARED_LIST:
case PAR:
case FUNC_CALL:
case IF_CALL:
case BLOCK:
case IMAGE_POS:
case PREFIX:
case POSTFIX:
case CONSTANT:
case IMAGE_WRITE:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_PROVIDED:
case VAR_LOOP:
case VAR_LIST:
case EQ:
case WHILE:
case UNTIL:
case FOREACH:
case APPEND:
case TIMESEQ:
case DIVEQ:
case MODEQ:
case PLUSEQ:
case MINUSEQ:
case OR:
case XOR:
case AND:
case LOGICALEQ:
case NE:
case GT:
case GE:
case LE:
case LT:
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
case POW:
case INT_LITERAL:
case FLOAT_LITERAL:
{
alt6=1;
}
break;
case BREAKIF:
{
alt6=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 6, 0, input);
throw nvae;
}
switch (alt6) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:102:19: statement
{
pushFollow(FOLLOW_statement_in_blockStatement579);
statement7=statement();
state._fsp--;
// TEMPLATE REWRITE
// 102:29: -> {$statement.st}
{
retval.st = (statement7!=null?statement7.st:null);
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:103:19: ^( BREAKIF expression )
{
match(input,BREAKIF,FOLLOW_BREAKIF_in_blockStatement604);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_blockStatement606);
expression8=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 103:41: -> breakif(cond=$expression.st)
{
retval.st = templateLib.getInstanceOf("breakif",
new STAttrMap().put("cond", (expression8!=null?expression8.st:null)));
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "blockStatement"
public static class statement_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "statement"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:107:1: statement : ( simpleStatement -> delimstmt(stmt=$simpleStatement.st) | block -> {$block.st});
public final RuntimeSourceGenerator.statement_return statement() throws RecognitionException {
RuntimeSourceGenerator.statement_return retval = new RuntimeSourceGenerator.statement_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.simpleStatement_return simpleStatement9 = null;
RuntimeSourceGenerator.block_return block10 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:107:17: ( simpleStatement -> delimstmt(stmt=$simpleStatement.st) | block -> {$block.st})
int alt7=2;
switch ( input.LA(1) ) {
case DECLARED_LIST:
case PAR:
case FUNC_CALL:
case IF_CALL:
case IMAGE_POS:
case PREFIX:
case POSTFIX:
case CONSTANT:
case IMAGE_WRITE:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_PROVIDED:
case VAR_LOOP:
case VAR_LIST:
case EQ:
case WHILE:
case UNTIL:
case FOREACH:
case APPEND:
case TIMESEQ:
case DIVEQ:
case MODEQ:
case PLUSEQ:
case MINUSEQ:
case OR:
case XOR:
case AND:
case LOGICALEQ:
case NE:
case GT:
case GE:
case LE:
case LT:
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
case POW:
case INT_LITERAL:
case FLOAT_LITERAL:
{
alt7=1;
}
break;
case BLOCK:
{
alt7=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 7, 0, input);
throw nvae;
}
switch (alt7) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:107:19: simpleStatement
{
pushFollow(FOLLOW_simpleStatement_in_statement648);
simpleStatement9=simpleStatement();
state._fsp--;
// TEMPLATE REWRITE
// 107:35: -> delimstmt(stmt=$simpleStatement.st)
{
retval.st = templateLib.getInstanceOf("delimstmt",
new STAttrMap().put("stmt", (simpleStatement9!=null?simpleStatement9.st:null)));
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:108:19: block
{
pushFollow(FOLLOW_block_in_statement677);
block10=block();
state._fsp--;
// TEMPLATE REWRITE
// 108:25: -> {$block.st}
{
retval.st = (block10!=null?block10.st:null);
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "statement"
public static class simpleStatement_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "simpleStatement"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:112:1: simpleStatement : ( imageWrite -> {$imageWrite.st} | scalarAssignment -> {$scalarAssignment.st} | listAssignment -> {$listAssignment.st} | loop -> {$loop.st} | expression -> {$expression.st});
public final RuntimeSourceGenerator.simpleStatement_return simpleStatement() throws RecognitionException {
RuntimeSourceGenerator.simpleStatement_return retval = new RuntimeSourceGenerator.simpleStatement_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.imageWrite_return imageWrite11 = null;
RuntimeSourceGenerator.scalarAssignment_return scalarAssignment12 = null;
RuntimeSourceGenerator.listAssignment_return listAssignment13 = null;
RuntimeSourceGenerator.loop_return loop14 = null;
RuntimeSourceGenerator.expression_return expression15 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:112:17: ( imageWrite -> {$imageWrite.st} | scalarAssignment -> {$scalarAssignment.st} | listAssignment -> {$listAssignment.st} | loop -> {$loop.st} | expression -> {$expression.st})
int alt8=5;
switch ( input.LA(1) ) {
case IMAGE_WRITE:
{
alt8=1;
}
break;
case EQ:
{
switch ( input.LA(2) ) {
case DOWN:
{
switch ( input.LA(3) ) {
case VAR_LIST:
{
alt8=3;
}
break;
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
{
alt8=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 8, 6, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 8, 2, input);
throw nvae;
}
}
break;
case TIMESEQ:
case DIVEQ:
case MODEQ:
case PLUSEQ:
case MINUSEQ:
{
alt8=2;
}
break;
case WHILE:
case UNTIL:
case FOREACH:
{
alt8=4;
}
break;
case DECLARED_LIST:
case PAR:
case FUNC_CALL:
case IF_CALL:
case IMAGE_POS:
case PREFIX:
case POSTFIX:
case CONSTANT:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_PROVIDED:
case VAR_LOOP:
case VAR_LIST:
case APPEND:
case OR:
case XOR:
case AND:
case LOGICALEQ:
case NE:
case GT:
case GE:
case LE:
case LT:
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
case POW:
case INT_LITERAL:
case FLOAT_LITERAL:
{
alt8=5;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 8, 0, input);
throw nvae;
}
switch (alt8) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:112:19: imageWrite
{
pushFollow(FOLLOW_imageWrite_in_simpleStatement707);
imageWrite11=imageWrite();
state._fsp--;
// TEMPLATE REWRITE
// 112:30: -> {$imageWrite.st}
{
retval.st = (imageWrite11!=null?imageWrite11.st:null);
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:113:19: scalarAssignment
{
pushFollow(FOLLOW_scalarAssignment_in_simpleStatement731);
scalarAssignment12=scalarAssignment();
state._fsp--;
// TEMPLATE REWRITE
// 113:36: -> {$scalarAssignment.st}
{
retval.st = (scalarAssignment12!=null?scalarAssignment12.st:null);
}
}
break;
case 3 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:114:19: listAssignment
{
pushFollow(FOLLOW_listAssignment_in_simpleStatement755);
listAssignment13=listAssignment();
state._fsp--;
// TEMPLATE REWRITE
// 114:34: -> {$listAssignment.st}
{
retval.st = (listAssignment13!=null?listAssignment13.st:null);
}
}
break;
case 4 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:115:19: loop
{
pushFollow(FOLLOW_loop_in_simpleStatement779);
loop14=loop();
state._fsp--;
// TEMPLATE REWRITE
// 115:24: -> {$loop.st}
{
retval.st = (loop14!=null?loop14.st:null);
}
}
break;
case 5 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:116:19: expression
{
pushFollow(FOLLOW_expression_in_simpleStatement803);
expression15=expression();
state._fsp--;
// TEMPLATE REWRITE
// 116:30: -> {$expression.st}
{
retval.st = (expression15!=null?expression15.st:null);
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "simpleStatement"
public static class imageWrite_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "imageWrite"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:120:1: imageWrite : ^( IMAGE_WRITE VAR_DEST expression ) -> setdestvalue(var=$VAR_DEST.textexpr=$expression.st);
public final RuntimeSourceGenerator.imageWrite_return imageWrite() throws RecognitionException {
RuntimeSourceGenerator.imageWrite_return retval = new RuntimeSourceGenerator.imageWrite_return();
retval.start = input.LT(1);
CommonTree VAR_DEST16=null;
RuntimeSourceGenerator.expression_return expression17 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:120:17: ( ^( IMAGE_WRITE VAR_DEST expression ) -> setdestvalue(var=$VAR_DEST.textexpr=$expression.st))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:120:19: ^( IMAGE_WRITE VAR_DEST expression )
{
match(input,IMAGE_WRITE,FOLLOW_IMAGE_WRITE_in_imageWrite839);
match(input, Token.DOWN, null);
VAR_DEST16=(CommonTree)match(input,VAR_DEST,FOLLOW_VAR_DEST_in_imageWrite841);
pushFollow(FOLLOW_expression_in_imageWrite843);
expression17=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 121:17: -> setdestvalue(var=$VAR_DEST.textexpr=$expression.st)
{
retval.st = templateLib.getInstanceOf("setdestvalue",
new STAttrMap().put("var", (VAR_DEST16!=null?VAR_DEST16.getText():null)).put("expr", (expression17!=null?expression17.st:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "imageWrite"
public static class expressionList_return extends TreeRuleReturnScope {
public List argTypes;
public List templates;
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "expressionList"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:125:1: expressionList returns [List argTypes, List templates] : ^( EXPR_LIST ( expression )* ) ;
public final RuntimeSourceGenerator.expressionList_return expressionList() throws RecognitionException {
RuntimeSourceGenerator.expressionList_return retval = new RuntimeSourceGenerator.expressionList_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.expression_return expression18 = null;
retval.argTypes = new ArrayList();
retval.templates = new ArrayList();
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:130:17: ( ^( EXPR_LIST ( expression )* ) )
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:130:19: ^( EXPR_LIST ( expression )* )
{
match(input,EXPR_LIST,FOLLOW_EXPR_LIST_in_expressionList926);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:130:31: ( expression )*
loop9:
do {
int alt9=2;
switch ( input.LA(1) ) {
case DECLARED_LIST:
case PAR:
case FUNC_CALL:
case IF_CALL:
case IMAGE_POS:
case PREFIX:
case POSTFIX:
case CONSTANT:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_PROVIDED:
case VAR_LOOP:
case VAR_LIST:
case APPEND:
case OR:
case XOR:
case AND:
case LOGICALEQ:
case NE:
case GT:
case GE:
case LE:
case LT:
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
case POW:
case INT_LITERAL:
case FLOAT_LITERAL:
{
alt9=1;
}
break;
}
switch (alt9) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:130:32: expression
{
pushFollow(FOLLOW_expression_in_expressionList929);
expression18=expression();
state._fsp--;
int ttype = (expression18!=null?((CommonTree)expression18.start):null).getType();
retval.argTypes.add(ttype == VAR_LIST || ttype == DECLARED_LIST ? "List" : "D");
retval.templates.add((expression18!=null?expression18.st:null));
}
break;
default :
break loop9;
}
} while (true);
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "expressionList"
public static class scalarAssignment_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "scalarAssignment"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:139:1: scalarAssignment : ^(op= assignmentOp id= scalar expression ) -> binaryexpr(lhs=$id.stop=$op.strhs=$expression.st);
public final RuntimeSourceGenerator.scalarAssignment_return scalarAssignment() throws RecognitionException {
RuntimeSourceGenerator.scalarAssignment_return retval = new RuntimeSourceGenerator.scalarAssignment_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.assignmentOp_return op = null;
RuntimeSourceGenerator.scalar_return id = null;
RuntimeSourceGenerator.expression_return expression19 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:140:17: ( ^(op= assignmentOp id= scalar expression ) -> binaryexpr(lhs=$id.stop=$op.strhs=$expression.st))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:140:19: ^(op= assignmentOp id= scalar expression )
{
pushFollow(FOLLOW_assignmentOp_in_scalarAssignment1001);
op=assignmentOp();
state._fsp--;
match(input, Token.DOWN, null);
pushFollow(FOLLOW_scalar_in_scalarAssignment1005);
id=scalar();
state._fsp--;
pushFollow(FOLLOW_expression_in_scalarAssignment1007);
expression19=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 141:17: -> binaryexpr(lhs=$id.stop=$op.strhs=$expression.st)
{
retval.st = templateLib.getInstanceOf("binaryexpr",
new STAttrMap().put("lhs", (id!=null?id.st:null)).put("op", (op!=null?op.st:null)).put("rhs", (expression19!=null?expression19.st:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "scalarAssignment"
protected static class listAssignment_scope {
boolean isNew;
}
protected Stack listAssignment_stack = new Stack();
public static class listAssignment_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "listAssignment"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:145:1: listAssignment : ^( EQ VAR_LIST e= expression ) -> listassign(isnew=$listAssignment::isNewvar=$VAR_LIST.textexpr=$expression.st);
public final RuntimeSourceGenerator.listAssignment_return listAssignment() throws RecognitionException {
listAssignment_stack.push(new listAssignment_scope());
RuntimeSourceGenerator.listAssignment_return retval = new RuntimeSourceGenerator.listAssignment_return();
retval.start = input.LT(1);
CommonTree VAR_LIST20=null;
RuntimeSourceGenerator.expression_return e = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:147:17: ( ^( EQ VAR_LIST e= expression ) -> listassign(isnew=$listAssignment::isNewvar=$VAR_LIST.textexpr=$expression.st))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:147:19: ^( EQ VAR_LIST e= expression )
{
match(input,EQ,FOLLOW_EQ_in_listAssignment1090);
match(input, Token.DOWN, null);
VAR_LIST20=(CommonTree)match(input,VAR_LIST,FOLLOW_VAR_LIST_in_listAssignment1092);
pushFollow(FOLLOW_expression_in_listAssignment1096);
e=expression();
state._fsp--;
match(input, Token.UP, null);
((listAssignment_scope)listAssignment_stack.peek()).isNew = !varScope.isDefined((VAR_LIST20!=null?VAR_LIST20.getText():null), SymbolType.LIST);
if (((listAssignment_scope)listAssignment_stack.peek()).isNew) {
addImport("java.util.List", "java.util.ArrayList");
varScope.addSymbol((VAR_LIST20!=null?VAR_LIST20.getText():null), SymbolType.LIST, ScopeType.PIXEL);
}
// TEMPLATE REWRITE
// 156:17: -> listassign(isnew=$listAssignment::isNewvar=$VAR_LIST.textexpr=$expression.st)
{
retval.st = templateLib.getInstanceOf("listassign",
new STAttrMap().put("isnew", ((listAssignment_scope)listAssignment_stack.peek()).isNew).put("var", (VAR_LIST20!=null?VAR_LIST20.getText():null)).put("expr", (e!=null?e.st:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
listAssignment_stack.pop();
}
return retval;
}
// $ANTLR end "listAssignment"
public static class scalar_return extends TreeRuleReturnScope {
public boolean newVar;
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "scalar"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:161:1: scalar returns [boolean newVar] : ( VAR_IMAGE_SCOPE | VAR_PIXEL_SCOPE );
public final RuntimeSourceGenerator.scalar_return scalar() throws RecognitionException {
RuntimeSourceGenerator.scalar_return retval = new RuntimeSourceGenerator.scalar_return();
retval.start = input.LT(1);
CommonTree VAR_PIXEL_SCOPE21=null;
retval.newVar = false;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:173:17: ( VAR_IMAGE_SCOPE | VAR_PIXEL_SCOPE )
int alt10=2;
switch ( input.LA(1) ) {
case VAR_IMAGE_SCOPE:
{
alt10=1;
}
break;
case VAR_PIXEL_SCOPE:
{
alt10=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 10, 0, input);
throw nvae;
}
switch (alt10) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:173:19: VAR_IMAGE_SCOPE
{
match(input,VAR_IMAGE_SCOPE,FOLLOW_VAR_IMAGE_SCOPE_in_scalar1208);
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:174:19: VAR_PIXEL_SCOPE
{
VAR_PIXEL_SCOPE21=(CommonTree)match(input,VAR_PIXEL_SCOPE,FOLLOW_VAR_PIXEL_SCOPE_in_scalar1229);
if (!varScope.isDefined((VAR_PIXEL_SCOPE21!=null?VAR_PIXEL_SCOPE21.getText():null))) {
varScope.addSymbol((VAR_PIXEL_SCOPE21!=null?VAR_PIXEL_SCOPE21.getText():null), SymbolType.SCALAR, ScopeType.PIXEL);
retval.newVar = true;
}
}
break;
}
String varName = ((CommonTree)retval.start).getText();
if (retval.newVar) {
retval.st = new StringTemplate(templateLib,"double " + varName);
} else {
retval.st = new StringTemplate(templateLib,varName);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "scalar"
public static class loop_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "loop"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:184:1: loop : ( conditionalLoop -> {$conditionalLoop.st} | foreachLoop -> {$foreachLoop.st});
public final RuntimeSourceGenerator.loop_return loop() throws RecognitionException {
RuntimeSourceGenerator.loop_return retval = new RuntimeSourceGenerator.loop_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.conditionalLoop_return conditionalLoop22 = null;
RuntimeSourceGenerator.foreachLoop_return foreachLoop23 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:184:17: ( conditionalLoop -> {$conditionalLoop.st} | foreachLoop -> {$foreachLoop.st})
int alt11=2;
switch ( input.LA(1) ) {
case WHILE:
case UNTIL:
{
alt11=1;
}
break;
case FOREACH:
{
alt11=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 11, 0, input);
throw nvae;
}
switch (alt11) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:184:19: conditionalLoop
{
pushFollow(FOLLOW_conditionalLoop_in_loop1285);
conditionalLoop22=conditionalLoop();
state._fsp--;
// TEMPLATE REWRITE
// 184:35: -> {$conditionalLoop.st}
{
retval.st = (conditionalLoop22!=null?conditionalLoop22.st:null);
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:185:19: foreachLoop
{
pushFollow(FOLLOW_foreachLoop_in_loop1309);
foreachLoop23=foreachLoop();
state._fsp--;
// TEMPLATE REWRITE
// 185:31: -> {$foreachLoop.st}
{
retval.st = (foreachLoop23!=null?foreachLoop23.st:null);
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "loop"
public static class conditionalLoop_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "conditionalLoop"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:189:1: conditionalLoop : ( ^( WHILE e= expression s= statement ) -> while(cond=$e.ststmt=$s.st) | ^( UNTIL e= expression s= statement ) -> until(cond=$e.ststmt=$s.st));
public final RuntimeSourceGenerator.conditionalLoop_return conditionalLoop() throws RecognitionException {
RuntimeSourceGenerator.conditionalLoop_return retval = new RuntimeSourceGenerator.conditionalLoop_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.expression_return e = null;
RuntimeSourceGenerator.statement_return s = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:190:17: ( ^( WHILE e= expression s= statement ) -> while(cond=$e.ststmt=$s.st) | ^( UNTIL e= expression s= statement ) -> until(cond=$e.ststmt=$s.st))
int alt12=2;
switch ( input.LA(1) ) {
case WHILE:
{
alt12=1;
}
break;
case UNTIL:
{
alt12=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:190:19: ^( WHILE e= expression s= statement )
{
match(input,WHILE,FOLLOW_WHILE_in_conditionalLoop1356);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_conditionalLoop1360);
e=expression();
state._fsp--;
pushFollow(FOLLOW_statement_in_conditionalLoop1364);
s=statement();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 190:53: -> while(cond=$e.ststmt=$s.st)
{
retval.st = templateLib.getInstanceOf("while",
new STAttrMap().put("cond", (e!=null?e.st:null)).put("stmt", (s!=null?s.st:null)));
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:191:19: ^( UNTIL e= expression s= statement )
{
match(input,UNTIL,FOLLOW_UNTIL_in_conditionalLoop1400);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_conditionalLoop1404);
e=expression();
state._fsp--;
pushFollow(FOLLOW_statement_in_conditionalLoop1408);
s=statement();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 191:53: -> until(cond=$e.ststmt=$s.st)
{
retval.st = templateLib.getInstanceOf("until",
new STAttrMap().put("cond", (e!=null?e.st:null)).put("stmt", (s!=null?s.st:null)));
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "conditionalLoop"
public static class foreachLoop_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "foreachLoop"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:194:1: foreachLoop : ( ^( FOREACH ID ^( DECLARED_LIST e= expressionList ) s= statement ) -> foreachlist(n=++varIndexvar=$ID.textlist=$e.templatesstmt=$s.st) | ^( FOREACH ID VAR_LIST s= statement ) -> foreachlistvar(n=++varIndexvar=$ID.textlistvar=%{$VAR_LIST.text}stmt=$s.st) | ^( FOREACH ID ^( SEQUENCE lo= expression hi= expression ) s= statement ) -> foreachseq(n=++varIndexvar=$ID.textlo=$lo.sthi=$hi.ststmt=$s.st));
public final RuntimeSourceGenerator.foreachLoop_return foreachLoop() throws RecognitionException {
RuntimeSourceGenerator.foreachLoop_return retval = new RuntimeSourceGenerator.foreachLoop_return();
retval.start = input.LT(1);
CommonTree ID24=null;
CommonTree ID25=null;
CommonTree VAR_LIST26=null;
CommonTree ID27=null;
RuntimeSourceGenerator.expressionList_return e = null;
RuntimeSourceGenerator.statement_return s = null;
RuntimeSourceGenerator.expression_return lo = null;
RuntimeSourceGenerator.expression_return hi = null;
varScope.addLevel("foreach");
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:201:17: ( ^( FOREACH ID ^( DECLARED_LIST e= expressionList ) s= statement ) -> foreachlist(n=++varIndexvar=$ID.textlist=$e.templatesstmt=$s.st) | ^( FOREACH ID VAR_LIST s= statement ) -> foreachlistvar(n=++varIndexvar=$ID.textlistvar=%{$VAR_LIST.text}stmt=$s.st) | ^( FOREACH ID ^( SEQUENCE lo= expression hi= expression ) s= statement ) -> foreachseq(n=++varIndexvar=$ID.textlo=$lo.sthi=$hi.ststmt=$s.st))
int alt13=3;
switch ( input.LA(1) ) {
case FOREACH:
{
switch ( input.LA(2) ) {
case DOWN:
{
switch ( input.LA(3) ) {
case ID:
{
switch ( input.LA(4) ) {
case DECLARED_LIST:
{
alt13=1;
}
break;
case VAR_LIST:
{
alt13=2;
}
break;
case SEQUENCE:
{
alt13=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 13, 3, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 13, 2, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 13, 1, input);
throw nvae;
}
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:201:19: ^( FOREACH ID ^( DECLARED_LIST e= expressionList ) s= statement )
{
match(input,FOREACH,FOLLOW_FOREACH_in_foreachLoop1475);
match(input, Token.DOWN, null);
ID24=(CommonTree)match(input,ID,FOLLOW_ID_in_foreachLoop1477);
varScope.addSymbol((ID24!=null?ID24.getText():null), SymbolType.LOOP_VAR, ScopeType.PIXEL);
match(input,DECLARED_LIST,FOLLOW_DECLARED_LIST_in_foreachLoop1523);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expressionList_in_foreachLoop1527);
e=expressionList();
state._fsp--;
match(input, Token.UP, null);
pushFollow(FOLLOW_statement_in_foreachLoop1532);
s=statement();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 205:17: -> foreachlist(n=++varIndexvar=$ID.textlist=$e.templatesstmt=$s.st)
{
retval.st = templateLib.getInstanceOf("foreachlist",
new STAttrMap().put("n", ++varIndex).put("var", (ID24!=null?ID24.getText():null)).put("list", (e!=null?e.templates:null)).put("stmt", (s!=null?s.st:null)));
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:207:19: ^( FOREACH ID VAR_LIST s= statement )
{
match(input,FOREACH,FOLLOW_FOREACH_in_foreachLoop1596);
match(input, Token.DOWN, null);
ID25=(CommonTree)match(input,ID,FOLLOW_ID_in_foreachLoop1598);
varScope.addSymbol((ID25!=null?ID25.getText():null), SymbolType.LOOP_VAR, ScopeType.PIXEL);
VAR_LIST26=(CommonTree)match(input,VAR_LIST,FOLLOW_VAR_LIST_in_foreachLoop1643);
pushFollow(FOLLOW_statement_in_foreachLoop1647);
s=statement();
state._fsp--;
match(input, Token.UP, null);
addImport("java.util.Iterator");
// TEMPLATE REWRITE
// 212:17: -> foreachlistvar(n=++varIndexvar=$ID.textlistvar=%{$VAR_LIST.text}stmt=$s.st)
{
retval.st = templateLib.getInstanceOf("foreachlistvar",
new STAttrMap().put("n", ++varIndex).put("var", (ID25!=null?ID25.getText():null)).put("listvar", new StringTemplate(templateLib,(VAR_LIST26!=null?VAR_LIST26.getText():null))).put("stmt", (s!=null?s.st:null)));
}
}
break;
case 3 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:214:19: ^( FOREACH ID ^( SEQUENCE lo= expression hi= expression ) s= statement )
{
match(input,FOREACH,FOLLOW_FOREACH_in_foreachLoop1745);
match(input, Token.DOWN, null);
ID27=(CommonTree)match(input,ID,FOLLOW_ID_in_foreachLoop1747);
varScope.addSymbol((ID27!=null?ID27.getText():null), SymbolType.LOOP_VAR, ScopeType.PIXEL);
match(input,SEQUENCE,FOLLOW_SEQUENCE_in_foreachLoop1793);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_foreachLoop1797);
lo=expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_foreachLoop1801);
hi=expression();
state._fsp--;
match(input, Token.UP, null);
pushFollow(FOLLOW_statement_in_foreachLoop1806);
s=statement();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 218:17: -> foreachseq(n=++varIndexvar=$ID.textlo=$lo.sthi=$hi.ststmt=$s.st)
{
retval.st = templateLib.getInstanceOf("foreachseq",
new STAttrMap().put("n", ++varIndex).put("var", (ID27!=null?ID27.getText():null)).put("lo", (lo!=null?lo.st:null)).put("hi", (hi!=null?hi.st:null)).put("stmt", (s!=null?s.st:null)));
}
}
break;
}
varScope.dropLevel();
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "foreachLoop"
public static class expression_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "expression"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:222:1: expression : ( ^( FUNC_CALL ID el= expressionList ) -> call(name=getRuntimeExpr($ID.text, $el.argTypes)args=$el.templates) | ^( IF_CALL el= expressionList ) -> ifcall(args=$el.templates) | imagePos -> {$imagePos.st} | binaryExpression -> {$binaryExpression.st} | ^( PREFIX NOT e= expression ) -> call(name=getRuntimeExpr(\"NOT\", \"D\")args=$e.st) | ^( PREFIX prefixOp e= expression ) -> preop(op=$prefixOp.stexpr=$e.st) | ^( POSTFIX postfixOp e= expression ) -> postop(op=$postfixOp.stexpr=$e.st) | ^( PAR e= expression ) -> par(expr=$e.st) | listOperation -> {$listOperation.st} | listLiteral -> {$listLiteral.st} | var -> {$var.st} | VAR_SOURCE -> getsourcevalue(var=$VAR_SOURCE.text) | CONSTANT -> {%{getConstantString($CONSTANT.text)}} | literal -> {$literal.st});
public final RuntimeSourceGenerator.expression_return expression() throws RecognitionException {
RuntimeSourceGenerator.expression_return retval = new RuntimeSourceGenerator.expression_return();
retval.start = input.LT(1);
CommonTree ID28=null;
CommonTree VAR_SOURCE36=null;
CommonTree CONSTANT37=null;
RuntimeSourceGenerator.expressionList_return el = null;
RuntimeSourceGenerator.expression_return e = null;
RuntimeSourceGenerator.imagePos_return imagePos29 = null;
RuntimeSourceGenerator.binaryExpression_return binaryExpression30 = null;
RuntimeSourceGenerator.prefixOp_return prefixOp31 = null;
RuntimeSourceGenerator.postfixOp_return postfixOp32 = null;
RuntimeSourceGenerator.listOperation_return listOperation33 = null;
RuntimeSourceGenerator.listLiteral_return listLiteral34 = null;
RuntimeSourceGenerator.var_return var35 = null;
RuntimeSourceGenerator.literal_return literal38 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:222:17: ( ^( FUNC_CALL ID el= expressionList ) -> call(name=getRuntimeExpr($ID.text, $el.argTypes)args=$el.templates) | ^( IF_CALL el= expressionList ) -> ifcall(args=$el.templates) | imagePos -> {$imagePos.st} | binaryExpression -> {$binaryExpression.st} | ^( PREFIX NOT e= expression ) -> call(name=getRuntimeExpr(\"NOT\", \"D\")args=$e.st) | ^( PREFIX prefixOp e= expression ) -> preop(op=$prefixOp.stexpr=$e.st) | ^( POSTFIX postfixOp e= expression ) -> postop(op=$postfixOp.stexpr=$e.st) | ^( PAR e= expression ) -> par(expr=$e.st) | listOperation -> {$listOperation.st} | listLiteral -> {$listLiteral.st} | var -> {$var.st} | VAR_SOURCE -> getsourcevalue(var=$VAR_SOURCE.text) | CONSTANT -> {%{getConstantString($CONSTANT.text)}} | literal -> {$literal.st})
int alt14=14;
alt14 = dfa14.predict(input);
switch (alt14) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:222:19: ^( FUNC_CALL ID el= expressionList )
{
match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_expression1885);
match(input, Token.DOWN, null);
ID28=(CommonTree)match(input,ID,FOLLOW_ID_in_expression1887);
pushFollow(FOLLOW_expressionList_in_expression1891);
el=expressionList();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 223:17: -> call(name=getRuntimeExpr($ID.text, $el.argTypes)args=$el.templates)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", getRuntimeExpr((ID28!=null?ID28.getText():null), (el!=null?el.argTypes:null))).put("args", (el!=null?el.templates:null)));
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:225:19: ^( IF_CALL el= expressionList )
{
match(input,IF_CALL,FOLLOW_IF_CALL_in_expression1945);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expressionList_in_expression1949);
el=expressionList();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 225:48: -> ifcall(args=$el.templates)
{
retval.st = templateLib.getInstanceOf("ifcall",
new STAttrMap().put("args", (el!=null?el.templates:null)));
}
}
break;
case 3 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:227:19: imagePos
{
pushFollow(FOLLOW_imagePos_in_expression1980);
imagePos29=imagePos();
state._fsp--;
// TEMPLATE REWRITE
// 227:28: -> {$imagePos.st}
{
retval.st = (imagePos29!=null?imagePos29.st:null);
}
}
break;
case 4 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:229:19: binaryExpression
{
pushFollow(FOLLOW_binaryExpression_in_expression2005);
binaryExpression30=binaryExpression();
state._fsp--;
// TEMPLATE REWRITE
// 229:36: -> {$binaryExpression.st}
{
retval.st = (binaryExpression30!=null?binaryExpression30.st:null);
}
}
break;
case 5 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:231:19: ^( PREFIX NOT e= expression )
{
match(input,PREFIX,FOLLOW_PREFIX_in_expression2031);
match(input, Token.DOWN, null);
match(input,NOT,FOLLOW_NOT_in_expression2033);
pushFollow(FOLLOW_expression_in_expression2037);
e=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 232:17: -> call(name=getRuntimeExpr(\"NOT\", \"D\")args=$e.st)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", getRuntimeExpr("NOT", "D")).put("args", (e!=null?e.st:null)));
}
}
break;
case 6 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:234:19: ^( PREFIX prefixOp e= expression )
{
match(input,PREFIX,FOLLOW_PREFIX_in_expression2091);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_prefixOp_in_expression2093);
prefixOp31=prefixOp();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression2097);
e=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 234:51: -> preop(op=$prefixOp.stexpr=$e.st)
{
retval.st = templateLib.getInstanceOf("preop",
new STAttrMap().put("op", (prefixOp31!=null?prefixOp31.st:null)).put("expr", (e!=null?e.st:null)));
}
}
break;
case 7 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:236:19: ^( POSTFIX postfixOp e= expression )
{
match(input,POSTFIX,FOLLOW_POSTFIX_in_expression2134);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_postfixOp_in_expression2136);
postfixOp32=postfixOp();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression2140);
e=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 236:53: -> postop(op=$postfixOp.stexpr=$e.st)
{
retval.st = templateLib.getInstanceOf("postop",
new STAttrMap().put("op", (postfixOp32!=null?postfixOp32.st:null)).put("expr", (e!=null?e.st:null)));
}
}
break;
case 8 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:238:19: ^( PAR e= expression )
{
match(input,PAR,FOLLOW_PAR_in_expression2177);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_expression2181);
e=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 238:39: -> par(expr=$e.st)
{
retval.st = templateLib.getInstanceOf("par",
new STAttrMap().put("expr", (e!=null?e.st:null)));
}
}
break;
case 9 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:240:19: listOperation
{
pushFollow(FOLLOW_listOperation_in_expression2212);
listOperation33=listOperation();
state._fsp--;
// TEMPLATE REWRITE
// 240:33: -> {$listOperation.st}
{
retval.st = (listOperation33!=null?listOperation33.st:null);
}
}
break;
case 10 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:242:19: listLiteral
{
pushFollow(FOLLOW_listLiteral_in_expression2237);
listLiteral34=listLiteral();
state._fsp--;
// TEMPLATE REWRITE
// 242:31: -> {$listLiteral.st}
{
retval.st = (listLiteral34!=null?listLiteral34.st:null);
}
}
break;
case 11 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:244:19: var
{
pushFollow(FOLLOW_var_in_expression2262);
var35=var();
state._fsp--;
// TEMPLATE REWRITE
// 244:23: -> {$var.st}
{
retval.st = (var35!=null?var35.st:null);
}
}
break;
case 12 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:246:19: VAR_SOURCE
{
VAR_SOURCE36=(CommonTree)match(input,VAR_SOURCE,FOLLOW_VAR_SOURCE_in_expression2287);
// TEMPLATE REWRITE
// 246:30: -> getsourcevalue(var=$VAR_SOURCE.text)
{
retval.st = templateLib.getInstanceOf("getsourcevalue",
new STAttrMap().put("var", (VAR_SOURCE36!=null?VAR_SOURCE36.getText():null)));
}
}
break;
case 13 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:248:19: CONSTANT
{
CONSTANT37=(CommonTree)match(input,CONSTANT,FOLLOW_CONSTANT_in_expression2317);
// TEMPLATE REWRITE
// 248:28: -> {%{getConstantString($CONSTANT.text)}}
{
retval.st = new StringTemplate(templateLib,getConstantString((CONSTANT37!=null?CONSTANT37.getText():null)));
}
}
break;
case 14 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:250:19: literal
{
pushFollow(FOLLOW_literal_in_expression2342);
literal38=literal();
state._fsp--;
// TEMPLATE REWRITE
// 250:27: -> {$literal.st}
{
retval.st = (literal38!=null?literal38.st:null);
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "expression"
public static class listOperation_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "listOperation"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:254:1: listOperation : ^( APPEND VAR_LIST expression ) -> listappend(var=$VAR_LIST.textexpr=$expression.st);
public final RuntimeSourceGenerator.listOperation_return listOperation() throws RecognitionException {
RuntimeSourceGenerator.listOperation_return retval = new RuntimeSourceGenerator.listOperation_return();
retval.start = input.LT(1);
CommonTree VAR_LIST39=null;
RuntimeSourceGenerator.expression_return expression40 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:254:17: ( ^( APPEND VAR_LIST expression ) -> listappend(var=$VAR_LIST.textexpr=$expression.st))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:254:19: ^( APPEND VAR_LIST expression )
{
match(input,APPEND,FOLLOW_APPEND_in_listOperation2375);
match(input, Token.DOWN, null);
VAR_LIST39=(CommonTree)match(input,VAR_LIST,FOLLOW_VAR_LIST_in_listOperation2377);
pushFollow(FOLLOW_expression_in_listOperation2379);
expression40=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 255:17: -> listappend(var=$VAR_LIST.textexpr=$expression.st)
{
retval.st = templateLib.getInstanceOf("listappend",
new STAttrMap().put("var", (VAR_LIST39!=null?VAR_LIST39.getText():null)).put("expr", (expression40!=null?expression40.st:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "listOperation"
public static class listLiteral_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "listLiteral"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:259:1: listLiteral : ^( DECLARED_LIST e= expressionList ) -> listliteral(empty=$e.templates.isEmpty()exprs=$e.templates);
public final RuntimeSourceGenerator.listLiteral_return listLiteral() throws RecognitionException {
RuntimeSourceGenerator.listLiteral_return retval = new RuntimeSourceGenerator.listLiteral_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.expressionList_return e = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:259:17: ( ^( DECLARED_LIST e= expressionList ) -> listliteral(empty=$e.templates.isEmpty()exprs=$e.templates))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:259:19: ^( DECLARED_LIST e= expressionList )
{
match(input,DECLARED_LIST,FOLLOW_DECLARED_LIST_in_listLiteral2442);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expressionList_in_listLiteral2446);
e=expressionList();
state._fsp--;
match(input, Token.UP, null);
addImport("java.util.Arrays", "java.util.ArrayList");
// TEMPLATE REWRITE
// 261:17: -> listliteral(empty=$e.templates.isEmpty()exprs=$e.templates)
{
retval.st = templateLib.getInstanceOf("listliteral",
new STAttrMap().put("empty", (e!=null?e.templates:null).isEmpty()).put("exprs", (e!=null?e.templates:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "listLiteral"
public static class var_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "var"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:265:1: var : ( VAR_IMAGE_SCOPE | VAR_PIXEL_SCOPE | VAR_PROVIDED | VAR_LOOP | VAR_LIST );
public final RuntimeSourceGenerator.var_return var() throws RecognitionException {
RuntimeSourceGenerator.var_return retval = new RuntimeSourceGenerator.var_return();
retval.start = input.LT(1);
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:267:17: ( VAR_IMAGE_SCOPE | VAR_PIXEL_SCOPE | VAR_PROVIDED | VAR_LOOP | VAR_LIST )
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:
{
if ( (input.LA(1)>=VAR_IMAGE_SCOPE && input.LA(1)<=VAR_LIST) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.st = ((CommonTree)retval.start).getType() == VAR_LIST ? new StringTemplate(templateLib,"(List)" + ((CommonTree)retval.start).getText()) : new StringTemplate(templateLib,((CommonTree)retval.start).getText());
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "var"
public static class binaryExpression_return extends TreeRuleReturnScope {
public String src;
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "binaryExpression"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:275:1: binaryExpression returns [String src] : ( ^( POW x= expression y= expression ) -> pow(x=x.sty=y.st) | ^( OR e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( XOR e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( AND e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( LOGICALEQ e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( NE e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( GT e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( GE e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( LT e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( LE e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( arithmeticOp x= expression y= expression ) -> binaryexpr(lhs=x.stop=$arithmeticOp.strhs=y.st));
public final RuntimeSourceGenerator.binaryExpression_return binaryExpression() throws RecognitionException {
RuntimeSourceGenerator.binaryExpression_return retval = new RuntimeSourceGenerator.binaryExpression_return();
retval.start = input.LT(1);
List list_e=null;
RuntimeSourceGenerator.expression_return x = null;
RuntimeSourceGenerator.expression_return y = null;
RuntimeSourceGenerator.arithmeticOp_return arithmeticOp41 = null;
RuleReturnScope e = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:276:17: ( ^( POW x= expression y= expression ) -> pow(x=x.sty=y.st) | ^( OR e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( XOR e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( AND e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( LOGICALEQ e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( NE e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( GT e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( GE e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( LT e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( LE e+= expression e+= expression ) -> call(name=$srcargs=$e) | ^( arithmeticOp x= expression y= expression ) -> binaryexpr(lhs=x.stop=$arithmeticOp.strhs=y.st))
int alt15=11;
switch ( input.LA(1) ) {
case POW:
{
alt15=1;
}
break;
case OR:
{
alt15=2;
}
break;
case XOR:
{
alt15=3;
}
break;
case AND:
{
alt15=4;
}
break;
case LOGICALEQ:
{
alt15=5;
}
break;
case NE:
{
alt15=6;
}
break;
case GT:
{
alt15=7;
}
break;
case GE:
{
alt15=8;
}
break;
case LT:
{
alt15=9;
}
break;
case LE:
{
alt15=10;
}
break;
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
{
alt15=11;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 15, 0, input);
throw nvae;
}
switch (alt15) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:276:19: ^( POW x= expression y= expression )
{
match(input,POW,FOLLOW_POW_in_binaryExpression2670);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression2674);
x=expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_binaryExpression2678);
y=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 276:52: -> pow(x=x.sty=y.st)
{
retval.st = templateLib.getInstanceOf("pow",
new STAttrMap().put("x", x.st).put("y", y.st));
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:278:19: ^( OR e+= expression e+= expression )
{
match(input,OR,FOLLOW_OR_in_binaryExpression2715);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression2719);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression2723);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("OR", "D", "D");
// TEMPLATE REWRITE
// 279:60: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 3 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:281:19: ^( XOR e+= expression e+= expression )
{
match(input,XOR,FOLLOW_XOR_in_binaryExpression2779);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression2783);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression2787);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("XOR", "D", "D");
// TEMPLATE REWRITE
// 282:61: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 4 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:284:19: ^( AND e+= expression e+= expression )
{
match(input,AND,FOLLOW_AND_in_binaryExpression2843);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression2847);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression2851);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("AND", "D", "D");
// TEMPLATE REWRITE
// 285:61: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 5 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:287:19: ^( LOGICALEQ e+= expression e+= expression )
{
match(input,LOGICALEQ,FOLLOW_LOGICALEQ_in_binaryExpression2907);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression2911);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression2915);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("EQ", "D", "D");
// TEMPLATE REWRITE
// 288:60: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 6 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:290:19: ^( NE e+= expression e+= expression )
{
match(input,NE,FOLLOW_NE_in_binaryExpression2971);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression2975);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression2979);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("NE", "D", "D");
// TEMPLATE REWRITE
// 291:60: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 7 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:293:19: ^( GT e+= expression e+= expression )
{
match(input,GT,FOLLOW_GT_in_binaryExpression3035);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression3039);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression3043);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("GT", "D", "D");
// TEMPLATE REWRITE
// 294:60: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 8 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:296:19: ^( GE e+= expression e+= expression )
{
match(input,GE,FOLLOW_GE_in_binaryExpression3099);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression3103);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression3107);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("GE", "D", "D");
// TEMPLATE REWRITE
// 297:60: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 9 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:299:19: ^( LT e+= expression e+= expression )
{
match(input,LT,FOLLOW_LT_in_binaryExpression3163);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression3167);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression3171);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("LT", "D", "D");
// TEMPLATE REWRITE
// 300:60: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 10 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:302:19: ^( LE e+= expression e+= expression )
{
match(input,LE,FOLLOW_LE_in_binaryExpression3227);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression3231);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
pushFollow(FOLLOW_expression_in_binaryExpression3235);
e=expression();
state._fsp--;
if (list_e==null) list_e=new ArrayList();
list_e.add(e.getTemplate());
match(input, Token.UP, null);
retval.src = getRuntimeExpr("LE", "D", "D");
// TEMPLATE REWRITE
// 303:60: -> call(name=$srcargs=$e)
{
retval.st = templateLib.getInstanceOf("call",
new STAttrMap().put("name", retval.src).put("args", list_e));
}
}
break;
case 11 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:305:19: ^( arithmeticOp x= expression y= expression )
{
pushFollow(FOLLOW_arithmeticOp_in_binaryExpression3291);
arithmeticOp41=arithmeticOp();
state._fsp--;
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_binaryExpression3295);
x=expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_binaryExpression3299);
y=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 306:17: -> binaryexpr(lhs=x.stop=$arithmeticOp.strhs=y.st)
{
retval.st = templateLib.getInstanceOf("binaryexpr",
new STAttrMap().put("lhs", x.st).put("op", (arithmeticOp41!=null?arithmeticOp41.st:null)).put("rhs", y.st));
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "binaryExpression"
public static class assignmentOp_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "assignmentOp"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:310:1: assignmentOp : ( EQ | TIMESEQ | DIVEQ | MODEQ | PLUSEQ | MINUSEQ );
public final RuntimeSourceGenerator.assignmentOp_return assignmentOp() throws RecognitionException {
RuntimeSourceGenerator.assignmentOp_return retval = new RuntimeSourceGenerator.assignmentOp_return();
retval.start = input.LT(1);
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:312:17: ( EQ | TIMESEQ | DIVEQ | MODEQ | PLUSEQ | MINUSEQ )
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:
{
if ( input.LA(1)==EQ||(input.LA(1)>=TIMESEQ && input.LA(1)<=MINUSEQ) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.st = new StringTemplate(templateLib,((CommonTree)retval.start).getText());
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "assignmentOp"
public static class arithmeticOp_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "arithmeticOp"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:321:1: arithmeticOp : ( TIMES | DIV | MOD | PLUS | MINUS );
public final RuntimeSourceGenerator.arithmeticOp_return arithmeticOp() throws RecognitionException {
RuntimeSourceGenerator.arithmeticOp_return retval = new RuntimeSourceGenerator.arithmeticOp_return();
retval.start = input.LT(1);
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:323:17: ( TIMES | DIV | MOD | PLUS | MINUS )
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:
{
if ( (input.LA(1)>=PLUS && input.LA(1)<=MOD) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
retval.st = new StringTemplate(templateLib,((CommonTree)retval.start).getText());
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "arithmeticOp"
public static class literal_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "literal"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:331:1: literal : ( INT_LITERAL -> {%{$INT_LITERAL.text + \".0\"}} | FLOAT_LITERAL -> {%{$FLOAT_LITERAL.text}});
public final RuntimeSourceGenerator.literal_return literal() throws RecognitionException {
RuntimeSourceGenerator.literal_return retval = new RuntimeSourceGenerator.literal_return();
retval.start = input.LT(1);
CommonTree INT_LITERAL42=null;
CommonTree FLOAT_LITERAL43=null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:331:17: ( INT_LITERAL -> {%{$INT_LITERAL.text + \".0\"}} | FLOAT_LITERAL -> {%{$FLOAT_LITERAL.text}})
int alt16=2;
switch ( input.LA(1) ) {
case INT_LITERAL:
{
alt16=1;
}
break;
case FLOAT_LITERAL:
{
alt16=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 16, 0, input);
throw nvae;
}
switch (alt16) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:331:19: INT_LITERAL
{
INT_LITERAL42=(CommonTree)match(input,INT_LITERAL,FOLLOW_INT_LITERAL_in_literal3644);
// TEMPLATE REWRITE
// 331:31: -> {%{$INT_LITERAL.text + \".0\"}}
{
retval.st = new StringTemplate(templateLib,(INT_LITERAL42!=null?INT_LITERAL42.getText():null) + ".0");
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:332:19: FLOAT_LITERAL
{
FLOAT_LITERAL43=(CommonTree)match(input,FLOAT_LITERAL,FOLLOW_FLOAT_LITERAL_in_literal3668);
// TEMPLATE REWRITE
// 332:33: -> {%{$FLOAT_LITERAL.text}}
{
retval.st = new StringTemplate(templateLib,(FLOAT_LITERAL43!=null?FLOAT_LITERAL43.getText():null));
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "literal"
public static class imagePos_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "imagePos"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:336:1: imagePos : ^( IMAGE_POS VAR_SOURCE (b= bandSpecifier )? (p= pixelSpecifier )? ) -> getsourcevalue(var=$VAR_SOURCE.textpixel=$p.stband=$b.st);
public final RuntimeSourceGenerator.imagePos_return imagePos() throws RecognitionException {
RuntimeSourceGenerator.imagePos_return retval = new RuntimeSourceGenerator.imagePos_return();
retval.start = input.LT(1);
CommonTree VAR_SOURCE44=null;
RuntimeSourceGenerator.bandSpecifier_return b = null;
RuntimeSourceGenerator.pixelSpecifier_return p = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:336:17: ( ^( IMAGE_POS VAR_SOURCE (b= bandSpecifier )? (p= pixelSpecifier )? ) -> getsourcevalue(var=$VAR_SOURCE.textpixel=$p.stband=$b.st))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:336:19: ^( IMAGE_POS VAR_SOURCE (b= bandSpecifier )? (p= pixelSpecifier )? )
{
match(input,IMAGE_POS,FOLLOW_IMAGE_POS_in_imagePos3706);
match(input, Token.DOWN, null);
VAR_SOURCE44=(CommonTree)match(input,VAR_SOURCE,FOLLOW_VAR_SOURCE_in_imagePos3708);
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:336:43: (b= bandSpecifier )?
int alt17=2;
switch ( input.LA(1) ) {
case BAND_REF:
{
alt17=1;
}
break;
}
switch (alt17) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:336:43: b= bandSpecifier
{
pushFollow(FOLLOW_bandSpecifier_in_imagePos3712);
b=bandSpecifier();
state._fsp--;
}
break;
}
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:336:60: (p= pixelSpecifier )?
int alt18=2;
switch ( input.LA(1) ) {
case PIXEL_REF:
{
alt18=1;
}
break;
}
switch (alt18) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:336:60: p= pixelSpecifier
{
pushFollow(FOLLOW_pixelSpecifier_in_imagePos3717);
p=pixelSpecifier();
state._fsp--;
}
break;
}
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 337:17: -> getsourcevalue(var=$VAR_SOURCE.textpixel=$p.stband=$b.st)
{
retval.st = templateLib.getInstanceOf("getsourcevalue",
new STAttrMap().put("var", (VAR_SOURCE44!=null?VAR_SOURCE44.getText():null)).put("pixel", (p!=null?p.st:null)).put("band", (b!=null?b.st:null)));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "imagePos"
public static class bandSpecifier_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "bandSpecifier"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:341:1: bandSpecifier : ^( BAND_REF expression ) -> {$expression.st};
public final RuntimeSourceGenerator.bandSpecifier_return bandSpecifier() throws RecognitionException {
RuntimeSourceGenerator.bandSpecifier_return retval = new RuntimeSourceGenerator.bandSpecifier_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.expression_return expression45 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:341:17: ( ^( BAND_REF expression ) -> {$expression.st})
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:341:19: ^( BAND_REF expression )
{
match(input,BAND_REF,FOLLOW_BAND_REF_in_bandSpecifier3783);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_bandSpecifier3785);
expression45=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 341:42: -> {$expression.st}
{
retval.st = (expression45!=null?expression45.st:null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "bandSpecifier"
public static class pixelSpecifier_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "pixelSpecifier"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:345:1: pixelSpecifier : ^( PIXEL_REF xpos= pixelPos[\"_x\"] ypos= pixelPos[\"_y\"] ) -> pixel(x=xpos.sty=ypos.st);
public final RuntimeSourceGenerator.pixelSpecifier_return pixelSpecifier() throws RecognitionException {
RuntimeSourceGenerator.pixelSpecifier_return retval = new RuntimeSourceGenerator.pixelSpecifier_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.pixelPos_return xpos = null;
RuntimeSourceGenerator.pixelPos_return ypos = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:345:17: ( ^( PIXEL_REF xpos= pixelPos[\"_x\"] ypos= pixelPos[\"_y\"] ) -> pixel(x=xpos.sty=ypos.st))
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:345:19: ^( PIXEL_REF xpos= pixelPos[\"_x\"] ypos= pixelPos[\"_y\"] )
{
match(input,PIXEL_REF,FOLLOW_PIXEL_REF_in_pixelSpecifier3818);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_pixelPos_in_pixelSpecifier3822);
xpos=pixelPos("_x");
state._fsp--;
pushFollow(FOLLOW_pixelPos_in_pixelSpecifier3827);
ypos=pixelPos("_y");
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 345:72: -> pixel(x=xpos.sty=ypos.st)
{
retval.st = templateLib.getInstanceOf("pixel",
new STAttrMap().put("x", xpos.st).put("y", ypos.st));
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "pixelSpecifier"
public static class pixelPos_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "pixelPos"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:349:1: pixelPos[String var] : ( ^( ABS_POS expression ) -> {$expression.st} | ^( REL_POS expression ) -> binaryexpr(lhs=$varop=%{\"+\"}rhs=$expression.st));
public final RuntimeSourceGenerator.pixelPos_return pixelPos(String var) throws RecognitionException {
RuntimeSourceGenerator.pixelPos_return retval = new RuntimeSourceGenerator.pixelPos_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.expression_return expression46 = null;
RuntimeSourceGenerator.expression_return expression47 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:350:17: ( ^( ABS_POS expression ) -> {$expression.st} | ^( REL_POS expression ) -> binaryexpr(lhs=$varop=%{\"+\"}rhs=$expression.st))
int alt19=2;
switch ( input.LA(1) ) {
case ABS_POS:
{
alt19=1;
}
break;
case REL_POS:
{
alt19=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 19, 0, input);
throw nvae;
}
switch (alt19) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:350:19: ^( ABS_POS expression )
{
match(input,ABS_POS,FOLLOW_ABS_POS_in_pixelPos3887);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_pixelPos3889);
expression46=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 350:41: -> {$expression.st}
{
retval.st = (expression46!=null?expression46.st:null);
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:351:19: ^( REL_POS expression )
{
match(input,REL_POS,FOLLOW_REL_POS_in_pixelPos3915);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_pixelPos3917);
expression47=expression();
state._fsp--;
match(input, Token.UP, null);
// TEMPLATE REWRITE
// 351:41: -> binaryexpr(lhs=$varop=%{\"+\"}rhs=$expression.st)
{
retval.st = templateLib.getInstanceOf("binaryexpr",
new STAttrMap().put("lhs", var).put("op", new StringTemplate(templateLib,"+")).put("rhs", (expression47!=null?expression47.st:null)));
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "pixelPos"
public static class prefixOp_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "prefixOp"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:355:1: prefixOp : ( PLUS -> {%{\"+\"}} | MINUS -> {%{\"-\"}} | incdecOp -> {$incdecOp.st});
public final RuntimeSourceGenerator.prefixOp_return prefixOp() throws RecognitionException {
RuntimeSourceGenerator.prefixOp_return retval = new RuntimeSourceGenerator.prefixOp_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.incdecOp_return incdecOp48 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:355:17: ( PLUS -> {%{\"+\"}} | MINUS -> {%{\"-\"}} | incdecOp -> {$incdecOp.st})
int alt20=3;
switch ( input.LA(1) ) {
case PLUS:
{
alt20=1;
}
break;
case MINUS:
{
alt20=2;
}
break;
case INCR:
case DECR:
{
alt20=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 20, 0, input);
throw nvae;
}
switch (alt20) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:355:19: PLUS
{
match(input,PLUS,FOLLOW_PLUS_in_prefixOp3970);
// TEMPLATE REWRITE
// 355:24: -> {%{\"+\"}}
{
retval.st = new StringTemplate(templateLib,"+");
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:356:19: MINUS
{
match(input,MINUS,FOLLOW_MINUS_in_prefixOp3994);
// TEMPLATE REWRITE
// 356:25: -> {%{\"-\"}}
{
retval.st = new StringTemplate(templateLib,"-");
}
}
break;
case 3 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:357:19: incdecOp
{
pushFollow(FOLLOW_incdecOp_in_prefixOp4018);
incdecOp48=incdecOp();
state._fsp--;
// TEMPLATE REWRITE
// 357:29: -> {$incdecOp.st}
{
retval.st = (incdecOp48!=null?incdecOp48.st:null);
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "prefixOp"
public static class postfixOp_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "postfixOp"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:361:1: postfixOp : incdecOp -> {$incdecOp.st};
public final RuntimeSourceGenerator.postfixOp_return postfixOp() throws RecognitionException {
RuntimeSourceGenerator.postfixOp_return retval = new RuntimeSourceGenerator.postfixOp_return();
retval.start = input.LT(1);
RuntimeSourceGenerator.incdecOp_return incdecOp49 = null;
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:361:17: ( incdecOp -> {$incdecOp.st})
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:361:19: incdecOp
{
pushFollow(FOLLOW_incdecOp_in_postfixOp4055);
incdecOp49=incdecOp();
state._fsp--;
// TEMPLATE REWRITE
// 361:28: -> {$incdecOp.st}
{
retval.st = (incdecOp49!=null?incdecOp49.st:null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "postfixOp"
public static class incdecOp_return extends TreeRuleReturnScope {
public StringTemplate st;
public Object getTemplate() { return st; }
public String toString() { return st==null?null:st.toString(); }
};
// $ANTLR start "incdecOp"
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:365:1: incdecOp : ( INCR -> {%{\"++\"}} | DECR -> {%{\"--\"}});
public final RuntimeSourceGenerator.incdecOp_return incdecOp() throws RecognitionException {
RuntimeSourceGenerator.incdecOp_return retval = new RuntimeSourceGenerator.incdecOp_return();
retval.start = input.LT(1);
try {
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:365:17: ( INCR -> {%{\"++\"}} | DECR -> {%{\"--\"}})
int alt21=2;
switch ( input.LA(1) ) {
case INCR:
{
alt21=1;
}
break;
case DECR:
{
alt21=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 21, 0, input);
throw nvae;
}
switch (alt21) {
case 1 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:365:19: INCR
{
match(input,INCR,FOLLOW_INCR_in_incdecOp4092);
// TEMPLATE REWRITE
// 365:24: -> {%{\"++\"}}
{
retval.st = new StringTemplate(templateLib,"++");
}
}
break;
case 2 :
// jaitools/jiffle/parser/RuntimeSourceGenerator.g:366:19: DECR
{
match(input,DECR,FOLLOW_DECR_in_incdecOp4116);
// TEMPLATE REWRITE
// 366:24: -> {%{\"--\"}}
{
retval.st = new StringTemplate(templateLib,"--");
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "incdecOp"
// Delegated rules
protected DFA14 dfa14 = new DFA14(this);
static final String DFA14_eotS =
"\21\uffff";
static final String DFA14_eofS =
"\21\uffff";
static final String DFA14_minS =
"\1\7\4\uffff\1\2\10\uffff\1\77\2\uffff";
static final String DFA14_maxS =
"\1\114\4\uffff\1\2\10\uffff\1\106\2\uffff";
static final String DFA14_acceptS =
"\1\uffff\1\1\1\2\1\3\1\4\1\uffff\1\7\1\10\1\11\1\12\1\13\1\14\1"+
"\15\1\16\1\uffff\1\5\1\6";
static final String DFA14_specialS =
"\21\uffff}>";
static final String[] DFA14_transitionS = {
"\1\11\1\7\1\1\1\2\1\uffff\1\3\4\uffff\1\5\1\6\1\uffff\1\14\2"+
"\uffff\1\13\5\12\22\uffff\1\10\6\uffff\16\4\3\uffff\1\4\3\uffff"+
"\2\15",
"",
"",
"",
"",
"\1\16",
"",
"",
"",
"",
"",
"",
"",
"",
"\2\20\3\uffff\1\17\2\20",
"",
""
};
static final short[] DFA14_eot = DFA.unpackEncodedString(DFA14_eotS);
static final short[] DFA14_eof = DFA.unpackEncodedString(DFA14_eofS);
static final char[] DFA14_min = DFA.unpackEncodedStringToUnsignedChars(DFA14_minS);
static final char[] DFA14_max = DFA.unpackEncodedStringToUnsignedChars(DFA14_maxS);
static final short[] DFA14_accept = DFA.unpackEncodedString(DFA14_acceptS);
static final short[] DFA14_special = DFA.unpackEncodedString(DFA14_specialS);
static final short[][] DFA14_transition;
static {
int numStates = DFA14_transitionS.length;
DFA14_transition = new short[numStates][];
for (int i=0; i call(name=getRuntimeExpr($ID.text, $el.argTypes)args=$el.templates) | ^( IF_CALL el= expressionList ) -> ifcall(args=$el.templates) | imagePos -> {$imagePos.st} | binaryExpression -> {$binaryExpression.st} | ^( PREFIX NOT e= expression ) -> call(name=getRuntimeExpr(\"NOT\", \"D\")args=$e.st) | ^( PREFIX prefixOp e= expression ) -> preop(op=$prefixOp.stexpr=$e.st) | ^( POSTFIX postfixOp e= expression ) -> postop(op=$postfixOp.stexpr=$e.st) | ^( PAR e= expression ) -> par(expr=$e.st) | listOperation -> {$listOperation.st} | listLiteral -> {$listLiteral.st} | var -> {$var.st} | VAR_SOURCE -> getsourcevalue(var=$VAR_SOURCE.text) | CONSTANT -> {%{getConstantString($CONSTANT.text)}} | literal -> {$literal.st});";
}
}
public static final BitSet FOLLOW_jiffleOption_in_generate105 = new BitSet(new long[]{0xFFDF87041FB61FB0L,0x000000000000188FL});
public static final BitSet FOLLOW_varDeclaration_in_generate110 = new BitSet(new long[]{0xFFDF87041FB61FA0L,0x000000000000188FL});
public static final BitSet FOLLOW_statement_in_generate115 = new BitSet(new long[]{0xFFDF87041FB61FA2L,0x000000000000188FL});
public static final BitSet FOLLOW_JIFFLE_OPTION_in_jiffleOption258 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_jiffleOption260 = new BitSet(new long[]{0xFFDF87061FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_optionValue_in_jiffleOption262 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_ID_in_optionValue329 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_optionValue351 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONSTANT_in_optionValue373 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMAGE_SCOPE_VAR_DECL_in_varDeclaration403 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_VAR_IMAGE_SCOPE_in_varDeclaration405 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_varDeclaration409 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_BLOCK_in_block521 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_blockStatement_in_block525 = new BitSet(new long[]{0xFFDF87241FB61FA8L,0x000000000000188FL});
public static final BitSet FOLLOW_statement_in_blockStatement579 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BREAKIF_in_blockStatement604 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_blockStatement606 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_simpleStatement_in_statement648 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_block_in_statement677 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_imageWrite_in_simpleStatement707 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_scalarAssignment_in_simpleStatement731 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_listAssignment_in_simpleStatement755 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_loop_in_simpleStatement779 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_simpleStatement803 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMAGE_WRITE_in_imageWrite839 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_VAR_DEST_in_imageWrite841 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_imageWrite843 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_EXPR_LIST_in_expressionList926 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expressionList929 = new BitSet(new long[]{0xFFDF87041FB61788L,0x000000000000188FL});
public static final BitSet FOLLOW_assignmentOp_in_scalarAssignment1001 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_scalar_in_scalarAssignment1005 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_scalarAssignment1007 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_EQ_in_listAssignment1090 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_VAR_LIST_in_listAssignment1092 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_listAssignment1096 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_VAR_IMAGE_SCOPE_in_scalar1208 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_PIXEL_SCOPE_in_scalar1229 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_conditionalLoop_in_loop1285 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_foreachLoop_in_loop1309 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_conditionalLoop1356 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_conditionalLoop1360 = new BitSet(new long[]{0xFFDF87041FB61FA0L,0x000000000000188FL});
public static final BitSet FOLLOW_statement_in_conditionalLoop1364 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_UNTIL_in_conditionalLoop1400 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_conditionalLoop1404 = new BitSet(new long[]{0xFFDF87041FB61FA0L,0x000000000000188FL});
public static final BitSet FOLLOW_statement_in_conditionalLoop1408 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_FOREACH_in_foreachLoop1475 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_foreachLoop1477 = new BitSet(new long[]{0x0000000000000080L});
public static final BitSet FOLLOW_DECLARED_LIST_in_foreachLoop1523 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expressionList_in_foreachLoop1527 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_statement_in_foreachLoop1532 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_FOREACH_in_foreachLoop1596 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_foreachLoop1598 = new BitSet(new long[]{0x0000000010000000L});
public static final BitSet FOLLOW_VAR_LIST_in_foreachLoop1643 = new BitSet(new long[]{0xFFDF87041FB61FA0L,0x000000000000188FL});
public static final BitSet FOLLOW_statement_in_foreachLoop1647 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_FOREACH_in_foreachLoop1745 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_foreachLoop1747 = new BitSet(new long[]{0x0000000000080000L});
public static final BitSet FOLLOW_SEQUENCE_in_foreachLoop1793 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_foreachLoop1797 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_foreachLoop1801 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_statement_in_foreachLoop1806 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_FUNC_CALL_in_expression1885 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_expression1887 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_expressionList_in_expression1891 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_IF_CALL_in_expression1945 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expressionList_in_expression1949 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_imagePos_in_expression1980 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_binaryExpression_in_expression2005 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PREFIX_in_expression2031 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_NOT_in_expression2033 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_expression2037 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_PREFIX_in_expression2091 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_prefixOp_in_expression2093 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_expression2097 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_POSTFIX_in_expression2134 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_postfixOp_in_expression2136 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_expression2140 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_PAR_in_expression2177 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expression2181 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_listOperation_in_expression2212 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_listLiteral_in_expression2237 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_var_in_expression2262 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_SOURCE_in_expression2287 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONSTANT_in_expression2317 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_expression2342 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_APPEND_in_listOperation2375 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_VAR_LIST_in_listOperation2377 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_listOperation2379 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_DECLARED_LIST_in_listLiteral2442 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expressionList_in_listLiteral2446 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_set_in_var0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_POW_in_binaryExpression2670 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression2674 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression2678 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_OR_in_binaryExpression2715 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression2719 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression2723 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_XOR_in_binaryExpression2779 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression2783 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression2787 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_AND_in_binaryExpression2843 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression2847 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression2851 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_LOGICALEQ_in_binaryExpression2907 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression2911 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression2915 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_NE_in_binaryExpression2971 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression2975 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression2979 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_GT_in_binaryExpression3035 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression3039 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression3043 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_GE_in_binaryExpression3099 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression3103 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression3107 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_LT_in_binaryExpression3163 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression3167 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression3171 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_LE_in_binaryExpression3227 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression3231 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression3235 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_arithmeticOp_in_binaryExpression3291 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_binaryExpression3295 = new BitSet(new long[]{0xFFDF87041FB61780L,0x000000000000188FL});
public static final BitSet FOLLOW_expression_in_binaryExpression3299 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_set_in_assignmentOp0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_arithmeticOp0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INT_LITERAL_in_literal3644 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FLOAT_LITERAL_in_literal3668 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_IMAGE_POS_in_imagePos3706 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_VAR_SOURCE_in_imagePos3708 = new BitSet(new long[]{0x0000000000006008L});
public static final BitSet FOLLOW_bandSpecifier_in_imagePos3712 = new BitSet(new long[]{0x0000000000004008L});
public static final BitSet FOLLOW_pixelSpecifier_in_imagePos3717 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_BAND_REF_in_bandSpecifier3783 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_bandSpecifier3785 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_PIXEL_REF_in_pixelSpecifier3818 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_pixelPos_in_pixelSpecifier3822 = new BitSet(new long[]{0x0000000000018000L});
public static final BitSet FOLLOW_pixelPos_in_pixelSpecifier3827 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_ABS_POS_in_pixelPos3887 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_pixelPos3889 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_REL_POS_in_pixelPos3915 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_pixelPos3917 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_PLUS_in_prefixOp3970 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_prefixOp3994 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_incdecOp_in_prefixOp4018 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_incdecOp_in_postfixOp4055 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_INCR_in_incdecOp4092 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_DECR_in_incdecOp4116 = new BitSet(new long[]{0x0000000000000002L});
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy