
jaitools.jiffle.parser.CheckAssignments Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jt-jiffle Show documentation
Show all versions of jt-jiffle Show documentation
Jiffle is a raster algebra language that can be used to
create new images from logical and mathematical expressions involving
source images and user defined variables. It is intended to let users
concentrate on algorithms rather than tedious boiler-plate code.
The newest version!
// $ANTLR 3.3 Nov 30, 2010 12:46:29 jaitools/jiffle/parser/CheckAssignments.g 2011-03-08 17:37:56
package jaitools.jiffle.parser;
import java.util.Set;
import jaitools.CollectionFactory;
import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
/**
* Checks for valid use of image variables.
*
* @author Michael Bedward
*/
public class CheckAssignments extends TreeParser {
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 CheckAssignments(TreeNodeStream input) {
this(input, new RecognizerSharedState());
}
public CheckAssignments(TreeNodeStream input, RecognizerSharedState state) {
super(input, state);
}
public String[] getTokenNames() { return CheckAssignments.tokenNames; }
public String getGrammarFileName() { return "jaitools/jiffle/parser/CheckAssignments.g"; }
private MessageTable msgTable;
private SymbolScopeStack varScope;
public CheckAssignments(TreeNodeStream input, MessageTable msgTable) {
this(input);
if (msgTable == null) {
throw new IllegalArgumentException( "msgTable should not be null" );
}
this.msgTable = msgTable;
varScope = new SymbolScopeStack();
}
// $ANTLR start "start"
// jaitools/jiffle/parser/CheckAssignments.g:59:1: start : ( jiffleOption )* ( varDeclaration )* ( statement )+ ;
public final void start() throws RecognitionException {
varScope.addLevel("top");
try {
// jaitools/jiffle/parser/CheckAssignments.g:62:17: ( ( jiffleOption )* ( varDeclaration )* ( statement )+ )
// jaitools/jiffle/parser/CheckAssignments.g:62:19: ( jiffleOption )* ( varDeclaration )* ( statement )+
{
// jaitools/jiffle/parser/CheckAssignments.g:62:19: ( jiffleOption )*
loop1:
do {
int alt1=2;
switch ( input.LA(1) ) {
case JIFFLE_OPTION:
{
alt1=1;
}
break;
}
switch (alt1) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:62:19: jiffleOption
{
pushFollow(FOLLOW_jiffleOption_in_start77);
jiffleOption();
state._fsp--;
}
break;
default :
break loop1;
}
} while (true);
// jaitools/jiffle/parser/CheckAssignments.g:62:33: ( 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/CheckAssignments.g:62:33: varDeclaration
{
pushFollow(FOLLOW_varDeclaration_in_start80);
varDeclaration();
state._fsp--;
}
break;
default :
break loop2;
}
} while (true);
// jaitools/jiffle/parser/CheckAssignments.g:62:49: ( 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_DEST:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
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 QUESTION:
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:
case TRUE:
case FALSE:
case NULL:
{
alt3=1;
}
break;
}
switch (alt3) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:62:49: statement
{
pushFollow(FOLLOW_statement_in_start83);
statement();
state._fsp--;
}
break;
default :
if ( cnt3 >= 1 ) break loop3;
EarlyExitException eee =
new EarlyExitException(3, input);
throw eee;
}
cnt3++;
} while (true);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "start"
// $ANTLR start "jiffleOption"
// jaitools/jiffle/parser/CheckAssignments.g:66:1: jiffleOption : ^( JIFFLE_OPTION ID . ) ;
public final void jiffleOption() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:66:17: ( ^( JIFFLE_OPTION ID . ) )
// jaitools/jiffle/parser/CheckAssignments.g:66:19: ^( JIFFLE_OPTION ID . )
{
match(input,JIFFLE_OPTION,FOLLOW_JIFFLE_OPTION_in_jiffleOption114);
match(input, Token.DOWN, null);
match(input,ID,FOLLOW_ID_in_jiffleOption116);
matchAny(input);
match(input, Token.UP, null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "jiffleOption"
// $ANTLR start "varDeclaration"
// jaitools/jiffle/parser/CheckAssignments.g:70:1: varDeclaration : ^( IMAGE_SCOPE_VAR_DECL VAR_IMAGE_SCOPE . ) ;
public final void varDeclaration() throws RecognitionException {
CommonTree VAR_IMAGE_SCOPE1=null;
try {
// jaitools/jiffle/parser/CheckAssignments.g:70:17: ( ^( IMAGE_SCOPE_VAR_DECL VAR_IMAGE_SCOPE . ) )
// jaitools/jiffle/parser/CheckAssignments.g:70:19: ^( IMAGE_SCOPE_VAR_DECL VAR_IMAGE_SCOPE . )
{
match(input,IMAGE_SCOPE_VAR_DECL,FOLLOW_IMAGE_SCOPE_VAR_DECL_in_varDeclaration147);
match(input, Token.DOWN, null);
VAR_IMAGE_SCOPE1=(CommonTree)match(input,VAR_IMAGE_SCOPE,FOLLOW_VAR_IMAGE_SCOPE_in_varDeclaration149);
matchAny(input);
match(input, Token.UP, null);
varScope.addSymbol((VAR_IMAGE_SCOPE1!=null?VAR_IMAGE_SCOPE1.getText():null), SymbolType.SCALAR, ScopeType.IMAGE);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "varDeclaration"
// $ANTLR start "block"
// jaitools/jiffle/parser/CheckAssignments.g:77:1: block : ^( BLOCK ( blockStatement )* ) ;
public final void block() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:77:17: ( ^( BLOCK ( blockStatement )* ) )
// jaitools/jiffle/parser/CheckAssignments.g:77:19: ^( BLOCK ( blockStatement )* )
{
match(input,BLOCK,FOLLOW_BLOCK_in_block207);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
// jaitools/jiffle/parser/CheckAssignments.g:77:27: ( blockStatement )*
loop4:
do {
int alt4=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_DEST:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
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 QUESTION:
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:
case TRUE:
case FALSE:
case NULL:
{
alt4=1;
}
break;
}
switch (alt4) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:77:27: blockStatement
{
pushFollow(FOLLOW_blockStatement_in_block209);
blockStatement();
state._fsp--;
}
break;
default :
break loop4;
}
} while (true);
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "block"
// $ANTLR start "blockStatement"
// jaitools/jiffle/parser/CheckAssignments.g:81:1: blockStatement : ( statement | ^( BREAKIF expression ) );
public final void blockStatement() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:81:17: ( statement | ^( BREAKIF expression ) )
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_DEST:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
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 QUESTION:
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:
case TRUE:
case FALSE:
case NULL:
{
alt5=1;
}
break;
case BREAKIF:
{
alt5=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 5, 0, input);
throw nvae;
}
switch (alt5) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:81:19: statement
{
pushFollow(FOLLOW_statement_in_blockStatement238);
statement();
state._fsp--;
}
break;
case 2 :
// jaitools/jiffle/parser/CheckAssignments.g:82:19: ^( BREAKIF expression )
{
match(input,BREAKIF,FOLLOW_BREAKIF_in_blockStatement259);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_blockStatement261);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "blockStatement"
// $ANTLR start "statement"
// jaitools/jiffle/parser/CheckAssignments.g:86:1: statement : ( block | assignmentExpression | ^( WHILE loopCondition statement ) | ^( UNTIL loopCondition statement ) | foreachLoop | expression );
public final void statement() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:86:17: ( block | assignmentExpression | ^( WHILE loopCondition statement ) | ^( UNTIL loopCondition statement ) | foreachLoop | expression )
int alt6=6;
switch ( input.LA(1) ) {
case BLOCK:
{
alt6=1;
}
break;
case EQ:
case TIMESEQ:
case DIVEQ:
case MODEQ:
case PLUSEQ:
case MINUSEQ:
{
alt6=2;
}
break;
case WHILE:
{
alt6=3;
}
break;
case UNTIL:
{
alt6=4;
}
break;
case FOREACH:
{
alt6=5;
}
break;
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_DEST:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_LOOP:
case VAR_LIST:
case APPEND:
case QUESTION:
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:
case TRUE:
case FALSE:
case NULL:
{
alt6=6;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 6, 0, input);
throw nvae;
}
switch (alt6) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:86:19: block
{
pushFollow(FOLLOW_block_in_statement294);
block();
state._fsp--;
}
break;
case 2 :
// jaitools/jiffle/parser/CheckAssignments.g:87:19: assignmentExpression
{
pushFollow(FOLLOW_assignmentExpression_in_statement314);
assignmentExpression();
state._fsp--;
}
break;
case 3 :
// jaitools/jiffle/parser/CheckAssignments.g:88:19: ^( WHILE loopCondition statement )
{
match(input,WHILE,FOLLOW_WHILE_in_statement335);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_loopCondition_in_statement337);
loopCondition();
state._fsp--;
pushFollow(FOLLOW_statement_in_statement339);
statement();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 4 :
// jaitools/jiffle/parser/CheckAssignments.g:89:19: ^( UNTIL loopCondition statement )
{
match(input,UNTIL,FOLLOW_UNTIL_in_statement361);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_loopCondition_in_statement363);
loopCondition();
state._fsp--;
pushFollow(FOLLOW_statement_in_statement365);
statement();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 5 :
// jaitools/jiffle/parser/CheckAssignments.g:90:19: foreachLoop
{
pushFollow(FOLLOW_foreachLoop_in_statement386);
foreachLoop();
state._fsp--;
}
break;
case 6 :
// jaitools/jiffle/parser/CheckAssignments.g:91:19: expression
{
pushFollow(FOLLOW_expression_in_statement406);
expression();
state._fsp--;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "statement"
// $ANTLR start "foreachLoop"
// jaitools/jiffle/parser/CheckAssignments.g:94:1: foreachLoop : ^( FOREACH ID loopSet statement ) ;
public final void foreachLoop() throws RecognitionException {
CommonTree ID2=null;
varScope.addLevel("foreach");
try {
// jaitools/jiffle/parser/CheckAssignments.g:101:17: ( ^( FOREACH ID loopSet statement ) )
// jaitools/jiffle/parser/CheckAssignments.g:101:19: ^( FOREACH ID loopSet statement )
{
match(input,FOREACH,FOLLOW_FOREACH_in_foreachLoop458);
match(input, Token.DOWN, null);
ID2=(CommonTree)match(input,ID,FOLLOW_ID_in_foreachLoop460);
varScope.addSymbol((ID2!=null?ID2.getText():null), SymbolType.LOOP_VAR, ScopeType.PIXEL);
pushFollow(FOLLOW_loopSet_in_foreachLoop464);
loopSet();
state._fsp--;
pushFollow(FOLLOW_statement_in_foreachLoop466);
statement();
state._fsp--;
match(input, Token.UP, null);
}
varScope.dropLevel();
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "foreachLoop"
// $ANTLR start "loopCondition"
// jaitools/jiffle/parser/CheckAssignments.g:105:1: loopCondition : expression ;
public final void loopCondition() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:105:17: ( expression )
// jaitools/jiffle/parser/CheckAssignments.g:105:19: expression
{
pushFollow(FOLLOW_expression_in_loopCondition495);
expression();
state._fsp--;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "loopCondition"
// $ANTLR start "loopSet"
// jaitools/jiffle/parser/CheckAssignments.g:109:1: loopSet : ( ^( SEQUENCE expression expression ) | listLiteral | VAR_LIST );
public final void loopSet() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:109:17: ( ^( SEQUENCE expression expression ) | listLiteral | VAR_LIST )
int alt7=3;
switch ( input.LA(1) ) {
case SEQUENCE:
{
alt7=1;
}
break;
case DECLARED_LIST:
{
alt7=2;
}
break;
case VAR_LIST:
{
alt7=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 7, 0, input);
throw nvae;
}
switch (alt7) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:109:19: ^( SEQUENCE expression expression )
{
match(input,SEQUENCE,FOLLOW_SEQUENCE_in_loopSet530);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_loopSet532);
expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_loopSet534);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 2 :
// jaitools/jiffle/parser/CheckAssignments.g:110:19: listLiteral
{
pushFollow(FOLLOW_listLiteral_in_loopSet555);
listLiteral();
state._fsp--;
}
break;
case 3 :
// jaitools/jiffle/parser/CheckAssignments.g:111:19: VAR_LIST
{
match(input,VAR_LIST,FOLLOW_VAR_LIST_in_loopSet575);
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "loopSet"
// $ANTLR start "expressionList"
// jaitools/jiffle/parser/CheckAssignments.g:115:1: expressionList : ^( EXPR_LIST ( expression )* ) ;
public final void expressionList() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:115:17: ( ^( EXPR_LIST ( expression )* ) )
// jaitools/jiffle/parser/CheckAssignments.g:115:19: ^( EXPR_LIST ( expression )* )
{
match(input,EXPR_LIST,FOLLOW_EXPR_LIST_in_expressionList603);
if ( input.LA(1)==Token.DOWN ) {
match(input, Token.DOWN, null);
// jaitools/jiffle/parser/CheckAssignments.g:115:31: ( expression )*
loop8:
do {
int alt8=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_DEST:
case VAR_SOURCE:
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_LOOP:
case VAR_LIST:
case APPEND:
case QUESTION:
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:
case TRUE:
case FALSE:
case NULL:
{
alt8=1;
}
break;
}
switch (alt8) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:115:31: expression
{
pushFollow(FOLLOW_expression_in_expressionList605);
expression();
state._fsp--;
}
break;
default :
break loop8;
}
} while (true);
match(input, Token.UP, null);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "expressionList"
// $ANTLR start "assignmentExpression"
// jaitools/jiffle/parser/CheckAssignments.g:119:1: assignmentExpression : ^( assignmentOp identifier expression ) ;
public final void assignmentExpression() throws RecognitionException {
CheckAssignments.identifier_return identifier3 = null;
CheckAssignments.assignmentOp_return assignmentOp4 = null;
try {
// jaitools/jiffle/parser/CheckAssignments.g:120:17: ( ^( assignmentOp identifier expression ) )
// jaitools/jiffle/parser/CheckAssignments.g:120:19: ^( assignmentOp identifier expression )
{
pushFollow(FOLLOW_assignmentOp_in_assignmentExpression650);
assignmentOp4=assignmentOp();
state._fsp--;
match(input, Token.DOWN, null);
pushFollow(FOLLOW_identifier_in_assignmentExpression652);
identifier3=identifier();
state._fsp--;
pushFollow(FOLLOW_expression_in_assignmentExpression654);
expression();
state._fsp--;
match(input, Token.UP, null);
String varName = (identifier3!=null?((CommonTree)identifier3.start):null).getText();
int idtype = (identifier3!=null?((CommonTree)identifier3.start):null).getType();
switch (idtype) {
case CONSTANT:
msgTable.add(varName, Message.CONSTANT_LHS);
break;
case VAR_SOURCE:
msgTable.add(varName, Message.ASSIGNMENT_TO_SRC_IMAGE);
break;
default:
if ((assignmentOp4!=null?((CommonTree)assignmentOp4.start):null).getType() == EQ) {
if (!varScope.isDefined(varName)) {
varScope.addSymbol(varName, SymbolType.SCALAR, ScopeType.PIXEL);
}
} else {
switch (idtype) {
case VAR_DEST:
msgTable.add(varName, Message.INVALID_ASSIGNMENT_OP_WITH_DEST_IMAGE);
break;
default:
if (!varScope.isDefined(varName)) {
msgTable.add(varName, Message.UNINIT_VAR);
}
}
}
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "assignmentExpression"
public static class assignmentOp_return extends TreeRuleReturnScope {
};
// $ANTLR start "assignmentOp"
// jaitools/jiffle/parser/CheckAssignments.g:156:1: assignmentOp : ( EQ | TIMESEQ | DIVEQ | MODEQ | PLUSEQ | MINUSEQ );
public final CheckAssignments.assignmentOp_return assignmentOp() throws RecognitionException {
CheckAssignments.assignmentOp_return retval = new CheckAssignments.assignmentOp_return();
retval.start = input.LT(1);
try {
// jaitools/jiffle/parser/CheckAssignments.g:156:17: ( EQ | TIMESEQ | DIVEQ | MODEQ | PLUSEQ | MINUSEQ )
// jaitools/jiffle/parser/CheckAssignments.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;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "assignmentOp"
public static class identifier_return extends TreeRuleReturnScope {
};
// $ANTLR start "identifier"
// jaitools/jiffle/parser/CheckAssignments.g:165:1: identifier : ( imageVar | userVar | CONSTANT );
public final CheckAssignments.identifier_return identifier() throws RecognitionException {
CheckAssignments.identifier_return retval = new CheckAssignments.identifier_return();
retval.start = input.LT(1);
try {
// jaitools/jiffle/parser/CheckAssignments.g:165:17: ( imageVar | userVar | CONSTANT )
int alt9=3;
switch ( input.LA(1) ) {
case VAR_DEST:
case VAR_SOURCE:
{
alt9=1;
}
break;
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_LOOP:
case VAR_LIST:
{
alt9=2;
}
break;
case CONSTANT:
{
alt9=3;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 9, 0, input);
throw nvae;
}
switch (alt9) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:165:19: imageVar
{
pushFollow(FOLLOW_imageVar_in_identifier833);
imageVar();
state._fsp--;
}
break;
case 2 :
// jaitools/jiffle/parser/CheckAssignments.g:166:19: userVar
{
pushFollow(FOLLOW_userVar_in_identifier853);
userVar();
state._fsp--;
}
break;
case 3 :
// jaitools/jiffle/parser/CheckAssignments.g:167:19: CONSTANT
{
match(input,CONSTANT,FOLLOW_CONSTANT_in_identifier873);
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "identifier"
// $ANTLR start "imageVar"
// jaitools/jiffle/parser/CheckAssignments.g:171:1: imageVar : ( VAR_SOURCE | VAR_DEST );
public final void imageVar() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:171:17: ( VAR_SOURCE | VAR_DEST )
// jaitools/jiffle/parser/CheckAssignments.g:
{
if ( (input.LA(1)>=VAR_DEST && input.LA(1)<=VAR_SOURCE) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "imageVar"
public static class userVar_return extends TreeRuleReturnScope {
};
// $ANTLR start "userVar"
// jaitools/jiffle/parser/CheckAssignments.g:175:1: userVar : ( VAR_IMAGE_SCOPE | VAR_PIXEL_SCOPE | VAR_LOOP | VAR_LIST );
public final CheckAssignments.userVar_return userVar() throws RecognitionException {
CheckAssignments.userVar_return retval = new CheckAssignments.userVar_return();
retval.start = input.LT(1);
try {
// jaitools/jiffle/parser/CheckAssignments.g:175:17: ( VAR_IMAGE_SCOPE | VAR_PIXEL_SCOPE | VAR_LOOP | VAR_LIST )
// jaitools/jiffle/parser/CheckAssignments.g:
{
if ( (input.LA(1)>=VAR_IMAGE_SCOPE && input.LA(1)<=VAR_PIXEL_SCOPE)||(input.LA(1)>=VAR_LOOP && input.LA(1)<=VAR_LIST) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return retval;
}
// $ANTLR end "userVar"
// $ANTLR start "expression"
// jaitools/jiffle/parser/CheckAssignments.g:182:1: expression : ( ^( FUNC_CALL ID expressionList ) | ^( IF_CALL expressionList ) | ^( QUESTION expression expression expression ) | ^( IMAGE_WRITE . expression ) | ^( IMAGE_POS . ( bandSpecifier )? ( pixelSpecifier )? ) | ^( logicalOp expression expression ) | ^( arithmeticOp expression expression ) | ^( POW expression expression ) | ^( PREFIX prefixOp expression ) | ^( POSTFIX incdecOp expression ) | ^( PAR expression ) | listOperation | listLiteral | literal | imageVar | CONSTANT | userVar );
public final void expression() throws RecognitionException {
CheckAssignments.userVar_return userVar5 = null;
try {
// jaitools/jiffle/parser/CheckAssignments.g:182:17: ( ^( FUNC_CALL ID expressionList ) | ^( IF_CALL expressionList ) | ^( QUESTION expression expression expression ) | ^( IMAGE_WRITE . expression ) | ^( IMAGE_POS . ( bandSpecifier )? ( pixelSpecifier )? ) | ^( logicalOp expression expression ) | ^( arithmeticOp expression expression ) | ^( POW expression expression ) | ^( PREFIX prefixOp expression ) | ^( POSTFIX incdecOp expression ) | ^( PAR expression ) | listOperation | listLiteral | literal | imageVar | CONSTANT | userVar )
int alt12=17;
switch ( input.LA(1) ) {
case FUNC_CALL:
{
alt12=1;
}
break;
case IF_CALL:
{
alt12=2;
}
break;
case QUESTION:
{
alt12=3;
}
break;
case IMAGE_WRITE:
{
alt12=4;
}
break;
case IMAGE_POS:
{
alt12=5;
}
break;
case OR:
case XOR:
case AND:
case LOGICALEQ:
case NE:
case GT:
case GE:
case LE:
case LT:
{
alt12=6;
}
break;
case PLUS:
case MINUS:
case TIMES:
case DIV:
case MOD:
{
alt12=7;
}
break;
case POW:
{
alt12=8;
}
break;
case PREFIX:
{
alt12=9;
}
break;
case POSTFIX:
{
alt12=10;
}
break;
case PAR:
{
alt12=11;
}
break;
case APPEND:
{
alt12=12;
}
break;
case DECLARED_LIST:
{
alt12=13;
}
break;
case INT_LITERAL:
case FLOAT_LITERAL:
case TRUE:
case FALSE:
case NULL:
{
alt12=14;
}
break;
case VAR_DEST:
case VAR_SOURCE:
{
alt12=15;
}
break;
case CONSTANT:
{
alt12=16;
}
break;
case VAR_IMAGE_SCOPE:
case VAR_PIXEL_SCOPE:
case VAR_LOOP:
case VAR_LIST:
{
alt12=17;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 12, 0, input);
throw nvae;
}
switch (alt12) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:182:19: ^( FUNC_CALL ID expressionList )
{
match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_expression1051);
match(input, Token.DOWN, null);
match(input,ID,FOLLOW_ID_in_expression1053);
pushFollow(FOLLOW_expressionList_in_expression1055);
expressionList();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 2 :
// jaitools/jiffle/parser/CheckAssignments.g:183:19: ^( IF_CALL expressionList )
{
match(input,IF_CALL,FOLLOW_IF_CALL_in_expression1077);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expressionList_in_expression1079);
expressionList();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 3 :
// jaitools/jiffle/parser/CheckAssignments.g:184:19: ^( QUESTION expression expression expression )
{
match(input,QUESTION,FOLLOW_QUESTION_in_expression1101);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_expression1103);
expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression1105);
expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression1107);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 4 :
// jaitools/jiffle/parser/CheckAssignments.g:185:19: ^( IMAGE_WRITE . expression )
{
match(input,IMAGE_WRITE,FOLLOW_IMAGE_WRITE_in_expression1129);
match(input, Token.DOWN, null);
matchAny(input);
pushFollow(FOLLOW_expression_in_expression1133);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 5 :
// jaitools/jiffle/parser/CheckAssignments.g:186:19: ^( IMAGE_POS . ( bandSpecifier )? ( pixelSpecifier )? )
{
match(input,IMAGE_POS,FOLLOW_IMAGE_POS_in_expression1155);
match(input, Token.DOWN, null);
matchAny(input);
// jaitools/jiffle/parser/CheckAssignments.g:186:33: ( bandSpecifier )?
int alt10=2;
switch ( input.LA(1) ) {
case BAND_REF:
{
alt10=1;
}
break;
}
switch (alt10) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:186:33: bandSpecifier
{
pushFollow(FOLLOW_bandSpecifier_in_expression1159);
bandSpecifier();
state._fsp--;
}
break;
}
// jaitools/jiffle/parser/CheckAssignments.g:186:48: ( pixelSpecifier )?
int alt11=2;
switch ( input.LA(1) ) {
case PIXEL_REF:
{
alt11=1;
}
break;
}
switch (alt11) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:186:48: pixelSpecifier
{
pushFollow(FOLLOW_pixelSpecifier_in_expression1162);
pixelSpecifier();
state._fsp--;
}
break;
}
match(input, Token.UP, null);
}
break;
case 6 :
// jaitools/jiffle/parser/CheckAssignments.g:187:19: ^( logicalOp expression expression )
{
pushFollow(FOLLOW_logicalOp_in_expression1185);
logicalOp();
state._fsp--;
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_expression1187);
expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression1189);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 7 :
// jaitools/jiffle/parser/CheckAssignments.g:188:19: ^( arithmeticOp expression expression )
{
pushFollow(FOLLOW_arithmeticOp_in_expression1211);
arithmeticOp();
state._fsp--;
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_expression1213);
expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression1215);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 8 :
// jaitools/jiffle/parser/CheckAssignments.g:189:19: ^( POW expression expression )
{
match(input,POW,FOLLOW_POW_in_expression1237);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_expression1239);
expression();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression1241);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 9 :
// jaitools/jiffle/parser/CheckAssignments.g:190:19: ^( PREFIX prefixOp expression )
{
match(input,PREFIX,FOLLOW_PREFIX_in_expression1263);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_prefixOp_in_expression1265);
prefixOp();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression1267);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 10 :
// jaitools/jiffle/parser/CheckAssignments.g:191:19: ^( POSTFIX incdecOp expression )
{
match(input,POSTFIX,FOLLOW_POSTFIX_in_expression1289);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_incdecOp_in_expression1291);
incdecOp();
state._fsp--;
pushFollow(FOLLOW_expression_in_expression1293);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 11 :
// jaitools/jiffle/parser/CheckAssignments.g:192:19: ^( PAR expression )
{
match(input,PAR,FOLLOW_PAR_in_expression1315);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_expression1317);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 12 :
// jaitools/jiffle/parser/CheckAssignments.g:193:19: listOperation
{
pushFollow(FOLLOW_listOperation_in_expression1338);
listOperation();
state._fsp--;
}
break;
case 13 :
// jaitools/jiffle/parser/CheckAssignments.g:194:19: listLiteral
{
pushFollow(FOLLOW_listLiteral_in_expression1358);
listLiteral();
state._fsp--;
}
break;
case 14 :
// jaitools/jiffle/parser/CheckAssignments.g:195:19: literal
{
pushFollow(FOLLOW_literal_in_expression1378);
literal();
state._fsp--;
}
break;
case 15 :
// jaitools/jiffle/parser/CheckAssignments.g:196:19: imageVar
{
pushFollow(FOLLOW_imageVar_in_expression1398);
imageVar();
state._fsp--;
}
break;
case 16 :
// jaitools/jiffle/parser/CheckAssignments.g:197:19: CONSTANT
{
match(input,CONSTANT,FOLLOW_CONSTANT_in_expression1418);
}
break;
case 17 :
// jaitools/jiffle/parser/CheckAssignments.g:199:19: userVar
{
pushFollow(FOLLOW_userVar_in_expression1439);
userVar5=userVar();
state._fsp--;
String varName = (userVar5!=null?((CommonTree)userVar5.start):null).getText();
int varType = (userVar5!=null?((CommonTree)userVar5.start):null).getType();
if (!varScope.isDefined(varName)) {
msgTable.add(varName, Message.UNINIT_VAR);
}
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "expression"
// $ANTLR start "listOperation"
// jaitools/jiffle/parser/CheckAssignments.g:210:1: listOperation : ^( APPEND VAR_LIST expression ) ;
public final void listOperation() throws RecognitionException {
CommonTree VAR_LIST6=null;
try {
// jaitools/jiffle/parser/CheckAssignments.g:210:17: ( ^( APPEND VAR_LIST expression ) )
// jaitools/jiffle/parser/CheckAssignments.g:210:19: ^( APPEND VAR_LIST expression )
{
match(input,APPEND,FOLLOW_APPEND_in_listOperation1486);
match(input, Token.DOWN, null);
VAR_LIST6=(CommonTree)match(input,VAR_LIST,FOLLOW_VAR_LIST_in_listOperation1488);
pushFollow(FOLLOW_expression_in_listOperation1490);
expression();
state._fsp--;
match(input, Token.UP, null);
if (!varScope.isDefined((VAR_LIST6!=null?VAR_LIST6.getText():null))) {
msgTable.add((VAR_LIST6!=null?VAR_LIST6.getText():null), Message.UNDECLARED_LIST_VAR);
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "listOperation"
// $ANTLR start "listLiteral"
// jaitools/jiffle/parser/CheckAssignments.g:219:1: listLiteral : ^( DECLARED_LIST expressionList ) ;
public final void listLiteral() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:219:17: ( ^( DECLARED_LIST expressionList ) )
// jaitools/jiffle/parser/CheckAssignments.g:219:19: ^( DECLARED_LIST expressionList )
{
match(input,DECLARED_LIST,FOLLOW_DECLARED_LIST_in_listLiteral1540);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expressionList_in_listLiteral1542);
expressionList();
state._fsp--;
match(input, Token.UP, null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "listLiteral"
// $ANTLR start "logicalOp"
// jaitools/jiffle/parser/CheckAssignments.g:223:1: logicalOp : ( OR | XOR | AND | LOGICALEQ | NE | GT | GE | LT | LE );
public final void logicalOp() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:223:17: ( OR | XOR | AND | LOGICALEQ | NE | GT | GE | LT | LE )
// jaitools/jiffle/parser/CheckAssignments.g:
{
if ( (input.LA(1)>=OR && input.LA(1)<=LT) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "logicalOp"
// $ANTLR start "arithmeticOp"
// jaitools/jiffle/parser/CheckAssignments.g:235:1: arithmeticOp : ( PLUS | MINUS | TIMES | DIV | MOD );
public final void arithmeticOp() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:235:17: ( PLUS | MINUS | TIMES | DIV | MOD )
// jaitools/jiffle/parser/CheckAssignments.g:
{
if ( (input.LA(1)>=PLUS && input.LA(1)<=MOD) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "arithmeticOp"
// $ANTLR start "prefixOp"
// jaitools/jiffle/parser/CheckAssignments.g:243:1: prefixOp : ( PLUS | MINUS | NOT | incdecOp );
public final void prefixOp() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:243:17: ( PLUS | MINUS | NOT | incdecOp )
int alt13=4;
switch ( input.LA(1) ) {
case PLUS:
{
alt13=1;
}
break;
case MINUS:
{
alt13=2;
}
break;
case NOT:
{
alt13=3;
}
break;
case INCR:
case DECR:
{
alt13=4;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 13, 0, input);
throw nvae;
}
switch (alt13) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:243:19: PLUS
{
match(input,PLUS,FOLLOW_PLUS_in_prefixOp1877);
}
break;
case 2 :
// jaitools/jiffle/parser/CheckAssignments.g:244:19: MINUS
{
match(input,MINUS,FOLLOW_MINUS_in_prefixOp1897);
}
break;
case 3 :
// jaitools/jiffle/parser/CheckAssignments.g:245:19: NOT
{
match(input,NOT,FOLLOW_NOT_in_prefixOp1917);
}
break;
case 4 :
// jaitools/jiffle/parser/CheckAssignments.g:246:19: incdecOp
{
pushFollow(FOLLOW_incdecOp_in_prefixOp1937);
incdecOp();
state._fsp--;
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "prefixOp"
// $ANTLR start "incdecOp"
// jaitools/jiffle/parser/CheckAssignments.g:250:1: incdecOp : ( INCR | DECR );
public final void incdecOp() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:250:17: ( INCR | DECR )
// jaitools/jiffle/parser/CheckAssignments.g:
{
if ( (input.LA(1)>=INCR && input.LA(1)<=DECR) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "incdecOp"
// $ANTLR start "pixelSpecifier"
// jaitools/jiffle/parser/CheckAssignments.g:255:1: pixelSpecifier : ^( PIXEL_REF pixelPos pixelPos ) ;
public final void pixelSpecifier() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:255:17: ( ^( PIXEL_REF pixelPos pixelPos ) )
// jaitools/jiffle/parser/CheckAssignments.g:255:19: ^( PIXEL_REF pixelPos pixelPos )
{
match(input,PIXEL_REF,FOLLOW_PIXEL_REF_in_pixelSpecifier2018);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_pixelPos_in_pixelSpecifier2020);
pixelPos();
state._fsp--;
pushFollow(FOLLOW_pixelPos_in_pixelSpecifier2022);
pixelPos();
state._fsp--;
match(input, Token.UP, null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "pixelSpecifier"
// $ANTLR start "bandSpecifier"
// jaitools/jiffle/parser/CheckAssignments.g:259:1: bandSpecifier : ^( BAND_REF expression ) ;
public final void bandSpecifier() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:259:17: ( ^( BAND_REF expression ) )
// jaitools/jiffle/parser/CheckAssignments.g:259:19: ^( BAND_REF expression )
{
match(input,BAND_REF,FOLLOW_BAND_REF_in_bandSpecifier2052);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_bandSpecifier2054);
expression();
state._fsp--;
match(input, Token.UP, null);
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "bandSpecifier"
// $ANTLR start "pixelPos"
// jaitools/jiffle/parser/CheckAssignments.g:263:1: pixelPos : ( ^( ABS_POS expression ) | ^( REL_POS expression ) );
public final void pixelPos() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:263:17: ( ^( ABS_POS expression ) | ^( REL_POS expression ) )
int alt14=2;
switch ( input.LA(1) ) {
case ABS_POS:
{
alt14=1;
}
break;
case REL_POS:
{
alt14=2;
}
break;
default:
NoViableAltException nvae =
new NoViableAltException("", 14, 0, input);
throw nvae;
}
switch (alt14) {
case 1 :
// jaitools/jiffle/parser/CheckAssignments.g:263:19: ^( ABS_POS expression )
{
match(input,ABS_POS,FOLLOW_ABS_POS_in_pixelPos2089);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_pixelPos2091);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
case 2 :
// jaitools/jiffle/parser/CheckAssignments.g:264:19: ^( REL_POS expression )
{
match(input,REL_POS,FOLLOW_REL_POS_in_pixelPos2113);
match(input, Token.DOWN, null);
pushFollow(FOLLOW_expression_in_pixelPos2115);
expression();
state._fsp--;
match(input, Token.UP, null);
}
break;
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "pixelPos"
// $ANTLR start "literal"
// jaitools/jiffle/parser/CheckAssignments.g:268:1: literal : ( INT_LITERAL | FLOAT_LITERAL | TRUE | FALSE | NULL );
public final void literal() throws RecognitionException {
try {
// jaitools/jiffle/parser/CheckAssignments.g:268:17: ( INT_LITERAL | FLOAT_LITERAL | TRUE | FALSE | NULL )
// jaitools/jiffle/parser/CheckAssignments.g:
{
if ( (input.LA(1)>=INT_LITERAL && input.LA(1)<=NULL) ) {
input.consume();
state.errorRecovery=false;
}
else {
MismatchedSetException mse = new MismatchedSetException(null,input);
throw mse;
}
}
}
catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
finally {
}
return ;
}
// $ANTLR end "literal"
// Delegated rules
public static final BitSet FOLLOW_jiffleOption_in_start77 = new BitSet(new long[]{0xFFFF87041BF61FB0L,0x000000000000F88FL});
public static final BitSet FOLLOW_varDeclaration_in_start80 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_statement_in_start83 = new BitSet(new long[]{0xFFFF87041BF61FA2L,0x000000000000F88FL});
public static final BitSet FOLLOW_JIFFLE_OPTION_in_jiffleOption114 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_jiffleOption116 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000001FFFFFFFFL});
public static final BitSet FOLLOW_IMAGE_SCOPE_VAR_DECL_in_varDeclaration147 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_VAR_IMAGE_SCOPE_in_varDeclaration149 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x00000001FFFFFFFFL});
public static final BitSet FOLLOW_BLOCK_in_block207 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_blockStatement_in_block209 = new BitSet(new long[]{0xFFFF87241BF61FA8L,0x000000000000F88FL});
public static final BitSet FOLLOW_statement_in_blockStatement238 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_BREAKIF_in_blockStatement259 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_blockStatement261 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_block_in_statement294 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_assignmentExpression_in_statement314 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_WHILE_in_statement335 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_loopCondition_in_statement337 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_statement_in_statement339 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_UNTIL_in_statement361 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_loopCondition_in_statement363 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_statement_in_statement365 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_foreachLoop_in_statement386 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_expression_in_statement406 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FOREACH_in_foreachLoop458 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_foreachLoop460 = new BitSet(new long[]{0x0000000010080080L});
public static final BitSet FOLLOW_loopSet_in_foreachLoop464 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_statement_in_foreachLoop466 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_expression_in_loopCondition495 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_SEQUENCE_in_loopSet530 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_loopSet532 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_loopSet534 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_listLiteral_in_loopSet555 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_VAR_LIST_in_loopSet575 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_EXPR_LIST_in_expressionList603 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expressionList605 = new BitSet(new long[]{0xFFFF87041BF61FA8L,0x000000000000F88FL});
public static final BitSet FOLLOW_assignmentOp_in_assignmentExpression650 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_identifier_in_assignmentExpression652 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_assignmentExpression654 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_set_in_assignmentOp0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_imageVar_in_identifier833 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_userVar_in_identifier853 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONSTANT_in_identifier873 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_imageVar0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_userVar0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_FUNC_CALL_in_expression1051 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_ID_in_expression1053 = new BitSet(new long[]{0x0000000000000040L});
public static final BitSet FOLLOW_expressionList_in_expression1055 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_IF_CALL_in_expression1077 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expressionList_in_expression1079 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_QUESTION_in_expression1101 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expression1103 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_expression1105 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_expression1107 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_IMAGE_WRITE_in_expression1129 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expression1133 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_IMAGE_POS_in_expression1155 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_bandSpecifier_in_expression1159 = new BitSet(new long[]{0x0000000000004008L});
public static final BitSet FOLLOW_pixelSpecifier_in_expression1162 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_logicalOp_in_expression1185 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expression1187 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_expression1189 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_arithmeticOp_in_expression1211 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expression1213 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_expression1215 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_POW_in_expression1237 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expression1239 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_expression1241 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_PREFIX_in_expression1263 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_prefixOp_in_expression1265 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_expression1267 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_POSTFIX_in_expression1289 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_incdecOp_in_expression1291 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_expression1293 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_PAR_in_expression1315 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_expression1317 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_listOperation_in_expression1338 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_listLiteral_in_expression1358 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_literal_in_expression1378 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_imageVar_in_expression1398 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_CONSTANT_in_expression1418 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_userVar_in_expression1439 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_APPEND_in_listOperation1486 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_VAR_LIST_in_listOperation1488 = new BitSet(new long[]{0xFFFF87041BF61FA0L,0x000000000000F88FL});
public static final BitSet FOLLOW_expression_in_listOperation1490 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_DECLARED_LIST_in_listLiteral1540 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expressionList_in_listLiteral1542 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_set_in_logicalOp0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_arithmeticOp0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PLUS_in_prefixOp1877 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_MINUS_in_prefixOp1897 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_NOT_in_prefixOp1917 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_incdecOp_in_prefixOp1937 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_set_in_incdecOp0 = new BitSet(new long[]{0x0000000000000002L});
public static final BitSet FOLLOW_PIXEL_REF_in_pixelSpecifier2018 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_pixelPos_in_pixelSpecifier2020 = new BitSet(new long[]{0x0000000000018000L});
public static final BitSet FOLLOW_pixelPos_in_pixelSpecifier2022 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_BAND_REF_in_bandSpecifier2052 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_bandSpecifier2054 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_ABS_POS_in_pixelPos2089 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_pixelPos2091 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_REL_POS_in_pixelPos2113 = new BitSet(new long[]{0x0000000000000004L});
public static final BitSet FOLLOW_expression_in_pixelPos2115 = new BitSet(new long[]{0x0000000000000008L});
public static final BitSet FOLLOW_set_in_literal0 = new BitSet(new long[]{0x0000000000000002L});
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy