/**
* SPINdle (version 2.2.2)
* Copyright (C) 2009-2012 NICTA Ltd.
*
* This file is part of SPINdle project.
*
* SPINdle is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* SPINdle is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with SPINdle. If not, see <http://www.gnu.org/licenses/>.
*
* @author H.-P. Lam (oleklam@gmail.com), National ICT Australia - Queensland Research Laboratory
*/
/* Generated By:JavaCC: Do not edit this line. DflTheoryParser2base.java */
package spindle.io.parser.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import spindle.core.dom.AppConstant;
import spindle.core.dom.AppConstants;
import spindle.core.dom.Conclusion;
import spindle.core.dom.ConclusionType;
import spindle.core.dom.DomUtilities;
import spindle.core.dom.Literal;
import spindle.core.dom.LiteralVariable;
import spindle.core.dom.Mode;
import spindle.core.dom.Rule;
import spindle.core.dom.RuleType;
import spindle.core.dom.Superiority;
import spindle.core.dom.Temporal;
import spindle.core.dom.Theory;
import spindle.core.dom.TheoryException;
import spindle.core.dom.impl.Duration;
import spindle.core.dom.impl.Val;
/**
* DFL theory and conclusions parser,
* generated by <a href="http://javacc.java.net/">JavaCC</a>.
*
* @author H.-P. Lam (oleklam@gmail.com), National ICT Australia - Queensland Research Laboratory
* @since version 2.1.0
* @version Last modified 2012.08.24
*/
@SuppressWarnings(value={"unused","serial"})
public class DflTheoryParser2base implements DflTheoryParser2baseConstants {
private Theory theory=null;
private Map<Literal, Map<ConclusionType, Conclusion>> conclusions=null;
private boolean isGenerateJavaCode=false;
private Map<LiteralVariable, LiteralVariable> literalVariableMapping;
private Map<LiteralVariable, String> literalBooleanFunctionAnswers;
private AppConstants appConstants = null;
private List<Rule>tempRulesSet=new ArrayList<Rule>();
private static Rule getDefaultRule(String ruleLabel){
return DomUtilities.getRule(ruleLabel,RuleType.DEFEASIBLE);
}
protected AppConstants getAppConstants() {
if (null == appConstants) appConstants = AppConstants.getInstance(null);
return appConstants;
}
/**
* Top level
*/
final public Theory parseTheory() throws ParseException {
theory=new Theory();
tempRulesSet.clear();
label_1:
while (true) {
if (jj_2_1(7)) {
;
} else {
break label_1;
}
theoryExpression();
}
jj_consume_token(0);
if (tempRulesSet.size()>0){
try{
for (Rule rule:tempRulesSet){
String ruleLabel=theory.getUniqueRuleLabel();
rule.setLabel(ruleLabel);
theory.addRule(rule);
}
} catch (TheoryException e){
{if (true) throw new Error(e);}
}
}
{if (true) return theory;}
throw new Error("Missing return statement in function");
}
final public Map<Literal, Map<ConclusionType, Conclusion>> parseConclusions() throws ParseException {
conclusions=new TreeMap<Literal, Map<ConclusionType, Conclusion>>();
label_2:
while (true) {
if (jj_2_2(7)) {
;
} else {
break label_2;
}
conclusionExpression();
}
jj_consume_token(0);
{if (true) return conclusions;}
throw new Error("Missing return statement in function");
}
final public Literal parseLiteral() throws ParseException {
Literal literal=null;
literal = literal();
{if (true) return literal;}
throw new Error("Missing return statement in function");
}
final public Rule parseRule() throws ParseException {
tempRulesSet.clear();
Rule rule=null;
rule = rule();
{if (true) return rule;}
throw new Error("Missing return statement in function");
}
final public List<Superiority> parseSuperiority() throws ParseException {
List<Superiority> superiority=null;
superiority = superiority();
{if (true) return superiority;}
throw new Error("Missing return statement in function");
}
final public String evaluateLiteralFunction(Map<LiteralVariable, LiteralVariable> literalVariableMapping, Map<LiteralVariable, String> literalBooleanFunctionAnswers) throws ParseException {
String literalFunction;
isGenerateJavaCode=true;
this.literalVariableMapping=literalVariableMapping;
this.literalBooleanFunctionAnswers=literalBooleanFunctionAnswers;
literalFunction = literalFunction();
{if (true) return literalFunction;}
throw new Error("Missing return statement in function");
}
final public List<String> tokenizeLiteralFunction(Map<LiteralVariable, LiteralVariable> literalVariableMapping, Map<LiteralVariable, String> literalBooleanFunctionAnswers) throws ParseException {
List<String> literalList;
isGenerateJavaCode=true;
this.literalVariableMapping=literalVariableMapping;
this.literalBooleanFunctionAnswers=literalBooleanFunctionAnswers;
literalList = literalFunction2();
{if (true) return literalList;}
throw new Error("Missing return statement in function");
}
/**
* An expression is defined to be a queryTerm followed by zero or more
* query terms joined by either an AND or an OR. If two query terms are joined with
* AND then both conditions must be met. If two query terms are joined with an OR, then
* one of the two conditions must be met.
*/
final public void theoryExpression() throws ParseException {
theoryTerm();
label_3:
while (true) {
if (jj_2_3(7)) {
;
} else {
break label_3;
}
jj_consume_token(EOL);
theoryTerm();
}
}
final public void conclusionExpression() throws ParseException {
conclusionTerm();
label_4:
while (true) {
if (jj_2_4(7)) {
;
} else {
break label_4;
}
jj_consume_token(EOL);
conclusionTerm();
}
}
/**
* Query terms may consist of a parenthetically separated expression or
* may be a query criteria of the form queryName = something or queryName <> something.
*/
final public void theoryTerm() throws ParseException {
if (jj_2_5(7)) {
setLiteralVariable();
} else if (jj_2_6(7)) {
modeConversionRules();
} else if (jj_2_7(7)) {
superiority();
} else if (jj_2_8(7)) {
rule();
} else if (jj_2_9(7)) {
jj_consume_token(EOL);
} else {
jj_consume_token(-1);
throw new ParseException();
}
}
final public void conclusionTerm() throws ParseException {
if (jj_2_10(7)) {
conclusion();
} else if (jj_2_11(7)) {
jj_consume_token(EOL);
} else {
jj_consume_token(-1);
throw new ParseException();
}
}
final public Mode modalOperator() throws ParseException {
Token minus=null;
Token mode;
jj_consume_token(MODE_START);
if (jj_2_12(7)) {
minus = jj_consume_token(MINUS);
} else {
;
}
mode = jj_consume_token(STRING);
jj_consume_token(MODE_END);
{if (true) return new Mode(mode.image,null!=minus);}
throw new Error("Missing return statement in function");
}
final public LiteralVariable numericalValue() throws ParseException {
Token number;
Token minus=null;
if (jj_2_13(7)) {
minus = jj_consume_token(MINUS);
} else {
;
}
number = jj_consume_token(NUMBER);
Literal literal=DomUtilities.getLiteral(Val.LABEL,false);
String val=(null==minus ? "":"-")+number.image;
literal.setPredicates(new String[]{val});
{if (true) return DomUtilities.getLiteralVariable(literal);}
// return "@VAL("+(null==minus ? "":"-")+number.image+")";
throw new Error("Missing return statement in function");
}
final public LiteralVariable durationValue() throws ParseException {
Token token;
if (jj_2_14(7)) {
jj_consume_token(LITERAL_VARIABLE_DURATION);
jj_consume_token(ARG_START);
token = jj_consume_token(DATE_TIME_STRING);
jj_consume_token(ARG_END);
} else if (jj_2_15(7)) {
token = jj_consume_token(DATE_TIME_STRING);
} else {
jj_consume_token(-1);
throw new ParseException();
}
Literal literal=DomUtilities.getLiteral(Duration.LABEL,false);
literal.setPredicates(new String[]{token.image});
{if (true) return DomUtilities.getLiteralVariable(literal);}
throw new Error("Missing return statement in function");
}
final public String[] literalFunctionElement() throws ParseException {
Token element=null;
Literal literal=null;
List<String> literalFunctionElements=null;
if (jj_2_27(7)) {
if (jj_2_16(7)) {
element = jj_consume_token(EQUALS);
} else if (jj_2_17(7)) {
element = jj_consume_token(NOT_EQUALS);
} else if (jj_2_18(7)) {
element = jj_consume_token(PLUS);
} else if (jj_2_19(7)) {
element = jj_consume_token(MINUS);
} else if (jj_2_20(7)) {
element = jj_consume_token(MULTIPLY);
} else if (jj_2_21(7)) {
element = jj_consume_token(DIVIDE);
} else if (jj_2_22(7)) {
element = jj_consume_token(GREATER);
} else if (jj_2_23(7)) {
element = jj_consume_token(LESSER);
} else if (jj_2_24(7)) {
element = jj_consume_token(GREATER_OR_EQUAL);
} else if (jj_2_25(7)) {
element = jj_consume_token(LESSER_OR_EQUAL);
} else if (jj_2_26(7)) {
literal = literal();
} else {
jj_consume_token(-1);
throw new ParseException();
}
if (null!=element) {if (true) return new String[]{element.image};}
if (literal instanceof LiteralVariable){
LiteralVariable lv=(LiteralVariable) literal;
try{
if (null!=literalBooleanFunctionAnswers && literalBooleanFunctionAnswers.containsKey(lv)) {
{if (true) return new String[]{literalBooleanFunctionAnswers.get(lv)};}
} else if (null!=literalVariableMapping && literalVariableMapping.containsKey(lv)) {
lv=literalVariableMapping.get(lv);
}
if (getAppConstants().isAppConstant(lv) && isGenerateJavaCode) {
AppConstant appConstant = getAppConstants().getAppConstant(lv);
{if (true) return new String[]{ appConstant.getCodeBase(lv.isNegation(), lv.getPredicates()) + " "};}
} else {
{if (true) return new String[]{lv.toString()};}
}
} catch (Exception e) {
{if (true) throw new Error(e);}
}
} else {
{if (true) return new String[]{literal.toString()};}
}
} else if (jj_2_28(7)) {
jj_consume_token(ARG_START);
literalFunctionElements = literalFunctionElements();
jj_consume_token(ARG_END);
literalFunctionElements.add(0,"(");
literalFunctionElements.add(")");
String [] literalFunctionElementsStr=new String[literalFunctionElements.size()];
literalFunctionElements.toArray(literalFunctionElementsStr);
{if (true) return literalFunctionElementsStr;}
} else {
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public List<String> literalFunctionElements() throws ParseException {
String[] newElements;
List<String> elements=new ArrayList<String>();
label_5:
while (true) {
newElements = literalFunctionElement();
//sb.append(element);
//if (null!=literalList) literalList.add(element);
for (String element:newElements){
elements.add(element.trim());
}
if (jj_2_29(7)) {
;
} else {
break label_5;
}
}
{if (true) return elements;}
throw new Error("Missing return statement in function");
}
final public String literalFunction() throws ParseException {
//String element=null;
List<String>elements=new ArrayList<String>();
jj_consume_token(LITERAL_FUNCTION);
elements = literalFunctionElements();
jj_consume_token(LITERAL_FUNCTION);
StringBuilder sb=new StringBuilder("$");
for (String ele:elements){
sb.append(ele);
}
sb.append("$");
{if (true) return sb.toString();}
// return "$" + element + "$";
throw new Error("Missing return statement in function");
}
final public List<String> literalFunction2() throws ParseException {
// String element=null;
List<String> elements=new ArrayList<String>();
jj_consume_token(LITERAL_FUNCTION);
elements = literalFunctionElements();
jj_consume_token(LITERAL_FUNCTION);
elements.add(0,"$");
elements.add("$");
{if (true) return elements;}
throw new Error("Missing return statement in function");
}
final public String literalPredicate() throws ParseException {
Token argument=null;
// LiteralVariable lv=null;
String predicate=null;
if (jj_2_30(7)) {
argument = jj_consume_token(NUMBER);
} else if (jj_2_31(7)) {
predicate = literalFunction();
} else if (jj_2_32(7)) {
argument = jj_consume_token(STRING);
} else {
jj_consume_token(-1);
throw new ParseException();
}
// if (null!=lv) {
// String preds=lv.getPredicateString();
// return preds.substring(1,preds.length()-1);
// }
if (null!=predicate) {if (true) return predicate;}
{if (true) return argument.image;}
throw new Error("Missing return statement in function");
}
final public List<String> literalPredicates() throws ParseException {
List<String> predicates=new ArrayList<String>();
String predicate=null;
jj_consume_token(ARG_START);
predicate = literalPredicate();
predicates.add(predicate);
label_6:
while (true) {
if (jj_2_33(7)) {
;
} else {
break label_6;
}
jj_consume_token(ARGUMENT_SEPARATOR);
predicate = literalPredicate();
predicates.add(predicate);
}
jj_consume_token(ARG_END);
{if (true) return predicates.size()>0 ? predicates : null;}
throw new Error("Missing return statement in function");
}
final public Temporal temporalStamp() throws ParseException {
Token startNegation=null, endNegation=null;
Token startTime=null,endTime=null;
Token negInf=null;
jj_consume_token(TEMPORAL_START);
if (jj_2_35(7)) {
if (jj_2_34(7)) {
startNegation = jj_consume_token(MINUS);
} else {
;
}
startTime = jj_consume_token(NUMBER);
} else if (jj_2_36(7)) {
negInf = jj_consume_token(NEG_INF);
} else {
jj_consume_token(-1);
throw new ParseException();
}
if (jj_2_38(7)) {
jj_consume_token(ARGUMENT_SEPARATOR);
if (jj_2_37(7)) {
endNegation = jj_consume_token(MINUS);
} else {
;
}
endTime = jj_consume_token(NUMBER);
} else {
;
}
jj_consume_token(TEMPORAL_END);
Temporal temporal=new Temporal();
if (null==negInf) temporal.setStartTime(getNumericalValue(startNegation,startTime));
// else temporal.setStartTime(Long.MIN_VALUE);
// temporal.setStartTime(Long.parseLong(startTime.image));
if (null!=endTime) {
temporal.setEndTime(getNumericalValue(endNegation,endTime));
// temporal.setEndTime(Long.parseLong(endTime.image));
}
{if (true) return temporal;}
throw new Error("Missing return statement in function");
}
final public long getNumericalValue(Token negation, Token value) throws ParseException {
long num=Long.parseLong(value.image);
{if (true) return null==negation ? num : -num;}
throw new Error("Missing return statement in function");
}
final public Literal literal() throws ParseException {
//Token conclusionTag=null;
Token literalName=null,negation=null;
Literal literal=null;
Mode mode=null;
List<String> predicates=null;
Temporal temporal=null;
LiteralVariable literalVariable=null;
if (jj_2_39(7)) {
mode = modalOperator();
} else {
;
}
if (jj_2_40(7)) {
negation = jj_consume_token(MINUS);
} else {
;
}
if (jj_2_45(7)) {
if (jj_2_41(7)) {
literalName = jj_consume_token(STRING);
} else if (jj_2_42(7)) {
literalName = jj_consume_token(LITERAL_NAME);
} else if (jj_2_43(7)) {
literalVariable = numericalValue();
} else {
jj_consume_token(-1);
throw new ParseException();
}
if (jj_2_44(7)) {
predicates = literalPredicates();
} else {
;
}
} else if (jj_2_46(7)) {
literalVariable = durationValue();
} else {
jj_consume_token(-1);
throw new ParseException();
}
if (jj_2_47(7)) {
temporal = temporalStamp();
} else {
;
}
if (null!=literalVariable) {
if (null!=negation) literalVariable.setNegation(true);
{if (true) return literalVariable;}
}
String lnStr=literalName.image;
String[] predicatesStr=null;
if (null!=predicates) {
predicatesStr=new String[predicates.size()];
predicates.toArray(predicatesStr);
}
literal= DomUtilities.getLiteral(lnStr,null!=negation);
if (null!=predicatesStr) literal.setPredicates(predicatesStr);
if (null!=mode) literal.setMode(mode);
if (null!=temporal) literal.setTemporal(temporal);
if (literal.getName().startsWith("@")||literal.getName().startsWith("$")) {
{if (true) return DomUtilities.getLiteralVariable(literal);}
}
{if (true) return literal;}
throw new Error("Missing return statement in function");
}
final public List<Literal> literals() throws ParseException {
List<Literal> literals=new ArrayList<Literal>();
String literalFunction=null;
Literal literal=null;
if (jj_2_48(7)) {
literalFunction = literalFunction();
} else if (jj_2_49(7)) {
literal = literal();
} else {
jj_consume_token(-1);
throw new ParseException();
}
if (null!=literalFunction) {
literal=DomUtilities.getLiteralVariable(literalFunction,false);
}
literals.add(literal);
literalFunction=null;
literal=null;
label_7:
while (true) {
if (jj_2_50(7)) {
;
} else {
break label_7;
}
jj_consume_token(ARGUMENT_SEPARATOR);
if (jj_2_51(7)) {
literalFunction = literalFunction();
} else if (jj_2_52(7)) {
literal = literal();
} else {
jj_consume_token(-1);
throw new ParseException();
}
if (null!=literalFunction) {
literal=DomUtilities.getLiteralVariable(literalFunction,false);
//literal=new LiteralVariable(literalFunction,false);
}
literals.add(literal);
literalFunction=null;
literal=null;
}
{if (true) return literals;}
throw new Error("Missing return statement in function");
}
final public Rule ruleBase() throws ParseException {
Token ruleLabel=null;
Mode ruleMode=null;
Temporal ruleTemporal=null;
if (jj_2_53(7)) {
ruleLabel = jj_consume_token(STRING);
} else {
;
}
if (jj_2_54(7)) {
ruleMode = modalOperator();
} else {
;
}
if (jj_2_55(7)) {
ruleTemporal = temporalStamp();
} else {
;
}
jj_consume_token(RULE_LABEL_SEPARATOR);
String ruleLabelStr=null==ruleLabel?theory.getUniqueRuleLabel():ruleLabel.image;
Rule rule=getDefaultRule(ruleLabelStr);
if (null!=ruleMode) rule.setMode(ruleMode);
if (null!=ruleTemporal) rule.setTemporal(ruleTemporal);
{if (true) return rule;}
throw new Error("Missing return statement in function");
}
final public Rule rule() throws ParseException {
Rule rule=null;
Token ruleType;
List<Literal> bodyLiterals=null,headLiterals;
if (jj_2_56(7)) {
rule = ruleBase();
} else {
;
}
if (jj_2_57(7)) {
bodyLiterals = literals();
} else {
;
}
if (jj_2_58(7)) {
ruleType = jj_consume_token(RULE_TYPE_FACT);
} else if (jj_2_59(7)) {
ruleType = jj_consume_token(RULE_TYPE_STRICT);
} else if (jj_2_60(7)) {
ruleType = jj_consume_token(RULE_TYPE_DEFEASIBLE);
} else if (jj_2_61(7)) {
ruleType = jj_consume_token(RULE_TYPE_DEFEATER);
} else {
jj_consume_token(-1);
throw new ParseException();
}
headLiterals = literals();
boolean hasRuleBase=true;
try{
if (null==rule) {
rule=getDefaultRule(theory.getUniqueRuleLabel());
hasRuleBase=false;
}
rule.setRuleType(RuleType.getRuleType(ruleType.image));
if (null!=bodyLiterals){
for (Literal literal:bodyLiterals){
rule.addBodyLiteral(literal);
}
}
for (Literal literal:headLiterals){
rule.addHeadLiteral(literal);
}
if (hasRuleBase){
if (null!=theory) theory.addRule(rule);
} else {
tempRulesSet.add(rule);
}
// if (null!=ruleLabel) {
// if (null!=theory) theory.addRule(rule);
// } else tempRulesSet.add(rule);
{if (true) return rule;}
}catch (Exception e){
{if (true) throw new Error(e);}
}
throw new Error("Missing return statement in function");
}
final public String stringListItem() throws ParseException {
Token str;
str = jj_consume_token(STRING);
{if (true) return str.image;}
throw new Error("Missing return statement in function");
}
final public List<String> stringList() throws ParseException {
List<String> strLst=new ArrayList<String>();
String tempStr;
tempStr = stringListItem();
strLst.add(tempStr);
label_8:
while (true) {
if (jj_2_62(7)) {
;
} else {
break label_8;
}
jj_consume_token(ARGUMENT_SEPARATOR);
tempStr = stringListItem();
strLst.add(tempStr);
}
{if (true) return strLst;}
throw new Error("Missing return statement in function");
}
final public List<Superiority> superiority() throws ParseException {
Token fRule;
Token sign;
List<String> sRules;
fRule = jj_consume_token(STRING);
if (jj_2_63(7)) {
sign = jj_consume_token(GREATER);
} else if (jj_2_64(7)) {
sign = jj_consume_token(LESSER);
} else {
jj_consume_token(-1);
throw new ParseException();
}
sRules = stringList();
List<Superiority> superiorityLst=new ArrayList<Superiority>();
if (sRules.size()>0) {
Superiority superiority=null;
for (String ruleLabel:sRules){
if ( ">".equals(sign.image) ){
superiority=new Superiority(fRule.image,ruleLabel);
} else {
superiority=new Superiority(ruleLabel,fRule.image);
}
theory.add(superiority);
superiorityLst.add(superiority);
}
}
{if (true) return superiorityLst;}
throw new Error("Missing return statement in function");
}
final public void setLiteralVariable() throws ParseException {
//Token varName, varValue=null;
String functionString=null;
//List<String> valuePredicates=null;
Literal litName,litValue=null;
jj_consume_token(SET_LITERAL_VARIABLE);
litName = literal();
jj_consume_token(ASSIGN);
if (jj_2_65(7)) {
litValue = literal();
} else if (jj_2_66(7)) {
functionString = literalFunction();
} else {
jj_consume_token(-1);
throw new ParseException();
}
try{
LiteralVariable lvName=DomUtilities.getLiteralVariable(litName);
LiteralVariable lvValue=null;
if (null!=functionString) lvValue=DomUtilities.getLiteralVariable(functionString,false);
else lvValue=DomUtilities.getLiteralVariable(litValue);
theory.addLiteralVariable(lvName,lvValue);
}catch (Exception e) {
{if (true) throw new ParseException(e.getMessage());}
}
}
final public void modeConversionRules() throws ParseException {
Token mode;
Token modeSign;
List<String> modes;
mode = jj_consume_token(STRING);
if (jj_2_67(7)) {
modeSign = jj_consume_token(EQUALS);
} else if (jj_2_68(7)) {
modeSign = jj_consume_token(NOT_EQUALS);
} else if (jj_2_69(7)) {
modeSign = jj_consume_token(EXCLUDED);
} else {
jj_consume_token(-1);
throw new ParseException();
}
modes = stringList();
if (modes.size()>0) {
String[] modesArray=new String[modes.size()];
modes.toArray(modesArray);
if ("==".equals(modeSign.image)) {
theory.addModeConversionRules(mode.image,modesArray);
} else if ("!=".equals(modeSign.image)) {
theory.addModeConflictRules(mode.image,modesArray);
} else {
theory.addModeExclusionRules(mode.image,modesArray);
}
}
}
final public void conclusion() throws ParseException {
Token conclusionType;
Literal literal;
if (jj_2_70(7)) {
conclusionType = jj_consume_token(DEFINITE_PROVABLE);
} else if (jj_2_71(7)) {
conclusionType = jj_consume_token(DEFINITE_NOT_PROVABLE);
} else if (jj_2_72(7)) {
conclusionType = jj_consume_token(DEFEASIBLE_PROVABLE);
} else if (jj_2_73(7)) {
conclusionType = jj_consume_token(DEFEASIBLE_NOT_PROVABLE);
} else {
jj_consume_token(-1);
throw new ParseException();
}
literal = literal();
try {
ConclusionType ct=ConclusionType.getConclusionType(conclusionType.image.trim());
Map<ConclusionType, Conclusion> conclusionList = conclusions.get(literal);
if (null==conclusionList) {
conclusionList = new TreeMap<ConclusionType, Conclusion>();
conclusions.put(literal, conclusionList);
}
conclusionList.put(ct,new Conclusion(ct,literal));
} catch (Exception e) {
{if (true) throw new Error(e);}
}
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
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); }
}
private boolean jj_3R_13() {
if (jj_scan_token(SET_LITERAL_VARIABLE)) return true;
if (jj_3R_18()) return true;
if (jj_scan_token(ASSIGN)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_65()) {
jj_scanpos = xsp;
if (jj_3_66()) return true;
}
return false;
}
private boolean jj_3_61() {
if (jj_scan_token(RULE_TYPE_DEFEATER)) return true;
return false;
}
private boolean jj_3_45() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_41()) {
jj_scanpos = xsp;
if (jj_3_42()) {
jj_scanpos = xsp;
if (jj_3_43()) return true;
}
}
xsp = jj_scanpos;
if (jj_3_44()) jj_scanpos = xsp;
return false;
}
private boolean jj_3_26() {
if (jj_3R_18()) return true;
return false;
}
private boolean jj_3_40() {
if (jj_scan_token(MINUS)) return true;
return false;
}
private boolean jj_3_25() {
if (jj_scan_token(LESSER_OR_EQUAL)) return true;
return false;
}
private boolean jj_3_24() {
if (jj_scan_token(GREATER_OR_EQUAL)) return true;
return false;
}
private boolean jj_3_23() {
if (jj_scan_token(LESSER)) return true;
return false;
}
private boolean jj_3_22() {
if (jj_scan_token(GREATER)) return true;
return false;
}
private boolean jj_3_39() {
if (jj_3R_23()) return true;
return false;
}
private boolean jj_3R_18() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_39()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_40()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_45()) {
jj_scanpos = xsp;
if (jj_3_46()) return true;
}
xsp = jj_scanpos;
if (jj_3_47()) jj_scanpos = xsp;
return false;
}
private boolean jj_3_21() {
if (jj_scan_token(DIVIDE)) return true;
return false;
}
private boolean jj_3_20() {
if (jj_scan_token(MULTIPLY)) return true;
return false;
}
private boolean jj_3_19() {
if (jj_scan_token(MINUS)) return true;
return false;
}
private boolean jj_3_64() {
if (jj_scan_token(LESSER)) return true;
return false;
}
private boolean jj_3_18() {
if (jj_scan_token(PLUS)) return true;
return false;
}
private boolean jj_3_17() {
if (jj_scan_token(NOT_EQUALS)) return true;
return false;
}
private boolean jj_3_16() {
if (jj_scan_token(EQUALS)) return true;
return false;
}
private boolean jj_3R_20() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_27()) {
jj_scanpos = xsp;
if (jj_3_28()) return true;
}
return false;
}
private boolean jj_3_27() {
Token xsp;
xsp = jj_scanpos;
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()) {
jj_scanpos = xsp;
if (jj_3_21()) {
jj_scanpos = xsp;
if (jj_3_22()) {
jj_scanpos = xsp;
if (jj_3_23()) {
jj_scanpos = xsp;
if (jj_3_24()) {
jj_scanpos = xsp;
if (jj_3_25()) {
jj_scanpos = xsp;
if (jj_3_26()) return true;
}
}
}
}
}
}
}
}
}
}
return false;
}
private boolean jj_3_37() {
if (jj_scan_token(MINUS)) return true;
return false;
}
private boolean jj_3_63() {
if (jj_scan_token(GREATER)) return true;
return false;
}
private boolean jj_3R_15() {
if (jj_scan_token(STRING)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_63()) {
jj_scanpos = xsp;
if (jj_3_64()) return true;
}
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3_15() {
if (jj_scan_token(DATE_TIME_STRING)) return true;
return false;
}
private boolean jj_3_60() {
if (jj_scan_token(RULE_TYPE_DEFEASIBLE)) return true;
return false;
}
private boolean jj_3_62() {
if (jj_scan_token(ARGUMENT_SEPARATOR)) return true;
if (jj_3R_30()) return true;
return false;
}
private boolean jj_3_14() {
if (jj_scan_token(LITERAL_VARIABLE_DURATION)) return true;
if (jj_scan_token(ARG_START)) return true;
if (jj_scan_token(DATE_TIME_STRING)) return true;
if (jj_scan_token(ARG_END)) return true;
return false;
}
private boolean jj_3R_26() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_14()) {
jj_scanpos = xsp;
if (jj_3_15()) return true;
}
return false;
}
private boolean jj_3_38() {
if (jj_scan_token(ARGUMENT_SEPARATOR)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_37()) jj_scanpos = xsp;
if (jj_scan_token(NUMBER)) return true;
return false;
}
private boolean jj_3R_31() {
if (jj_3R_30()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3_62()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_32() {
if (jj_scan_token(STRING)) return true;
return false;
}
private boolean jj_3_36() {
if (jj_scan_token(NEG_INF)) return true;
return false;
}
private boolean jj_3_34() {
if (jj_scan_token(MINUS)) return true;
return false;
}
private boolean jj_3_35() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_34()) jj_scanpos = xsp;
if (jj_scan_token(NUMBER)) return true;
return false;
}
private boolean jj_3R_27() {
if (jj_scan_token(TEMPORAL_START)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_35()) {
jj_scanpos = xsp;
if (jj_3_36()) return true;
}
xsp = jj_scanpos;
if (jj_3_38()) jj_scanpos = xsp;
if (jj_scan_token(TEMPORAL_END)) return true;
return false;
}
private boolean jj_3R_30() {
if (jj_scan_token(STRING)) return true;
return false;
}
private boolean jj_3_7() {
if (jj_3R_15()) return true;
return false;
}
private boolean jj_3_13() {
if (jj_scan_token(MINUS)) return true;
return false;
}
private boolean jj_3R_24() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_13()) jj_scanpos = xsp;
if (jj_scan_token(NUMBER)) return true;
return false;
}
private boolean jj_3_59() {
if (jj_scan_token(RULE_TYPE_STRICT)) return true;
return false;
}
private boolean jj_3_12() {
if (jj_scan_token(MINUS)) return true;
return false;
}
private boolean jj_3_33() {
if (jj_scan_token(ARGUMENT_SEPARATOR)) return true;
if (jj_3R_22()) return true;
return false;
}
private boolean jj_3R_23() {
if (jj_scan_token(MODE_START)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_12()) jj_scanpos = xsp;
if (jj_scan_token(STRING)) return true;
if (jj_scan_token(MODE_END)) return true;
return false;
}
private boolean jj_3_31() {
if (jj_3R_21()) return true;
return false;
}
private boolean jj_3_9() {
if (jj_scan_token(EOL)) return true;
return false;
}
private boolean jj_3_8() {
if (jj_3R_16()) return true;
return false;
}
private boolean jj_3_11() {
if (jj_scan_token(EOL)) return true;
return false;
}
private boolean jj_3_6() {
if (jj_3R_14()) return true;
return false;
}
private boolean jj_3_4() {
if (jj_scan_token(EOL)) return true;
if (jj_3R_12()) return true;
return false;
}
private boolean jj_3R_25() {
if (jj_scan_token(ARG_START)) return true;
if (jj_3R_22()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3_33()) { jj_scanpos = xsp; break; }
}
if (jj_scan_token(ARG_END)) return true;
return false;
}
private boolean jj_3R_12() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_10()) {
jj_scanpos = xsp;
if (jj_3_11()) return true;
}
return false;
}
private boolean jj_3_10() {
if (jj_3R_17()) return true;
return false;
}
private boolean jj_3R_11() {
Token xsp;
xsp = jj_scanpos;
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()) return true;
}
}
}
}
return false;
}
private boolean jj_3_5() {
if (jj_3R_13()) return true;
return false;
}
private boolean jj_3_3() {
if (jj_scan_token(EOL)) return true;
if (jj_3R_11()) return true;
return false;
}
private boolean jj_3_58() {
if (jj_scan_token(RULE_TYPE_FACT)) return true;
return false;
}
private boolean jj_3_57() {
if (jj_3R_29()) return true;
return false;
}
private boolean jj_3_30() {
if (jj_scan_token(NUMBER)) return true;
return false;
}
private boolean jj_3_56() {
if (jj_3R_28()) return true;
return false;
}
private boolean jj_3R_22() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_30()) {
jj_scanpos = xsp;
if (jj_3_31()) {
jj_scanpos = xsp;
if (jj_3_32()) return true;
}
}
return false;
}
private boolean jj_3R_16() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_56()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_57()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_58()) {
jj_scanpos = xsp;
if (jj_3_59()) {
jj_scanpos = xsp;
if (jj_3_60()) {
jj_scanpos = xsp;
if (jj_3_61()) return true;
}
}
}
if (jj_3R_29()) return true;
return false;
}
private boolean jj_3R_10() {
if (jj_3R_12()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3_4()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_52() {
if (jj_3R_18()) return true;
return false;
}
private boolean jj_3R_9() {
if (jj_3R_11()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
if (jj_3_3()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_49() {
if (jj_3R_18()) return true;
return false;
}
private boolean jj_3_55() {
if (jj_3R_27()) return true;
return false;
}
private boolean jj_3_54() {
if (jj_3R_23()) return true;
return false;
}
private boolean jj_3_53() {
if (jj_scan_token(STRING)) return true;
return false;
}
private boolean jj_3R_28() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_53()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_54()) jj_scanpos = xsp;
xsp = jj_scanpos;
if (jj_3_55()) jj_scanpos = xsp;
if (jj_scan_token(RULE_LABEL_SEPARATOR)) return true;
return false;
}
private boolean jj_3_69() {
if (jj_scan_token(EXCLUDED)) return true;
return false;
}
private boolean jj_3R_21() {
if (jj_scan_token(LITERAL_FUNCTION)) return true;
if (jj_3R_19()) return true;
if (jj_scan_token(LITERAL_FUNCTION)) return true;
return false;
}
private boolean jj_3_73() {
if (jj_scan_token(DEFEASIBLE_NOT_PROVABLE)) return true;
return false;
}
private boolean jj_3_72() {
if (jj_scan_token(DEFEASIBLE_PROVABLE)) return true;
return false;
}
private boolean jj_3_51() {
if (jj_3R_21()) return true;
return false;
}
private boolean jj_3_71() {
if (jj_scan_token(DEFINITE_NOT_PROVABLE)) return true;
return false;
}
private boolean jj_3_50() {
if (jj_scan_token(ARGUMENT_SEPARATOR)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_51()) {
jj_scanpos = xsp;
if (jj_3_52()) return true;
}
return false;
}
private boolean jj_3_70() {
if (jj_scan_token(DEFINITE_PROVABLE)) return true;
return false;
}
private boolean jj_3R_17() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_70()) {
jj_scanpos = xsp;
if (jj_3_71()) {
jj_scanpos = xsp;
if (jj_3_72()) {
jj_scanpos = xsp;
if (jj_3_73()) return true;
}
}
}
if (jj_3R_18()) return true;
return false;
}
private boolean jj_3_68() {
if (jj_scan_token(NOT_EQUALS)) return true;
return false;
}
private boolean jj_3_48() {
if (jj_3R_21()) return true;
return false;
}
private boolean jj_3_29() {
if (jj_3R_20()) return true;
return false;
}
private boolean jj_3R_29() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_48()) {
jj_scanpos = xsp;
if (jj_3_49()) return true;
}
while (true) {
xsp = jj_scanpos;
if (jj_3_50()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3R_19() {
Token xsp;
if (jj_3_29()) return true;
while (true) {
xsp = jj_scanpos;
if (jj_3_29()) { jj_scanpos = xsp; break; }
}
return false;
}
private boolean jj_3_67() {
if (jj_scan_token(EQUALS)) return true;
return false;
}
private boolean jj_3_2() {
if (jj_3R_10()) return true;
return false;
}
private boolean jj_3R_14() {
if (jj_scan_token(STRING)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_3_67()) {
jj_scanpos = xsp;
if (jj_3_68()) {
jj_scanpos = xsp;
if (jj_3_69()) return true;
}
}
if (jj_3R_31()) return true;
return false;
}
private boolean jj_3_28() {
if (jj_scan_token(ARG_START)) return true;
if (jj_3R_19()) return true;
if (jj_scan_token(ARG_END)) return true;
return false;
}
private boolean jj_3_47() {
if (jj_3R_27()) return true;
return false;
}
private boolean jj_3_46() {
if (jj_3R_26()) return true;
return false;
}
private boolean jj_3_66() {
if (jj_3R_21()) return true;
return false;
}
private boolean jj_3_1() {
if (jj_3R_9()) return true;
return false;
}
private boolean jj_3_43() {
if (jj_3R_24()) return true;
return false;
}
private boolean jj_3_44() {
if (jj_3R_25()) return true;
return false;
}
private boolean jj_3_42() {
if (jj_scan_token(LITERAL_NAME)) return true;
return false;
}
private boolean jj_3_65() {
if (jj_3R_18()) return true;
return false;
}
private boolean jj_3_41() {
if (jj_scan_token(STRING)) return true;
return false;
}
/** Generated Token Manager. */
public DflTheoryParser2baseTokenManager token_source;
SimpleCharStream jj_input_stream;
/** Current token. */
public Token token;
/** Next token. */
public Token jj_nt;
private int jj_ntk;
private Token jj_scanpos, jj_lastpos;
private int jj_la;
private int jj_gen;
final private int[] jj_la1 = new int[0];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static {
jj_la1_init_0();
jj_la1_init_1();
}
private static void jj_la1_init_0() {
jj_la1_0 = new int[] {};
}
private static void jj_la1_init_1() {
jj_la1_1 = new int[] {};
}
final private JJCalls[] jj_2_rtns = new JJCalls[73];
private boolean jj_rescan = false;
private int jj_gc = 0;
/** Constructor with InputStream. */
public DflTheoryParser2base(java.io.InputStream stream) {
this(stream, null);
}
/** Constructor with InputStream and supplied encoding */
public DflTheoryParser2base(java.io.InputStream stream, String encoding) {
try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
token_source = new DflTheoryParser2baseTokenManager(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();
}
/** Reinitialise. */
public void ReInit(java.io.InputStream stream) {
ReInit(stream, null);
}
/** Reinitialise. */
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();
}
/** Constructor. */
public DflTheoryParser2base(java.io.Reader stream) {
jj_input_stream = new SimpleCharStream(stream, 1, 1);
token_source = new DflTheoryParser2baseTokenManager(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();
}
/** Reinitialise. */
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();
}
/** Constructor with generated Token Manager. */
public DflTheoryParser2base(DflTheoryParser2baseTokenManager 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();
}
/** Reinitialise. */
public void ReInit(DflTheoryParser2baseTokenManager 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();
}
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 { }
final private LookaheadSuccess jj_ls = new LookaheadSuccess();
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;
}
/** Get the next Token. */
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;
}
/** Get the specific Token. */
final public Token getToken(int index) {
Token t = token;
for (int i = 0; i < index; i++) {
if (t.next != null) t = t.next;
else t = t.next = token_source.getNextToken();
}
return t;
}
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);
}
private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
private int[] jj_expentry;
private int jj_kind = -1;
private int[] jj_lasttokens = new int[100];
private int jj_endpos;
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];
}
jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
int[] oldentry = (int[])(it.next());
if (oldentry.length == jj_expentry.length) {
for (int i = 0; i < jj_expentry.length; i++) {
if (oldentry[i] != jj_expentry[i]) {
continue jj_entries_loop;
}
}
jj_expentries.add(jj_expentry);
break jj_entries_loop;
}
}
if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
}
}
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
boolean[] la1tokens = new boolean[50];
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;
}
}
}
}
for (int i = 0; i < 50; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
jj_expentries.add(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] = jj_expentries.get(i);
}
return new ParseException(token, exptokseq, tokenImage);
}
/** Enable tracing. */
final public void enable_tracing() {
}
/** Disable tracing. */
final public void disable_tracing() {
}
private void jj_rescan_token() {
jj_rescan = true;
for (int i = 0; i < 73; 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;
}
}
p = p.next;
} while (p != null);
} catch(LookaheadSuccess ls) { }
}
jj_rescan = false;
}
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;
}
/*
public static void main(String args[]) {
try {
//String query="(actor=\"a\" or actor=\"b\") and keyword=c\n[ss]ss(1,2,3){1,2}";
//String query = "ss:=>[ss]ss(1,2,3){1,2},abc,[sa]def\na1>b2\ns<ss\n";
String query = "set @a=@c \n#ss\n" //
+">>ss#\n" //
//+"\n" //
+"ss:$(@val(3)+@val(2))$=>[ss]ss(1,2,3){1,2},abc,[sa]def#sl\n" //
+"#\n#a1>b2\ns<ss\n\n" //
+"#ss\n" //
+"set @v=$@g+@w(1,2)$"; //
System.out.println( TextUtilities.generateHighLightedMessage("Query\n=====\n"+query));
//InputStream ins=new ByteArrayInputStream(query.getBytes("UTF-8"));
//DflTheoryParser2 parser = new DflTheoryParser2(ins);
//DflTheoryParser2 parser =new DflTheoryParser2(new StringReader(query));
String theoryFile="samples/levels_500.dfl";
DflTheoryParser2Base parser=new DflTheoryParser2Base(new FileInputStream(theoryFile));
long timeStart=System.currentTimeMillis();
Theory theory=parser.parseTheory();
System.out.println("time used="+(System.currentTimeMillis()-timeStart));
} catch (Exception e) {
e.printStackTrace();
}
}
*/
}