public static final boolean TRACE = false;
private static final int INITIAL_CAPACITY = 16;
- private static final int STATE_COUNT = 358;
- private static final int TERMINAL_COUNT = 84;
- private static final int NONTERMINAL_COUNT = 52;
+ 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[] 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[6944];
- private static final int[] ERROR_TABLE = new int[940];
+ private static final short[] ACTION_TABLE = new short[6765];
+ private static final int[] ERROR_TABLE = new int[949];
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[1708];
+ private static final short[] GOTO_TABLE = new short[1647];
private static final int[] PRODUCT_LHS = new int[PRODUCT_COUNT];
private static final short STATE_MASK = (short)0x0fff;
"SELECT_DISTINCT",
"TRANSFORMATION",
"EQ",
+ "CHR_SELECT",
"ATTACHED_DOT",
"IN",
"THEN",
"accessor",
"case",
"queryBlock",
+ "verboseChrQuery",
"stringLiteral",
"symbolWithoutMinus",
"listQualifier",
"chrQuery",
- "verboseChrQuery",
- "constraintSpec",
"caseRhs",
"guardedExpArrow",
"equation",
return parse(0);
}
public Object parseCommands() {
- return parse(342);
+ return parse(341);
}
public Object parseImport() {
- return parse(350);
+ return parse(349);
}
public Object parseType() {
- return parse(352);
+ return parse(351);
}
public Object parseExp() {
- return parse(354);
+ return parse(353);
}
public Object parseEquationBlock() {
- return parse(356);
+ return parse(355);
}
case 59:
return reduceSelect();
case 60:
- return reduceEnforce();
+ return reduceCHRSelect();
case 61:
- return reduceVar();
+ return reduceEnforce();
case 62:
- return reduceHashedId();
+ return reduceVar();
case 63:
- return reduceBlank();
+ return reduceHashedId();
case 64:
- return reduceInteger();
+ return reduceBlank();
case 65:
- return reduceFloat();
+ return reduceInteger();
case 66:
- return reduceString();
+ return reduceFloat();
case 67:
- return reduceChar();
+ return reduceString();
case 68:
- return reduceTuple();
+ return reduceChar();
case 69:
- return reduceViewPattern();
+ return reduceTuple();
case 70:
- return reduceRightSection();
+ return reduceViewPattern();
case 71:
- return reduceLeftSection();
+ return reduceRightSection();
case 72:
- return reduceListLiteral();
+ return reduceLeftSection();
case 73:
- return reduceRange();
+ return reduceListLiteral();
case 74:
- return reduceListComprehension();
+ return reduceRange();
case 75:
- return reduceAs();
+ return reduceListComprehension();
case 76:
- return reduceRecord();
+ return reduceAs();
case 77:
- return reduceTransformation();
+ return reduceRecord();
case 78:
- return reduceEq();
+ return reduceTransformation();
case 79:
- return reduceRuleDeclarations();
+ return reduceEq();
case 80:
- return reduceStatements();
+ return reduceRuleDeclarations();
case 81:
- return reduceImportShowing();
+ return reduceStatements();
case 82:
- return reduceImportHiding();
+ return reduceImportShowing();
case 83:
- return reduceImportValueItem();
+ return reduceImportHiding();
case 84:
- return reduceFieldDescription();
+ return reduceImportValueItem();
case 85:
- return reduceGuardedExpEq();
+ return reduceFieldDescription();
case 86:
- return reduceFundep();
+ return reduceGuardedExpEq();
case 87:
- return reduceQueryRuleDeclaration();
+ return reduceFundep();
case 88:
- return reduceAnnotation();
+ return reduceQueryRuleDeclaration();
case 89:
- return reduceGuardQuery();
+ return reduceAnnotation();
case 90:
- return reduceEqualsQuery();
+ return reduceGuardQuery();
case 91:
- return reduceBindQuery();
+ return reduceEqualsQuery();
case 92:
- return reduceCompositeQuery();
+ return reduceBindQuery();
case 93:
- return reduceApply();
+ return reduceCompositeQuery();
case 94:
- return reduceSymbol();
+ return reduceApply();
case 95:
- return reduceEscapedId();
+ return reduceSymbol();
case 96:
- return reduceMinus();
+ return reduceEscapedId();
case 97:
- return reduceLess();
+ return reduceMinus();
case 98:
- return reduceGreater();
+ return reduceLess();
case 99:
- return reduceDot();
+ return reduceGreater();
case 100:
- return reduceFieldAccess();
+ return reduceDot();
case 101:
- return reduceIdAccessor();
+ return reduceFieldAccess();
case 102:
- return reduceStringAccessor();
+ return reduceIdAccessor();
case 103:
- return reduceExpAccessor();
+ return reduceStringAccessor();
case 104:
- return reduceCase();
+ return reduceExpAccessor();
case 105:
- return reduceQueryBlock();
+ return reduceCase();
case 106:
- return reduceStringLiteral();
+ return reduceQueryBlock();
case 107:
- return reduceSymbol();
+ return reduceVerboseCHRQuery();
case 108:
- return reduceEscapedId();
+ return reduceStringLiteral();
case 109:
- return reduceLess();
+ return reduceSymbol();
case 110:
- return reduceGreater();
+ return reduceEscapedId();
case 111:
- return reduceDot();
+ return reduceLess();
case 112:
- return reduceGuardQualifier();
+ return reduceGreater();
case 113:
- return reduceLetQualifier();
+ return reduceDot();
case 114:
- return reduceBindQualifier();
+ return reduceGuardQualifier();
case 115:
- return reduceThenQualifier();
+ return reduceLetQualifier();
case 116:
- return reduceCHRQuery();
+ return reduceBindQualifier();
case 117:
- return reduceVerboseCHRQuery();
+ return reduceThenQualifier();
case 118:
- return reduceConstraintSpec();
+ return reduceCHRQuery();
case 119:
return reduceSimpleCaseRhs();
case 120:
*/
protected abstract Object reduceVerboseCHRStatement();
/**
- * statement ::= CONSTRAINT constructor (WHERE constraintSpec)?
+ * statement ::= CONSTRAINT constructor
*/
protected abstract Object reduceConstraintStatement();
/**
* aexp ::= (SELECT | SELECT_FIRST | SELECT_DISTINCT) exp WHERE queryBlock
*/
protected abstract Object reduceSelect();
+ /**
+ * aexp ::= CHR_SELECT exp WHERE verboseChrQuery
+ */
+ protected abstract Object reduceCHRSelect();
/**
* aexp ::= ENFORCE queryBlock
*/
* queryBlock ::= LBRACE (query (SEMICOLON (query SEMICOLON)* query)?)? RBRACE
*/
protected abstract Object reduceQueryBlock();
+ /**
+ * verboseChrQuery ::= LBRACE listQualifier (SEMICOLON listQualifier)* RBRACE
+ */
+ protected abstract Object reduceVerboseCHRQuery();
/**
* stringLiteral ::= BEGIN_STRING (SUSPEND_STRING exp CONTINUE_STRING)* END_STRING
*/
* chrQuery ::= (listQualifier COMMA)* listQualifier
*/
protected abstract Object reduceCHRQuery();
- /**
- * verboseChrQuery ::= LBRACE listQualifier (SEMICOLON listQualifier)* RBRACE
- */
- protected abstract Object reduceVerboseCHRQuery();
- /**
- * constraintSpec ::= LBRACE exp (SEMICOLON exp)* RBRACE
- */
- protected abstract Object reduceConstraintSpec();
/**
* caseRhs ::= ARROW exp (WHERE statements)?
*/