You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6443 lines
190 KiB
6443 lines
190 KiB
/* Generated By:JavaCC: Do not edit this line. PrismParser.java */
|
|
package parser;
|
|
|
|
import java.io.*;
|
|
import java.util.Vector;
|
|
import java.util.ArrayList;
|
|
import java.util.Stack;
|
|
|
|
import prism.PrismException;
|
|
|
|
public class PrismParser implements PrismParserConstants {
|
|
// formulas
|
|
private static FormulaList formulaList;
|
|
// labels
|
|
private static LabelList labelList;
|
|
// constants
|
|
private static ConstantList constantList;
|
|
// stacks
|
|
private static Stack stack = new Stack();
|
|
private static Stack reverseStack = new Stack();
|
|
// temp store for modules file associated with properties file
|
|
private static ModulesFile modulesFile;
|
|
// list of keyword strings
|
|
private static ArrayList keywordList = new ArrayList();
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// main method for testing purposes
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
public static void main(String[] args) throws ParseException
|
|
{
|
|
if (args.length == 0) {
|
|
System.out.println("Usage: java parser.PrismParser <switch>");
|
|
System.out.println("Where: <switch> = -modulesfile or -f");
|
|
System.out.println(" -propertiesfile or -pf");
|
|
System.out.println(" -expression or -e");
|
|
System.exit(1);
|
|
}
|
|
else if (args[0].equals("-modulesfile") || args[0].equals("-mf")) {
|
|
ModulesFile mf = null;
|
|
try {
|
|
PrismParser p = new PrismParser();
|
|
mf = p.parseModulesFile(System.in);
|
|
System.out.println("Modules file:\n=============\n");
|
|
System.out.print(mf);
|
|
}
|
|
catch (ParseException e) {
|
|
System.out.println("Syntax error:\n" + e.getShortMessage());
|
|
System.exit(0);
|
|
}
|
|
|
|
System.out.println("\nAnd after expansion:\n====================\n");
|
|
|
|
try {
|
|
// sort out some things in the ModulesFile
|
|
mf.tidyUp();
|
|
// print out again
|
|
System.out.print(mf);
|
|
}
|
|
catch (PrismException e) {
|
|
System.out.println("Error:\n" + e.getMessage());
|
|
System.exit(0);
|
|
}
|
|
}
|
|
else if (args[0].equals("-propertiesfile") || args[0].equals("-pf")) {
|
|
PropertiesFile pf = null;
|
|
try {
|
|
// create empty modules file
|
|
ModulesFile mf = new ModulesFile();
|
|
mf.setFormulaList(new FormulaList());
|
|
mf.setConstantList(new ConstantList());
|
|
// parse
|
|
PrismParser p = new PrismParser();
|
|
pf = p.parsePropertiesFile(mf, System.in);
|
|
System.out.println("Properties file:\n===============\n");
|
|
System.out.print(pf);
|
|
System.out.print(pf.toTreeString());
|
|
}
|
|
catch (ParseException e) {
|
|
System.out.println("Syntax error:\n" + e.getShortMessage());
|
|
System.exit(0);
|
|
}
|
|
|
|
try {
|
|
// sort out some things in the Properties
|
|
pf.tidyUp();
|
|
// print out again
|
|
System.out.println("\nAnd after expansion:\n====================\n");
|
|
System.out.print(pf);
|
|
}
|
|
catch (PrismException e) {
|
|
System.out.println("Error:\n" + e.getMessage());
|
|
System.exit(0);
|
|
}
|
|
}
|
|
else if (args[0].equals("-expression") || args[0].equals("-e")) {
|
|
Expression expr = null;
|
|
try {
|
|
PrismParser p = new PrismParser();
|
|
expr = p.parseSingleExpression(System.in);
|
|
System.out.println("Expression: " + expr.toString());
|
|
System.out.print("Tree:\n" + expr.toTreeString(0));
|
|
expr.check();
|
|
System.out.println("Type: " + Expression.getTypeString(expr.getType()));
|
|
System.out.println("Eval: " + expr.evaluate(null, null));
|
|
}
|
|
catch (ParseException e) {
|
|
System.out.println("Syntax error:\n" + e.getShortMessage());
|
|
System.exit(0);
|
|
}
|
|
catch (PrismException e) {
|
|
System.out.println("Error:\n" + e.getMessage());
|
|
System.exit(0);
|
|
}
|
|
}
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// methods called by Prism
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
// constructor
|
|
|
|
public PrismParser()
|
|
{
|
|
// Call default constructor
|
|
this(System.in);
|
|
// Build a list of strings for keywords
|
|
keywordList.clear();
|
|
for (int i = PrismParserConstants.COMMENT+1; i < PrismParserConstants.NOT; i++) {
|
|
keywordList.add(PrismParserConstants.tokenImage[i].replaceAll("\"", ""));
|
|
}
|
|
}
|
|
|
|
// parse modules file
|
|
|
|
public ModulesFile parseModulesFile(InputStream str) throws ParseException { return parseModulesFile(str, 0); }
|
|
|
|
public ModulesFile parseModulesFile(InputStream str, int typeOverride) throws ParseException
|
|
{
|
|
ModulesFile mf = null;
|
|
|
|
// restart parser
|
|
ReInit(str);
|
|
|
|
// clear all vectors/stacks
|
|
formulaList = new FormulaList();
|
|
constantList = new ConstantList();
|
|
stack.clear();
|
|
reverseStack.clear();
|
|
|
|
// do parse
|
|
try {
|
|
mf = ModulesFile();
|
|
}
|
|
catch (TokenMgrError e) {
|
|
throw new ParseException(e.getMessage());
|
|
}
|
|
|
|
// override type of model if requested
|
|
if (typeOverride != 0) {
|
|
mf.setType(typeOverride);
|
|
}
|
|
|
|
return mf;
|
|
}
|
|
|
|
// properties file
|
|
// nb: pass ModulesFile in to get at its constants
|
|
|
|
public PropertiesFile parsePropertiesFile(ModulesFile mf, InputStream str) throws ParseException
|
|
{
|
|
PropertiesFile pf = null;
|
|
|
|
// start parser again
|
|
ReInit(str);
|
|
|
|
// clear all vectors/stacks
|
|
labelList = new LabelList();
|
|
constantList = new ConstantList();
|
|
stack.clear();
|
|
reverseStack.clear();
|
|
|
|
// store modules file
|
|
modulesFile = mf;
|
|
|
|
// do parse
|
|
try {
|
|
pf = PropertiesFile();
|
|
}
|
|
catch (TokenMgrError e) {
|
|
throw new ParseException(e.getMessage());
|
|
}
|
|
|
|
return pf;
|
|
}
|
|
|
|
// a single expression
|
|
|
|
public Expression parseSingleExpression(InputStream str) throws ParseException
|
|
{
|
|
Expression expr = null;
|
|
|
|
// restart parser
|
|
ReInit(str);
|
|
|
|
// clear all stacks
|
|
stack.clear();
|
|
reverseStack.clear();
|
|
|
|
// do parse
|
|
try {
|
|
expr = SingleExpression();
|
|
}
|
|
catch (TokenMgrError e) {
|
|
throw new ParseException(e.getMessage());
|
|
}
|
|
|
|
return expr;
|
|
}
|
|
|
|
// a for loop
|
|
|
|
public ForLoop parseForLoop(InputStream str) throws ParseException
|
|
{
|
|
ForLoop fl = null;
|
|
|
|
// restart parser
|
|
ReInit(str);
|
|
|
|
// clear all stacks
|
|
stack.clear();
|
|
reverseStack.clear();
|
|
|
|
// do parse
|
|
try {
|
|
fl = ForLoop();
|
|
}
|
|
catch (TokenMgrError e) {
|
|
throw new ParseException(e.getMessage());
|
|
}
|
|
|
|
return fl;
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// some utility methods
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
// get comment block (including white space)
|
|
// preceding a token and remove "//" characters
|
|
|
|
public static String getPrecedingCommentBlock(Token firstToken)
|
|
{
|
|
String comment = "", s;
|
|
Token t = firstToken;
|
|
|
|
// extract any comment from the previous lines of the file
|
|
if (t.specialToken != null) {
|
|
// trace back thru special tokens
|
|
t = t.specialToken;
|
|
while (t.specialToken != null) t = t.specialToken;
|
|
// ignore initial white space
|
|
while (t != null && t.kind == PrismParserConstants.WHITESPACE) t = t.next;
|
|
// concatenate special tokens
|
|
while (t != null) {
|
|
s = t.image;
|
|
// strip any nasty carriage returns
|
|
s = s.replaceAll("\r", "");
|
|
// remove "//" and preceding/subsequent spaces/tabs from comments
|
|
if (t.kind == PrismParserConstants.COMMENT) {
|
|
while (comment.length() > 0 && (""+comment.charAt(comment.length()-1)).matches("[ \t]"))
|
|
comment = comment.substring(0,comment.length()-1);
|
|
s = s.substring(2);
|
|
s = s.replaceFirst("[ \t]*", "");
|
|
}
|
|
comment += s;
|
|
t = t.next;
|
|
}
|
|
}
|
|
// remove final new line (if present)
|
|
if (comment.length() > 0 && (comment.charAt(comment.length()-1) == '\n'))
|
|
comment = comment.substring(0,comment.length()-1);
|
|
|
|
return comment;
|
|
}
|
|
|
|
// add "//"s into comment block
|
|
|
|
public static String slashCommentBlock(String comment)
|
|
{
|
|
int i;
|
|
String s, res = "";
|
|
// break into lines
|
|
while ((i = comment.indexOf("\n")) != -1) {
|
|
s = comment.substring(0, i);
|
|
comment = comment.substring(i+1);
|
|
// add "//" to non-empty lines
|
|
if (s.trim().length()>0) res += "// " + s;
|
|
res += "\n";
|
|
}
|
|
// deal with any trailing characters (with no new line ending them)
|
|
if (comment.trim().length()>0) res += "// " + comment + "\n";
|
|
return res;
|
|
}
|
|
|
|
// Test a string to see if it is a PRISM language keyword
|
|
|
|
public static boolean isKeyword(String s)
|
|
{
|
|
return keywordList.contains(s);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// top-level stuff
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
// modules file
|
|
static final public ModulesFile ModulesFile() throws ParseException {
|
|
int type = 0;
|
|
int typeSpecs = 0;
|
|
label_1:
|
|
while (true) {
|
|
if (jj_2_1(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_1;
|
|
}
|
|
if (jj_2_2(2147483647)) {
|
|
type = ModulesFileType();
|
|
typeSpecs++;
|
|
} else if (jj_2_3(2147483647)) {
|
|
FormulaDef();
|
|
} else if (jj_2_4(2147483647)) {
|
|
ConstantDef();
|
|
} else if (jj_2_5(2147483647)) {
|
|
GlobalDecl();
|
|
} else if (jj_2_6(2147483647)) {
|
|
Module();
|
|
} else if (jj_2_7(2147483647)) {
|
|
RenamedModule();
|
|
} else if (jj_2_8(2147483647)) {
|
|
SystemComp();
|
|
} else if (jj_2_9(2147483647)) {
|
|
RewardStruct();
|
|
} else if (jj_2_10(2147483647)) {
|
|
Init();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
jj_consume_token(0);
|
|
if (typeSpecs > 1) {if (true) throw new ParseException("There were multiple type declarations");}
|
|
|
|
// create new ModulesFile object
|
|
ModulesFile modulesFile = new ModulesFile();
|
|
|
|
// pass lists of formulas, constants to ModulesFile
|
|
modulesFile.setFormulaList(formulaList);
|
|
modulesFile.setConstantList(constantList);
|
|
|
|
// set type (default is nondeterministic)
|
|
switch (type) {
|
|
case PROBABILISTIC:
|
|
case DTMC:
|
|
modulesFile.setType(ModulesFile.PROBABILISTIC); break;
|
|
case NONDETERMINISTIC:
|
|
case MDP:
|
|
modulesFile.setType(ModulesFile.NONDETERMINISTIC); break;
|
|
case STOCHASTIC:
|
|
case CTMC:
|
|
modulesFile.setType(ModulesFile.STOCHASTIC); break;
|
|
default : modulesFile.setType(ModulesFile.NONDETERMINISTIC); break;
|
|
}
|
|
|
|
// get all modules/globals off stack
|
|
// and put them on reverse stack
|
|
while (!stack.empty()) {
|
|
if (stack.peek() instanceof Declaration ||
|
|
stack.peek() instanceof Module ||
|
|
stack.peek() instanceof RenamedModule ||
|
|
stack.peek() instanceof SystemDefn ||
|
|
stack.peek() instanceof RewardStruct ||
|
|
stack.peek() instanceof Expression) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
else {
|
|
break;
|
|
}
|
|
}
|
|
// take all globals/modules/etc from reverse stack
|
|
// and add to ModulesFile object
|
|
// (everything now in correct order)
|
|
while (!reverseStack.empty()) {
|
|
if (reverseStack.peek() instanceof Declaration) {
|
|
modulesFile.addGlobal((Declaration)reverseStack.pop());
|
|
}
|
|
else if (reverseStack.peek() instanceof Module) {
|
|
modulesFile.addModule((Module)reverseStack.pop());
|
|
}
|
|
else if (reverseStack.peek() instanceof RenamedModule) {
|
|
modulesFile.addRenamedModule((RenamedModule)reverseStack.pop());
|
|
}
|
|
else if (reverseStack.peek() instanceof SystemDefn) {
|
|
modulesFile.setSystemDefn((SystemDefn)reverseStack.pop());
|
|
}
|
|
else if (reverseStack.peek() instanceof RewardStruct) {
|
|
modulesFile.addRewardStruct((RewardStruct)reverseStack.pop());
|
|
}
|
|
else if (reverseStack.peek() instanceof Expression) {
|
|
modulesFile.setInitialStates((Expression)reverseStack.pop());
|
|
}
|
|
}
|
|
|
|
// return completed ModulesFile object
|
|
{if (true) return modulesFile;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// properties file
|
|
static final public PropertiesFile PropertiesFile() throws ParseException {
|
|
label_2:
|
|
while (true) {
|
|
if (jj_2_11(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_2;
|
|
}
|
|
if (jj_2_12(2147483647)) {
|
|
LabelDef();
|
|
} else if (jj_2_13(2147483647)) {
|
|
ConstantDef();
|
|
} else if (jj_2_14(2147483647)) {
|
|
SinglePCTLFormula();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
jj_consume_token(0);
|
|
// create new PropertiesFile object
|
|
// (pass in associated ModulesFile)
|
|
PropertiesFile propertiesFile = new PropertiesFile(modulesFile);
|
|
|
|
// pass lists of labels, constants to PropertiesFile
|
|
propertiesFile.setLabelList(labelList);
|
|
propertiesFile.setConstantList(constantList);
|
|
|
|
// get properties off stack and reverse their order
|
|
while (!(stack.empty())) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// add properties to list
|
|
while (!(reverseStack.empty())) {
|
|
// get property
|
|
PCTLFormula f = (PCTLFormula)reverseStack.pop();
|
|
// check for any comment
|
|
String comment = "";
|
|
if (!reverseStack.empty()) if (reverseStack.peek() instanceof String) {
|
|
comment = (String)reverseStack.pop();
|
|
}
|
|
// add to PropertiesFile object
|
|
propertiesFile.addProperty(f, comment);
|
|
}
|
|
|
|
{if (true) return propertiesFile;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// a single expression
|
|
static final public Expression SingleExpression() throws ParseException {
|
|
Expression();
|
|
jj_consume_token(0);
|
|
{if (true) return (Expression)stack.pop();}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// modules file stuff
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
// keyword denoting module type (nondeterministic, probabilistic, ...)
|
|
static final public int ModulesFileType() throws ParseException {
|
|
if (jj_2_15(2147483647)) {
|
|
jj_consume_token(PROBABILISTIC);
|
|
} else if (jj_2_16(2147483647)) {
|
|
jj_consume_token(NONDETERMINISTIC);
|
|
} else if (jj_2_17(2147483647)) {
|
|
jj_consume_token(STOCHASTIC);
|
|
} else if (jj_2_18(2147483647)) {
|
|
jj_consume_token(DTMC);
|
|
} else if (jj_2_19(2147483647)) {
|
|
jj_consume_token(MDP);
|
|
} else if (jj_2_20(2147483647)) {
|
|
jj_consume_token(CTMC);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
{if (true) return token.kind;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// formula definition
|
|
static final public void FormulaDef() throws ParseException {
|
|
String s;
|
|
jj_consume_token(FORMULA);
|
|
s = Identifier();
|
|
jj_consume_token(EQ);
|
|
Expression();
|
|
jj_consume_token(SEMICOLON);
|
|
// store formula
|
|
formulaList.addFormula(s, (Expression)stack.pop());
|
|
}
|
|
|
|
// label definition
|
|
static final public void LabelDef() throws ParseException {
|
|
String s;
|
|
jj_consume_token(LABEL);
|
|
jj_consume_token(DQUOTE);
|
|
s = Identifier();
|
|
jj_consume_token(DQUOTE);
|
|
jj_consume_token(EQ);
|
|
Expression();
|
|
jj_consume_token(SEMICOLON);
|
|
// store label
|
|
labelList.addLabel(s, (Expression)stack.pop());
|
|
}
|
|
|
|
// constant definition
|
|
static final public void ConstantDef() throws ParseException {
|
|
String s;
|
|
Token t = null;
|
|
if (jj_2_28(2147483647)) {
|
|
jj_consume_token(CONST);
|
|
jj_consume_token(INT);
|
|
s = Identifier();
|
|
if (jj_2_21(2147483647)) {
|
|
t = jj_consume_token(EQ);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(SEMICOLON);
|
|
// case where constant is defined
|
|
if (t != null) {
|
|
constantList.addConstant(s, (Expression)stack.pop(), Expression.INT);
|
|
}
|
|
// and case where it is left undefined
|
|
else {
|
|
constantList.addConstant(s, null, Expression.INT);
|
|
}
|
|
} else if (jj_2_29(2147483647)) {
|
|
jj_consume_token(CONST);
|
|
jj_consume_token(DOUBLE);
|
|
s = Identifier();
|
|
if (jj_2_22(2147483647)) {
|
|
t = jj_consume_token(EQ);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(SEMICOLON);
|
|
// case where constant is defined
|
|
if (t != null) {
|
|
constantList.addConstant(s, (Expression)stack.pop(), Expression.DOUBLE);
|
|
}
|
|
// and case where it is left undefined
|
|
else {
|
|
constantList.addConstant(s, null, Expression.DOUBLE);
|
|
}
|
|
} else if (jj_2_30(2147483647)) {
|
|
jj_consume_token(CONST);
|
|
jj_consume_token(BOOL);
|
|
s = Identifier();
|
|
if (jj_2_23(2147483647)) {
|
|
t = jj_consume_token(EQ);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(SEMICOLON);
|
|
// case where constant is defined
|
|
if (t != null) {
|
|
constantList.addConstant(s, (Expression)stack.pop(), Expression.BOOLEAN);
|
|
}
|
|
// and case where it is left undefined
|
|
else {
|
|
constantList.addConstant(s, null, Expression.BOOLEAN);
|
|
}
|
|
} else if (jj_2_31(2147483647)) {
|
|
jj_consume_token(CONST);
|
|
s = Identifier();
|
|
if (jj_2_24(2147483647)) {
|
|
t = jj_consume_token(EQ);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(SEMICOLON);
|
|
// case where constant value is defined
|
|
if (t != null) {
|
|
constantList.addConstant(s, (Expression)stack.pop(), Expression.INT);
|
|
}
|
|
// and case where it is left undefined
|
|
else {
|
|
constantList.addConstant(s, null, Expression.INT);
|
|
}
|
|
} else if (jj_2_32(2147483647)) {
|
|
if (jj_2_25(2147483647)) {
|
|
jj_consume_token(RATE);
|
|
} else if (jj_2_26(2147483647)) {
|
|
jj_consume_token(PROB);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
s = Identifier();
|
|
if (jj_2_27(2147483647)) {
|
|
t = jj_consume_token(EQ);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(SEMICOLON);
|
|
// case where constant is defined
|
|
if (t != null) {
|
|
constantList.addConstant(s, (Expression)stack.pop(), Expression.DOUBLE);
|
|
}
|
|
// and case where it is left undefined
|
|
else {
|
|
constantList.addConstant(s, null, Expression.DOUBLE);
|
|
}
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// global variable declaration
|
|
static final public void GlobalDecl() throws ParseException {
|
|
jj_consume_token(GLOBAL);
|
|
Declaration();
|
|
}
|
|
|
|
// module definition
|
|
static final public void Module() throws ParseException {
|
|
String name;
|
|
// put '*' marker on stack to indicate where this Module started
|
|
// (otherwise global/local declarations may be confused)
|
|
stack.push(new Character('*'));
|
|
jj_consume_token(MODULE);
|
|
name = Identifier();
|
|
label_3:
|
|
while (true) {
|
|
if (jj_2_33(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_3;
|
|
}
|
|
Declaration();
|
|
}
|
|
label_4:
|
|
while (true) {
|
|
if (jj_2_34(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_4;
|
|
}
|
|
Command();
|
|
}
|
|
jj_consume_token(ENDMODULE);
|
|
// create new Module object
|
|
Module m = new Module(name);
|
|
// get all commands off stack
|
|
// and put them on the reverse stack
|
|
while (!stack.empty()) {
|
|
if (stack.peek() instanceof Command) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
else {
|
|
break;
|
|
}
|
|
}
|
|
// get all commands off reverse stack
|
|
// and add them to the Module object
|
|
// (now in correct order)
|
|
while (!reverseStack.empty()) {
|
|
m.addCommand((Command)reverseStack.pop());
|
|
}
|
|
|
|
// get all declarations off stack
|
|
// and put them on the reverse stack
|
|
while (!stack.empty()) {
|
|
if (stack.peek() instanceof Declaration) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
else {
|
|
break;
|
|
}
|
|
}
|
|
// get all declarations off reverse stack
|
|
// and add them to the Module object
|
|
// (now in correct order)
|
|
while (!reverseStack.empty()) {
|
|
m.addDeclaration((Declaration)reverseStack.pop());
|
|
}
|
|
|
|
// get marker off stack
|
|
stack.pop();
|
|
// put completed Module object back on stack
|
|
stack.push(m);
|
|
}
|
|
|
|
// variable declaration
|
|
static final public void Declaration() throws ParseException {
|
|
String name; // name
|
|
Token t = null;
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
if (jj_2_37(2147483647)) {
|
|
name = Identifier();
|
|
jj_consume_token(COLON);
|
|
jj_consume_token(LBRACKET);
|
|
Expression();
|
|
jj_consume_token(DOTS);
|
|
Expression();
|
|
jj_consume_token(RBRACKET);
|
|
if (jj_2_35(2147483647)) {
|
|
jj_consume_token(INIT);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(SEMICOLON);
|
|
Expression e1, e2, l, h, s;
|
|
// get Expressions off stack
|
|
e1 = (Expression)stack.pop();
|
|
e2 = (Expression)stack.pop();
|
|
// if there are three expressions, an initial value was specified
|
|
if (stack.peek() instanceof Expression) {
|
|
l = (Expression)stack.pop();
|
|
h = e2;
|
|
s = e1;
|
|
}
|
|
// otherwise, no default value given
|
|
else {
|
|
l = e2;
|
|
h = e1;
|
|
s = null;
|
|
}
|
|
// get marker off stack
|
|
stack.pop();
|
|
// put Declaration object back on stack
|
|
stack.push(new Declaration(name, l, h, s));
|
|
} else if (jj_2_38(2147483647)) {
|
|
name = Identifier();
|
|
jj_consume_token(COLON);
|
|
jj_consume_token(BOOL);
|
|
if (jj_2_36(2147483647)) {
|
|
jj_consume_token(INIT);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(SEMICOLON);
|
|
Expression s;
|
|
// get the initial value expression, if there was one
|
|
if (stack.peek() instanceof Expression) {
|
|
s = (Expression)stack.pop();
|
|
}
|
|
else {
|
|
s = null;
|
|
}
|
|
// get marker off stack
|
|
stack.pop();
|
|
// put Declaration object back on stack
|
|
stack.push(new Declaration(name, s));
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// command definition
|
|
static final public void Command() throws ParseException {
|
|
String s = null;
|
|
Token t = null;
|
|
jj_consume_token(LBRACKET);
|
|
if (jj_2_39(2147483647)) {
|
|
s = Identifier();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(RBRACKET);
|
|
Expression();
|
|
jj_consume_token(RARROW);
|
|
Updates();
|
|
jj_consume_token(SEMICOLON);
|
|
// create new Command object
|
|
Command c = new Command();
|
|
// get synchronisation (if any)
|
|
if (s != null) {
|
|
c.setSynch(s);
|
|
}
|
|
// get updates part
|
|
Updates u = (Updates)stack.pop();
|
|
c.setUpdates(u);
|
|
// get guard part
|
|
Expression g = (Expression)stack.pop();
|
|
c.setGuard(g);
|
|
// get reward (if any)
|
|
// if (t != null) {
|
|
// Expression r = (Expression)stack.pop();
|
|
// c.setReward(r);
|
|
// }
|
|
// push Line onto stack
|
|
stack.push(c);
|
|
}
|
|
|
|
static final public void Updates() throws ParseException {
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
if (jj_2_41(2147483647)) {
|
|
Update();
|
|
// create new Updates object
|
|
Updates u = new Updates();
|
|
u.addUpdate(new ExpressionDouble(1), (Update)stack.pop());
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// put updates on to stack
|
|
stack.push(u);
|
|
} else if (jj_2_42(2147483647)) {
|
|
ProbUpdate();
|
|
label_5:
|
|
while (true) {
|
|
if (jj_2_40(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_5;
|
|
}
|
|
jj_consume_token(PLUS);
|
|
ProbUpdate();
|
|
}
|
|
// create new Updates object
|
|
|
|
// take all probability/Update pairs off stack
|
|
// and put them on the reverse stack
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// then add them to an Updates object
|
|
// (updates now in correct order)
|
|
Updates us = new Updates();
|
|
while (!reverseStack.empty()) {
|
|
Expression p = (Expression)reverseStack.pop();
|
|
Update u = (Update)reverseStack.pop();
|
|
us.addUpdate(p, u);
|
|
}
|
|
// push complete Updates object back on stack
|
|
stack.push(us);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
static final public void ProbUpdate() throws ParseException {
|
|
Expression();
|
|
jj_consume_token(COLON);
|
|
Update();
|
|
|
|
}
|
|
|
|
static final public void Update() throws ParseException {
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
if (jj_2_44(2147483647)) {
|
|
UpdateElement();
|
|
label_6:
|
|
while (true) {
|
|
if (jj_2_43(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_6;
|
|
}
|
|
jj_consume_token(AND);
|
|
UpdateElement();
|
|
}
|
|
// create new Update object
|
|
Update u = new Update();
|
|
// take all var/expr pairs off the stack
|
|
// and put them on the reverse stack
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// then add to Update object
|
|
// (pairs now in correct order)
|
|
while (!reverseStack.empty()) {
|
|
Expression e = (Expression)reverseStack.pop();
|
|
u.addElement((String)reverseStack.pop(), e);
|
|
}
|
|
// get marker off stack
|
|
stack.pop();
|
|
// push completed Update object back on stack
|
|
stack.push(u);
|
|
} else if (jj_2_45(2147483647)) {
|
|
jj_consume_token(TRUE);
|
|
// create new (empty) Update object
|
|
Update u = new Update();
|
|
// get marker off stack
|
|
stack.pop();
|
|
// push Update object onto stack
|
|
stack.push(u);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
static final public void UpdateElement() throws ParseException {
|
|
String var="";
|
|
if (jj_2_46(2147483647)) {
|
|
jj_consume_token(LPARENTH);
|
|
var = IdentifierPrime();
|
|
jj_consume_token(EQ);
|
|
Expression();
|
|
jj_consume_token(RPARENTH);
|
|
// expression is now already on stack
|
|
// put variable identifier String on too
|
|
stack.push(var);
|
|
} else if (jj_2_47(2147483647)) {
|
|
var = IdentifierPrime();
|
|
jj_consume_token(EQ);
|
|
Expression();
|
|
// expression is now already on stack
|
|
// put variable identifier String on too
|
|
stack.push(var);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// module definition (by renaming)
|
|
static final public void RenamedModule() throws ParseException {
|
|
String name, base;
|
|
jj_consume_token(MODULE);
|
|
name = Identifier();
|
|
jj_consume_token(EQ);
|
|
base = Identifier();
|
|
jj_consume_token(LBRACKET);
|
|
Renames();
|
|
jj_consume_token(RBRACKET);
|
|
jj_consume_token(ENDMODULE);
|
|
RenamedModule m = new RenamedModule(name, base);
|
|
// get Rename's off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// store renames in RenamedModule
|
|
while (!reverseStack.empty()) {
|
|
m.addRename((String)reverseStack.pop(), (String)reverseStack.pop());
|
|
}
|
|
// push the completed RenamedModule on to the stack
|
|
stack.push(m);
|
|
}
|
|
|
|
static final public void Renames() throws ParseException {
|
|
// put '*' marker on stack to indicate where this Renames started
|
|
stack.push(new Character('*'));
|
|
Rename();
|
|
label_7:
|
|
while (true) {
|
|
if (jj_2_48(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_7;
|
|
}
|
|
jj_consume_token(COMMA);
|
|
Rename();
|
|
}
|
|
}
|
|
|
|
static final public void Rename() throws ParseException {
|
|
String id1, id2;
|
|
if (jj_2_49(2147483647)) {
|
|
id1 = Identifier();
|
|
} else if (jj_2_50(2147483647)) {
|
|
jj_consume_token(MIN);
|
|
id1="min";
|
|
} else if (jj_2_51(2147483647)) {
|
|
jj_consume_token(MAX);
|
|
id1="max";
|
|
} else if (jj_2_52(2147483647)) {
|
|
jj_consume_token(FLOOR);
|
|
id1="floor";
|
|
} else if (jj_2_53(2147483647)) {
|
|
jj_consume_token(CEIL);
|
|
id1="ceil";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
jj_consume_token(EQ);
|
|
if (jj_2_54(2147483647)) {
|
|
id2 = Identifier();
|
|
} else if (jj_2_55(2147483647)) {
|
|
jj_consume_token(MIN);
|
|
id2="min";
|
|
} else if (jj_2_56(2147483647)) {
|
|
jj_consume_token(MAX);
|
|
id2="max";
|
|
} else if (jj_2_57(2147483647)) {
|
|
jj_consume_token(FLOOR);
|
|
id2="floor";
|
|
} else if (jj_2_58(2147483647)) {
|
|
jj_consume_token(CEIL);
|
|
id2="ceil";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
stack.push(id1);
|
|
stack.push(id2);
|
|
}
|
|
|
|
// system composition definition
|
|
static final public void SystemComp() throws ParseException {
|
|
jj_consume_token(SYSTEM);
|
|
SystemParallels();
|
|
jj_consume_token(ENDSYSTEM);
|
|
|
|
}
|
|
|
|
// system definition component
|
|
static final public void SystemParallels() throws ParseException {
|
|
if (jj_2_59(2147483647)) {
|
|
SystemFullParallel();
|
|
} else if (jj_2_60(2147483647)) {
|
|
SystemInterleaved();
|
|
} else if (jj_2_61(2147483647)) {
|
|
SystemParallel();
|
|
} else if (jj_2_62(2147483647)) {
|
|
SystemHideRename();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// system definition component (full parallel)
|
|
static final public void SystemFullParallel() throws ParseException {
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
SystemHideRename();
|
|
label_8:
|
|
while (true) {
|
|
jj_consume_token(OR);
|
|
jj_consume_token(OR);
|
|
SystemHideRename();
|
|
if (jj_2_63(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_8;
|
|
}
|
|
}
|
|
// get SystemDefns off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// construct SystemFullParallel object and add operands
|
|
SystemFullParallel s = new SystemFullParallel();
|
|
while (!reverseStack.empty()) {
|
|
s.addOperand((SystemDefn)reverseStack.pop());
|
|
}
|
|
// put the SystemFullParallel on the stack
|
|
stack.push(s);
|
|
}
|
|
|
|
// system definition component (interleaved parallel)
|
|
static final public void SystemInterleaved() throws ParseException {
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
SystemHideRename();
|
|
label_9:
|
|
while (true) {
|
|
jj_consume_token(OR);
|
|
jj_consume_token(OR);
|
|
jj_consume_token(OR);
|
|
SystemHideRename();
|
|
if (jj_2_64(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_9;
|
|
}
|
|
}
|
|
// get SystemDefns off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// construct SystemInterleaved object and add operands
|
|
SystemInterleaved s = new SystemInterleaved();
|
|
while (!reverseStack.empty()) {
|
|
s.addOperand((SystemDefn)reverseStack.pop());
|
|
}
|
|
// put the SystemInterleaved on the stack
|
|
stack.push(s);
|
|
}
|
|
|
|
// system definition component (parallel over set of actions)
|
|
static final public void SystemParallel() throws ParseException {
|
|
SystemHideRename();
|
|
jj_consume_token(OR);
|
|
jj_consume_token(LBRACKET);
|
|
SystemAction();
|
|
label_10:
|
|
while (true) {
|
|
if (jj_2_65(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_10;
|
|
}
|
|
jj_consume_token(COMMA);
|
|
SystemAction();
|
|
}
|
|
jj_consume_token(RBRACKET);
|
|
jj_consume_token(OR);
|
|
SystemHideRename();
|
|
SystemDefn s1, s2;
|
|
|
|
// get first (second) SystemDefn off stack
|
|
s2 = (SystemDefn)stack.pop();
|
|
// get actions off stack and reverse their order
|
|
while (stack.peek() instanceof String) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// get second (first) SystemDefn off stack
|
|
s1 = (SystemDefn)stack.pop();
|
|
// construct SystemParallel object and add operands/actions
|
|
SystemParallel s = new SystemParallel();
|
|
s.setOperand1(s1);
|
|
s.setOperand2(s2);
|
|
while (!reverseStack.empty()) {
|
|
s.addAction((String)reverseStack.pop());
|
|
}
|
|
// put the SystemParallel on the stack
|
|
stack.push(s);
|
|
}
|
|
|
|
// system definition component (hiding and renaming)
|
|
static final public void SystemHideRename() throws ParseException {
|
|
SystemAtomic();
|
|
label_11:
|
|
while (true) {
|
|
if (jj_2_66(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_11;
|
|
}
|
|
if (jj_2_69(2147483647)) {
|
|
jj_consume_token(DIVIDE);
|
|
jj_consume_token(LBRACE);
|
|
SystemAction();
|
|
label_12:
|
|
while (true) {
|
|
if (jj_2_67(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_12;
|
|
}
|
|
jj_consume_token(COMMA);
|
|
SystemAction();
|
|
}
|
|
jj_consume_token(RBRACE);
|
|
SystemDefn s1;
|
|
|
|
// get actions off stack and reverse their order
|
|
while (stack.peek() instanceof String) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// get SystemDefn off stack
|
|
s1 = (SystemDefn)stack.pop();
|
|
// construct SystemHide object and add operands/actions
|
|
SystemHide s = new SystemHide(s1);
|
|
while (!reverseStack.empty()) {
|
|
s.addAction((String)reverseStack.pop());
|
|
}
|
|
// put the SystemHide on the stack
|
|
stack.push(s);
|
|
} else if (jj_2_70(2147483647)) {
|
|
jj_consume_token(LBRACE);
|
|
SystemAction();
|
|
jj_consume_token(RENAME);
|
|
SystemAction();
|
|
label_13:
|
|
while (true) {
|
|
if (jj_2_68(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_13;
|
|
}
|
|
jj_consume_token(COMMA);
|
|
SystemAction();
|
|
jj_consume_token(RENAME);
|
|
SystemAction();
|
|
}
|
|
jj_consume_token(RBRACE);
|
|
SystemDefn sd;
|
|
|
|
// get actions off stack and reverse their order
|
|
while (stack.peek() instanceof String) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// get SystemDefn off stack
|
|
sd = (SystemDefn)stack.pop();
|
|
// construct SystemRename object and add operands/action pairs
|
|
SystemRename sr = new SystemRename(sd);
|
|
while (!reverseStack.empty()) {
|
|
sr.addRename((String)reverseStack.pop(), (String)reverseStack.pop());
|
|
}
|
|
// put the SystemRename on the stack
|
|
stack.push(sr);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
}
|
|
|
|
// system definition component (bottom level)
|
|
static final public void SystemAtomic() throws ParseException {
|
|
if (jj_2_71(2147483647)) {
|
|
SystemModule();
|
|
} else if (jj_2_72(2147483647)) {
|
|
SystemBrackets();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// system definition component (action identifier)
|
|
static final public void SystemAction() throws ParseException {
|
|
String id;
|
|
id = Identifier();
|
|
stack.push(id);
|
|
}
|
|
|
|
// system definition component (module identifier)
|
|
static final public void SystemModule() throws ParseException {
|
|
String id;
|
|
id = Identifier();
|
|
// create new SystemModule object with this identifier
|
|
SystemModule s = new SystemModule(id);
|
|
// put it on the stack
|
|
stack.push(s);
|
|
}
|
|
|
|
// system definition component (brackets)
|
|
static final public void SystemBrackets() throws ParseException {
|
|
jj_consume_token(LPARENTH);
|
|
SystemParallels();
|
|
jj_consume_token(RPARENTH);
|
|
SystemBrackets s = new SystemBrackets();
|
|
s.setOperand((SystemDefn)stack.pop());
|
|
stack.push(s);
|
|
}
|
|
|
|
// reward structure
|
|
static final public void RewardStruct() throws ParseException {
|
|
String s = null;
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
jj_consume_token(REWARDS);
|
|
if (jj_2_73(2147483647)) {
|
|
jj_consume_token(DQUOTE);
|
|
s = Identifier();
|
|
jj_consume_token(DQUOTE);
|
|
} else {
|
|
;
|
|
}
|
|
label_14:
|
|
while (true) {
|
|
if (jj_2_74(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_14;
|
|
}
|
|
RewardStructItem();
|
|
}
|
|
jj_consume_token(ENDREWARDS);
|
|
// get RewardStructItems off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// add the RewardStructItems to a RewardStruct object
|
|
RewardStruct rs = new RewardStruct();
|
|
if (s != null) rs.setName(s);
|
|
while (!reverseStack.empty()) {
|
|
rs.addItem((RewardStructItem)reverseStack.pop());
|
|
}
|
|
// and put it on the stack
|
|
stack.push(rs);
|
|
}
|
|
|
|
// single line (item) of state-based rewards structure
|
|
static final public void RewardStructItem() throws ParseException {
|
|
double d;
|
|
String s = "";
|
|
Token t = null;
|
|
if (jj_2_76(2147483647)) {
|
|
t = jj_consume_token(LBRACKET);
|
|
if (jj_2_75(2147483647)) {
|
|
s = Identifier();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(RBRACKET);
|
|
} else {
|
|
;
|
|
}
|
|
Expression();
|
|
jj_consume_token(COLON);
|
|
Expression();
|
|
jj_consume_token(SEMICOLON);
|
|
// create RewardStructItem and put on stack
|
|
Expression reward = (Expression)stack.pop();
|
|
Expression states = (Expression)stack.pop();
|
|
stack.push(new RewardStructItem((t == null)?null:s, states, reward));
|
|
}
|
|
|
|
// multiple initial states
|
|
static final public void Init() throws ParseException {
|
|
jj_consume_token(INIT);
|
|
Expression();
|
|
jj_consume_token(ENDINIT);
|
|
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// properties file stuff
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
// pctl formula
|
|
static final public void SinglePCTLFormula() throws ParseException {
|
|
// store the first token of this formula
|
|
Token t = getToken(1);
|
|
PCTLFormula();
|
|
// get any preceding comment and put onto stack
|
|
String comment = getPrecedingCommentBlock(t);
|
|
if (comment.length() > 0) stack.push(comment);
|
|
}
|
|
|
|
static final public void PCTLFormula() throws ParseException {
|
|
PCTLImplies();
|
|
}
|
|
|
|
static final public void PCTLImplies() throws ParseException {
|
|
Token t = null;
|
|
PCTLOr();
|
|
if (jj_2_77(2147483647)) {
|
|
t = jj_consume_token(IMPLIES);
|
|
PCTLOr();
|
|
} else {
|
|
;
|
|
}
|
|
if (t != null) {
|
|
PCTLFormula f1, f2;
|
|
f2 = (PCTLFormula)stack.pop();
|
|
f1 = (PCTLFormula)stack.pop();
|
|
stack.push(new PCTLImplies(f1, f2));
|
|
}
|
|
}
|
|
|
|
static final public void PCTLOr() throws ParseException {
|
|
// put *' marker on stack
|
|
stack.push(new Character('*'));
|
|
PCTLAnd();
|
|
label_15:
|
|
while (true) {
|
|
if (jj_2_78(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_15;
|
|
}
|
|
jj_consume_token(OR);
|
|
PCTLAnd();
|
|
}
|
|
// get operands off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// if there is only one operand, just put it back on the stack
|
|
if (reverseStack.size() == 1) {
|
|
stack.push(reverseStack.pop());
|
|
}
|
|
// otherwise, add the operands to a PCTLOr in the correct order
|
|
else {
|
|
PCTLOr p = new PCTLOr();
|
|
while (!reverseStack.empty()) {
|
|
p.addOperand((PCTLFormula)reverseStack.pop());
|
|
}
|
|
// put the PCTLOr on the stack
|
|
stack.push(p);
|
|
}
|
|
}
|
|
|
|
static final public void PCTLAnd() throws ParseException {
|
|
// put *' marker on stack
|
|
stack.push(new Character('*'));
|
|
PCTLNot();
|
|
label_16:
|
|
while (true) {
|
|
if (jj_2_79(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_16;
|
|
}
|
|
jj_consume_token(AND);
|
|
PCTLNot();
|
|
}
|
|
// get operands off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// if there is only one operand, just put it back on the stack
|
|
if (reverseStack.size() == 1) {
|
|
stack.push(reverseStack.pop());
|
|
}
|
|
// otherwise, add the operands to a PCTLAnd in the correct order
|
|
else {
|
|
PCTLAnd p = new PCTLAnd();
|
|
while (!reverseStack.empty()) {
|
|
p.addOperand((PCTLFormula)reverseStack.pop());
|
|
}
|
|
// put the PCTLAnd on the stack
|
|
stack.push(p);
|
|
}
|
|
}
|
|
|
|
static final public void PCTLNot() throws ParseException {
|
|
Token t = null;
|
|
if (jj_2_80(2147483647)) {
|
|
t = jj_consume_token(NOT);
|
|
} else {
|
|
;
|
|
}
|
|
PCTLProb();
|
|
if (t != null) {
|
|
// pop the formula off the stack
|
|
// and put it in an PCTLNot
|
|
stack.push(new PCTLNot((PCTLFormula)stack.pop()));
|
|
}
|
|
}
|
|
|
|
// pctl prob operator
|
|
static final public void PCTLProb() throws ParseException {
|
|
String relOp = null;
|
|
Token tf = null; // detects if a filter is included
|
|
Token tfmin = null; // detects if min of filter requested
|
|
Token tfmax = null;
|
|
if (jj_2_96(2147483647)) {
|
|
if (jj_2_81(2147483647)) {
|
|
jj_consume_token(P);
|
|
relOp = LtGt();
|
|
Expression();
|
|
} else if (jj_2_82(2147483647)) {
|
|
jj_consume_token(P);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="=";
|
|
} else if (jj_2_83(2147483647)) {
|
|
jj_consume_token(P);
|
|
jj_consume_token(MIN);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="min=";
|
|
} else if (jj_2_84(2147483647)) {
|
|
jj_consume_token(P);
|
|
jj_consume_token(MAX);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="max=";
|
|
} else if (jj_2_85(2147483647)) {
|
|
jj_consume_token(PMIN);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="min=";
|
|
} else if (jj_2_86(2147483647)) {
|
|
jj_consume_token(PMAX);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="max=";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
jj_consume_token(LBRACKET);
|
|
if (jj_2_87(2147483647)) {
|
|
PCTLProbNext();
|
|
} else if (jj_2_88(2147483647)) {
|
|
PCTLProbBoundedUntil();
|
|
} else if (jj_2_89(2147483647)) {
|
|
PCTLProbUntil();
|
|
} else if (jj_2_90(2147483647)) {
|
|
PCTLProbBoundedFutureGlobal();
|
|
} else if (jj_2_91(2147483647)) {
|
|
PCTLProbFutureGlobal();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
if (jj_2_95(2147483647)) {
|
|
tf = jj_consume_token(LBRACE);
|
|
PCTLFormula();
|
|
jj_consume_token(RBRACE);
|
|
label_17:
|
|
while (true) {
|
|
if (jj_2_92(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_17;
|
|
}
|
|
if (jj_2_93(2147483647)) {
|
|
tfmin = jj_consume_token(LBRACE);
|
|
jj_consume_token(MIN);
|
|
jj_consume_token(RBRACE);
|
|
} else if (jj_2_94(2147483647)) {
|
|
tfmax = jj_consume_token(LBRACE);
|
|
jj_consume_token(MAX);
|
|
jj_consume_token(RBRACE);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(RBRACKET);
|
|
PCTLFormula f, filter = null;
|
|
Expression prob;
|
|
PCTLProb pp;
|
|
|
|
// tf is non-null if there is a filter included
|
|
if (tf != null) {
|
|
filter = (PCTLFormula)stack.pop();
|
|
}
|
|
// create PCTLProb object
|
|
f = (PCTLFormula)stack.pop();
|
|
prob = (relOp.equals("=") || relOp.equals("min=") || relOp.equals("max=")) ? null : (Expression)stack.pop();
|
|
pp = new PCTLProb(f, relOp, prob);
|
|
// add filter if present
|
|
if (tf != null) {
|
|
pp.setFilter(filter);
|
|
// and register any requests
|
|
if (tfmin != null) pp.setFilterMinRequested(true);
|
|
if (tfmax != null) pp.setFilterMaxRequested(true);
|
|
}
|
|
// push result onto stack
|
|
stack.push(pp);
|
|
} else if (jj_2_97(2147483647)) {
|
|
PCTLSS();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// pctl next
|
|
static final public void PCTLProbNext() throws ParseException {
|
|
jj_consume_token(NEXT);
|
|
PCTLFormula();
|
|
PCTLProbNext n;
|
|
|
|
// create PCTLProbNext object
|
|
n = new PCTLProbNext((PCTLFormula)stack.pop());
|
|
// push result onto stack
|
|
stack.push(n);
|
|
}
|
|
|
|
// pctl bounded until
|
|
static final public void PCTLProbBoundedUntil() throws ParseException {
|
|
Token tle = null; // detects if a <= time bound is used
|
|
Token tge = null; // detects if a >= time bound is used
|
|
Token tr = null;
|
|
PCTLFormula();
|
|
jj_consume_token(UNTIL);
|
|
if (jj_2_98(2147483647)) {
|
|
tle = jj_consume_token(LE);
|
|
Expression();
|
|
} else if (jj_2_99(2147483647)) {
|
|
tge = jj_consume_token(GE);
|
|
Expression();
|
|
} else if (jj_2_100(2147483647)) {
|
|
tr = jj_consume_token(LBRACKET);
|
|
Expression();
|
|
jj_consume_token(COMMA);
|
|
Expression();
|
|
jj_consume_token(RBRACKET);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
PCTLFormula();
|
|
PCTLFormula f1, f2 = null;
|
|
Expression lb, ub;
|
|
PCTLProbBoundedUntil u;
|
|
|
|
// pop second until operand off stack
|
|
f2 = (PCTLFormula)stack.pop();
|
|
// creation of PCTLProbBoundedUntil object depends on type of time bound
|
|
// U<=ub
|
|
if (tle != null) {
|
|
ub = (Expression)stack.pop();
|
|
f1 = (PCTLFormula)stack.pop();
|
|
u = new PCTLProbBoundedUntil(f1, f2, null, ub);
|
|
}
|
|
// U>=lb
|
|
else if (tge != null) {
|
|
lb = (Expression)stack.pop();
|
|
f1 = (PCTLFormula)stack.pop();
|
|
u = new PCTLProbBoundedUntil(f1, f2, lb, null);
|
|
}
|
|
// U[lb,ub]
|
|
else {
|
|
ub = (Expression)stack.pop();
|
|
lb = (Expression)stack.pop();
|
|
f1 = (PCTLFormula)stack.pop();
|
|
u = new PCTLProbBoundedUntil(f1, f2, lb, ub);
|
|
}
|
|
// push result onto stack
|
|
stack.push(u);
|
|
}
|
|
|
|
// pctl until (unbounded)
|
|
static final public void PCTLProbUntil() throws ParseException {
|
|
PCTLFormula();
|
|
jj_consume_token(UNTIL);
|
|
PCTLFormula();
|
|
PCTLFormula f1, f2;
|
|
PCTLProbUntil u;
|
|
|
|
// create PCTLProbUntil object
|
|
f2 = (PCTLFormula)stack.pop();
|
|
f1 = (PCTLFormula)stack.pop();
|
|
u = new PCTLProbUntil(f1, f2);
|
|
// push result onto stack
|
|
stack.push(u);
|
|
}
|
|
|
|
// pctl bounded future (eventually) or global
|
|
static final public void PCTLProbBoundedFutureGlobal() throws ParseException {
|
|
Token tfuture = null; // detects if a future formula is used
|
|
Token tglobal = null; // detects if a global formula is used
|
|
Token tle = null; // detects if a <= time bound is used
|
|
Token tge = null; // detects if a >= time bound is used
|
|
Token tr = null;
|
|
if (jj_2_101(2147483647)) {
|
|
tfuture = jj_consume_token(FUTURE);
|
|
} else if (jj_2_102(2147483647)) {
|
|
tglobal = jj_consume_token(GLOB);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
if (jj_2_103(2147483647)) {
|
|
tle = jj_consume_token(LE);
|
|
Expression();
|
|
} else if (jj_2_104(2147483647)) {
|
|
tge = jj_consume_token(GE);
|
|
Expression();
|
|
} else if (jj_2_105(2147483647)) {
|
|
tr = jj_consume_token(LBRACKET);
|
|
Expression();
|
|
jj_consume_token(COMMA);
|
|
Expression();
|
|
jj_consume_token(RBRACKET);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
PCTLFormula();
|
|
PCTLFormula f = null;
|
|
Expression lb, ub;
|
|
PCTLFormula u;
|
|
|
|
// pop operand off stack
|
|
f = (PCTLFormula)stack.pop();
|
|
// U<=ub
|
|
if (tle != null) {
|
|
ub = (Expression)stack.pop();
|
|
if (tfuture != null) u = new PCTLProbBoundedFuture(f, null, ub);
|
|
else u = new PCTLProbBoundedGlobal(f, null, ub);
|
|
}
|
|
// U>=lb
|
|
else if (tge != null) {
|
|
lb = (Expression)stack.pop();
|
|
if (tfuture != null) u = new PCTLProbBoundedFuture(f, lb, null);
|
|
else u = new PCTLProbBoundedGlobal(f, lb, null);
|
|
}
|
|
// U[lb,ub]
|
|
else {
|
|
ub = (Expression)stack.pop();
|
|
lb = (Expression)stack.pop();
|
|
if (tfuture != null) u = new PCTLProbBoundedFuture(f, lb, ub);
|
|
else u = new PCTLProbBoundedGlobal(f, lb, ub);
|
|
}
|
|
// push result onto stack
|
|
stack.push(u);
|
|
}
|
|
|
|
// pctl future (eventually) or globally
|
|
static final public void PCTLProbFutureGlobal() throws ParseException {
|
|
Token tfuture = null; // detects if a future formula is used
|
|
Token tglobal = null;
|
|
if (jj_2_106(2147483647)) {
|
|
tfuture = jj_consume_token(FUTURE);
|
|
} else if (jj_2_107(2147483647)) {
|
|
tglobal = jj_consume_token(GLOB);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
PCTLFormula();
|
|
PCTLFormula f;
|
|
PCTLFormula u;
|
|
|
|
// create PCTLProbFuture/PCTLProbGlobal object
|
|
f = (PCTLFormula)stack.pop();
|
|
if (tfuture != null) u = new PCTLProbFuture(f);
|
|
else u = new PCTLProbGlobal(f);
|
|
// push result onto stack
|
|
stack.push(u);
|
|
}
|
|
|
|
// pctl steady state (actually only csl - not pctl at all)
|
|
static final public void PCTLSS() throws ParseException {
|
|
String relOp;
|
|
Token tf = null;
|
|
if (jj_2_111(2147483647)) {
|
|
if (jj_2_108(2147483647)) {
|
|
jj_consume_token(S);
|
|
relOp = LtGt();
|
|
Expression();
|
|
} else if (jj_2_109(2147483647)) {
|
|
jj_consume_token(S);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="=";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
jj_consume_token(LBRACKET);
|
|
PCTLFormula();
|
|
if (jj_2_110(2147483647)) {
|
|
tf = jj_consume_token(LBRACE);
|
|
PCTLFormula();
|
|
jj_consume_token(RBRACE);
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(RBRACKET);
|
|
PCTLFormula f, filter = null;
|
|
Expression p;
|
|
PCTLSS ss;
|
|
|
|
// tf is non-null if there is a filter included
|
|
if (tf != null) {
|
|
filter = (PCTLFormula)stack.pop();
|
|
}
|
|
// create PCTLSS object
|
|
f = (PCTLFormula)stack.pop();
|
|
p = (relOp.equals("=")) ? null : (Expression)stack.pop();
|
|
ss = new PCTLSS(f, relOp, p);
|
|
// add filter if present
|
|
if (tf != null) {
|
|
ss.setFilter(filter);
|
|
}
|
|
// push result onto stack
|
|
stack.push(ss);
|
|
} else if (jj_2_112(2147483647)) {
|
|
PCTLReward();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// pctl reward operator
|
|
static final public void PCTLReward() throws ParseException {
|
|
String relOp = null;
|
|
Token tf = null; // detects if a filter is included
|
|
Token tfmin = null; // detects if min of filter requested
|
|
Token tfmax = null; // detects if max of filter requested
|
|
boolean b = false; // detects if a reward struct index (expression) is included
|
|
String s = null;
|
|
if (jj_2_131(2147483647)) {
|
|
if (jj_2_120(2147483647)) {
|
|
jj_consume_token(R);
|
|
if (jj_2_115(2147483647)) {
|
|
jj_consume_token(LBRACE);
|
|
if (jj_2_113(2147483647)) {
|
|
jj_consume_token(DQUOTE);
|
|
s = Identifier();
|
|
jj_consume_token(DQUOTE);
|
|
} else if (jj_2_114(2147483647)) {
|
|
Expression();
|
|
b=true;
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
jj_consume_token(RBRACE);
|
|
} else {
|
|
;
|
|
}
|
|
if (jj_2_116(2147483647)) {
|
|
relOp = LtGt();
|
|
Expression();
|
|
} else if (jj_2_117(2147483647)) {
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="=";
|
|
} else if (jj_2_118(2147483647)) {
|
|
jj_consume_token(MIN);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="min=";
|
|
} else if (jj_2_119(2147483647)) {
|
|
jj_consume_token(MAX);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="max=";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
} else if (jj_2_121(2147483647)) {
|
|
jj_consume_token(RMIN);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="min=";
|
|
} else if (jj_2_122(2147483647)) {
|
|
jj_consume_token(RMAX);
|
|
jj_consume_token(EQ);
|
|
jj_consume_token(QMARK);
|
|
relOp="max=";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
jj_consume_token(LBRACKET);
|
|
if (jj_2_123(2147483647)) {
|
|
PCTLRewardCumul();
|
|
} else if (jj_2_124(2147483647)) {
|
|
PCTLRewardInst();
|
|
} else if (jj_2_125(2147483647)) {
|
|
PCTLRewardReach();
|
|
} else if (jj_2_126(2147483647)) {
|
|
PCTLRewardSS();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
if (jj_2_130(2147483647)) {
|
|
tf = jj_consume_token(LBRACE);
|
|
PCTLFormula();
|
|
jj_consume_token(RBRACE);
|
|
label_18:
|
|
while (true) {
|
|
if (jj_2_127(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_18;
|
|
}
|
|
if (jj_2_128(2147483647)) {
|
|
tfmin = jj_consume_token(LBRACE);
|
|
jj_consume_token(MIN);
|
|
jj_consume_token(RBRACE);
|
|
} else if (jj_2_129(2147483647)) {
|
|
tfmax = jj_consume_token(LBRACE);
|
|
jj_consume_token(MAX);
|
|
jj_consume_token(RBRACE);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(RBRACKET);
|
|
PCTLFormula f, filter = null;
|
|
Expression rew;
|
|
PCTLReward pr;
|
|
|
|
// tf is non-null if there is a filter included
|
|
if (tf != null) {
|
|
filter = (PCTLFormula)stack.pop();
|
|
}
|
|
// create PCTLReward object
|
|
f = (PCTLFormula)stack.pop();
|
|
rew = (relOp.equals("=") || relOp.equals("min=") || relOp.equals("max=")) ? null : (Expression)stack.pop();
|
|
pr = new PCTLReward(f, relOp, rew);
|
|
// get and add reward struct index if present
|
|
if (s != null) pr.setRewardStructIndex(s);
|
|
else if (b) pr.setRewardStructIndex((Expression)stack.pop());
|
|
// add filter if present
|
|
if (tf != null) {
|
|
pr.setFilter(filter);
|
|
// and register any requests
|
|
if (tfmin != null) pr.setFilterMinRequested(true);
|
|
if (tfmax != null) pr.setFilterMaxRequested(true);
|
|
}
|
|
// push result onto stack
|
|
stack.push(pr);
|
|
} else if (jj_2_132(2147483647)) {
|
|
PCTLInit();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// cumulative reward
|
|
static final public void PCTLRewardCumul() throws ParseException {
|
|
jj_consume_token(CUMUL);
|
|
jj_consume_token(LE);
|
|
Expression();
|
|
Expression b;
|
|
PCTLRewardCumul rc;
|
|
|
|
// create PCTLRewardCumul object
|
|
b = (Expression)stack.pop();
|
|
rc = new PCTLRewardCumul(b);
|
|
// push result onto stack
|
|
stack.push(rc);
|
|
}
|
|
|
|
// instantaneous reward
|
|
static final public void PCTLRewardInst() throws ParseException {
|
|
jj_consume_token(INST);
|
|
jj_consume_token(EQ);
|
|
Expression();
|
|
Expression t;
|
|
PCTLRewardInst ri;
|
|
|
|
// create PCTLRewardInst object
|
|
t = (Expression)stack.pop();
|
|
ri = new PCTLRewardInst(t);
|
|
// push result onto stack
|
|
stack.push(ri);
|
|
}
|
|
|
|
// reach reward
|
|
static final public void PCTLRewardReach() throws ParseException {
|
|
jj_consume_token(FUTURE);
|
|
PCTLFormula();
|
|
PCTLFormula f;
|
|
PCTLRewardReach rr;
|
|
|
|
// create PCTLRewardInst object
|
|
f = (PCTLFormula)stack.pop();
|
|
rr = new PCTLRewardReach(f);
|
|
// push result onto stack
|
|
stack.push(rr);
|
|
}
|
|
|
|
// steady-state reward
|
|
static final public void PCTLRewardSS() throws ParseException {
|
|
jj_consume_token(S);
|
|
PCTLRewardSS rs;
|
|
|
|
// create PCTLRewardSS object
|
|
rs = new PCTLRewardSS();
|
|
// push result onto stack
|
|
stack.push(rs);
|
|
}
|
|
|
|
// init
|
|
static final public void PCTLInit() throws ParseException {
|
|
if (jj_2_133(2147483647)) {
|
|
jj_consume_token(DQUOTE);
|
|
jj_consume_token(INIT);
|
|
jj_consume_token(DQUOTE);
|
|
stack.push(new PCTLInit());
|
|
} else if (jj_2_134(2147483647)) {
|
|
PCTLLabel();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// label
|
|
static final public void PCTLLabel() throws ParseException {
|
|
String s;
|
|
if (jj_2_135(2147483647)) {
|
|
jj_consume_token(DQUOTE);
|
|
s = Identifier();
|
|
jj_consume_token(DQUOTE);
|
|
stack.push(new PCTLLabel(s));
|
|
} else if (jj_2_136(2147483647)) {
|
|
PCTLBrackets();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// brackets
|
|
static final public void PCTLBrackets() throws ParseException {
|
|
if (jj_2_137(2147483647)) {
|
|
jj_consume_token(LPARENTH);
|
|
PCTLFormula();
|
|
jj_consume_token(RPARENTH);
|
|
PCTLBrackets e = new PCTLBrackets();
|
|
e.setOperand((PCTLFormula)stack.pop());
|
|
stack.push(e);
|
|
} else if (jj_2_138(2147483647)) {
|
|
PCTLExpression();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// pctl expression
|
|
static final public void PCTLExpression() throws ParseException {
|
|
ExpressionRelOpRange();
|
|
PCTLFormula f;
|
|
|
|
f = new PCTLExpression((Expression)stack.pop());
|
|
stack.push(f);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// for loop
|
|
//-----------------------------------------------------------------------------------
|
|
static final public ForLoop ForLoop() throws ParseException {
|
|
String s;
|
|
Token t = null;
|
|
s = Identifier();
|
|
jj_consume_token(EQ);
|
|
Expression();
|
|
jj_consume_token(COLON);
|
|
Expression();
|
|
if (jj_2_139(2147483647)) {
|
|
t = jj_consume_token(COLON);
|
|
Expression();
|
|
} else {
|
|
;
|
|
}
|
|
jj_consume_token(0);
|
|
ForLoop fl = new ForLoop();
|
|
fl.setLHS(s);
|
|
if (t != null) {
|
|
fl.setTo((Expression)stack.pop());
|
|
fl.setStep((Expression)stack.pop());
|
|
}
|
|
else {
|
|
fl.setTo((Expression)stack.pop());
|
|
}
|
|
fl.setFrom((Expression)stack.pop());
|
|
|
|
{if (true) return fl;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// expression stuff
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
// expression
|
|
static final public void Expression() throws ParseException {
|
|
ExpressionITE();
|
|
}
|
|
|
|
// expression (if-then-else)
|
|
static final public void ExpressionITE() throws ParseException {
|
|
if (jj_2_140(2147483647)) {
|
|
ExpressionOr();
|
|
jj_consume_token(QMARK);
|
|
ExpressionOr();
|
|
jj_consume_token(COLON);
|
|
ExpressionITE();
|
|
Expression c, t, e;
|
|
e = (Expression)stack.pop();
|
|
t = (Expression)stack.pop();
|
|
c = (Expression)stack.pop();
|
|
stack.push(new ExpressionITE(c, t, e));
|
|
} else if (jj_2_141(2147483647)) {
|
|
ExpressionOr();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// expression (or)
|
|
static final public void ExpressionOr() throws ParseException {
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
ExpressionAnd();
|
|
if (jj_2_142(2147483647)) {
|
|
jj_consume_token(OR);
|
|
ExpressionOr();
|
|
} else {
|
|
;
|
|
}
|
|
// get Expressions off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// if there is only one Expression, just put it back on the stack
|
|
if (reverseStack.size() == 1) {
|
|
stack.push(reverseStack.pop());
|
|
}
|
|
// otherwise, add the Expressions to an ExpressionOr in the correct order
|
|
else {
|
|
ExpressionOr e = new ExpressionOr();
|
|
while (!reverseStack.empty()) {
|
|
e.addOperand((Expression)reverseStack.pop());
|
|
}
|
|
// put the ExpressionOr on the stack
|
|
stack.push(e);
|
|
}
|
|
}
|
|
|
|
// expression (and)
|
|
static final public void ExpressionAnd() throws ParseException {
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
ExpressionNot();
|
|
label_19:
|
|
while (true) {
|
|
if (jj_2_143(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_19;
|
|
}
|
|
jj_consume_token(AND);
|
|
ExpressionNot();
|
|
}
|
|
// get Expressions off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// if there is only one Expression, just put it back on the stack
|
|
if (reverseStack.size() == 1) {
|
|
stack.push(reverseStack.pop());
|
|
}
|
|
// otherwise, add the Expressions to an ExpressionAnd in the correct order
|
|
else {
|
|
ExpressionAnd e = new ExpressionAnd();
|
|
while (!reverseStack.empty()) {
|
|
e.addOperand((Expression)reverseStack.pop());
|
|
}
|
|
// put the ExpressionAnd on the stack
|
|
stack.push(e);
|
|
}
|
|
}
|
|
|
|
// expression (not)
|
|
static final public void ExpressionNot() throws ParseException {
|
|
Token t = null;
|
|
if (jj_2_144(2147483647)) {
|
|
t = jj_consume_token(NOT);
|
|
} else {
|
|
;
|
|
}
|
|
ExpressionRelOpRange();
|
|
if (t != null) {
|
|
// pop the Expression off the stack
|
|
// and put it in an ExpressionNot
|
|
ExpressionNot e = new ExpressionNot();
|
|
e.setOperand((Expression)stack.pop());
|
|
// then put that back on the stack
|
|
stack.push(e);
|
|
}
|
|
}
|
|
|
|
// expression: relational operators/ranges
|
|
static final public void ExpressionRelOpRange() throws ParseException {
|
|
String relOp = null;
|
|
Expression e, e1, e2;
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
if (jj_2_148(2147483647)) {
|
|
ExpressionPlusMinus();
|
|
relOp = LtGt();
|
|
ExpressionPlusMinus();
|
|
// create ExpressionRelOp and add operands from stack
|
|
ExpressionRelOp ero = new ExpressionRelOp();
|
|
ero.setRelOp(relOp);
|
|
ero.setOperand2((Expression)stack.pop());
|
|
ero.setOperand1((Expression)stack.pop());
|
|
// pop marker off stack
|
|
stack.pop();
|
|
// push the ExpressionRelOp on to the stack
|
|
stack.push(ero);
|
|
} else if (jj_2_149(2147483647)) {
|
|
ExpressionPlusMinus();
|
|
relOp = EqNeq();
|
|
// store the left hand side expression so that it
|
|
// doesn't get mixed up with those on the right hand side
|
|
e = (Expression)stack.pop();
|
|
ExpressionPlusMinus();
|
|
if (jj_2_145(2147483647)) {
|
|
jj_consume_token(DOTS);
|
|
// push a "2" on to the stack to indicate there are a pair of expressions here
|
|
// (it is sandwiched between pair in stack)
|
|
stack.push(new Integer(2));
|
|
ExpressionPlusMinus();
|
|
} else {
|
|
;
|
|
}
|
|
label_20:
|
|
while (true) {
|
|
if (jj_2_146(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_20;
|
|
}
|
|
jj_consume_token(COMMA);
|
|
ExpressionPlusMinus();
|
|
if (jj_2_147(2147483647)) {
|
|
jj_consume_token(DOTS);
|
|
// push a "2" on to the stack to indicate there are a pair of expressions here
|
|
// (it is sandwiched between pair in stack)
|
|
stack.push(new Integer(2));
|
|
ExpressionPlusMinus();
|
|
} else {
|
|
;
|
|
}
|
|
}
|
|
// get Expressions/etc. off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// if there is a just a single item on the stack,
|
|
// it's a simple case and we can use an ExpressionRelOp for efficiency
|
|
if (reverseStack.size() == 1) {
|
|
// create ExpressionRelOp and get single operand from stack
|
|
ExpressionRelOp ero = new ExpressionRelOp();
|
|
ero.setRelOp(relOp);
|
|
ero.setOperand1(e);
|
|
ero.setOperand2((Expression)reverseStack.pop());
|
|
// push the ExpressionRelOp on to the stack
|
|
stack.push(ero);
|
|
}
|
|
// otherwise use an ExpressionRange
|
|
else {
|
|
// create ExpressionRange and add operands from stack in order
|
|
ExpressionRange er = new ExpressionRange();
|
|
er.setOperand(e);
|
|
er.setRelOp(relOp);
|
|
while (!reverseStack.empty()) {
|
|
// get an expression
|
|
e1 = (Expression)reverseStack.pop();
|
|
// is it part of a pair?
|
|
if (!reverseStack.empty()) {
|
|
if (reverseStack.peek() instanceof Integer) {
|
|
// pop "2" off
|
|
reverseStack.pop();
|
|
// pop second expression off
|
|
e2 = (Expression)reverseStack.pop();
|
|
// add range
|
|
er.addRangeOperandPair(e1, e2);
|
|
}
|
|
else {
|
|
// add range
|
|
er.addRangeOperand(e1);
|
|
}
|
|
}
|
|
else {
|
|
// add range
|
|
er.addRangeOperand(e1);
|
|
}
|
|
}
|
|
// push the ExpressionRange on to the stack
|
|
stack.push(er);
|
|
}
|
|
} else if (jj_2_150(2147483647)) {
|
|
ExpressionPlusMinus();
|
|
// but still pop marker off stack
|
|
e = (Expression)stack.pop();
|
|
stack.pop();
|
|
stack.push(e);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// expression: plus/minus - binary, left associative
|
|
static final public void ExpressionPlusMinus() throws ParseException {
|
|
Token t;
|
|
ExpressionTimesDivide();
|
|
label_21:
|
|
while (true) {
|
|
if (jj_2_151(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_21;
|
|
}
|
|
if (jj_2_152(2147483647)) {
|
|
t = jj_consume_token(PLUS);
|
|
} else if (jj_2_153(2147483647)) {
|
|
t = jj_consume_token(MINUS);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
ExpressionTimesDivide();
|
|
// pop expression operands off stack
|
|
Expression e1, e2;
|
|
e2 = (Expression)stack.pop();
|
|
e1 = (Expression)stack.pop();
|
|
// create new expression and push to stack
|
|
if (t.kind == PLUS) {
|
|
ExpressionPlus e = new ExpressionPlus();
|
|
e.setOperand1(e1);
|
|
e.setOperand2(e2);
|
|
stack.push(e);
|
|
}
|
|
else {
|
|
ExpressionMinus e = new ExpressionMinus();
|
|
e.setOperand1(e1);
|
|
e.setOperand2(e2);
|
|
stack.push(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
// expression: times/divide - binary, left associative
|
|
static final public void ExpressionTimesDivide() throws ParseException {
|
|
Token t;
|
|
ExpressionUnaryMinus();
|
|
label_22:
|
|
while (true) {
|
|
if (jj_2_154(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_22;
|
|
}
|
|
if (jj_2_155(2147483647)) {
|
|
t = jj_consume_token(TIMES);
|
|
} else if (jj_2_156(2147483647)) {
|
|
t = jj_consume_token(DIVIDE);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
ExpressionUnaryMinus();
|
|
// pop expression operands off stack
|
|
Expression e1, e2;
|
|
e2 = (Expression)stack.pop();
|
|
e1 = (Expression)stack.pop();
|
|
// create new expression and push to stack
|
|
if (t.kind == TIMES) {
|
|
ExpressionTimes e = new ExpressionTimes();
|
|
e.setOperand1(e1);
|
|
e.setOperand2(e2);
|
|
stack.push(e);
|
|
}
|
|
else {
|
|
ExpressionDivide e = new ExpressionDivide();
|
|
e.setOperand1(e1);
|
|
e.setOperand2(e2);
|
|
stack.push(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
// expression: unary minus (right associative)
|
|
static final public void ExpressionUnaryMinus() throws ParseException {
|
|
if (jj_2_157(2147483647)) {
|
|
jj_consume_token(MINUS);
|
|
ExpressionFunc();
|
|
// create new expression and push to stack
|
|
ExpressionUnaryMinus e = new ExpressionUnaryMinus();
|
|
e.setOperand((Expression)stack.pop());
|
|
stack.push(e);
|
|
} else if (jj_2_158(2147483647)) {
|
|
ExpressionFunc();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// expression (function)
|
|
static final public void ExpressionFunc() throws ParseException {
|
|
Token tFunc = null;
|
|
String s = null;
|
|
// put '*' marker on stack
|
|
stack.push(new Character('*'));
|
|
if (jj_2_171(2147483647)) {
|
|
if (jj_2_168(2147483647)) {
|
|
if (jj_2_159(2147483647)) {
|
|
jj_consume_token(MIN);
|
|
s="min";
|
|
} else if (jj_2_160(2147483647)) {
|
|
jj_consume_token(MAX);
|
|
s="max";
|
|
} else if (jj_2_161(2147483647)) {
|
|
jj_consume_token(FLOOR);
|
|
s="floor";
|
|
} else if (jj_2_162(2147483647)) {
|
|
jj_consume_token(CEIL);
|
|
s="ceil";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
jj_consume_token(LPARENTH);
|
|
} else if (jj_2_169(2147483647)) {
|
|
tFunc = jj_consume_token(FUNC);
|
|
jj_consume_token(LPARENTH);
|
|
if (jj_2_163(2147483647)) {
|
|
s = Identifier();
|
|
} else if (jj_2_164(2147483647)) {
|
|
jj_consume_token(MIN);
|
|
s="min";
|
|
} else if (jj_2_165(2147483647)) {
|
|
jj_consume_token(MAX);
|
|
s="max";
|
|
} else if (jj_2_166(2147483647)) {
|
|
jj_consume_token(FLOOR);
|
|
s="floor";
|
|
} else if (jj_2_167(2147483647)) {
|
|
jj_consume_token(CEIL);
|
|
s="ceil";
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
jj_consume_token(COMMA);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
Expression();
|
|
label_23:
|
|
while (true) {
|
|
if (jj_2_170(2147483647)) {
|
|
;
|
|
} else {
|
|
break label_23;
|
|
}
|
|
jj_consume_token(COMMA);
|
|
Expression();
|
|
}
|
|
jj_consume_token(RPARENTH);
|
|
// get Expressions off stack and reverse their order
|
|
while (!(stack.peek() instanceof Character)) {
|
|
reverseStack.push(stack.pop());
|
|
}
|
|
// remove '*' marker
|
|
stack.pop();
|
|
// add the Expressions to an ExpressionFunc in the correct order
|
|
ExpressionFunc e = new ExpressionFunc();
|
|
while (!reverseStack.empty()) {
|
|
e.addOperand((Expression)reverseStack.pop());
|
|
}
|
|
// set name of function
|
|
e.setName(s);
|
|
// record which notation was used
|
|
e.setOldStyle(tFunc == null);
|
|
// put the ExpressionFunc on the stack
|
|
stack.push(e);
|
|
} else if (jj_2_172(2147483647)) {
|
|
ExpressionIdent();
|
|
// remove '*' marker
|
|
Expression e = (Expression)stack.pop();
|
|
stack.pop();
|
|
stack.push(e);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// expression (identifier)
|
|
static final public void ExpressionIdent() throws ParseException {
|
|
String ident;
|
|
if (jj_2_173(2147483647)) {
|
|
ident = Identifier();
|
|
ExpressionIdent e = new ExpressionIdent();
|
|
e.setName(ident);
|
|
stack.push(e);
|
|
} else if (jj_2_174(2147483647)) {
|
|
ExpressionLiteral();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// expression (literal)
|
|
static final public void ExpressionLiteral() throws ParseException {
|
|
int i;
|
|
String d;
|
|
if (jj_2_175(2147483647)) {
|
|
i = Int();
|
|
ExpressionInt e = new ExpressionInt();
|
|
e.setValue(i);
|
|
stack.push(e);
|
|
} else if (jj_2_176(2147483647)) {
|
|
d = Double();
|
|
ExpressionDouble e = new ExpressionDouble();
|
|
e.setValue(d);
|
|
stack.push(e);
|
|
} else if (jj_2_177(2147483647)) {
|
|
jj_consume_token(TRUE);
|
|
ExpressionTrue e = new ExpressionTrue();
|
|
stack.push(e);
|
|
} else if (jj_2_178(2147483647)) {
|
|
jj_consume_token(FALSE);
|
|
ExpressionFalse e = new ExpressionFalse();
|
|
stack.push(e);
|
|
} else if (jj_2_179(2147483647)) {
|
|
ExpressionBrackets();
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
}
|
|
|
|
// expression (brackets)
|
|
static final public void ExpressionBrackets() throws ParseException {
|
|
jj_consume_token(LPARENTH);
|
|
Expression();
|
|
jj_consume_token(RPARENTH);
|
|
ExpressionBrackets e = new ExpressionBrackets();
|
|
e.setOperand((Expression)stack.pop());
|
|
stack.push(e);
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------------
|
|
// miscellaneous stuff
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
// identifier
|
|
static final public String Identifier() throws ParseException {
|
|
jj_consume_token(REG_IDENT);
|
|
{if (true) return token.image;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// identifier with a prime
|
|
static final public String IdentifierPrime() throws ParseException {
|
|
jj_consume_token(REG_IDENTPRIME);
|
|
// remove prime and return
|
|
String s = token.image;
|
|
s = s.substring(0, s.length()-1);
|
|
{if (true) return s;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// one of the relational operators: =, !=
|
|
static final public String EqNeq() throws ParseException {
|
|
if (jj_2_180(2147483647)) {
|
|
jj_consume_token(EQ);
|
|
} else if (jj_2_181(2147483647)) {
|
|
jj_consume_token(NE);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
{if (true) return token.image;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// one of the relational operators: >, <, >=, <=
|
|
static final public String LtGt() throws ParseException {
|
|
if (jj_2_182(2147483647)) {
|
|
jj_consume_token(GT);
|
|
} else if (jj_2_183(2147483647)) {
|
|
jj_consume_token(LT);
|
|
} else if (jj_2_184(2147483647)) {
|
|
jj_consume_token(GE);
|
|
} else if (jj_2_185(2147483647)) {
|
|
jj_consume_token(LE);
|
|
} else {
|
|
jj_consume_token(-1);
|
|
throw new ParseException();
|
|
}
|
|
{if (true) return token.image;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// integer
|
|
static final public int Int() throws ParseException {
|
|
int i;
|
|
jj_consume_token(REG_INT);
|
|
i = Integer.parseInt(token.image);
|
|
{if (true) return i;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
// double
|
|
static final public String Double() throws ParseException {
|
|
jj_consume_token(REG_DOUBLE);
|
|
//return Double.valueOf(token.image).doubleValue();
|
|
{if (true) return token.image;}
|
|
throw new Error("Missing return statement in function");
|
|
}
|
|
|
|
static final private boolean jj_2_1(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_1(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(0, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_2(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_2(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(1, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_3(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_3(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(2, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_4(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_4(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(3, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_5(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_5(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(4, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_6(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_6(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(5, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_7(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_7(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(6, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_8(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_8(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(7, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_9(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_9(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(8, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_10(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_10(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(9, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_11(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_11(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(10, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_12(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_12(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(11, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_13(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_13(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(12, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_14(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_14(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(13, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_15(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_15(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(14, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_16(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_16(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(15, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_17(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_17(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(16, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_18(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_18(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(17, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_19(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_19(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(18, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_20(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_20(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(19, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_21(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_21(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(20, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_22(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_22(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(21, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_23(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_23(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(22, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_24(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_24(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(23, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_25(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_25(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(24, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_26(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_26(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(25, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_27(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_27(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(26, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_28(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_28(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(27, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_29(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_29(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(28, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_30(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_30(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(29, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_31(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_31(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(30, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_32(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_32(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(31, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_33(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_33(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(32, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_34(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_34(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(33, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_35(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_35(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(34, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_36(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_36(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(35, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_37(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_37(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(36, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_38(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_38(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(37, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_39(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_39(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(38, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_40(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_40(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(39, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_41(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_41(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(40, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_42(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_42(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(41, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_43(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_43(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(42, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_44(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_44(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(43, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_45(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_45(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(44, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_46(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_46(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(45, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_47(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_47(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(46, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_48(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_48(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(47, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_49(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_49(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(48, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_50(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_50(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(49, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_51(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_51(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(50, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_52(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_52(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(51, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_53(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_53(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(52, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_54(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_54(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(53, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_55(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_55(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(54, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_56(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_56(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(55, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_57(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_57(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(56, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_58(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_58(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(57, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_59(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_59(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(58, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_60(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_60(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(59, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_61(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_61(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(60, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_62(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_62(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(61, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_63(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_63(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(62, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_64(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_64(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(63, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_65(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_65(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(64, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_66(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_66(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(65, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_67(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_67(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(66, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_68(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_68(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(67, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_69(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_69(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(68, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_70(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_70(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(69, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_71(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_71(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(70, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_72(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_72(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(71, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_73(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_73(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(72, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_74(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_74(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(73, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_75(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_75(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(74, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_76(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_76(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(75, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_77(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_77(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(76, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_78(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_78(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(77, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_79(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_79(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(78, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_80(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_80(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(79, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_81(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_81(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(80, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_82(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_82(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(81, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_83(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_83(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(82, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_84(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_84(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(83, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_85(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_85(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(84, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_86(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_86(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(85, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_87(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_87(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(86, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_88(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_88(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(87, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_89(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_89(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(88, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_90(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_90(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(89, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_91(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_91(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(90, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_92(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_92(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(91, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_93(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_93(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(92, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_94(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_94(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(93, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_95(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_95(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(94, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_96(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_96(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(95, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_97(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_97(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(96, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_98(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_98(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(97, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_99(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_99(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(98, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_100(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_100(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(99, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_101(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_101(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(100, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_102(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_102(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(101, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_103(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_103(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(102, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_104(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_104(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(103, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_105(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_105(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(104, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_106(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_106(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(105, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_107(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_107(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(106, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_108(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_108(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(107, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_109(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_109(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(108, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_110(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_110(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(109, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_111(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_111(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(110, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_112(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_112(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(111, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_113(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_113(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(112, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_114(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_114(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(113, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_115(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_115(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(114, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_116(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_116(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(115, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_117(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_117(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(116, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_118(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_118(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(117, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_119(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_119(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(118, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_120(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_120(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(119, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_121(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_121(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(120, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_122(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_122(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(121, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_123(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_123(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(122, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_124(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_124(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(123, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_125(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_125(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(124, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_126(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_126(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(125, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_127(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_127(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(126, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_128(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_128(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(127, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_129(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_129(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(128, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_130(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_130(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(129, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_131(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_131(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(130, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_132(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_132(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(131, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_133(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_133(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(132, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_134(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_134(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(133, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_135(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_135(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(134, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_136(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_136(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(135, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_137(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_137(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(136, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_138(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_138(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(137, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_139(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_139(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(138, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_140(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_140(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(139, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_141(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_141(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(140, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_142(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_142(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(141, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_143(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_143(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(142, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_144(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_144(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(143, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_145(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_145(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(144, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_146(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_146(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(145, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_147(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_147(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(146, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_148(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_148(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(147, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_149(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_149(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(148, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_150(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_150(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(149, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_151(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_151(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(150, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_152(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_152(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(151, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_153(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_153(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(152, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_154(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_154(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(153, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_155(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_155(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(154, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_156(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_156(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(155, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_157(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_157(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(156, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_158(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_158(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(157, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_159(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_159(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(158, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_160(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_160(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(159, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_161(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_161(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(160, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_162(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_162(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(161, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_163(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_163(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(162, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_164(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_164(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(163, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_165(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_165(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(164, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_166(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_166(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(165, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_167(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_167(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(166, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_168(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_168(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(167, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_169(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_169(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(168, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_170(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_170(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(169, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_171(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_171(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(170, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_172(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_172(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(171, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_173(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_173(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(172, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_174(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_174(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(173, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_175(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_175(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(174, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_176(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_176(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(175, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_177(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_177(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(176, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_178(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_178(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(177, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_179(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_179(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(178, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_180(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_180(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(179, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_181(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_181(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(180, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_182(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_182(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(181, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_183(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_183(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(182, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_184(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_184(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(183, xla); }
|
|
}
|
|
|
|
static final private boolean jj_2_185(int xla) {
|
|
jj_la = xla; jj_lastpos = jj_scanpos = token;
|
|
try { return !jj_3_185(); }
|
|
catch(LookaheadSuccess ls) { return true; }
|
|
finally { jj_save(184, xla); }
|
|
}
|
|
|
|
static final private boolean jj_3_98() {
|
|
if (jj_scan_token(LE)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_73() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_140()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_141()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_179() {
|
|
if (jj_3R_84()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_140() {
|
|
if (jj_3R_72()) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
if (jj_3R_72()) return true;
|
|
if (jj_scan_token(COLON)) return true;
|
|
if (jj_3R_73()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_162() {
|
|
if (jj_scan_token(CEIL)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_178() {
|
|
if (jj_scan_token(FALSE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_165() {
|
|
if (jj_scan_token(MAX)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_58() {
|
|
if (jj_scan_token(CEIL)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_53() {
|
|
if (jj_scan_token(CEIL)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_35() {
|
|
if (jj_3R_73()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_177() {
|
|
if (jj_scan_token(TRUE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_90() {
|
|
if (jj_3R_59()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_176() {
|
|
if (jj_3R_83()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_27() {
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_57() {
|
|
if (jj_3R_61()) return true;
|
|
if (jj_scan_token(UNTIL)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_98()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_99()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_100()) return true;
|
|
}
|
|
}
|
|
if (jj_3R_61()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_46() {
|
|
if (jj_3R_47()) return true;
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
if (jj_3R_48()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_65()) { jj_scanpos = xsp; break; }
|
|
}
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_3R_47()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_64() {
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_3R_47()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_81() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_175()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_176()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_177()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_178()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_179()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_28() {
|
|
if (jj_scan_token(MODULE)) return true;
|
|
if (jj_3R_36()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_33()) { jj_scanpos = xsp; break; }
|
|
}
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_34()) { jj_scanpos = xsp; break; }
|
|
}
|
|
if (jj_scan_token(ENDMODULE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_175() {
|
|
if (jj_3R_82()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_161() {
|
|
if (jj_scan_token(FLOOR)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_164() {
|
|
if (jj_scan_token(MIN)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_89() {
|
|
if (jj_3R_58()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_174() {
|
|
if (jj_3R_81()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_57() {
|
|
if (jj_scan_token(FLOOR)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_52() {
|
|
if (jj_scan_token(FLOOR)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_94() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_scan_token(MAX)) return true;
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_27() {
|
|
if (jj_scan_token(GLOBAL)) return true;
|
|
if (jj_3R_37()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_56() {
|
|
if (jj_scan_token(NEXT)) return true;
|
|
if (jj_3R_61()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_80() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_173()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_174()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_173() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_24() {
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_26() {
|
|
if (jj_scan_token(PROB)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_45() {
|
|
if (jj_3R_47()) return true;
|
|
Token xsp;
|
|
if (jj_3_64()) return true;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_64()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_97() {
|
|
if (jj_3R_62()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_23() {
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_63() {
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_3R_47()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_163() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_25() {
|
|
if (jj_scan_token(RATE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_160() {
|
|
if (jj_scan_token(MAX)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_71() {
|
|
if (jj_3R_91()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_172() {
|
|
if (jj_3R_80()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_32() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_25()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_26()) return true;
|
|
}
|
|
if (jj_3R_36()) return true;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_27()) jj_scanpos = xsp;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_88() {
|
|
if (jj_3R_57()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_22() {
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_170() {
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_56() {
|
|
if (jj_scan_token(MAX)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_51() {
|
|
if (jj_scan_token(MAX)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_31() {
|
|
if (jj_scan_token(CONST)) return true;
|
|
if (jj_3R_36()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_24()) jj_scanpos = xsp;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_138() {
|
|
if (jj_3R_71()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_44() {
|
|
if (jj_3R_47()) return true;
|
|
Token xsp;
|
|
if (jj_3_63()) return true;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_63()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_92() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_93()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_94()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_93() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_scan_token(MIN)) return true;
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_95() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_3R_61()) return true;
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_92()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_87() {
|
|
if (jj_3R_56()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_21() {
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_70() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_137()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_138()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_169() {
|
|
if (jj_scan_token(FUNC)) return true;
|
|
if (jj_scan_token(LPARENTH)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_163()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_164()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_165()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_166()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_167()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (jj_scan_token(COMMA)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_159() {
|
|
if (jj_scan_token(MIN)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_137() {
|
|
if (jj_scan_token(LPARENTH)) return true;
|
|
if (jj_3R_61()) return true;
|
|
if (jj_scan_token(RPARENTH)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_20() {
|
|
if (jj_scan_token(CTMC)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_86() {
|
|
if (jj_scan_token(PMAX)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_168() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_159()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_160()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_161()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_162()) return true;
|
|
}
|
|
}
|
|
}
|
|
if (jj_scan_token(LPARENTH)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_85() {
|
|
if (jj_scan_token(PMIN)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_79() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_171()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_172()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_171() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_168()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_169()) return true;
|
|
}
|
|
if (jj_3R_35()) return true;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_170()) { jj_scanpos = xsp; break; }
|
|
}
|
|
if (jj_scan_token(RPARENTH)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_84() {
|
|
if (jj_scan_token(P)) return true;
|
|
if (jj_scan_token(MAX)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_30() {
|
|
if (jj_scan_token(CONST)) return true;
|
|
if (jj_scan_token(BOOL)) return true;
|
|
if (jj_3R_36()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_23()) jj_scanpos = xsp;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_83() {
|
|
if (jj_scan_token(P)) return true;
|
|
if (jj_scan_token(MIN)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_62() {
|
|
if (jj_3R_47()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_82() {
|
|
if (jj_scan_token(P)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_81() {
|
|
if (jj_scan_token(P)) return true;
|
|
if (jj_3R_55()) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_136() {
|
|
if (jj_3R_70()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_61() {
|
|
if (jj_3R_46()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_89() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_96()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_97()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_19() {
|
|
if (jj_scan_token(MDP)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_96() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_81()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_82()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_83()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_84()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_85()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_86()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_87()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_88()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_89()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_90()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_91()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
xsp = jj_scanpos;
|
|
if (jj_3_95()) jj_scanpos = xsp;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_60() {
|
|
if (jj_3R_45()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_86() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_59()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_60()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_61()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_62()) return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_59() {
|
|
if (jj_3R_44()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_55() {
|
|
if (jj_scan_token(MIN)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_69() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_135()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_136()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_50() {
|
|
if (jj_scan_token(MIN)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_135() {
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_156() {
|
|
if (jj_scan_token(DIVIDE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_158() {
|
|
if (jj_3R_79()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_29() {
|
|
if (jj_scan_token(CONST)) return true;
|
|
if (jj_scan_token(DOUBLE)) return true;
|
|
if (jj_3R_36()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_22()) jj_scanpos = xsp;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_18() {
|
|
if (jj_scan_token(DTMC)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_134() {
|
|
if (jj_3R_69()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_30() {
|
|
if (jj_scan_token(SYSTEM)) return true;
|
|
if (jj_3R_86()) return true;
|
|
if (jj_scan_token(ENDSYSTEM)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_78() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_157()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_158()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_157() {
|
|
if (jj_scan_token(MINUS)) return true;
|
|
if (jj_3R_79()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_155() {
|
|
if (jj_scan_token(TIMES)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_80() {
|
|
if (jj_scan_token(NOT)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_68() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_133()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_134()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_133() {
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
if (jj_scan_token(INIT)) return true;
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_154() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_155()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_156()) return true;
|
|
}
|
|
if (jj_3R_78()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_54() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_80()) jj_scanpos = xsp;
|
|
if (jj_3R_89()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_26() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_28()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_29()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_30()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_31()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_32()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_28() {
|
|
if (jj_scan_token(CONST)) return true;
|
|
if (jj_scan_token(INT)) return true;
|
|
if (jj_3R_36()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_21()) jj_scanpos = xsp;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_17() {
|
|
if (jj_scan_token(STOCHASTIC)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_48() {
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_43()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_54() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_49() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_43() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_49()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_50()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_51()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_52()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_53()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (jj_scan_token(EQ)) return true;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_54()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_55()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_56()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_57()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_58()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_67() {
|
|
if (jj_scan_token(S)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_153() {
|
|
if (jj_scan_token(MINUS)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_79() {
|
|
if (jj_scan_token(AND)) return true;
|
|
if (jj_3R_54()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_85() {
|
|
if (jj_3R_43()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_48()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_33() {
|
|
if (jj_scan_token(LABEL)) return true;
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_10() {
|
|
if (jj_3R_32()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_16() {
|
|
if (jj_scan_token(NONDETERMINISTIC)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_77() {
|
|
if (jj_3R_78()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_154()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_152() {
|
|
if (jj_scan_token(PLUS)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_151() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_152()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_153()) return true;
|
|
}
|
|
if (jj_3R_77()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_53() {
|
|
if (jj_3R_54()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_79()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_25() {
|
|
if (jj_scan_token(FORMULA)) return true;
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_66() {
|
|
if (jj_scan_token(FUTURE)) return true;
|
|
if (jj_3R_61()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_9() {
|
|
if (jj_3R_31()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_29() {
|
|
if (jj_scan_token(MODULE)) return true;
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
if (jj_3R_85()) return true;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
if (jj_scan_token(ENDMODULE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_15() {
|
|
if (jj_scan_token(PROBABILISTIC)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_24() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_15()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_16()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_17()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_18()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_19()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_20()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_78() {
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_3R_53()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_126() {
|
|
if (jj_3R_67()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_65() {
|
|
if (jj_scan_token(INST)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_8() {
|
|
if (jj_3R_30()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_75() {
|
|
if (jj_3R_77()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_151()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_47() {
|
|
if (jj_3R_42()) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_52() {
|
|
if (jj_3R_53()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_78()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_77() {
|
|
if (jj_scan_token(IMPLIES)) return true;
|
|
if (jj_3R_52()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_41() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_46()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_47()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_46() {
|
|
if (jj_scan_token(LPARENTH)) return true;
|
|
if (jj_3R_42()) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(RPARENTH)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_14() {
|
|
if (jj_3R_34()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_125() {
|
|
if (jj_3R_66()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_64() {
|
|
if (jj_scan_token(CUMUL)) return true;
|
|
if (jj_scan_token(LE)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_150() {
|
|
if (jj_3R_75()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_7() {
|
|
if (jj_3R_29()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_129() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_scan_token(MAX)) return true;
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_114() {
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_90() {
|
|
if (jj_3R_52()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_77()) jj_scanpos = xsp;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_132() {
|
|
if (jj_3R_68()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_13() {
|
|
if (jj_3R_26()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_6() {
|
|
if (jj_3R_28()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_61() {
|
|
if (jj_3R_90()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_45() {
|
|
if (jj_scan_token(TRUE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_43() {
|
|
if (jj_scan_token(AND)) return true;
|
|
if (jj_3R_41()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_124() {
|
|
if (jj_3R_65()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_12() {
|
|
if (jj_3R_33()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_11() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_12()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_13()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_14()) return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_34() {
|
|
if (jj_3R_61()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_147() {
|
|
if (jj_scan_token(DOTS)) return true;
|
|
if (jj_3R_75()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_5() {
|
|
if (jj_3R_27()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_74() {
|
|
if (jj_3R_51()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_40() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_44()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_45()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_44() {
|
|
if (jj_3R_41()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_43()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_127() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_128()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_129()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_128() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_scan_token(MIN)) return true;
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_130() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_3R_61()) return true;
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_127()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_123() {
|
|
if (jj_3R_64()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_113() {
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_75() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_4() {
|
|
if (jj_3R_26()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_122() {
|
|
if (jj_scan_token(RMAX)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_145() {
|
|
if (jj_scan_token(DOTS)) return true;
|
|
if (jj_3R_75()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_121() {
|
|
if (jj_scan_token(RMIN)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_32() {
|
|
if (jj_scan_token(INIT)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(ENDINIT)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_119() {
|
|
if (jj_scan_token(MAX)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_118() {
|
|
if (jj_scan_token(MIN)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_39() {
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(COLON)) return true;
|
|
if (jj_3R_40()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_116() {
|
|
if (jj_3R_55()) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_117() {
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_115() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_113()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_114()) return true;
|
|
}
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_120() {
|
|
if (jj_scan_token(R)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_115()) jj_scanpos = xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_116()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_117()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_118()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_119()) return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_63() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_131()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_132()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_76() {
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_75()) jj_scanpos = xsp;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_131() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_120()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_121()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_122()) return true;
|
|
}
|
|
}
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_123()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_124()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_125()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_126()) return true;
|
|
}
|
|
}
|
|
}
|
|
xsp = jj_scanpos;
|
|
if (jj_3_130()) jj_scanpos = xsp;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_3() {
|
|
if (jj_3R_25()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_110() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_3R_61()) return true;
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_51() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_76()) jj_scanpos = xsp;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(COLON)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_40() {
|
|
if (jj_scan_token(PLUS)) return true;
|
|
if (jj_3R_39()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_146() {
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_75()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_147()) jj_scanpos = xsp;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_73() {
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(DQUOTE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_112() {
|
|
if (jj_3R_63()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_105() {
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_42() {
|
|
if (jj_3R_39()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_40()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_149() {
|
|
if (jj_3R_75()) return true;
|
|
if (jj_3R_76()) return true;
|
|
if (jj_3R_75()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_145()) jj_scanpos = xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_146()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_109() {
|
|
if (jj_scan_token(S)) return true;
|
|
if (jj_scan_token(EQ)) return true;
|
|
if (jj_scan_token(QMARK)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_108() {
|
|
if (jj_scan_token(S)) return true;
|
|
if (jj_3R_55()) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_31() {
|
|
if (jj_scan_token(REWARDS)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_73()) jj_scanpos = xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_74()) { jj_scanpos = xsp; break; }
|
|
}
|
|
if (jj_scan_token(ENDREWARDS)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_87() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_41()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_42()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_41() {
|
|
if (jj_3R_40()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_91() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_148()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_149()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_150()) return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_148() {
|
|
if (jj_3R_75()) return true;
|
|
if (jj_3R_55()) return true;
|
|
if (jj_3R_75()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_104() {
|
|
if (jj_scan_token(GE)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_62() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_111()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_112()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_111() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_108()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_109()) return true;
|
|
}
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
if (jj_3R_61()) return true;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_110()) jj_scanpos = xsp;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_107() {
|
|
if (jj_scan_token(GLOB)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_1() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_2()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_3()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_4()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_5()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_6()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_7()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_8()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_9()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_10()) return true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_2() {
|
|
if (jj_3R_24()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_50() {
|
|
if (jj_scan_token(LPARENTH)) return true;
|
|
if (jj_3R_86()) return true;
|
|
if (jj_scan_token(RPARENTH)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_39() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_83() {
|
|
if (jj_scan_token(REG_DOUBLE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_185() {
|
|
if (jj_scan_token(LE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_144() {
|
|
if (jj_scan_token(NOT)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_106() {
|
|
if (jj_scan_token(FUTURE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_74() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_144()) jj_scanpos = xsp;
|
|
if (jj_3R_91()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_60() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_106()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_107()) return true;
|
|
}
|
|
if (jj_3R_61()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_49() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_68() {
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_48()) return true;
|
|
if (jj_scan_token(RENAME)) return true;
|
|
if (jj_3R_48()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_38() {
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_39()) jj_scanpos = xsp;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(RARROW)) return true;
|
|
if (jj_3R_87()) return true;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_184() {
|
|
if (jj_scan_token(GE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_103() {
|
|
if (jj_scan_token(LE)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_82() {
|
|
if (jj_scan_token(REG_INT)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_183() {
|
|
if (jj_scan_token(LT)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_143() {
|
|
if (jj_scan_token(AND)) return true;
|
|
if (jj_3R_74()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_48() {
|
|
if (jj_3R_36()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_182() {
|
|
if (jj_scan_token(GT)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_55() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_182()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_183()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_184()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_185()) return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_102() {
|
|
if (jj_scan_token(GLOB)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_181() {
|
|
if (jj_scan_token(NE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_72() {
|
|
if (jj_3R_50()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_36() {
|
|
if (jj_scan_token(INIT)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_88() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_71()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_72()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_38() {
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(COLON)) return true;
|
|
if (jj_scan_token(BOOL)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_36()) jj_scanpos = xsp;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_71() {
|
|
if (jj_3R_49()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_100() {
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_180() {
|
|
if (jj_scan_token(EQ)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_76() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_180()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_181()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_92() {
|
|
if (jj_3R_74()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_143()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_67() {
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_48()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_167() {
|
|
if (jj_scan_token(CEIL)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_101() {
|
|
if (jj_scan_token(FUTURE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_59() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_101()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_102()) return true;
|
|
}
|
|
xsp = jj_scanpos;
|
|
if (jj_3_103()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_104()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_105()) return true;
|
|
}
|
|
}
|
|
if (jj_3R_61()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_142() {
|
|
if (jj_scan_token(OR)) return true;
|
|
if (jj_3R_72()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_42() {
|
|
if (jj_scan_token(REG_IDENTPRIME)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_35() {
|
|
if (jj_scan_token(INIT)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_65() {
|
|
if (jj_scan_token(COMMA)) return true;
|
|
if (jj_3R_48()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_37() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_37()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_38()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_37() {
|
|
if (jj_3R_36()) return true;
|
|
if (jj_scan_token(COLON)) return true;
|
|
if (jj_scan_token(LBRACKET)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(DOTS)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(RBRACKET)) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_35()) jj_scanpos = xsp;
|
|
if (jj_scan_token(SEMICOLON)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_70() {
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_3R_48()) return true;
|
|
if (jj_scan_token(RENAME)) return true;
|
|
if (jj_3R_48()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_68()) { jj_scanpos = xsp; break; }
|
|
}
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_99() {
|
|
if (jj_scan_token(GE)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_36() {
|
|
if (jj_scan_token(REG_IDENT)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_66() {
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_69()) {
|
|
jj_scanpos = xsp;
|
|
if (jj_3_70()) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_34() {
|
|
if (jj_3R_38()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_139() {
|
|
if (jj_scan_token(COLON)) return true;
|
|
if (jj_3R_35()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_72() {
|
|
if (jj_3R_92()) return true;
|
|
Token xsp;
|
|
xsp = jj_scanpos;
|
|
if (jj_3_142()) jj_scanpos = xsp;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_166() {
|
|
if (jj_scan_token(FLOOR)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_58() {
|
|
if (jj_3R_61()) return true;
|
|
if (jj_scan_token(UNTIL)) return true;
|
|
if (jj_3R_61()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_91() {
|
|
if (jj_3R_60()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_141() {
|
|
if (jj_3R_72()) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_69() {
|
|
if (jj_scan_token(DIVIDE)) return true;
|
|
if (jj_scan_token(LBRACE)) return true;
|
|
if (jj_3R_48()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_67()) { jj_scanpos = xsp; break; }
|
|
}
|
|
if (jj_scan_token(RBRACE)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_84() {
|
|
if (jj_scan_token(LPARENTH)) return true;
|
|
if (jj_3R_35()) return true;
|
|
if (jj_scan_token(RPARENTH)) return true;
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3R_47() {
|
|
if (jj_3R_88()) return true;
|
|
Token xsp;
|
|
while (true) {
|
|
xsp = jj_scanpos;
|
|
if (jj_3_66()) { jj_scanpos = xsp; break; }
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static final private boolean jj_3_33() {
|
|
if (jj_3R_37()) return true;
|
|
return false;
|
|
}
|
|
|
|
static private boolean jj_initialized_once = false;
|
|
static public PrismParserTokenManager token_source;
|
|
static SimpleCharStream jj_input_stream;
|
|
static public Token token, jj_nt;
|
|
static private int jj_ntk;
|
|
static private Token jj_scanpos, jj_lastpos;
|
|
static private int jj_la;
|
|
static public boolean lookingAhead = false;
|
|
static private boolean jj_semLA;
|
|
static private int jj_gen;
|
|
static final private int[] jj_la1 = new int[0];
|
|
static private int[] jj_la1_0;
|
|
static private int[] jj_la1_1;
|
|
static private int[] jj_la1_2;
|
|
static {
|
|
jj_la1_0();
|
|
jj_la1_1();
|
|
jj_la1_2();
|
|
}
|
|
private static void jj_la1_0() {
|
|
jj_la1_0 = new int[] {};
|
|
}
|
|
private static void jj_la1_1() {
|
|
jj_la1_1 = new int[] {};
|
|
}
|
|
private static void jj_la1_2() {
|
|
jj_la1_2 = new int[] {};
|
|
}
|
|
static final private JJCalls[] jj_2_rtns = new JJCalls[185];
|
|
static private boolean jj_rescan = false;
|
|
static private int jj_gc = 0;
|
|
|
|
public PrismParser(java.io.InputStream stream) {
|
|
this(stream, null);
|
|
}
|
|
public PrismParser(java.io.InputStream stream, String encoding) {
|
|
if (jj_initialized_once) {
|
|
System.out.println("ERROR: Second call to constructor of static parser. You must");
|
|
System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
|
|
System.out.println(" during parser generation.");
|
|
throw new Error();
|
|
}
|
|
jj_initialized_once = true;
|
|
try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
|
|
token_source = new PrismParserTokenManager(jj_input_stream);
|
|
token = new Token();
|
|
jj_ntk = -1;
|
|
jj_gen = 0;
|
|
for (int i = 0; i < 0; i++) jj_la1[i] = -1;
|
|
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
|
|
}
|
|
|
|
static public void ReInit(java.io.InputStream stream) {
|
|
ReInit(stream, null);
|
|
}
|
|
static public void ReInit(java.io.InputStream stream, String encoding) {
|
|
try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
|
|
token_source.ReInit(jj_input_stream);
|
|
token = new Token();
|
|
jj_ntk = -1;
|
|
jj_gen = 0;
|
|
for (int i = 0; i < 0; i++) jj_la1[i] = -1;
|
|
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
|
|
}
|
|
|
|
public PrismParser(java.io.Reader stream) {
|
|
if (jj_initialized_once) {
|
|
System.out.println("ERROR: Second call to constructor of static parser. You must");
|
|
System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
|
|
System.out.println(" during parser generation.");
|
|
throw new Error();
|
|
}
|
|
jj_initialized_once = true;
|
|
jj_input_stream = new SimpleCharStream(stream, 1, 1);
|
|
token_source = new PrismParserTokenManager(jj_input_stream);
|
|
token = new Token();
|
|
jj_ntk = -1;
|
|
jj_gen = 0;
|
|
for (int i = 0; i < 0; i++) jj_la1[i] = -1;
|
|
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
|
|
}
|
|
|
|
static public void ReInit(java.io.Reader stream) {
|
|
jj_input_stream.ReInit(stream, 1, 1);
|
|
token_source.ReInit(jj_input_stream);
|
|
token = new Token();
|
|
jj_ntk = -1;
|
|
jj_gen = 0;
|
|
for (int i = 0; i < 0; i++) jj_la1[i] = -1;
|
|
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
|
|
}
|
|
|
|
public PrismParser(PrismParserTokenManager tm) {
|
|
if (jj_initialized_once) {
|
|
System.out.println("ERROR: Second call to constructor of static parser. You must");
|
|
System.out.println(" either use ReInit() or set the JavaCC option STATIC to false");
|
|
System.out.println(" during parser generation.");
|
|
throw new Error();
|
|
}
|
|
jj_initialized_once = true;
|
|
token_source = tm;
|
|
token = new Token();
|
|
jj_ntk = -1;
|
|
jj_gen = 0;
|
|
for (int i = 0; i < 0; i++) jj_la1[i] = -1;
|
|
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
|
|
}
|
|
|
|
public void ReInit(PrismParserTokenManager tm) {
|
|
token_source = tm;
|
|
token = new Token();
|
|
jj_ntk = -1;
|
|
jj_gen = 0;
|
|
for (int i = 0; i < 0; i++) jj_la1[i] = -1;
|
|
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
|
|
}
|
|
|
|
static final private Token jj_consume_token(int kind) throws ParseException {
|
|
Token oldToken;
|
|
if ((oldToken = token).next != null) token = token.next;
|
|
else token = token.next = token_source.getNextToken();
|
|
jj_ntk = -1;
|
|
if (token.kind == kind) {
|
|
jj_gen++;
|
|
if (++jj_gc > 100) {
|
|
jj_gc = 0;
|
|
for (int i = 0; i < jj_2_rtns.length; i++) {
|
|
JJCalls c = jj_2_rtns[i];
|
|
while (c != null) {
|
|
if (c.gen < jj_gen) c.first = null;
|
|
c = c.next;
|
|
}
|
|
}
|
|
}
|
|
return token;
|
|
}
|
|
token = oldToken;
|
|
jj_kind = kind;
|
|
throw generateParseException();
|
|
}
|
|
|
|
static private final class LookaheadSuccess extends java.lang.Error { }
|
|
static final private LookaheadSuccess jj_ls = new LookaheadSuccess();
|
|
static final private boolean jj_scan_token(int kind) {
|
|
if (jj_scanpos == jj_lastpos) {
|
|
jj_la--;
|
|
if (jj_scanpos.next == null) {
|
|
jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
|
|
} else {
|
|
jj_lastpos = jj_scanpos = jj_scanpos.next;
|
|
}
|
|
} else {
|
|
jj_scanpos = jj_scanpos.next;
|
|
}
|
|
if (jj_rescan) {
|
|
int i = 0; Token tok = token;
|
|
while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
|
|
if (tok != null) jj_add_error_token(kind, i);
|
|
}
|
|
if (jj_scanpos.kind != kind) return true;
|
|
if (jj_la == 0 && jj_scanpos == jj_lastpos) throw jj_ls;
|
|
return false;
|
|
}
|
|
|
|
static final public Token getNextToken() {
|
|
if (token.next != null) token = token.next;
|
|
else token = token.next = token_source.getNextToken();
|
|
jj_ntk = -1;
|
|
jj_gen++;
|
|
return token;
|
|
}
|
|
|
|
static final public Token getToken(int index) {
|
|
Token t = lookingAhead ? jj_scanpos : token;
|
|
for (int i = 0; i < index; i++) {
|
|
if (t.next != null) t = t.next;
|
|
else t = t.next = token_source.getNextToken();
|
|
}
|
|
return t;
|
|
}
|
|
|
|
static final private int jj_ntk() {
|
|
if ((jj_nt=token.next) == null)
|
|
return (jj_ntk = (token.next=token_source.getNextToken()).kind);
|
|
else
|
|
return (jj_ntk = jj_nt.kind);
|
|
}
|
|
|
|
static private java.util.Vector jj_expentries = new java.util.Vector();
|
|
static private int[] jj_expentry;
|
|
static private int jj_kind = -1;
|
|
static private int[] jj_lasttokens = new int[100];
|
|
static private int jj_endpos;
|
|
|
|
static private void jj_add_error_token(int kind, int pos) {
|
|
if (pos >= 100) return;
|
|
if (pos == jj_endpos + 1) {
|
|
jj_lasttokens[jj_endpos++] = kind;
|
|
} else if (jj_endpos != 0) {
|
|
jj_expentry = new int[jj_endpos];
|
|
for (int i = 0; i < jj_endpos; i++) {
|
|
jj_expentry[i] = jj_lasttokens[i];
|
|
}
|
|
boolean exists = false;
|
|
for (java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) {
|
|
int[] oldentry = (int[])(e.nextElement());
|
|
if (oldentry.length == jj_expentry.length) {
|
|
exists = true;
|
|
for (int i = 0; i < jj_expentry.length; i++) {
|
|
if (oldentry[i] != jj_expentry[i]) {
|
|
exists = false;
|
|
break;
|
|
}
|
|
}
|
|
if (exists) break;
|
|
}
|
|
}
|
|
if (!exists) jj_expentries.addElement(jj_expentry);
|
|
if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
|
|
}
|
|
}
|
|
|
|
static public ParseException generateParseException() {
|
|
jj_expentries.removeAllElements();
|
|
boolean[] la1tokens = new boolean[79];
|
|
for (int i = 0; i < 79; i++) {
|
|
la1tokens[i] = false;
|
|
}
|
|
if (jj_kind >= 0) {
|
|
la1tokens[jj_kind] = true;
|
|
jj_kind = -1;
|
|
}
|
|
for (int i = 0; i < 0; i++) {
|
|
if (jj_la1[i] == jj_gen) {
|
|
for (int j = 0; j < 32; j++) {
|
|
if ((jj_la1_0[i] & (1<<j)) != 0) {
|
|
la1tokens[j] = true;
|
|
}
|
|
if ((jj_la1_1[i] & (1<<j)) != 0) {
|
|
la1tokens[32+j] = true;
|
|
}
|
|
if ((jj_la1_2[i] & (1<<j)) != 0) {
|
|
la1tokens[64+j] = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (int i = 0; i < 79; i++) {
|
|
if (la1tokens[i]) {
|
|
jj_expentry = new int[1];
|
|
jj_expentry[0] = i;
|
|
jj_expentries.addElement(jj_expentry);
|
|
}
|
|
}
|
|
jj_endpos = 0;
|
|
jj_rescan_token();
|
|
jj_add_error_token(0, 0);
|
|
int[][] exptokseq = new int[jj_expentries.size()][];
|
|
for (int i = 0; i < jj_expentries.size(); i++) {
|
|
exptokseq[i] = (int[])jj_expentries.elementAt(i);
|
|
}
|
|
return new ParseException(token, exptokseq, tokenImage);
|
|
}
|
|
|
|
static final public void enable_tracing() {
|
|
}
|
|
|
|
static final public void disable_tracing() {
|
|
}
|
|
|
|
static final private void jj_rescan_token() {
|
|
jj_rescan = true;
|
|
for (int i = 0; i < 185; i++) {
|
|
try {
|
|
JJCalls p = jj_2_rtns[i];
|
|
do {
|
|
if (p.gen > jj_gen) {
|
|
jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
|
|
switch (i) {
|
|
case 0: jj_3_1(); break;
|
|
case 1: jj_3_2(); break;
|
|
case 2: jj_3_3(); break;
|
|
case 3: jj_3_4(); break;
|
|
case 4: jj_3_5(); break;
|
|
case 5: jj_3_6(); break;
|
|
case 6: jj_3_7(); break;
|
|
case 7: jj_3_8(); break;
|
|
case 8: jj_3_9(); break;
|
|
case 9: jj_3_10(); break;
|
|
case 10: jj_3_11(); break;
|
|
case 11: jj_3_12(); break;
|
|
case 12: jj_3_13(); break;
|
|
case 13: jj_3_14(); break;
|
|
case 14: jj_3_15(); break;
|
|
case 15: jj_3_16(); break;
|
|
case 16: jj_3_17(); break;
|
|
case 17: jj_3_18(); break;
|
|
case 18: jj_3_19(); break;
|
|
case 19: jj_3_20(); break;
|
|
case 20: jj_3_21(); break;
|
|
case 21: jj_3_22(); break;
|
|
case 22: jj_3_23(); break;
|
|
case 23: jj_3_24(); break;
|
|
case 24: jj_3_25(); break;
|
|
case 25: jj_3_26(); break;
|
|
case 26: jj_3_27(); break;
|
|
case 27: jj_3_28(); break;
|
|
case 28: jj_3_29(); break;
|
|
case 29: jj_3_30(); break;
|
|
case 30: jj_3_31(); break;
|
|
case 31: jj_3_32(); break;
|
|
case 32: jj_3_33(); break;
|
|
case 33: jj_3_34(); break;
|
|
case 34: jj_3_35(); break;
|
|
case 35: jj_3_36(); break;
|
|
case 36: jj_3_37(); break;
|
|
case 37: jj_3_38(); break;
|
|
case 38: jj_3_39(); break;
|
|
case 39: jj_3_40(); break;
|
|
case 40: jj_3_41(); break;
|
|
case 41: jj_3_42(); break;
|
|
case 42: jj_3_43(); break;
|
|
case 43: jj_3_44(); break;
|
|
case 44: jj_3_45(); break;
|
|
case 45: jj_3_46(); break;
|
|
case 46: jj_3_47(); break;
|
|
case 47: jj_3_48(); break;
|
|
case 48: jj_3_49(); break;
|
|
case 49: jj_3_50(); break;
|
|
case 50: jj_3_51(); break;
|
|
case 51: jj_3_52(); break;
|
|
case 52: jj_3_53(); break;
|
|
case 53: jj_3_54(); break;
|
|
case 54: jj_3_55(); break;
|
|
case 55: jj_3_56(); break;
|
|
case 56: jj_3_57(); break;
|
|
case 57: jj_3_58(); break;
|
|
case 58: jj_3_59(); break;
|
|
case 59: jj_3_60(); break;
|
|
case 60: jj_3_61(); break;
|
|
case 61: jj_3_62(); break;
|
|
case 62: jj_3_63(); break;
|
|
case 63: jj_3_64(); break;
|
|
case 64: jj_3_65(); break;
|
|
case 65: jj_3_66(); break;
|
|
case 66: jj_3_67(); break;
|
|
case 67: jj_3_68(); break;
|
|
case 68: jj_3_69(); break;
|
|
case 69: jj_3_70(); break;
|
|
case 70: jj_3_71(); break;
|
|
case 71: jj_3_72(); break;
|
|
case 72: jj_3_73(); break;
|
|
case 73: jj_3_74(); break;
|
|
case 74: jj_3_75(); break;
|
|
case 75: jj_3_76(); break;
|
|
case 76: jj_3_77(); break;
|
|
case 77: jj_3_78(); break;
|
|
case 78: jj_3_79(); break;
|
|
case 79: jj_3_80(); break;
|
|
case 80: jj_3_81(); break;
|
|
case 81: jj_3_82(); break;
|
|
case 82: jj_3_83(); break;
|
|
case 83: jj_3_84(); break;
|
|
case 84: jj_3_85(); break;
|
|
case 85: jj_3_86(); break;
|
|
case 86: jj_3_87(); break;
|
|
case 87: jj_3_88(); break;
|
|
case 88: jj_3_89(); break;
|
|
case 89: jj_3_90(); break;
|
|
case 90: jj_3_91(); break;
|
|
case 91: jj_3_92(); break;
|
|
case 92: jj_3_93(); break;
|
|
case 93: jj_3_94(); break;
|
|
case 94: jj_3_95(); break;
|
|
case 95: jj_3_96(); break;
|
|
case 96: jj_3_97(); break;
|
|
case 97: jj_3_98(); break;
|
|
case 98: jj_3_99(); break;
|
|
case 99: jj_3_100(); break;
|
|
case 100: jj_3_101(); break;
|
|
case 101: jj_3_102(); break;
|
|
case 102: jj_3_103(); break;
|
|
case 103: jj_3_104(); break;
|
|
case 104: jj_3_105(); break;
|
|
case 105: jj_3_106(); break;
|
|
case 106: jj_3_107(); break;
|
|
case 107: jj_3_108(); break;
|
|
case 108: jj_3_109(); break;
|
|
case 109: jj_3_110(); break;
|
|
case 110: jj_3_111(); break;
|
|
case 111: jj_3_112(); break;
|
|
case 112: jj_3_113(); break;
|
|
case 113: jj_3_114(); break;
|
|
case 114: jj_3_115(); break;
|
|
case 115: jj_3_116(); break;
|
|
case 116: jj_3_117(); break;
|
|
case 117: jj_3_118(); break;
|
|
case 118: jj_3_119(); break;
|
|
case 119: jj_3_120(); break;
|
|
case 120: jj_3_121(); break;
|
|
case 121: jj_3_122(); break;
|
|
case 122: jj_3_123(); break;
|
|
case 123: jj_3_124(); break;
|
|
case 124: jj_3_125(); break;
|
|
case 125: jj_3_126(); break;
|
|
case 126: jj_3_127(); break;
|
|
case 127: jj_3_128(); break;
|
|
case 128: jj_3_129(); break;
|
|
case 129: jj_3_130(); break;
|
|
case 130: jj_3_131(); break;
|
|
case 131: jj_3_132(); break;
|
|
case 132: jj_3_133(); break;
|
|
case 133: jj_3_134(); break;
|
|
case 134: jj_3_135(); break;
|
|
case 135: jj_3_136(); break;
|
|
case 136: jj_3_137(); break;
|
|
case 137: jj_3_138(); break;
|
|
case 138: jj_3_139(); break;
|
|
case 139: jj_3_140(); break;
|
|
case 140: jj_3_141(); break;
|
|
case 141: jj_3_142(); break;
|
|
case 142: jj_3_143(); break;
|
|
case 143: jj_3_144(); break;
|
|
case 144: jj_3_145(); break;
|
|
case 145: jj_3_146(); break;
|
|
case 146: jj_3_147(); break;
|
|
case 147: jj_3_148(); break;
|
|
case 148: jj_3_149(); break;
|
|
case 149: jj_3_150(); break;
|
|
case 150: jj_3_151(); break;
|
|
case 151: jj_3_152(); break;
|
|
case 152: jj_3_153(); break;
|
|
case 153: jj_3_154(); break;
|
|
case 154: jj_3_155(); break;
|
|
case 155: jj_3_156(); break;
|
|
case 156: jj_3_157(); break;
|
|
case 157: jj_3_158(); break;
|
|
case 158: jj_3_159(); break;
|
|
case 159: jj_3_160(); break;
|
|
case 160: jj_3_161(); break;
|
|
case 161: jj_3_162(); break;
|
|
case 162: jj_3_163(); break;
|
|
case 163: jj_3_164(); break;
|
|
case 164: jj_3_165(); break;
|
|
case 165: jj_3_166(); break;
|
|
case 166: jj_3_167(); break;
|
|
case 167: jj_3_168(); break;
|
|
case 168: jj_3_169(); break;
|
|
case 169: jj_3_170(); break;
|
|
case 170: jj_3_171(); break;
|
|
case 171: jj_3_172(); break;
|
|
case 172: jj_3_173(); break;
|
|
case 173: jj_3_174(); break;
|
|
case 174: jj_3_175(); break;
|
|
case 175: jj_3_176(); break;
|
|
case 176: jj_3_177(); break;
|
|
case 177: jj_3_178(); break;
|
|
case 178: jj_3_179(); break;
|
|
case 179: jj_3_180(); break;
|
|
case 180: jj_3_181(); break;
|
|
case 181: jj_3_182(); break;
|
|
case 182: jj_3_183(); break;
|
|
case 183: jj_3_184(); break;
|
|
case 184: jj_3_185(); break;
|
|
}
|
|
}
|
|
p = p.next;
|
|
} while (p != null);
|
|
} catch(LookaheadSuccess ls) { }
|
|
}
|
|
jj_rescan = false;
|
|
}
|
|
|
|
static final private void jj_save(int index, int xla) {
|
|
JJCalls p = jj_2_rtns[index];
|
|
while (p.gen > jj_gen) {
|
|
if (p.next == null) { p = p.next = new JJCalls(); break; }
|
|
p = p.next;
|
|
}
|
|
p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
|
|
}
|
|
|
|
static final class JJCalls {
|
|
int gen;
|
|
Token first;
|
|
int arg;
|
|
JJCalls next;
|
|
}
|
|
|
|
}
|