blob: 161da9f6f6f0b56b30f51959f9df9e114f972f7e [file] [log] [blame]
/* Generated By:JavaCC: Do not edit this line. RuleParserImpl.java */
package org.apache.stanbol.rules.manager.parse;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.StringReader;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.clerezza.commons.rdf.IRI;
import org.apache.stanbol.rules.base.api.Rule;
import org.apache.stanbol.rules.base.api.RuleAtom;
import org.apache.stanbol.rules.base.api.util.AtomList;
import org.apache.stanbol.rules.manager.KB;
import org.apache.stanbol.rules.manager.RuleImpl;
import org.apache.stanbol.rules.manager.atoms.ClassAtom;
import org.apache.stanbol.rules.manager.atoms.ComparisonAtom;
import org.apache.stanbol.rules.manager.atoms.ConcatAtom;
import org.apache.stanbol.rules.manager.atoms.CreateLabelAtom;
import org.apache.stanbol.rules.manager.atoms.DatavaluedPropertyAtom;
import org.apache.stanbol.rules.manager.atoms.DifferentAtom;
import org.apache.stanbol.rules.manager.atoms.DivisionAtom;
import org.apache.stanbol.rules.manager.atoms.EndsWithAtom;
import org.apache.stanbol.rules.manager.atoms.ExpressionAtom;
import org.apache.stanbol.rules.manager.atoms.GreaterEqualThanAtom;
import org.apache.stanbol.rules.manager.atoms.GreaterThanAtom;
import org.apache.stanbol.rules.manager.atoms.IObjectAtom;
import org.apache.stanbol.rules.manager.atoms.IndividualPropertyAtom;
import org.apache.stanbol.rules.manager.atoms.IsBlankAtom;
import org.apache.stanbol.rules.manager.atoms.LengthAtom;
import org.apache.stanbol.rules.manager.atoms.LessEqualThanAtom;
import org.apache.stanbol.rules.manager.atoms.LessThanAtom;
import org.apache.stanbol.rules.manager.atoms.LetAtom;
import org.apache.stanbol.rules.manager.atoms.LocalNameAtom;
import org.apache.stanbol.rules.manager.atoms.LowerCaseAtom;
import org.apache.stanbol.rules.manager.atoms.MultiplicationAtom;
import org.apache.stanbol.rules.manager.atoms.NamespaceAtom;
import org.apache.stanbol.rules.manager.atoms.NewIRIAtom;
import org.apache.stanbol.rules.manager.atoms.NewLiteralAtom;
import org.apache.stanbol.rules.manager.atoms.NotAtom;
import org.apache.stanbol.rules.manager.atoms.NumberAtom;
import org.apache.stanbol.rules.manager.atoms.NumericFunctionAtom;
import org.apache.stanbol.rules.manager.atoms.NumericVariableAtom;
import org.apache.stanbol.rules.manager.atoms.PropStringAtom;
import org.apache.stanbol.rules.manager.atoms.ResourceAtom;
import org.apache.stanbol.rules.manager.atoms.RuleBlankNode;
import org.apache.stanbol.rules.manager.atoms.SameAtom;
import org.apache.stanbol.rules.manager.atoms.StartsWithAtom;
import org.apache.stanbol.rules.manager.atoms.StrAtom;
import org.apache.stanbol.rules.manager.atoms.StringAtom;
import org.apache.stanbol.rules.manager.atoms.StringFunctionAtom;
import org.apache.stanbol.rules.manager.atoms.StringVariableAtom;
import org.apache.stanbol.rules.manager.atoms.SubstringAtom;
import org.apache.stanbol.rules.manager.atoms.SubtractionAtom;
import org.apache.stanbol.rules.manager.atoms.SumAtom;
import org.apache.stanbol.rules.manager.atoms.TypedLiteralAtom;
import org.apache.stanbol.rules.manager.atoms.UnionAtom;
import org.apache.stanbol.rules.manager.atoms.UpperCaseAtom;
import org.apache.stanbol.rules.manager.atoms.VariableAtom;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Resource;
/**
*
* @author anuzzolese
*
*/
@SuppressWarnings("unused")
public class RuleParserImpl implements RuleParserImplConstants {
static KB kb;
public static KB parse( String namespace, String inString ) {
{
kb = new KB(namespace);
Reader reader = new StringReader( inString ) ;
RuleParserImpl parser = new RuleParserImpl(reader);
StringBuffer buffer = new StringBuffer() ;
try {
parser.start( ) ;
} catch( TokenMgrError e ) {
throw new IllegalStateException(e) ;
} catch( ParseException e ) {
throw new IllegalStateException(e) ;
}
return kb ; }
}
public static KB parse( String namespace, InputStream inStream ) {
kb = new KB(namespace);
Reader reader = new InputStreamReader(inStream);
RuleParserImpl parser = new RuleParserImpl(reader);
try {
parser.start();
} catch (TokenMgrError e) {
throw new IllegalStateException(e);
} catch (ParseException e) {
throw new IllegalStateException(e);
}
return kb;
}
private static URI getSWRLArgument(String argument){
Resource rdfNode = null;
String[] argumentComposition = argument.split(":");
if(argumentComposition.length == 2){
String prefix = argumentComposition[0];
String resourceName = argumentComposition[1];
String namespaceURI = kb.getPrefixURI(prefix);
rdfNode = ModelFactory.createDefaultModel().createResource(namespaceURI+resourceName);
try {
return new URI(rdfNode.getURI());
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return null;
}
private static URI getSWRLVariable(String argument){
Resource variableResource = null;
String variableString = argument.substring(1);
variableResource = ModelFactory.createDefaultModel().createResource(kb.getPrefixURI("var")+variableString);
try {
return new URI(variableResource.getURI());
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
final public void start() throws ParseException {
expression();
expressionCont();
}
final public void expressionCont() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND:
jj_consume_token(AND);
expression();
break;
default:
jj_la1[0] = jj_gen;
}
}
final public void expression() throws ParseException {
Rule rule;
prefix();
expressionCont();
}
final public void prefix() throws ParseException {
String nsPrefix; Object obj; Rule rule;
nsPrefix = getVariable();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case EQUAL:
obj = equality();
String prefixURI = (String)obj;
prefixURI = prefixURI.substring(1, prefixURI.length()-1);
kb.addPrefix(nsPrefix, prefixURI);
break;
case LQUAD:
obj = rule();
AtomList[] atoms = (AtomList[]) obj;
String ruleStorePrefix = kb.getPrefixURI("rmi2");
ruleStorePrefix = ruleStorePrefix.substring(0, ruleStorePrefix.length());
if(atoms.length == 1){
AtomList body = atoms[0];
if(body.size() == 1){
// FIXME it previously managed SPARQL code injection.
}
}
else{
rule = new RuleImpl(new IRI(ruleStorePrefix+nsPrefix), nsPrefix, atoms[0], atoms[1]);
kb.addRule(rule);
}
break;
default:
jj_la1[1] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
}
final public String equality() throws ParseException {
String nsURI;
jj_consume_token(EQUAL);
nsURI = getURI();
{if (true) return nsURI;}
throw new Error("Missing return statement in function");
}
final public AtomList[] rule() throws ParseException {
AtomList[] ruleAtoms;
jj_consume_token(LQUAD);
ruleAtoms = ruleDefinition();
jj_consume_token(RQUAD);
{if (true) return ruleAtoms;}
throw new Error("Missing return statement in function");
}
final public AtomList[] ruleDefinition() throws ParseException {
AtomList body; AtomList head; Token t;
body = atomList();
jj_consume_token(LARROW);
head = atomList();
{if (true) return new AtomList[]{body, head};}
throw new Error("Missing return statement in function");
}
final public AtomList atomList() throws ParseException {
AtomList atomList = new AtomList(); RuleAtom kReSAtom;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SAME:
case DIFFERENT:
case LESSTHAN:
case GREATERTHAN:
case IS:
case NEW_IRI:
case NEW_LITERAL:
case STARTS_WITH:
case ENDS_WITH:
case LET:
case HAS:
case VALUES:
case NOT:
case UNION:
case IS_BLANK:
kReSAtom = atom();
atomList = atomListRest();
atomList.addToHead(kReSAtom); {if (true) return atomList;}
break;
default:
jj_la1[2] = jj_gen;
{if (true) return atomList;}
}
throw new Error("Missing return statement in function");
}
final public AtomList atomListRest() throws ParseException {
AtomList atomList = new AtomList(); RuleAtom kReSAtom;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case AND:
jj_consume_token(AND);
atomList = atomList();
{if (true) return atomList;}
break;
default:
jj_la1[3] = jj_gen;
{if (true) return atomList;}
}
throw new Error("Missing return statement in function");
}
final public RuleAtom atom() throws ParseException {
RuleAtom ruleAtom;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case IS:
ruleAtom = classAtom();
{if (true) return ruleAtom;}
break;
case HAS:
ruleAtom = individualPropertyAtom();
{if (true) return ruleAtom;}
break;
case VALUES:
ruleAtom = datavaluedPropertyAtom();
{if (true) return ruleAtom;}
break;
case LET:
ruleAtom = letAtom();
{if (true) return ruleAtom;}
break;
case NEW_IRI:
ruleAtom = newIRIAtom();
{if (true) return ruleAtom;}
break;
case NEW_LITERAL:
ruleAtom = newLiteralAtom();
{if (true) return ruleAtom;}
break;
case SAME:
case DIFFERENT:
case LESSTHAN:
case GREATERTHAN:
case STARTS_WITH:
case ENDS_WITH:
case NOT:
case IS_BLANK:
ruleAtom = comparisonAtom();
{if (true) return ruleAtom;}
break;
case UNION:
ruleAtom = unionAtom();
{if (true) return ruleAtom;}
break;
default:
jj_la1[4] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public RuleAtom unionAtom() throws ParseException {
AtomList atomList1; AtomList atomList2;
jj_consume_token(UNION);
jj_consume_token(LPAR);
atomList1 = atomList();
jj_consume_token(COMMA);
atomList2 = atomList();
jj_consume_token(RPAR);
{if (true) return new UnionAtom(atomList1, atomList2);}
throw new Error("Missing return statement in function");
}
final public StringFunctionAtom createLabelAtom() throws ParseException {
StringFunctionAtom stringFunctionAtom;
jj_consume_token(CREATE_LABEL);
jj_consume_token(LPAR);
stringFunctionAtom = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new CreateLabelAtom(stringFunctionAtom);}
throw new Error("Missing return statement in function");
}
final public StringFunctionAtom propStringAtom() throws ParseException {
StringFunctionAtom stringFunctionAtom1; StringFunctionAtom stringFunctionAtom2;
jj_consume_token(PROP);
jj_consume_token(LPAR);
stringFunctionAtom1 = stringFunctionAtom();
jj_consume_token(COMMA);
stringFunctionAtom2 = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new PropStringAtom(stringFunctionAtom1, stringFunctionAtom2);}
throw new Error("Missing return statement in function");
}
final public ComparisonAtom endsWithAtom() throws ParseException {
RuleAtom ruleAtom; StringFunctionAtom arg; StringFunctionAtom stringFunctionAtom;
jj_consume_token(ENDS_WITH);
jj_consume_token(LPAR);
arg = stringFunctionAtom();
jj_consume_token(COMMA);
stringFunctionAtom = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new EndsWithAtom(arg, stringFunctionAtom);}
throw new Error("Missing return statement in function");
}
final public ComparisonAtom startsWithAtom() throws ParseException {
RuleAtom ruleAtom; StringFunctionAtom arg; StringFunctionAtom stringFunctionAtom;
jj_consume_token(STARTS_WITH);
jj_consume_token(LPAR);
arg = stringFunctionAtom();
jj_consume_token(COMMA);
stringFunctionAtom = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new StartsWithAtom(arg, stringFunctionAtom);}
throw new Error("Missing return statement in function");
}
final public StringFunctionAtom stringFunctionAtom() throws ParseException {
Object obj; StringFunctionAtom stringFunctionAtom;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case CONCAT:
stringFunctionAtom = concatAtom();
break;
case UPPERCASE:
stringFunctionAtom = upperCaseAtom();
break;
case LOWERCASE:
stringFunctionAtom = lowerCaseAtom();
break;
case SUBSTRING:
stringFunctionAtom = substringAtom();
break;
case NAMESPACE:
stringFunctionAtom = namespaceAtom();
break;
case LOCALNAME:
stringFunctionAtom = localnameAtom();
break;
case STR:
stringFunctionAtom = strAtom();
break;
case STRING:
stringFunctionAtom = stringAtom();
break;
case PROP:
stringFunctionAtom = propStringAtom();
break;
case CREATE_LABEL:
stringFunctionAtom = createLabelAtom();
break;
case VARIABLE:
stringFunctionAtom = stringVariable();
break;
default:
jj_la1[5] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return stringFunctionAtom;}
throw new Error("Missing return statement in function");
}
final public StrAtom strAtom() throws ParseException {
IObjectAtom uri;
jj_consume_token(STR);
jj_consume_token(LPAR);
uri = iObject();
jj_consume_token(RPAR);
{if (true) return new StrAtom(uri);}
throw new Error("Missing return statement in function");
}
final public NamespaceAtom namespaceAtom() throws ParseException {
IObjectAtom uri;
jj_consume_token(NAMESPACE);
jj_consume_token(LPAR);
uri = iObject();
jj_consume_token(RPAR);
{if (true) return new NamespaceAtom(uri);}
throw new Error("Missing return statement in function");
}
final public LocalNameAtom localnameAtom() throws ParseException {
IObjectAtom uri;
jj_consume_token(LOCALNAME);
jj_consume_token(LPAR);
uri = iObject();
jj_consume_token(RPAR);
{if (true) return new LocalNameAtom(uri);}
throw new Error("Missing return statement in function");
}
final public StringAtom stringAtom() throws ParseException {
String obj;
obj = getStringValue();
{if (true) return new StringAtom(obj);}
throw new Error("Missing return statement in function");
}
final public ConcatAtom concatAtom() throws ParseException {
StringFunctionAtom arg1; StringFunctionAtom arg2;
jj_consume_token(CONCAT);
jj_consume_token(LPAR);
arg1 = stringFunctionAtom();
jj_consume_token(COMMA);
arg2 = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new ConcatAtom(arg1, arg2);}
throw new Error("Missing return statement in function");
}
final public UpperCaseAtom upperCaseAtom() throws ParseException {
StringFunctionAtom arg;
jj_consume_token(UPPERCASE);
jj_consume_token(LPAR);
arg = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new UpperCaseAtom(arg);}
throw new Error("Missing return statement in function");
}
final public LowerCaseAtom lowerCaseAtom() throws ParseException {
StringFunctionAtom arg;
jj_consume_token(LOWERCASE);
jj_consume_token(LPAR);
arg = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new LowerCaseAtom(arg);}
throw new Error("Missing return statement in function");
}
final public SubstringAtom substringAtom() throws ParseException {
StringFunctionAtom arg; NumericFunctionAtom start; NumericFunctionAtom length;
jj_consume_token(SUBSTRING);
jj_consume_token(LPAR);
arg = stringFunctionAtom();
jj_consume_token(COMMA);
start = numericFunctionAtom();
jj_consume_token(COMMA);
length = numericFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new SubstringAtom(arg, start, length);}
throw new Error("Missing return statement in function");
}
final public ExpressionAtom expressionAtom() throws ParseException {
ExpressionAtom expressionAtom;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SUBSTRING:
case UPPERCASE:
case LOWERCASE:
case CONCAT:
case NAMESPACE:
case LOCALNAME:
case STR:
case CREATE_LABEL:
case PROP:
case VARIABLE:
case STRING:
expressionAtom = stringFunctionAtom();
break;
case LENGTH:
case PLUS:
case MINUS:
case NUM:
expressionAtom = numericFunctionAtom();
break;
default:
jj_la1[6] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return expressionAtom;}
throw new Error("Missing return statement in function");
}
final public NumericFunctionAtom numericFunctionAtom() throws ParseException {
NumericFunctionAtom numericFunctionAtom;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
numericFunctionAtom = sumAtom();
break;
case MINUS:
numericFunctionAtom = subtractionAtom();
break;
case LENGTH:
numericFunctionAtom = lengthAtom();
break;
case NUM:
numericFunctionAtom = numberAtom();
break;
case VARIABLE:
numericFunctionAtom = numericVariable();
break;
default:
jj_la1[7] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return numericFunctionAtom;}
throw new Error("Missing return statement in function");
}
final public LengthAtom lengthAtom() throws ParseException {
StringFunctionAtom stringFunctionAtom;
jj_consume_token(LENGTH);
jj_consume_token(LPAR);
stringFunctionAtom = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new LengthAtom(stringFunctionAtom);}
throw new Error("Missing return statement in function");
}
final public SumAtom sumAtom() throws ParseException {
NumericFunctionAtom numericFunctionAtom1; NumericFunctionAtom numericFunctionAtom2;
jj_consume_token(PLUS);
jj_consume_token(LPAR);
numericFunctionAtom1 = numericFunctionAtom();
jj_consume_token(COMMA);
numericFunctionAtom2 = numericFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new SumAtom(numericFunctionAtom1, numericFunctionAtom2);}
throw new Error("Missing return statement in function");
}
final public SubtractionAtom subtractionAtom() throws ParseException {
NumericFunctionAtom numericFunctionAtom1; NumericFunctionAtom numericFunctionAtom2;
jj_consume_token(MINUS);
jj_consume_token(LPAR);
numericFunctionAtom1 = numericFunctionAtom();
jj_consume_token(COMMA);
numericFunctionAtom2 = numericFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new SubtractionAtom(numericFunctionAtom1, numericFunctionAtom2);}
throw new Error("Missing return statement in function");
}
final public MultiplicationAtom multiplicationAtom() throws ParseException {
NumericFunctionAtom numericFunctionAtom1; NumericFunctionAtom numericFunctionAtom2;
jj_consume_token(MULTIPLIED);
jj_consume_token(LPAR);
numericFunctionAtom1 = numericFunctionAtom();
jj_consume_token(COMMA);
numericFunctionAtom2 = numericFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new MultiplicationAtom(numericFunctionAtom1, numericFunctionAtom2);}
throw new Error("Missing return statement in function");
}
final public DivisionAtom divisionAtom() throws ParseException {
NumericFunctionAtom numericFunctionAtom1; NumericFunctionAtom numericFunctionAtom2;
jj_consume_token(DIVIDED);
jj_consume_token(LPAR);
numericFunctionAtom1 = numericFunctionAtom();
jj_consume_token(COMMA);
numericFunctionAtom2 = numericFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new DivisionAtom(numericFunctionAtom1, numericFunctionAtom2);}
throw new Error("Missing return statement in function");
}
final public NumericFunctionAtom numberAtom() throws ParseException {
Token t;
t = jj_consume_token(NUM);
{if (true) return new NumberAtom(t.image);}
throw new Error("Missing return statement in function");
}
final public ClassAtom classAtom() throws ParseException {
IObjectAtom uri1; IObjectAtom uri2;
jj_consume_token(IS);
jj_consume_token(LPAR);
uri1 = iObject();
jj_consume_token(COMMA);
uri2 = iObject();
jj_consume_token(RPAR);
{if (true) return new ClassAtom(uri1, uri2);}
throw new Error("Missing return statement in function");
}
final public NewIRIAtom newIRIAtom() throws ParseException {
IObjectAtom arg1; StringFunctionAtom arg2;
jj_consume_token(NEW_IRI);
jj_consume_token(LPAR);
arg1 = iObject();
jj_consume_token(COMMA);
arg2 = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new NewIRIAtom(arg1, arg2);}
throw new Error("Missing return statement in function");
}
final public NewLiteralAtom newLiteralAtom() throws ParseException {
IObjectAtom arg1; StringFunctionAtom arg2;
jj_consume_token(NEW_LITERAL);
jj_consume_token(LPAR);
arg1 = iObject();
jj_consume_token(COMMA);
arg2 = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new NewLiteralAtom(arg1, arg2);}
throw new Error("Missing return statement in function");
}
final public LetAtom letAtom() throws ParseException {
IObjectAtom uri1; StringFunctionAtom fun;
jj_consume_token(LET);
jj_consume_token(LPAR);
uri1 = iObject();
jj_consume_token(COMMA);
fun = stringFunctionAtom();
jj_consume_token(RPAR);
{if (true) return new LetAtom(uri1, fun);}
throw new Error("Missing return statement in function");
}
final public IndividualPropertyAtom individualPropertyAtom() throws ParseException {
IObjectAtom uri1; IObjectAtom uri2; IObjectAtom uri3;
jj_consume_token(HAS);
jj_consume_token(LPAR);
uri1 = iObject();
jj_consume_token(COMMA);
uri2 = iObject();
jj_consume_token(COMMA);
uri3 = iObject();
jj_consume_token(RPAR);
{if (true) return new IndividualPropertyAtom(uri1, uri2, uri3);}
throw new Error("Missing return statement in function");
}
final public DatavaluedPropertyAtom datavaluedPropertyAtom() throws ParseException {
IObjectAtom uri1; IObjectAtom uri2; RuleAtom obj;
jj_consume_token(VALUES);
jj_consume_token(LPAR);
uri1 = iObject();
jj_consume_token(COMMA);
uri2 = iObject();
jj_consume_token(COMMA);
obj = dObject();
jj_consume_token(RPAR);
{if (true) return new DatavaluedPropertyAtom(uri1, uri2, obj);}
throw new Error("Missing return statement in function");
}
final public SameAtom sameAsAtom() throws ParseException {
ExpressionAtom expressionAtom1; ExpressionAtom expressionAtom2;
jj_consume_token(SAME);
jj_consume_token(LPAR);
expressionAtom1 = expressionAtom();
jj_consume_token(COMMA);
expressionAtom2 = expressionAtom();
jj_consume_token(RPAR);
{if (true) return new SameAtom(expressionAtom1, expressionAtom2);}
throw new Error("Missing return statement in function");
}
final public LessThanAtom lessThanAtom() throws ParseException {
ExpressionAtom obj1; ExpressionAtom obj2;
jj_consume_token(LESSTHAN);
jj_consume_token(LPAR);
obj1 = expressionAtom();
jj_consume_token(COMMA);
obj2 = expressionAtom();
jj_consume_token(RPAR);
{if (true) return new LessThanAtom(obj1, obj2);}
throw new Error("Missing return statement in function");
}
final public LessEqualThanAtom lessEqualThanAtom() throws ParseException {
ExpressionAtom obj1; ExpressionAtom obj2;
jj_consume_token(LESSEQUALTHAN);
jj_consume_token(LPAR);
obj1 = expressionAtom();
jj_consume_token(COMMA);
obj2 = expressionAtom();
jj_consume_token(RPAR);
{if (true) return new LessEqualThanAtom(obj1, obj2);}
throw new Error("Missing return statement in function");
}
final public GreaterThanAtom greaterThanAtom() throws ParseException {
ExpressionAtom obj1; ExpressionAtom obj2;
jj_consume_token(GREATERTHAN);
jj_consume_token(LPAR);
obj1 = expressionAtom();
jj_consume_token(COMMA);
obj2 = expressionAtom();
jj_consume_token(RPAR);
{if (true) return new GreaterThanAtom(obj1, obj2);}
throw new Error("Missing return statement in function");
}
final public GreaterEqualThanAtom greaterEqualThanAtom() throws ParseException {
ExpressionAtom obj1; ExpressionAtom obj2;
jj_consume_token(GREATEREQUALTHAN);
jj_consume_token(LPAR);
obj1 = expressionAtom();
jj_consume_token(COMMA);
obj2 = expressionAtom();
jj_consume_token(RPAR);
{if (true) return new GreaterEqualThanAtom(obj1, obj2);}
throw new Error("Missing return statement in function");
}
final public DifferentAtom differentFromAtom() throws ParseException {
ExpressionAtom expressionAtom1; ExpressionAtom expressionAtom2;
jj_consume_token(DIFFERENT);
jj_consume_token(LPAR);
expressionAtom1 = expressionAtom();
jj_consume_token(COMMA);
expressionAtom2 = expressionAtom();
jj_consume_token(RPAR);
{if (true) return new DifferentAtom(expressionAtom1, expressionAtom2);}
throw new Error("Missing return statement in function");
}
final public IObjectAtom reference() throws ParseException {
String uri1;
Token colon;
String uri3;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case URI:
uri1 = getURI();
uri1 = uri1.substring(1, uri1.length()-1);
try {
{if (true) return new ResourceAtom(new URI(uri1));}
} catch (URISyntaxException e) {
e.printStackTrace();
}
break;
case VAR:
uri1 = getVariable();
colon = jj_consume_token(COLON);
uri3 = getVariable();
{if (true) return new ResourceAtom(getSWRLArgument(uri1+colon.image+uri3));}
break;
default:
jj_la1[8] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public IObjectAtom varReference() throws ParseException {
String uri1;
Token colon;
String uri3;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case URI:
uri1 = getURI();
try {
{if (true) return new ResourceAtom(new URI(uri1));}
} catch (URISyntaxException e) {
e.printStackTrace();
}
break;
case VAR:
uri1 = getVariable();
colon = jj_consume_token(COLON);
uri3 = getVariable();
{if (true) return new ResourceAtom(getSWRLArgument(uri1+colon.image+uri3));}
break;
default:
jj_la1[9] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public String getURI() throws ParseException {
Token t;
t = jj_consume_token(URI);
{if (true) return t.image;}
throw new Error("Missing return statement in function");
}
final public String getVariable() throws ParseException {
Token t;
t = jj_consume_token(VAR);
{if (true) return t.image;}
throw new Error("Missing return statement in function");
}
final public String getStringValue() throws ParseException {
Token t;
t = jj_consume_token(STRING);
{if (true) return t.image;}
throw new Error("Missing return statement in function");
}
final public StringAtom getString() throws ParseException {
Token t;
t = jj_consume_token(STRING);
{if (true) return new StringAtom(t.image);}
throw new Error("Missing return statement in function");
}
final public NumberAtom getInt() throws ParseException {
Token t;
t = jj_consume_token(NUM);
{if (true) return new NumberAtom(t.image);}
throw new Error("Missing return statement in function");
}
final public Object uObject() throws ParseException {
Object obj;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NOTEX:
case VARIABLE:
case BNODE:
obj = variable();
break;
case VAR:
case URI:
obj = reference();
break;
case STRING:
obj = getString();
break;
case NUM:
obj = getInt();
break;
default:
jj_la1[10] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return obj;}
throw new Error("Missing return statement in function");
}
final public IObjectAtom iObject() throws ParseException {
IObjectAtom uri;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NOTEX:
case VARIABLE:
case BNODE:
uri = variable();
{if (true) return uri;}
break;
case VAR:
case URI:
uri = reference();
{if (true) return uri;}
break;
default:
jj_la1[11] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public RuleAtom dObject() throws ParseException {
RuleAtom variable;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NUM:
case STRING:
variable = literal();
break;
case NOTEX:
case VARIABLE:
case BNODE:
variable = variable();
break;
default:
jj_la1[12] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return variable;}
throw new Error("Missing return statement in function");
}
final public ExpressionAtom literal() throws ParseException {
ExpressionAtom literal; IObjectAtom typedLiteral;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case STRING:
literal = getString();
typedLiteral = typedLiteral();
break;
case NUM:
literal = getInt();
typedLiteral = typedLiteral();
break;
default:
jj_la1[13] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
if(typedLiteral != null){
{if (true) return new TypedLiteralAtom(literal, typedLiteral);}
}
else{
{if (true) return literal;}
}
throw new Error("Missing return statement in function");
}
final public IObjectAtom typedLiteral() throws ParseException {
IObjectAtom type = null;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case APOX:
jj_consume_token(APOX);
jj_consume_token(APOX);
type = reference();
break;
default:
jj_la1[14] = jj_gen;
}
{if (true) return type;}
throw new Error("Missing return statement in function");
}
final public IObjectAtom variable() throws ParseException {
Token t; String var;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case NOTEX:
jj_consume_token(NOTEX);
jj_consume_token(LPAR);
t = jj_consume_token(VARIABLE);
jj_consume_token(RPAR);
var=t.image; var=kb.getPrefixURI("var") + var.substring(1);
try{
{if (true) return new VariableAtom(new URI(var), true);}
} catch (URISyntaxException e) {
e.printStackTrace();
{if (true) return null;}
}
break;
case VARIABLE:
t = jj_consume_token(VARIABLE);
var=t.image; var=kb.getPrefixURI("var") + var.substring(1);
try{
{if (true) return new VariableAtom(new URI(var), false);}
} catch (URISyntaxException e) {
e.printStackTrace();
{if (true) return null;}
}
break;
case BNODE:
t = jj_consume_token(BNODE);
var=t.image; {if (true) return new RuleBlankNode(var);}
break;
default:
jj_la1[15] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
throw new Error("Missing return statement in function");
}
final public ComparisonAtom notAtom() throws ParseException {
ComparisonAtom comparisonAtom;
jj_consume_token(NOT);
jj_consume_token(LPAR);
comparisonAtom = comparisonAtom();
jj_consume_token(RPAR);
{if (true) return new NotAtom(comparisonAtom);}
throw new Error("Missing return statement in function");
}
final public ComparisonAtom isBlankAtom() throws ParseException {
IObjectAtom uriRes;
jj_consume_token(IS_BLANK);
jj_consume_token(LPAR);
uriRes = iObject();
jj_consume_token(RPAR);
{if (true) return new IsBlankAtom(uriRes);}
throw new Error("Missing return statement in function");
}
final public ComparisonAtom comparisonAtom() throws ParseException {
ComparisonAtom comparisonAtom;
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case SAME:
comparisonAtom = sameAsAtom();
break;
case LESSTHAN:
comparisonAtom = lessThanAtom();
break;
case GREATERTHAN:
comparisonAtom = greaterThanAtom();
break;
case DIFFERENT:
comparisonAtom = differentFromAtom();
break;
case NOT:
comparisonAtom = notAtom();
break;
case STARTS_WITH:
comparisonAtom = startsWithAtom();
break;
case ENDS_WITH:
comparisonAtom = endsWithAtom();
break;
case IS_BLANK:
comparisonAtom = isBlankAtom();
break;
default:
jj_la1[16] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
{if (true) return comparisonAtom;}
throw new Error("Missing return statement in function");
}
final public NumericVariableAtom numericVariable() throws ParseException {
Token t; String var;
t = jj_consume_token(VARIABLE);
var=t.image; var=kb.getPrefixURI("var") + var.substring(1);
try{
{if (true) return new NumericVariableAtom(new URI(var), false);}
} catch (URISyntaxException e) {
e.printStackTrace();
{if (true) return null;}
}
throw new Error("Missing return statement in function");
}
final public StringVariableAtom stringVariable() throws ParseException {
Token t; String var;
t = jj_consume_token(VARIABLE);
var=t.image; var=kb.getPrefixURI("var") + var.substring(1);
try{
{if (true) return new StringVariableAtom(new URI(var), false);}
} catch (URISyntaxException e) {
e.printStackTrace();
{if (true) return null;}
}
throw new Error("Missing return statement in function");
}
/** Generated Token Manager. */
public RuleParserImplTokenManager token_source;
SimpleCharStream jj_input_stream;
/** Current token. */
public Token token;
/** Next token. */
public Token jj_nt;
private int jj_ntk;
private int jj_gen;
final private int[] jj_la1 = new int[17];
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[] {0x800,0x400,0xdc39e000,0x800,0xdc39e000,0x23800000,0x23c00000,0x400000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xc01e000,};
}
private static void jj_la1_init_1() {
jj_la1_1 = new int[] {0x0,0x20000,0x2420,0x0,0x2420,0xa019c0,0xa819c6,0x280006,0x500000,0x500000,0x1f80001,0x1700001,0x1a80001,0x880000,0x200,0x1200001,0x2020,};
}
/** Constructor with InputStream. */
public RuleParserImpl(java.io.InputStream stream) {
this(stream, null);
}
/** Constructor with InputStream and supplied encoding */
public RuleParserImpl(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 RuleParserImplTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 17; i++) jj_la1[i] = -1;
}
/** 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 < 17; i++) jj_la1[i] = -1;
}
/** Constructor. */
public RuleParserImpl(java.io.Reader stream) {
jj_input_stream = new SimpleCharStream(stream, 1, 1);
token_source = new RuleParserImplTokenManager(jj_input_stream);
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 17; i++) jj_la1[i] = -1;
}
/** 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 < 17; i++) jj_la1[i] = -1;
}
/** Constructor with generated Token Manager. */
public RuleParserImpl(RuleParserImplTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 17; i++) jj_la1[i] = -1;
}
/** Reinitialise. */
public void ReInit(RuleParserImplTokenManager tm) {
token_source = tm;
token = new Token();
jj_ntk = -1;
jj_gen = 0;
for (int i = 0; i < 17; i++) jj_la1[i] = -1;
}
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++;
return token;
}
token = oldToken;
jj_kind = kind;
throw generateParseException();
}
/** 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;
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
boolean[] la1tokens = new boolean[57];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
for (int i = 0; i < 17; 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 < 57; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
jj_expentries.add(jj_expentry);
}
}
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() {
}
}