public static final boolean TRACE = false;
private static final int INITIAL_CAPACITY = 16;
- private static final int STATE_COUNT = 357;
- private static final int TERMINAL_COUNT = 85;
- private static final int NONTERMINAL_COUNT = 51;
- private static final int PRODUCT_COUNT = 135;
+ private static final int STATE_COUNT = 362;
+ private static final int TERMINAL_COUNT = 86;
+ private static final int NONTERMINAL_COUNT = 52;
+ private static final int PRODUCT_COUNT = 138;
private static final int[] ACTION_ROW_ID = new int[STATE_COUNT];
private static final int[] ACTION_COLUMN_ID = new int[TERMINAL_COUNT];
- private static final short[] ACTION_TABLE = new short[6765];
- private static final int[] ERROR_TABLE = new int[949];
+ private static final short[] ACTION_TABLE = new short[6832];
+ private static final int[] ERROR_TABLE = new int[973];
private static final int[] GOTO_ROW_ID = new int[STATE_COUNT];
private static final int[] GOTO_COLUMN_ID = new int[NONTERMINAL_COUNT];
- private static final short[] GOTO_TABLE = new short[1647];
+ private static final short[] GOTO_TABLE = new short[1953];
private static final int[] PRODUCT_LHS = new int[PRODUCT_COUNT];
private static final short STATE_MASK = (short)0x0fff;
"MATCH",
"DO",
"MDO",
+ "EDO",
"ENFORCE",
"BLANK",
"FLOAT",
"symbolWithoutMinus",
"listQualifier",
"chrQuery",
+ "chrQueryPart",
"caseRhs",
"guardedExpArrow",
"equation",
return parse(0);
}
public Object parseCommands() {
- return parse(341);
+ return parse(346);
}
public Object parseImport() {
- return parse(349);
+ return parse(354);
}
public Object parseType() {
- return parse(351);
+ return parse(356);
}
public Object parseExp() {
- return parse(353);
+ return parse(358);
}
public Object parseEquationBlock() {
- return parse(355);
+ return parse(360);
}
case 106:
return reduceQueryBlock();
case 107:
- return reduceVerboseCHRQuery();
+ return reduceVerboseCHRConjunction();
case 108:
return reduceStringLiteral();
case 109:
case 117:
return reduceThenQualifier();
case 118:
- return reduceCHRQuery();
+ return reduceCHRConjunction();
case 119:
- return reduceSimpleCaseRhs();
+ return reduceCHRAtom();
case 120:
- return reduceGuardedCaseRhs();
+ return reduceCHREquals();
case 121:
- return reduceGuardedExpArrow();
+ return reduceCHRBinds();
case 122:
- return reduceGuardEquation();
+ return reduceSimpleCaseRhs();
case 123:
- return reduceBasicEquation();
+ return reduceGuardedCaseRhs();
case 124:
- return reduceEffect();
+ return reduceGuardedExpArrow();
case 125:
- return reduceJustEtype();
+ return reduceGuardEquation();
case 126:
- return reduceForAll();
+ return reduceBasicEquation();
case 127:
- return reduceApplyType();
+ return reduceEffect();
case 128:
+ return reduceJustEtype();
+ case 129:
+ return reduceForAll();
+ case 130:
+ return reduceApplyType();
+ case 131:
return reduceDummy();
default:
*/
protected abstract Object reduceMatch();
/**
- * aexp ::= (DO | MDO) statements
+ * aexp ::= (DO | MDO | EDO) statements
*/
protected abstract Object reduceDo();
/**
*/
protected abstract Object reduceQueryBlock();
/**
- * verboseChrQuery ::= LBRACE listQualifier (SEMICOLON listQualifier)* RBRACE
+ * verboseChrQuery ::= LBRACE chrQuery (SEMICOLON chrQuery)* RBRACE
*/
- protected abstract Object reduceVerboseCHRQuery();
+ protected abstract Object reduceVerboseCHRConjunction();
/**
* stringLiteral ::= BEGIN_STRING (SUSPEND_STRING exp CONTINUE_STRING)* END_STRING
*/
*/
protected abstract Object reduceThenQualifier();
/**
- * chrQuery ::= (listQualifier COMMA)* listQualifier
+ * chrQuery ::= (chrQueryPart COMMA)* chrQueryPart
+ */
+ protected abstract Object reduceCHRConjunction();
+ /**
+ * chrQueryPart ::= exp
+ */
+ protected abstract Object reduceCHRAtom();
+ /**
+ * chrQueryPart ::= exp EQUALS exp
+ */
+ protected abstract Object reduceCHREquals();
+ /**
+ * chrQueryPart ::= exp BINDS exp
*/
- protected abstract Object reduceCHRQuery();
+ protected abstract Object reduceCHRBinds();
/**
* caseRhs ::= ARROW exp (WHERE statements)?
*/