
webapp.flint.sparql.sparql10querymode_ll1.js Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of corese-server Show documentation
Show all versions of corese-server Show documentation
Corese is a Semantic Web Factory (triple store and SPARQL endpoint) implementing RDF, RDFS, SPARQL 1.1
Query and Update.
The newest version!
CodeMirror.defineMode("sparql10", function(config, parserConfig) {
var indentUnit = config.indentUnit;
// ll1_table is auto-generated from grammar
// - do not edit manually
// %%%table%%%
var ll1_table=
{
"*[ (,), expression]" : {
",": ["[ (,), expression]","*[ (,), expression]"],
")": []},
"*[ (,), object]" : {
",": ["[ (,), object]","*[ (,), object]"],
".": [],
";": [],
"]": [],
"}": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": []},
"*[ (;), ?[verb, objectList]]" : {
";": ["[ (;), ?[verb, objectList]]","*[ (;), ?[verb, objectList]]"],
".": [],
"]": [],
"}": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": []},
"*[&&, valueLogical]" : {
"&&": ["[&&, valueLogical]","*[&&, valueLogical]"],
")": [],
",": [],
"||": []},
"*[UNION, groupGraphPattern]" : {
"UNION": ["[UNION, groupGraphPattern]","*[UNION, groupGraphPattern]"],
"VAR1": [],
"VAR2": [],
"NIL": [],
"(": [],
"[": [],
"IRI_REF": [],
"TRUE": [],
"FALSE": [],
"BLANK_NODE_LABEL": [],
"ANON": [],
"PNAME_LN": [],
"PNAME_NS": [],
"STRING_LITERAL1": [],
"STRING_LITERAL2": [],
"STRING_LITERAL_LONG1": [],
"STRING_LITERAL_LONG2": [],
"INTEGER": [],
"DECIMAL": [],
"DOUBLE": [],
"INTEGER_POSITIVE": [],
"DECIMAL_POSITIVE": [],
"DOUBLE_POSITIVE": [],
"INTEGER_NEGATIVE": [],
"DECIMAL_NEGATIVE": [],
"DOUBLE_NEGATIVE": [],
".": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": [],
"}": []},
"*[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]" : {
"FILTER": ["[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]","*[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]"],
"OPTIONAL": ["[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]","*[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]"],
"{": ["[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]","*[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]"],
"GRAPH": ["[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]","*[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]"],
"}": []},
"*[||, conditionalAndExpression]" : {
"||": ["[||, conditionalAndExpression]","*[||, conditionalAndExpression]"],
")": [],
",": []},
"*datasetClause" : {
"FROM": ["datasetClause","*datasetClause"],
"WHERE": [],
"{": []},
"*describeDatasetClause" : {
"FROM": ["describeDatasetClause","*describeDatasetClause"],
"ORDER": [],
"LIMIT": [],
"OFFSET": [],
"WHERE": [],
"{": [],
"$": []},
"*graphNode" : {
"(": ["graphNode","*graphNode"],
"[": ["graphNode","*graphNode"],
"VAR1": ["graphNode","*graphNode"],
"VAR2": ["graphNode","*graphNode"],
"NIL": ["graphNode","*graphNode"],
"IRI_REF": ["graphNode","*graphNode"],
"TRUE": ["graphNode","*graphNode"],
"FALSE": ["graphNode","*graphNode"],
"BLANK_NODE_LABEL": ["graphNode","*graphNode"],
"ANON": ["graphNode","*graphNode"],
"PNAME_LN": ["graphNode","*graphNode"],
"PNAME_NS": ["graphNode","*graphNode"],
"STRING_LITERAL1": ["graphNode","*graphNode"],
"STRING_LITERAL2": ["graphNode","*graphNode"],
"STRING_LITERAL_LONG1": ["graphNode","*graphNode"],
"STRING_LITERAL_LONG2": ["graphNode","*graphNode"],
"INTEGER": ["graphNode","*graphNode"],
"DECIMAL": ["graphNode","*graphNode"],
"DOUBLE": ["graphNode","*graphNode"],
"INTEGER_POSITIVE": ["graphNode","*graphNode"],
"DECIMAL_POSITIVE": ["graphNode","*graphNode"],
"DOUBLE_POSITIVE": ["graphNode","*graphNode"],
"INTEGER_NEGATIVE": ["graphNode","*graphNode"],
"DECIMAL_NEGATIVE": ["graphNode","*graphNode"],
"DOUBLE_NEGATIVE": ["graphNode","*graphNode"],
")": []},
"*or([[*, unaryExpression], [/, unaryExpression]])" : {
"*": ["or([[*, unaryExpression], [/, unaryExpression]])","*or([[*, unaryExpression], [/, unaryExpression]])"],
"/": ["or([[*, unaryExpression], [/, unaryExpression]])","*or([[*, unaryExpression], [/, unaryExpression]])"],
")": [],
",": [],
"||": [],
"&&": [],
"=": [],
"!=": [],
"<": [],
">": [],
"<=": [],
">=": [],
"+": [],
"-": [],
"INTEGER_POSITIVE": [],
"DECIMAL_POSITIVE": [],
"DOUBLE_POSITIVE": [],
"INTEGER_NEGATIVE": [],
"DECIMAL_NEGATIVE": [],
"DOUBLE_NEGATIVE": []},
"*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])" : {
"+": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"-": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"INTEGER_POSITIVE": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DECIMAL_POSITIVE": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DOUBLE_POSITIVE": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"INTEGER_NEGATIVE": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DECIMAL_NEGATIVE": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DOUBLE_NEGATIVE": ["or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
")": [],
",": [],
"||": [],
"&&": [],
"=": [],
"!=": [],
"<": [],
">": [],
"<=": [],
">=": []},
"*orderCondition" : {
"ASC": ["orderCondition","*orderCondition"],
"DESC": ["orderCondition","*orderCondition"],
"VAR1": ["orderCondition","*orderCondition"],
"VAR2": ["orderCondition","*orderCondition"],
"(": ["orderCondition","*orderCondition"],
"STR": ["orderCondition","*orderCondition"],
"LANG": ["orderCondition","*orderCondition"],
"LANGMATCHES": ["orderCondition","*orderCondition"],
"DATATYPE": ["orderCondition","*orderCondition"],
"BOUND": ["orderCondition","*orderCondition"],
"SAMETERM": ["orderCondition","*orderCondition"],
"ISIRI": ["orderCondition","*orderCondition"],
"ISURI": ["orderCondition","*orderCondition"],
"ISBLANK": ["orderCondition","*orderCondition"],
"ISLITERAL": ["orderCondition","*orderCondition"],
"REGEX": ["orderCondition","*orderCondition"],
"IRI_REF": ["orderCondition","*orderCondition"],
"PNAME_LN": ["orderCondition","*orderCondition"],
"PNAME_NS": ["orderCondition","*orderCondition"],
"LIMIT": [],
"OFFSET": [],
"$": []},
"*prefixDecl" : {
"PREFIX": ["prefixDecl","*prefixDecl"],
"SELECT": [],
"CONSTRUCT": [],
"DESCRIBE": [],
"ASK": []},
"*var" : {
"VAR1": ["var","*var"],
"VAR2": ["var","*var"],
"WHERE": [],
"{": [],
"FROM": []},
"*varOrIRIref" : {
"VAR1": ["varOrIRIref","*varOrIRIref"],
"VAR2": ["varOrIRIref","*varOrIRIref"],
"IRI_REF": ["varOrIRIref","*varOrIRIref"],
"PNAME_LN": ["varOrIRIref","*varOrIRIref"],
"PNAME_NS": ["varOrIRIref","*varOrIRIref"],
"ORDER": [],
"LIMIT": [],
"OFFSET": [],
"WHERE": [],
"{": [],
"FROM": [],
"$": []},
"+graphNode" : {
"(": ["graphNode","*graphNode"],
"[": ["graphNode","*graphNode"],
"VAR1": ["graphNode","*graphNode"],
"VAR2": ["graphNode","*graphNode"],
"NIL": ["graphNode","*graphNode"],
"IRI_REF": ["graphNode","*graphNode"],
"TRUE": ["graphNode","*graphNode"],
"FALSE": ["graphNode","*graphNode"],
"BLANK_NODE_LABEL": ["graphNode","*graphNode"],
"ANON": ["graphNode","*graphNode"],
"PNAME_LN": ["graphNode","*graphNode"],
"PNAME_NS": ["graphNode","*graphNode"],
"STRING_LITERAL1": ["graphNode","*graphNode"],
"STRING_LITERAL2": ["graphNode","*graphNode"],
"STRING_LITERAL_LONG1": ["graphNode","*graphNode"],
"STRING_LITERAL_LONG2": ["graphNode","*graphNode"],
"INTEGER": ["graphNode","*graphNode"],
"DECIMAL": ["graphNode","*graphNode"],
"DOUBLE": ["graphNode","*graphNode"],
"INTEGER_POSITIVE": ["graphNode","*graphNode"],
"DECIMAL_POSITIVE": ["graphNode","*graphNode"],
"DOUBLE_POSITIVE": ["graphNode","*graphNode"],
"INTEGER_NEGATIVE": ["graphNode","*graphNode"],
"DECIMAL_NEGATIVE": ["graphNode","*graphNode"],
"DOUBLE_NEGATIVE": ["graphNode","*graphNode"]},
"+orderCondition" : {
"ASC": ["orderCondition","*orderCondition"],
"DESC": ["orderCondition","*orderCondition"],
"VAR1": ["orderCondition","*orderCondition"],
"VAR2": ["orderCondition","*orderCondition"],
"(": ["orderCondition","*orderCondition"],
"STR": ["orderCondition","*orderCondition"],
"LANG": ["orderCondition","*orderCondition"],
"LANGMATCHES": ["orderCondition","*orderCondition"],
"DATATYPE": ["orderCondition","*orderCondition"],
"BOUND": ["orderCondition","*orderCondition"],
"SAMETERM": ["orderCondition","*orderCondition"],
"ISIRI": ["orderCondition","*orderCondition"],
"ISURI": ["orderCondition","*orderCondition"],
"ISBLANK": ["orderCondition","*orderCondition"],
"ISLITERAL": ["orderCondition","*orderCondition"],
"REGEX": ["orderCondition","*orderCondition"],
"IRI_REF": ["orderCondition","*orderCondition"],
"PNAME_LN": ["orderCondition","*orderCondition"],
"PNAME_NS": ["orderCondition","*orderCondition"]},
"+var" : {
"VAR1": ["var","*var"],
"VAR2": ["var","*var"]},
"+varOrIRIref" : {
"VAR1": ["varOrIRIref","*varOrIRIref"],
"VAR2": ["varOrIRIref","*varOrIRIref"],
"IRI_REF": ["varOrIRIref","*varOrIRIref"],
"PNAME_LN": ["varOrIRIref","*varOrIRIref"],
"PNAME_NS": ["varOrIRIref","*varOrIRIref"]},
"?." : {
".": ["."],
"VAR1": [],
"VAR2": [],
"NIL": [],
"(": [],
"[": [],
"IRI_REF": [],
"TRUE": [],
"FALSE": [],
"BLANK_NODE_LABEL": [],
"ANON": [],
"PNAME_LN": [],
"PNAME_NS": [],
"STRING_LITERAL1": [],
"STRING_LITERAL2": [],
"STRING_LITERAL_LONG1": [],
"STRING_LITERAL_LONG2": [],
"INTEGER": [],
"DECIMAL": [],
"DOUBLE": [],
"INTEGER_POSITIVE": [],
"DECIMAL_POSITIVE": [],
"DOUBLE_POSITIVE": [],
"INTEGER_NEGATIVE": [],
"DECIMAL_NEGATIVE": [],
"DOUBLE_NEGATIVE": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": [],
"}": []},
"?WHERE" : {
"WHERE": ["WHERE"],
"{": []},
"?[ (,), expression]" : {
",": ["[ (,), expression]"],
")": []},
"?[., ?constructTriples]" : {
".": ["[., ?constructTriples]"],
"}": []},
"?[., ?triplesBlock]" : {
".": ["[., ?triplesBlock]"],
"}": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": []},
"?[verb, objectList]" : {
"a": ["[verb, objectList]"],
"VAR1": ["[verb, objectList]"],
"VAR2": ["[verb, objectList]"],
"IRI_REF": ["[verb, objectList]"],
"PNAME_LN": ["[verb, objectList]"],
"PNAME_NS": ["[verb, objectList]"],
";": [],
".": [],
"]": [],
"}": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": []},
"?argList" : {
"NIL": ["argList"],
"(": ["argList"],
")": [],
",": [],
"||": [],
"&&": [],
"=": [],
"!=": [],
"<": [],
">": [],
"<=": [],
">=": [],
"+": [],
"-": [],
"INTEGER_POSITIVE": [],
"DECIMAL_POSITIVE": [],
"DOUBLE_POSITIVE": [],
"INTEGER_NEGATIVE": [],
"DECIMAL_NEGATIVE": [],
"DOUBLE_NEGATIVE": [],
"*": [],
"/": []},
"?baseDecl" : {
"BASE": ["baseDecl"],
"SELECT": [],
"CONSTRUCT": [],
"DESCRIBE": [],
"ASK": [],
"PREFIX": []},
"?constructTriples" : {
"VAR1": ["constructTriples"],
"VAR2": ["constructTriples"],
"NIL": ["constructTriples"],
"(": ["constructTriples"],
"[": ["constructTriples"],
"IRI_REF": ["constructTriples"],
"TRUE": ["constructTriples"],
"FALSE": ["constructTriples"],
"BLANK_NODE_LABEL": ["constructTriples"],
"ANON": ["constructTriples"],
"PNAME_LN": ["constructTriples"],
"PNAME_NS": ["constructTriples"],
"STRING_LITERAL1": ["constructTriples"],
"STRING_LITERAL2": ["constructTriples"],
"STRING_LITERAL_LONG1": ["constructTriples"],
"STRING_LITERAL_LONG2": ["constructTriples"],
"INTEGER": ["constructTriples"],
"DECIMAL": ["constructTriples"],
"DOUBLE": ["constructTriples"],
"INTEGER_POSITIVE": ["constructTriples"],
"DECIMAL_POSITIVE": ["constructTriples"],
"DOUBLE_POSITIVE": ["constructTriples"],
"INTEGER_NEGATIVE": ["constructTriples"],
"DECIMAL_NEGATIVE": ["constructTriples"],
"DOUBLE_NEGATIVE": ["constructTriples"],
"}": []},
"?limitClause" : {
"LIMIT": ["limitClause"],
"$": []},
"?limitOffsetClauses" : {
"LIMIT": ["limitOffsetClauses"],
"OFFSET": ["limitOffsetClauses"],
"$": []},
"?offsetClause" : {
"OFFSET": ["offsetClause"],
"$": []},
"?or([DISTINCT, REDUCED])" : {
"DISTINCT": ["or([DISTINCT, REDUCED])"],
"REDUCED": ["or([DISTINCT, REDUCED])"],
"*": [],
"VAR1": [],
"VAR2": []},
"?or([LANGTAG, [^^, iriRef]])" : {
"LANGTAG": ["or([LANGTAG, [^^, iriRef]])"],
"^^": ["or([LANGTAG, [^^, iriRef]])"],
"a": [],
"VAR1": [],
"VAR2": [],
"IRI_REF": [],
"PNAME_LN": [],
"PNAME_NS": [],
".": [],
";": [],
",": [],
"(": [],
"[": [],
"NIL": [],
"TRUE": [],
"FALSE": [],
"BLANK_NODE_LABEL": [],
"ANON": [],
"STRING_LITERAL1": [],
"STRING_LITERAL2": [],
"STRING_LITERAL_LONG1": [],
"STRING_LITERAL_LONG2": [],
"INTEGER": [],
"DECIMAL": [],
"DOUBLE": [],
"INTEGER_POSITIVE": [],
"DECIMAL_POSITIVE": [],
"DOUBLE_POSITIVE": [],
"INTEGER_NEGATIVE": [],
"DECIMAL_NEGATIVE": [],
"DOUBLE_NEGATIVE": [],
")": [],
"]": [],
"}": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": [],
"||": [],
"&&": [],
"=": [],
"!=": [],
"<": [],
">": [],
"<=": [],
">=": [],
"+": [],
"-": [],
"*": [],
"/": []},
"?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])" : {
"=": ["or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"!=": ["or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"<": ["or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
">": ["or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"<=": ["or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
">=": ["or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
")": [],
",": [],
"||": [],
"&&": []},
"?orderClause" : {
"ORDER": ["orderClause"],
"LIMIT": [],
"OFFSET": [],
"$": []},
"?propertyListNotEmpty" : {
"a": ["propertyListNotEmpty"],
"VAR1": ["propertyListNotEmpty"],
"VAR2": ["propertyListNotEmpty"],
"IRI_REF": ["propertyListNotEmpty"],
"PNAME_LN": ["propertyListNotEmpty"],
"PNAME_NS": ["propertyListNotEmpty"],
".": [],
"}": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": []},
"?triplesBlock" : {
"VAR1": ["triplesBlock"],
"VAR2": ["triplesBlock"],
"NIL": ["triplesBlock"],
"(": ["triplesBlock"],
"[": ["triplesBlock"],
"IRI_REF": ["triplesBlock"],
"TRUE": ["triplesBlock"],
"FALSE": ["triplesBlock"],
"BLANK_NODE_LABEL": ["triplesBlock"],
"ANON": ["triplesBlock"],
"PNAME_LN": ["triplesBlock"],
"PNAME_NS": ["triplesBlock"],
"STRING_LITERAL1": ["triplesBlock"],
"STRING_LITERAL2": ["triplesBlock"],
"STRING_LITERAL_LONG1": ["triplesBlock"],
"STRING_LITERAL_LONG2": ["triplesBlock"],
"INTEGER": ["triplesBlock"],
"DECIMAL": ["triplesBlock"],
"DOUBLE": ["triplesBlock"],
"INTEGER_POSITIVE": ["triplesBlock"],
"DECIMAL_POSITIVE": ["triplesBlock"],
"DOUBLE_POSITIVE": ["triplesBlock"],
"INTEGER_NEGATIVE": ["triplesBlock"],
"DECIMAL_NEGATIVE": ["triplesBlock"],
"DOUBLE_NEGATIVE": ["triplesBlock"],
"}": [],
"FILTER": [],
"OPTIONAL": [],
"{": [],
"GRAPH": []},
"?whereClause" : {
"WHERE": ["whereClause"],
"{": ["whereClause"],
"ORDER": [],
"LIMIT": [],
"OFFSET": [],
"$": []},
"[ (,), expression]" : {
",": [",","expression"]},
"[ (,), object]" : {
",": [",","object"]},
"[ (;), ?[verb, objectList]]" : {
";": [";","?[verb, objectList]"]},
"[!, primaryExpression]" : {
"!": ["!","primaryExpression"]},
"[!=, numericExpression]" : {
"!=": ["!=","numericExpression"]},
"[&&, valueLogical]" : {
"&&": ["&&","valueLogical"]},
"[*, unaryExpression]" : {
"*": ["*","unaryExpression"]},
"[+, multiplicativeExpression]" : {
"+": ["+","multiplicativeExpression"]},
"[+, primaryExpression]" : {
"+": ["+","primaryExpression"]},
"[-, multiplicativeExpression]" : {
"-": ["-","multiplicativeExpression"]},
"[-, primaryExpression]" : {
"-": ["-","primaryExpression"]},
"[., ?constructTriples]" : {
".": [".","?constructTriples"]},
"[., ?triplesBlock]" : {
".": [".","?triplesBlock"]},
"[/, unaryExpression]" : {
"/": ["/","unaryExpression"]},
"[<, numericExpression]" : {
"<": ["<","numericExpression"]},
"[<=, numericExpression]" : {
"<=": ["<=","numericExpression"]},
"[=, numericExpression]" : {
"=": ["=","numericExpression"]},
"[>, numericExpression]" : {
">": [">","numericExpression"]},
"[>=, numericExpression]" : {
">=": [">=","numericExpression"]},
"[UNION, groupGraphPattern]" : {
"UNION": ["UNION","groupGraphPattern"]},
"[^^, iriRef]" : {
"^^": ["^^","iriRef"]},
"[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]" : {
"FILTER": ["or([graphPatternNotTriples, filter])","?.","?triplesBlock"],
"OPTIONAL": ["or([graphPatternNotTriples, filter])","?.","?triplesBlock"],
"{": ["or([graphPatternNotTriples, filter])","?.","?triplesBlock"],
"GRAPH": ["or([graphPatternNotTriples, filter])","?.","?triplesBlock"]},
"[verb, objectList]" : {
"a": ["verb","objectList"],
"VAR1": ["verb","objectList"],
"VAR2": ["verb","objectList"],
"IRI_REF": ["verb","objectList"],
"PNAME_LN": ["verb","objectList"],
"PNAME_NS": ["verb","objectList"]},
"[||, conditionalAndExpression]" : {
"||": ["||","conditionalAndExpression"]},
"additiveExpression" : {
"!": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"+": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"-": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"VAR1": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"VAR2": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"(": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"STR": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"LANG": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"LANGMATCHES": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DATATYPE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"BOUND": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"SAMETERM": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"ISIRI": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"ISURI": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"ISBLANK": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"ISLITERAL": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"TRUE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"FALSE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"REGEX": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"IRI_REF": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"STRING_LITERAL1": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"STRING_LITERAL2": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"STRING_LITERAL_LONG1": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"STRING_LITERAL_LONG2": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"INTEGER": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DECIMAL": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DOUBLE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"INTEGER_POSITIVE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DECIMAL_POSITIVE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DOUBLE_POSITIVE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"INTEGER_NEGATIVE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DECIMAL_NEGATIVE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"DOUBLE_NEGATIVE": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"PNAME_LN": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"],
"PNAME_NS": ["multiplicativeExpression","*or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])"]},
"argList" : {
"NIL": ["NIL"],
"(": ["(","expression","*[ (,), expression]",")"]},
"askQuery" : {
"ASK": ["ASK","*datasetClause","whereClause","solutionModifier"]},
"baseDecl" : {
"BASE": ["BASE","IRI_REF"]},
"blankNode" : {
"BLANK_NODE_LABEL": ["BLANK_NODE_LABEL"],
"ANON": ["ANON"]},
"blankNodePropertyList" : {
"[": ["[","propertyListNotEmpty","]"]},
"booleanLiteral" : {
"TRUE": ["TRUE"],
"FALSE": ["FALSE"]},
"brackettedExpression" : {
"(": ["(","expression",")"]},
"builtInCall" : {
"STR": ["STR","(","expression",")"],
"LANG": ["LANG","(","expression",")"],
"LANGMATCHES": ["LANGMATCHES","(","expression",",","expression",")"],
"DATATYPE": ["DATATYPE","(","expression",")"],
"BOUND": ["BOUND","(","var",")"],
"SAMETERM": ["SAMETERM","(","expression",",","expression",")"],
"ISIRI": ["ISIRI","(","expression",")"],
"ISURI": ["ISURI","(","expression",")"],
"ISBLANK": ["ISBLANK","(","expression",")"],
"ISLITERAL": ["ISLITERAL","(","expression",")"],
"REGEX": ["regexExpression"]},
"collection" : {
"(": ["(","+graphNode",")"]},
"conditionalAndExpression" : {
"!": ["valueLogical","*[&&, valueLogical]"],
"+": ["valueLogical","*[&&, valueLogical]"],
"-": ["valueLogical","*[&&, valueLogical]"],
"VAR1": ["valueLogical","*[&&, valueLogical]"],
"VAR2": ["valueLogical","*[&&, valueLogical]"],
"(": ["valueLogical","*[&&, valueLogical]"],
"STR": ["valueLogical","*[&&, valueLogical]"],
"LANG": ["valueLogical","*[&&, valueLogical]"],
"LANGMATCHES": ["valueLogical","*[&&, valueLogical]"],
"DATATYPE": ["valueLogical","*[&&, valueLogical]"],
"BOUND": ["valueLogical","*[&&, valueLogical]"],
"SAMETERM": ["valueLogical","*[&&, valueLogical]"],
"ISIRI": ["valueLogical","*[&&, valueLogical]"],
"ISURI": ["valueLogical","*[&&, valueLogical]"],
"ISBLANK": ["valueLogical","*[&&, valueLogical]"],
"ISLITERAL": ["valueLogical","*[&&, valueLogical]"],
"TRUE": ["valueLogical","*[&&, valueLogical]"],
"FALSE": ["valueLogical","*[&&, valueLogical]"],
"REGEX": ["valueLogical","*[&&, valueLogical]"],
"IRI_REF": ["valueLogical","*[&&, valueLogical]"],
"STRING_LITERAL1": ["valueLogical","*[&&, valueLogical]"],
"STRING_LITERAL2": ["valueLogical","*[&&, valueLogical]"],
"STRING_LITERAL_LONG1": ["valueLogical","*[&&, valueLogical]"],
"STRING_LITERAL_LONG2": ["valueLogical","*[&&, valueLogical]"],
"INTEGER": ["valueLogical","*[&&, valueLogical]"],
"DECIMAL": ["valueLogical","*[&&, valueLogical]"],
"DOUBLE": ["valueLogical","*[&&, valueLogical]"],
"INTEGER_POSITIVE": ["valueLogical","*[&&, valueLogical]"],
"DECIMAL_POSITIVE": ["valueLogical","*[&&, valueLogical]"],
"DOUBLE_POSITIVE": ["valueLogical","*[&&, valueLogical]"],
"INTEGER_NEGATIVE": ["valueLogical","*[&&, valueLogical]"],
"DECIMAL_NEGATIVE": ["valueLogical","*[&&, valueLogical]"],
"DOUBLE_NEGATIVE": ["valueLogical","*[&&, valueLogical]"],
"PNAME_LN": ["valueLogical","*[&&, valueLogical]"],
"PNAME_NS": ["valueLogical","*[&&, valueLogical]"]},
"conditionalOrExpression" : {
"!": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"+": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"-": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"VAR1": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"VAR2": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"(": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"STR": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"LANG": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"LANGMATCHES": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"DATATYPE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"BOUND": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"SAMETERM": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"ISIRI": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"ISURI": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"ISBLANK": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"ISLITERAL": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"TRUE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"FALSE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"REGEX": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"IRI_REF": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"STRING_LITERAL1": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"STRING_LITERAL2": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"STRING_LITERAL_LONG1": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"STRING_LITERAL_LONG2": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"INTEGER": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"DECIMAL": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"DOUBLE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"INTEGER_POSITIVE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"DECIMAL_POSITIVE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"DOUBLE_POSITIVE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"INTEGER_NEGATIVE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"DECIMAL_NEGATIVE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"DOUBLE_NEGATIVE": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"PNAME_LN": ["conditionalAndExpression","*[||, conditionalAndExpression]"],
"PNAME_NS": ["conditionalAndExpression","*[||, conditionalAndExpression]"]},
"constraint" : {
"(": ["brackettedExpression"],
"STR": ["builtInCall"],
"LANG": ["builtInCall"],
"LANGMATCHES": ["builtInCall"],
"DATATYPE": ["builtInCall"],
"BOUND": ["builtInCall"],
"SAMETERM": ["builtInCall"],
"ISIRI": ["builtInCall"],
"ISURI": ["builtInCall"],
"ISBLANK": ["builtInCall"],
"ISLITERAL": ["builtInCall"],
"REGEX": ["builtInCall"],
"IRI_REF": ["functionCall"],
"PNAME_LN": ["functionCall"],
"PNAME_NS": ["functionCall"]},
"constructQuery" : {
"CONSTRUCT": ["CONSTRUCT","constructTemplate","*datasetClause","whereClause","solutionModifier"]},
"constructTemplate" : {
"{": ["{","?constructTriples","}"]},
"constructTriples" : {
"VAR1": ["triplesSameSubject","?[., ?constructTriples]"],
"VAR2": ["triplesSameSubject","?[., ?constructTriples]"],
"NIL": ["triplesSameSubject","?[., ?constructTriples]"],
"(": ["triplesSameSubject","?[., ?constructTriples]"],
"[": ["triplesSameSubject","?[., ?constructTriples]"],
"IRI_REF": ["triplesSameSubject","?[., ?constructTriples]"],
"TRUE": ["triplesSameSubject","?[., ?constructTriples]"],
"FALSE": ["triplesSameSubject","?[., ?constructTriples]"],
"BLANK_NODE_LABEL": ["triplesSameSubject","?[., ?constructTriples]"],
"ANON": ["triplesSameSubject","?[., ?constructTriples]"],
"PNAME_LN": ["triplesSameSubject","?[., ?constructTriples]"],
"PNAME_NS": ["triplesSameSubject","?[., ?constructTriples]"],
"STRING_LITERAL1": ["triplesSameSubject","?[., ?constructTriples]"],
"STRING_LITERAL2": ["triplesSameSubject","?[., ?constructTriples]"],
"STRING_LITERAL_LONG1": ["triplesSameSubject","?[., ?constructTriples]"],
"STRING_LITERAL_LONG2": ["triplesSameSubject","?[., ?constructTriples]"],
"INTEGER": ["triplesSameSubject","?[., ?constructTriples]"],
"DECIMAL": ["triplesSameSubject","?[., ?constructTriples]"],
"DOUBLE": ["triplesSameSubject","?[., ?constructTriples]"],
"INTEGER_POSITIVE": ["triplesSameSubject","?[., ?constructTriples]"],
"DECIMAL_POSITIVE": ["triplesSameSubject","?[., ?constructTriples]"],
"DOUBLE_POSITIVE": ["triplesSameSubject","?[., ?constructTriples]"],
"INTEGER_NEGATIVE": ["triplesSameSubject","?[., ?constructTriples]"],
"DECIMAL_NEGATIVE": ["triplesSameSubject","?[., ?constructTriples]"],
"DOUBLE_NEGATIVE": ["triplesSameSubject","?[., ?constructTriples]"]},
"datasetClause" : {
"FROM": ["FROM","or([defaultGraphClause, namedGraphClause])"]},
"defaultGraphClause" : {
"IRI_REF": ["sourceSelector"],
"PNAME_LN": ["sourceSelector"],
"PNAME_NS": ["sourceSelector"]},
"describeDatasetClause" : {
"FROM": ["FROM","or([defaultGraphClause, namedGraphClause])"]},
"describeQuery" : {
"DESCRIBE": ["DESCRIBE","or([+varOrIRIref, *])","*describeDatasetClause","?whereClause","solutionModifier"]},
"expression" : {
"!": ["conditionalOrExpression"],
"+": ["conditionalOrExpression"],
"-": ["conditionalOrExpression"],
"VAR1": ["conditionalOrExpression"],
"VAR2": ["conditionalOrExpression"],
"(": ["conditionalOrExpression"],
"STR": ["conditionalOrExpression"],
"LANG": ["conditionalOrExpression"],
"LANGMATCHES": ["conditionalOrExpression"],
"DATATYPE": ["conditionalOrExpression"],
"BOUND": ["conditionalOrExpression"],
"SAMETERM": ["conditionalOrExpression"],
"ISIRI": ["conditionalOrExpression"],
"ISURI": ["conditionalOrExpression"],
"ISBLANK": ["conditionalOrExpression"],
"ISLITERAL": ["conditionalOrExpression"],
"TRUE": ["conditionalOrExpression"],
"FALSE": ["conditionalOrExpression"],
"REGEX": ["conditionalOrExpression"],
"IRI_REF": ["conditionalOrExpression"],
"STRING_LITERAL1": ["conditionalOrExpression"],
"STRING_LITERAL2": ["conditionalOrExpression"],
"STRING_LITERAL_LONG1": ["conditionalOrExpression"],
"STRING_LITERAL_LONG2": ["conditionalOrExpression"],
"INTEGER": ["conditionalOrExpression"],
"DECIMAL": ["conditionalOrExpression"],
"DOUBLE": ["conditionalOrExpression"],
"INTEGER_POSITIVE": ["conditionalOrExpression"],
"DECIMAL_POSITIVE": ["conditionalOrExpression"],
"DOUBLE_POSITIVE": ["conditionalOrExpression"],
"INTEGER_NEGATIVE": ["conditionalOrExpression"],
"DECIMAL_NEGATIVE": ["conditionalOrExpression"],
"DOUBLE_NEGATIVE": ["conditionalOrExpression"],
"PNAME_LN": ["conditionalOrExpression"],
"PNAME_NS": ["conditionalOrExpression"]},
"filter" : {
"FILTER": ["FILTER","constraint"]},
"functionCall" : {
"IRI_REF": ["iriRef","argList"],
"PNAME_LN": ["iriRef","argList"],
"PNAME_NS": ["iriRef","argList"]},
"graphGraphPattern" : {
"GRAPH": ["GRAPH","varOrIRIref","groupGraphPattern"]},
"graphNode" : {
"VAR1": ["varOrTerm"],
"VAR2": ["varOrTerm"],
"NIL": ["varOrTerm"],
"IRI_REF": ["varOrTerm"],
"TRUE": ["varOrTerm"],
"FALSE": ["varOrTerm"],
"BLANK_NODE_LABEL": ["varOrTerm"],
"ANON": ["varOrTerm"],
"PNAME_LN": ["varOrTerm"],
"PNAME_NS": ["varOrTerm"],
"STRING_LITERAL1": ["varOrTerm"],
"STRING_LITERAL2": ["varOrTerm"],
"STRING_LITERAL_LONG1": ["varOrTerm"],
"STRING_LITERAL_LONG2": ["varOrTerm"],
"INTEGER": ["varOrTerm"],
"DECIMAL": ["varOrTerm"],
"DOUBLE": ["varOrTerm"],
"INTEGER_POSITIVE": ["varOrTerm"],
"DECIMAL_POSITIVE": ["varOrTerm"],
"DOUBLE_POSITIVE": ["varOrTerm"],
"INTEGER_NEGATIVE": ["varOrTerm"],
"DECIMAL_NEGATIVE": ["varOrTerm"],
"DOUBLE_NEGATIVE": ["varOrTerm"],
"(": ["triplesNode"],
"[": ["triplesNode"]},
"graphPatternNotTriples" : {
"OPTIONAL": ["optionalGraphPattern"],
"{": ["groupOrUnionGraphPattern"],
"GRAPH": ["graphGraphPattern"]},
"graphTerm" : {
"IRI_REF": ["iriRef"],
"PNAME_LN": ["iriRef"],
"PNAME_NS": ["iriRef"],
"STRING_LITERAL1": ["rdfLiteral"],
"STRING_LITERAL2": ["rdfLiteral"],
"STRING_LITERAL_LONG1": ["rdfLiteral"],
"STRING_LITERAL_LONG2": ["rdfLiteral"],
"INTEGER": ["numericLiteral"],
"DECIMAL": ["numericLiteral"],
"DOUBLE": ["numericLiteral"],
"INTEGER_POSITIVE": ["numericLiteral"],
"DECIMAL_POSITIVE": ["numericLiteral"],
"DOUBLE_POSITIVE": ["numericLiteral"],
"INTEGER_NEGATIVE": ["numericLiteral"],
"DECIMAL_NEGATIVE": ["numericLiteral"],
"DOUBLE_NEGATIVE": ["numericLiteral"],
"TRUE": ["booleanLiteral"],
"FALSE": ["booleanLiteral"],
"BLANK_NODE_LABEL": ["blankNode"],
"ANON": ["blankNode"],
"NIL": ["NIL"]},
"groupGraphPattern" : {
"{": ["{","?triplesBlock","*[or([graphPatternNotTriples, filter]), ?., ?triplesBlock]","}"]},
"groupOrUnionGraphPattern" : {
"{": ["groupGraphPattern","*[UNION, groupGraphPattern]"]},
"iriRef" : {
"IRI_REF": ["IRI_REF"],
"PNAME_LN": ["prefixedName"],
"PNAME_NS": ["prefixedName"]},
"iriRefOrFunction" : {
"IRI_REF": ["iriRef","?argList"],
"PNAME_LN": ["iriRef","?argList"],
"PNAME_NS": ["iriRef","?argList"]},
"limitClause" : {
"LIMIT": ["LIMIT","INTEGER"]},
"limitOffsetClauses" : {
"LIMIT": ["limitClause","?offsetClause"],
"OFFSET": ["offsetClause","?limitClause"]},
"multiplicativeExpression" : {
"!": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"+": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"-": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"VAR1": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"VAR2": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"(": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"STR": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"LANG": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"LANGMATCHES": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"DATATYPE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"BOUND": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"SAMETERM": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"ISIRI": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"ISURI": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"ISBLANK": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"ISLITERAL": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"TRUE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"FALSE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"REGEX": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"IRI_REF": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"STRING_LITERAL1": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"STRING_LITERAL2": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"STRING_LITERAL_LONG1": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"STRING_LITERAL_LONG2": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"INTEGER": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"DECIMAL": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"DOUBLE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"INTEGER_POSITIVE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"DECIMAL_POSITIVE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"DOUBLE_POSITIVE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"INTEGER_NEGATIVE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"DECIMAL_NEGATIVE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"DOUBLE_NEGATIVE": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"PNAME_LN": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"],
"PNAME_NS": ["unaryExpression","*or([[*, unaryExpression], [/, unaryExpression]])"]},
"namedGraphClause" : {
"NAMED": ["NAMED","sourceSelector"]},
"numericExpression" : {
"!": ["additiveExpression"],
"+": ["additiveExpression"],
"-": ["additiveExpression"],
"VAR1": ["additiveExpression"],
"VAR2": ["additiveExpression"],
"(": ["additiveExpression"],
"STR": ["additiveExpression"],
"LANG": ["additiveExpression"],
"LANGMATCHES": ["additiveExpression"],
"DATATYPE": ["additiveExpression"],
"BOUND": ["additiveExpression"],
"SAMETERM": ["additiveExpression"],
"ISIRI": ["additiveExpression"],
"ISURI": ["additiveExpression"],
"ISBLANK": ["additiveExpression"],
"ISLITERAL": ["additiveExpression"],
"TRUE": ["additiveExpression"],
"FALSE": ["additiveExpression"],
"REGEX": ["additiveExpression"],
"IRI_REF": ["additiveExpression"],
"STRING_LITERAL1": ["additiveExpression"],
"STRING_LITERAL2": ["additiveExpression"],
"STRING_LITERAL_LONG1": ["additiveExpression"],
"STRING_LITERAL_LONG2": ["additiveExpression"],
"INTEGER": ["additiveExpression"],
"DECIMAL": ["additiveExpression"],
"DOUBLE": ["additiveExpression"],
"INTEGER_POSITIVE": ["additiveExpression"],
"DECIMAL_POSITIVE": ["additiveExpression"],
"DOUBLE_POSITIVE": ["additiveExpression"],
"INTEGER_NEGATIVE": ["additiveExpression"],
"DECIMAL_NEGATIVE": ["additiveExpression"],
"DOUBLE_NEGATIVE": ["additiveExpression"],
"PNAME_LN": ["additiveExpression"],
"PNAME_NS": ["additiveExpression"]},
"numericLiteral" : {
"INTEGER": ["numericLiteralUnsigned"],
"DECIMAL": ["numericLiteralUnsigned"],
"DOUBLE": ["numericLiteralUnsigned"],
"INTEGER_POSITIVE": ["numericLiteralPositive"],
"DECIMAL_POSITIVE": ["numericLiteralPositive"],
"DOUBLE_POSITIVE": ["numericLiteralPositive"],
"INTEGER_NEGATIVE": ["numericLiteralNegative"],
"DECIMAL_NEGATIVE": ["numericLiteralNegative"],
"DOUBLE_NEGATIVE": ["numericLiteralNegative"]},
"numericLiteralNegative" : {
"INTEGER_NEGATIVE": ["INTEGER_NEGATIVE"],
"DECIMAL_NEGATIVE": ["DECIMAL_NEGATIVE"],
"DOUBLE_NEGATIVE": ["DOUBLE_NEGATIVE"]},
"numericLiteralPositive" : {
"INTEGER_POSITIVE": ["INTEGER_POSITIVE"],
"DECIMAL_POSITIVE": ["DECIMAL_POSITIVE"],
"DOUBLE_POSITIVE": ["DOUBLE_POSITIVE"]},
"numericLiteralUnsigned" : {
"INTEGER": ["INTEGER"],
"DECIMAL": ["DECIMAL"],
"DOUBLE": ["DOUBLE"]},
"object" : {
"(": ["graphNode"],
"[": ["graphNode"],
"VAR1": ["graphNode"],
"VAR2": ["graphNode"],
"NIL": ["graphNode"],
"IRI_REF": ["graphNode"],
"TRUE": ["graphNode"],
"FALSE": ["graphNode"],
"BLANK_NODE_LABEL": ["graphNode"],
"ANON": ["graphNode"],
"PNAME_LN": ["graphNode"],
"PNAME_NS": ["graphNode"],
"STRING_LITERAL1": ["graphNode"],
"STRING_LITERAL2": ["graphNode"],
"STRING_LITERAL_LONG1": ["graphNode"],
"STRING_LITERAL_LONG2": ["graphNode"],
"INTEGER": ["graphNode"],
"DECIMAL": ["graphNode"],
"DOUBLE": ["graphNode"],
"INTEGER_POSITIVE": ["graphNode"],
"DECIMAL_POSITIVE": ["graphNode"],
"DOUBLE_POSITIVE": ["graphNode"],
"INTEGER_NEGATIVE": ["graphNode"],
"DECIMAL_NEGATIVE": ["graphNode"],
"DOUBLE_NEGATIVE": ["graphNode"]},
"objectList" : {
"(": ["object","*[ (,), object]"],
"[": ["object","*[ (,), object]"],
"VAR1": ["object","*[ (,), object]"],
"VAR2": ["object","*[ (,), object]"],
"NIL": ["object","*[ (,), object]"],
"IRI_REF": ["object","*[ (,), object]"],
"TRUE": ["object","*[ (,), object]"],
"FALSE": ["object","*[ (,), object]"],
"BLANK_NODE_LABEL": ["object","*[ (,), object]"],
"ANON": ["object","*[ (,), object]"],
"PNAME_LN": ["object","*[ (,), object]"],
"PNAME_NS": ["object","*[ (,), object]"],
"STRING_LITERAL1": ["object","*[ (,), object]"],
"STRING_LITERAL2": ["object","*[ (,), object]"],
"STRING_LITERAL_LONG1": ["object","*[ (,), object]"],
"STRING_LITERAL_LONG2": ["object","*[ (,), object]"],
"INTEGER": ["object","*[ (,), object]"],
"DECIMAL": ["object","*[ (,), object]"],
"DOUBLE": ["object","*[ (,), object]"],
"INTEGER_POSITIVE": ["object","*[ (,), object]"],
"DECIMAL_POSITIVE": ["object","*[ (,), object]"],
"DOUBLE_POSITIVE": ["object","*[ (,), object]"],
"INTEGER_NEGATIVE": ["object","*[ (,), object]"],
"DECIMAL_NEGATIVE": ["object","*[ (,), object]"],
"DOUBLE_NEGATIVE": ["object","*[ (,), object]"]},
"offsetClause" : {
"OFFSET": ["OFFSET","INTEGER"]},
"optionalGraphPattern" : {
"OPTIONAL": ["OPTIONAL","groupGraphPattern"]},
"or([+var, *])" : {
"VAR1": ["+var"],
"VAR2": ["+var"],
"*": ["*"]},
"or([+varOrIRIref, *])" : {
"VAR1": ["+varOrIRIref"],
"VAR2": ["+varOrIRIref"],
"IRI_REF": ["+varOrIRIref"],
"PNAME_LN": ["+varOrIRIref"],
"PNAME_NS": ["+varOrIRIref"],
"*": ["*"]},
"or([ASC, DESC])" : {
"ASC": ["ASC"],
"DESC": ["DESC"]},
"or([DISTINCT, REDUCED])" : {
"DISTINCT": ["DISTINCT"],
"REDUCED": ["REDUCED"]},
"or([LANGTAG, [^^, iriRef]])" : {
"LANGTAG": ["LANGTAG"],
"^^": ["[^^, iriRef]"]},
"or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])" : {
"!": ["[!, primaryExpression]"],
"+": ["[+, primaryExpression]"],
"-": ["[-, primaryExpression]"],
"VAR1": ["primaryExpression"],
"VAR2": ["primaryExpression"],
"(": ["primaryExpression"],
"STR": ["primaryExpression"],
"LANG": ["primaryExpression"],
"LANGMATCHES": ["primaryExpression"],
"DATATYPE": ["primaryExpression"],
"BOUND": ["primaryExpression"],
"SAMETERM": ["primaryExpression"],
"ISIRI": ["primaryExpression"],
"ISURI": ["primaryExpression"],
"ISBLANK": ["primaryExpression"],
"ISLITERAL": ["primaryExpression"],
"TRUE": ["primaryExpression"],
"FALSE": ["primaryExpression"],
"REGEX": ["primaryExpression"],
"IRI_REF": ["primaryExpression"],
"STRING_LITERAL1": ["primaryExpression"],
"STRING_LITERAL2": ["primaryExpression"],
"STRING_LITERAL_LONG1": ["primaryExpression"],
"STRING_LITERAL_LONG2": ["primaryExpression"],
"INTEGER": ["primaryExpression"],
"DECIMAL": ["primaryExpression"],
"DOUBLE": ["primaryExpression"],
"INTEGER_POSITIVE": ["primaryExpression"],
"DECIMAL_POSITIVE": ["primaryExpression"],
"DOUBLE_POSITIVE": ["primaryExpression"],
"INTEGER_NEGATIVE": ["primaryExpression"],
"DECIMAL_NEGATIVE": ["primaryExpression"],
"DOUBLE_NEGATIVE": ["primaryExpression"],
"PNAME_LN": ["primaryExpression"],
"PNAME_NS": ["primaryExpression"]},
"or([[*, unaryExpression], [/, unaryExpression]])" : {
"*": ["[*, unaryExpression]"],
"/": ["[/, unaryExpression]"]},
"or([[+, multiplicativeExpression], [-, multiplicativeExpression], numericLiteralPositive, numericLiteralNegative])" : {
"+": ["[+, multiplicativeExpression]"],
"-": ["[-, multiplicativeExpression]"],
"INTEGER_POSITIVE": ["numericLiteralPositive"],
"DECIMAL_POSITIVE": ["numericLiteralPositive"],
"DOUBLE_POSITIVE": ["numericLiteralPositive"],
"INTEGER_NEGATIVE": ["numericLiteralNegative"],
"DECIMAL_NEGATIVE": ["numericLiteralNegative"],
"DOUBLE_NEGATIVE": ["numericLiteralNegative"]},
"or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])" : {
"=": ["[=, numericExpression]"],
"!=": ["[!=, numericExpression]"],
"<": ["[<, numericExpression]"],
">": ["[>, numericExpression]"],
"<=": ["[<=, numericExpression]"],
">=": ["[>=, numericExpression]"]},
"or([defaultGraphClause, namedGraphClause])" : {
"IRI_REF": ["defaultGraphClause"],
"PNAME_LN": ["defaultGraphClause"],
"PNAME_NS": ["defaultGraphClause"],
"NAMED": ["namedGraphClause"]},
"or([graphPatternNotTriples, filter])" : {
"OPTIONAL": ["graphPatternNotTriples"],
"{": ["graphPatternNotTriples"],
"GRAPH": ["graphPatternNotTriples"],
"FILTER": ["filter"]},
"or([selectQuery, constructQuery, describeQuery, askQuery])" : {
"SELECT": ["selectQuery"],
"CONSTRUCT": ["constructQuery"],
"DESCRIBE": ["describeQuery"],
"ASK": ["askQuery"]},
"orderClause" : {
"ORDER": ["ORDER","BY","+orderCondition"]},
"orderCondition" : {
"ASC": ["or([ASC, DESC])","brackettedExpression"],
"DESC": ["or([ASC, DESC])","brackettedExpression"],
"(": ["constraint"],
"STR": ["constraint"],
"LANG": ["constraint"],
"LANGMATCHES": ["constraint"],
"DATATYPE": ["constraint"],
"BOUND": ["constraint"],
"SAMETERM": ["constraint"],
"ISIRI": ["constraint"],
"ISURI": ["constraint"],
"ISBLANK": ["constraint"],
"ISLITERAL": ["constraint"],
"REGEX": ["constraint"],
"IRI_REF": ["constraint"],
"PNAME_LN": ["constraint"],
"PNAME_NS": ["constraint"],
"VAR1": ["var"],
"VAR2": ["var"]},
"prefixDecl" : {
"PREFIX": ["PREFIX","PNAME_NS","IRI_REF"]},
"prefixedName" : {
"PNAME_LN": ["PNAME_LN"],
"PNAME_NS": ["PNAME_NS"]},
"primaryExpression" : {
"(": ["brackettedExpression"],
"STR": ["builtInCall"],
"LANG": ["builtInCall"],
"LANGMATCHES": ["builtInCall"],
"DATATYPE": ["builtInCall"],
"BOUND": ["builtInCall"],
"SAMETERM": ["builtInCall"],
"ISIRI": ["builtInCall"],
"ISURI": ["builtInCall"],
"ISBLANK": ["builtInCall"],
"ISLITERAL": ["builtInCall"],
"REGEX": ["builtInCall"],
"IRI_REF": ["iriRefOrFunction"],
"PNAME_LN": ["iriRefOrFunction"],
"PNAME_NS": ["iriRefOrFunction"],
"STRING_LITERAL1": ["rdfLiteral"],
"STRING_LITERAL2": ["rdfLiteral"],
"STRING_LITERAL_LONG1": ["rdfLiteral"],
"STRING_LITERAL_LONG2": ["rdfLiteral"],
"INTEGER": ["numericLiteral"],
"DECIMAL": ["numericLiteral"],
"DOUBLE": ["numericLiteral"],
"INTEGER_POSITIVE": ["numericLiteral"],
"DECIMAL_POSITIVE": ["numericLiteral"],
"DOUBLE_POSITIVE": ["numericLiteral"],
"INTEGER_NEGATIVE": ["numericLiteral"],
"DECIMAL_NEGATIVE": ["numericLiteral"],
"DOUBLE_NEGATIVE": ["numericLiteral"],
"TRUE": ["booleanLiteral"],
"FALSE": ["booleanLiteral"],
"VAR1": ["var"],
"VAR2": ["var"]},
"prologue" : {
"PREFIX": ["?baseDecl","*prefixDecl"],
"BASE": ["?baseDecl","*prefixDecl"],
"SELECT": ["?baseDecl","*prefixDecl"],
"CONSTRUCT": ["?baseDecl","*prefixDecl"],
"DESCRIBE": ["?baseDecl","*prefixDecl"],
"ASK": ["?baseDecl","*prefixDecl"]},
"propertyList" : {
"a": ["?propertyListNotEmpty"],
"VAR1": ["?propertyListNotEmpty"],
"VAR2": ["?propertyListNotEmpty"],
"IRI_REF": ["?propertyListNotEmpty"],
"PNAME_LN": ["?propertyListNotEmpty"],
"PNAME_NS": ["?propertyListNotEmpty"],
".": ["?propertyListNotEmpty"],
"}": ["?propertyListNotEmpty"],
"FILTER": ["?propertyListNotEmpty"],
"OPTIONAL": ["?propertyListNotEmpty"],
"{": ["?propertyListNotEmpty"],
"GRAPH": ["?propertyListNotEmpty"]},
"propertyListNotEmpty" : {
"a": ["verb","objectList","*[ (;), ?[verb, objectList]]"],
"VAR1": ["verb","objectList","*[ (;), ?[verb, objectList]]"],
"VAR2": ["verb","objectList","*[ (;), ?[verb, objectList]]"],
"IRI_REF": ["verb","objectList","*[ (;), ?[verb, objectList]]"],
"PNAME_LN": ["verb","objectList","*[ (;), ?[verb, objectList]]"],
"PNAME_NS": ["verb","objectList","*[ (;), ?[verb, objectList]]"]},
"query" : {
"SELECT": ["prologue","or([selectQuery, constructQuery, describeQuery, askQuery])"],
"CONSTRUCT": ["prologue","or([selectQuery, constructQuery, describeQuery, askQuery])"],
"DESCRIBE": ["prologue","or([selectQuery, constructQuery, describeQuery, askQuery])"],
"ASK": ["prologue","or([selectQuery, constructQuery, describeQuery, askQuery])"],
"PREFIX": ["prologue","or([selectQuery, constructQuery, describeQuery, askQuery])"],
"BASE": ["prologue","or([selectQuery, constructQuery, describeQuery, askQuery])"]},
"rdfLiteral" : {
"STRING_LITERAL1": ["string","?or([LANGTAG, [^^, iriRef]])"],
"STRING_LITERAL2": ["string","?or([LANGTAG, [^^, iriRef]])"],
"STRING_LITERAL_LONG1": ["string","?or([LANGTAG, [^^, iriRef]])"],
"STRING_LITERAL_LONG2": ["string","?or([LANGTAG, [^^, iriRef]])"]},
"regexExpression" : {
"REGEX": ["REGEX","(","expression",",","expression","?[ (,), expression]",")"]},
"relationalExpression" : {
"!": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"+": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"-": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"VAR1": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"VAR2": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"(": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"STR": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"LANG": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"LANGMATCHES": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"DATATYPE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"BOUND": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"SAMETERM": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"ISIRI": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"ISURI": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"ISBLANK": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"ISLITERAL": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"TRUE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"FALSE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"REGEX": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"IRI_REF": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"STRING_LITERAL1": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"STRING_LITERAL2": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"STRING_LITERAL_LONG1": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"STRING_LITERAL_LONG2": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"INTEGER": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"DECIMAL": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"DOUBLE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"INTEGER_POSITIVE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"DECIMAL_POSITIVE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"DOUBLE_POSITIVE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"INTEGER_NEGATIVE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"DECIMAL_NEGATIVE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"DOUBLE_NEGATIVE": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"PNAME_LN": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"],
"PNAME_NS": ["numericExpression","?or([[=, numericExpression], [!=, numericExpression], [<, numericExpression], [>, numericExpression], [<=, numericExpression], [>=, numericExpression]])"]},
"s" : {
"SELECT": ["query","$"],
"CONSTRUCT": ["query","$"],
"DESCRIBE": ["query","$"],
"ASK": ["query","$"],
"PREFIX": ["query","$"],
"BASE": ["query","$"]},
"selectQuery" : {
"SELECT": ["SELECT","?or([DISTINCT, REDUCED])","or([+var, *])","*datasetClause","whereClause","solutionModifier"]},
"solutionModifier" : {
"LIMIT": ["?orderClause","?limitOffsetClauses"],
"OFFSET": ["?orderClause","?limitOffsetClauses"],
"ORDER": ["?orderClause","?limitOffsetClauses"],
"$": ["?orderClause","?limitOffsetClauses"]},
"sourceSelector" : {
"IRI_REF": ["iriRef"],
"PNAME_LN": ["iriRef"],
"PNAME_NS": ["iriRef"]},
"storeProperty" : {
"VAR1": [],
"VAR2": [],
"IRI_REF": [],
"PNAME_LN": [],
"PNAME_NS": [],
"a": []},
"string" : {
"STRING_LITERAL1": ["STRING_LITERAL1"],
"STRING_LITERAL2": ["STRING_LITERAL2"],
"STRING_LITERAL_LONG1": ["STRING_LITERAL_LONG1"],
"STRING_LITERAL_LONG2": ["STRING_LITERAL_LONG2"]},
"triplesBlock" : {
"VAR1": ["triplesSameSubject","?[., ?triplesBlock]"],
"VAR2": ["triplesSameSubject","?[., ?triplesBlock]"],
"NIL": ["triplesSameSubject","?[., ?triplesBlock]"],
"(": ["triplesSameSubject","?[., ?triplesBlock]"],
"[": ["triplesSameSubject","?[., ?triplesBlock]"],
"IRI_REF": ["triplesSameSubject","?[., ?triplesBlock]"],
"TRUE": ["triplesSameSubject","?[., ?triplesBlock]"],
"FALSE": ["triplesSameSubject","?[., ?triplesBlock]"],
"BLANK_NODE_LABEL": ["triplesSameSubject","?[., ?triplesBlock]"],
"ANON": ["triplesSameSubject","?[., ?triplesBlock]"],
"PNAME_LN": ["triplesSameSubject","?[., ?triplesBlock]"],
"PNAME_NS": ["triplesSameSubject","?[., ?triplesBlock]"],
"STRING_LITERAL1": ["triplesSameSubject","?[., ?triplesBlock]"],
"STRING_LITERAL2": ["triplesSameSubject","?[., ?triplesBlock]"],
"STRING_LITERAL_LONG1": ["triplesSameSubject","?[., ?triplesBlock]"],
"STRING_LITERAL_LONG2": ["triplesSameSubject","?[., ?triplesBlock]"],
"INTEGER": ["triplesSameSubject","?[., ?triplesBlock]"],
"DECIMAL": ["triplesSameSubject","?[., ?triplesBlock]"],
"DOUBLE": ["triplesSameSubject","?[., ?triplesBlock]"],
"INTEGER_POSITIVE": ["triplesSameSubject","?[., ?triplesBlock]"],
"DECIMAL_POSITIVE": ["triplesSameSubject","?[., ?triplesBlock]"],
"DOUBLE_POSITIVE": ["triplesSameSubject","?[., ?triplesBlock]"],
"INTEGER_NEGATIVE": ["triplesSameSubject","?[., ?triplesBlock]"],
"DECIMAL_NEGATIVE": ["triplesSameSubject","?[., ?triplesBlock]"],
"DOUBLE_NEGATIVE": ["triplesSameSubject","?[., ?triplesBlock]"]},
"triplesNode" : {
"(": ["collection"],
"[": ["blankNodePropertyList"]},
"triplesSameSubject" : {
"VAR1": ["varOrTerm","propertyListNotEmpty"],
"VAR2": ["varOrTerm","propertyListNotEmpty"],
"NIL": ["varOrTerm","propertyListNotEmpty"],
"IRI_REF": ["varOrTerm","propertyListNotEmpty"],
"TRUE": ["varOrTerm","propertyListNotEmpty"],
"FALSE": ["varOrTerm","propertyListNotEmpty"],
"BLANK_NODE_LABEL": ["varOrTerm","propertyListNotEmpty"],
"ANON": ["varOrTerm","propertyListNotEmpty"],
"PNAME_LN": ["varOrTerm","propertyListNotEmpty"],
"PNAME_NS": ["varOrTerm","propertyListNotEmpty"],
"STRING_LITERAL1": ["varOrTerm","propertyListNotEmpty"],
"STRING_LITERAL2": ["varOrTerm","propertyListNotEmpty"],
"STRING_LITERAL_LONG1": ["varOrTerm","propertyListNotEmpty"],
"STRING_LITERAL_LONG2": ["varOrTerm","propertyListNotEmpty"],
"INTEGER": ["varOrTerm","propertyListNotEmpty"],
"DECIMAL": ["varOrTerm","propertyListNotEmpty"],
"DOUBLE": ["varOrTerm","propertyListNotEmpty"],
"INTEGER_POSITIVE": ["varOrTerm","propertyListNotEmpty"],
"DECIMAL_POSITIVE": ["varOrTerm","propertyListNotEmpty"],
"DOUBLE_POSITIVE": ["varOrTerm","propertyListNotEmpty"],
"INTEGER_NEGATIVE": ["varOrTerm","propertyListNotEmpty"],
"DECIMAL_NEGATIVE": ["varOrTerm","propertyListNotEmpty"],
"DOUBLE_NEGATIVE": ["varOrTerm","propertyListNotEmpty"],
"(": ["triplesNode","propertyList"],
"[": ["triplesNode","propertyList"]},
"unaryExpression" : {
"!": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"+": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"-": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"VAR1": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"VAR2": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"(": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"STR": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"LANG": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"LANGMATCHES": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"DATATYPE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"BOUND": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"SAMETERM": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"ISIRI": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"ISURI": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"ISBLANK": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"ISLITERAL": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"TRUE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"FALSE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"REGEX": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"IRI_REF": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"STRING_LITERAL1": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"STRING_LITERAL2": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"STRING_LITERAL_LONG1": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"STRING_LITERAL_LONG2": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"INTEGER": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"DECIMAL": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"DOUBLE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"INTEGER_POSITIVE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"DECIMAL_POSITIVE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"DOUBLE_POSITIVE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"INTEGER_NEGATIVE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"DECIMAL_NEGATIVE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"DOUBLE_NEGATIVE": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"PNAME_LN": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"],
"PNAME_NS": ["or([[!, primaryExpression], [+, primaryExpression], [-, primaryExpression], primaryExpression])"]},
"valueLogical" : {
"!": ["relationalExpression"],
"+": ["relationalExpression"],
"-": ["relationalExpression"],
"VAR1": ["relationalExpression"],
"VAR2": ["relationalExpression"],
"(": ["relationalExpression"],
"STR": ["relationalExpression"],
"LANG": ["relationalExpression"],
"LANGMATCHES": ["relationalExpression"],
"DATATYPE": ["relationalExpression"],
"BOUND": ["relationalExpression"],
"SAMETERM": ["relationalExpression"],
"ISIRI": ["relationalExpression"],
"ISURI": ["relationalExpression"],
"ISBLANK": ["relationalExpression"],
"ISLITERAL": ["relationalExpression"],
"TRUE": ["relationalExpression"],
"FALSE": ["relationalExpression"],
"REGEX": ["relationalExpression"],
"IRI_REF": ["relationalExpression"],
"STRING_LITERAL1": ["relationalExpression"],
"STRING_LITERAL2": ["relationalExpression"],
"STRING_LITERAL_LONG1": ["relationalExpression"],
"STRING_LITERAL_LONG2": ["relationalExpression"],
"INTEGER": ["relationalExpression"],
"DECIMAL": ["relationalExpression"],
"DOUBLE": ["relationalExpression"],
"INTEGER_POSITIVE": ["relationalExpression"],
"DECIMAL_POSITIVE": ["relationalExpression"],
"DOUBLE_POSITIVE": ["relationalExpression"],
"INTEGER_NEGATIVE": ["relationalExpression"],
"DECIMAL_NEGATIVE": ["relationalExpression"],
"DOUBLE_NEGATIVE": ["relationalExpression"],
"PNAME_LN": ["relationalExpression"],
"PNAME_NS": ["relationalExpression"]},
"var" : {
"VAR1": ["VAR1"],
"VAR2": ["VAR2"]},
"varOrIRIref" : {
"VAR1": ["var"],
"VAR2": ["var"],
"IRI_REF": ["iriRef"],
"PNAME_LN": ["iriRef"],
"PNAME_NS": ["iriRef"]},
"varOrTerm" : {
"VAR1": ["var"],
"VAR2": ["var"],
"NIL": ["graphTerm"],
"IRI_REF": ["graphTerm"],
"TRUE": ["graphTerm"],
"FALSE": ["graphTerm"],
"BLANK_NODE_LABEL": ["graphTerm"],
"ANON": ["graphTerm"],
"PNAME_LN": ["graphTerm"],
"PNAME_NS": ["graphTerm"],
"STRING_LITERAL1": ["graphTerm"],
"STRING_LITERAL2": ["graphTerm"],
"STRING_LITERAL_LONG1": ["graphTerm"],
"STRING_LITERAL_LONG2": ["graphTerm"],
"INTEGER": ["graphTerm"],
"DECIMAL": ["graphTerm"],
"DOUBLE": ["graphTerm"],
"INTEGER_POSITIVE": ["graphTerm"],
"DECIMAL_POSITIVE": ["graphTerm"],
"DOUBLE_POSITIVE": ["graphTerm"],
"INTEGER_NEGATIVE": ["graphTerm"],
"DECIMAL_NEGATIVE": ["graphTerm"],
"DOUBLE_NEGATIVE": ["graphTerm"]},
"verb" : {
"VAR1": ["storeProperty","varOrIRIref"],
"VAR2": ["storeProperty","varOrIRIref"],
"IRI_REF": ["storeProperty","varOrIRIref"],
"PNAME_LN": ["storeProperty","varOrIRIref"],
"PNAME_NS": ["storeProperty","varOrIRIref"],
"a": ["storeProperty","a"]},
"whereClause" : {
"{": ["?WHERE","groupGraphPattern"],
"WHERE": ["?WHERE","groupGraphPattern"]}
};
var keywords=/^(BASE|PREFIX|SELECT|CONSTRUCT|DESCRIBE|ASK|FROM|NAMED|ORDER|BY|LIMIT|ASC|DESC|OFFSET|DISTINCT|REDUCED|WHERE|GRAPH|OPTIONAL|UNION|FILTER|STR|LANGMATCHES|LANG|DATATYPE|BOUND|SAMETERM|ISIRI|ISURI|ISBLANK|ISLITERAL|REGEX|TRUE|FALSE)/i ;
var punct=/^(\*|a|\.|\{|\}|,|\(|\)|;|\[|\]|\|\||&&|=|!=|!|<=|>=|<|>|\+|-|\/|\^\^)/ ;
var defaultQueryType=null;
var lexVersion="sparql10";
var startSymbol="query";
var acceptEmpty=false;
function getTerminals()
{
var IRI_REF = '<[^<>\"\'\|\{\}\^\\\x00-\x20]*>';
/*
* PN_CHARS_BASE =
* '[A-Z]|[a-z]|[\\u00C0-\\u00D6]|[\\u00D8-\\u00F6]|[\\u00F8-\\u02FF]|[\\u0370-\\u037D]|[\\u037F-\\u1FFF]|[\\u200C-\\u200D]|[\\u2070-\\u218F]|[\\u2C00-\\u2FEF]|[\\u3001-\\uD7FF]|[\\uF900-\\uFDCF]|[\\uFDF0-\\uFFFD]|[\\u10000-\\uEFFFF]';
*/
var PN_CHARS_BASE =
'[A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]';
var PN_CHARS_U = PN_CHARS_BASE+'|_';
var PN_CHARS= '('+PN_CHARS_U+'|-|[0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040])';
var VARNAME = '('+PN_CHARS_U+'|[0-9])'+
'('+PN_CHARS_U+'|[0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040])*';
var VAR1 = '\\?'+VARNAME;
var VAR2 = '\\$'+VARNAME;
var PN_PREFIX= '('+PN_CHARS_BASE+')((('+PN_CHARS+')|\\.)*('+PN_CHARS+'))?';
var HEX= '[0-9A-Fa-f]';
var PERCENT='(%'+HEX+HEX+')';
var PN_LOCAL_ESC='(\\\\[_~\\.\\-!\\$&\'\\(\\)\\*\\+,;=/\\?#@%])';
var PLX= '('+PERCENT+'|'+PN_LOCAL_ESC+')';
var PN_LOCAL;
var BLANK_NODE_LABEL;
if (lexVersion=="sparql11") {
PN_LOCAL= '('+PN_CHARS_U+'|:|[0-9]|'+PLX+')(('+PN_CHARS+'|\\.|:|'+PLX+')*('+PN_CHARS+'|:|'+PLX+'))?';
BLANK_NODE_LABEL = '_:('+PN_CHARS_U+'|[0-9])(('+PN_CHARS+'|\\.)*'+PN_CHARS+')?';
} else {
PN_LOCAL= '('+PN_CHARS_U+'|[0-9])((('+PN_CHARS+')|\\.)*('+PN_CHARS+'))?';
BLANK_NODE_LABEL = '_:'+PN_LOCAL;
}
var PNAME_NS = '('+PN_PREFIX+')?:';
var PNAME_LN = PNAME_NS+PN_LOCAL;
var LANGTAG = '@[a-zA-Z]+(-[a-zA-Z0-9]+)*';
var EXPONENT = '[eE][\\+-]?[0-9]+';
var INTEGER = '[0-9]+';
var DECIMAL = '(([0-9]+\\.[0-9]*)|(\\.[0-9]+))';
var DOUBLE =
'(([0-9]+\\.[0-9]*'+EXPONENT+')|'+
'(\\.[0-9]+'+EXPONENT+')|'+
'([0-9]+'+EXPONENT+'))';
var INTEGER_POSITIVE = '\\+' + INTEGER;
var DECIMAL_POSITIVE = '\\+' + DECIMAL;
var DOUBLE_POSITIVE = '\\+' + DOUBLE;
var INTEGER_NEGATIVE = '-' + INTEGER;
var DECIMAL_NEGATIVE = '-' + DECIMAL;
var DOUBLE_NEGATIVE = '-' + DOUBLE;
// var ECHAR = '\\\\[tbnrf\\"\\\']';
var ECHAR = '\\\\[tbnrf\\\\"\']';
var STRING_LITERAL1 = "'(([^\\x27\\x5C\\x0A\\x0D])|"+ECHAR+")*'";
var STRING_LITERAL2 = '"(([^\\x22\\x5C\\x0A\\x0D])|'+ECHAR+')*"';
var STRING_LITERAL_LONG1 = "'''(('|'')?([^'\\\\]|"+ECHAR+"))*'''";
var STRING_LITERAL_LONG2 = '"""(("|"")?([^"\\\\]|'+ECHAR+'))*"""';
var WS = '[\\x20\\x09\\x0D\\x0A]';
// Careful! Code mirror feeds one line at a time with no \n
// ... but otherwise comment is terminated by \n
var COMMENT = '#([^\\n\\r]*[\\n\\r]|[^\\n\\r]*$)';
var WS_OR_COMMENT_STAR = '('+WS+'|('+COMMENT+'))*';
var NIL = '\\('+WS_OR_COMMENT_STAR+'\\)';
var ANON = '\\['+WS_OR_COMMENT_STAR+'\\]';
var terminals=
{
terminal: [
{ name: "WS",
regex:new RegExp("^"+WS+"+"),
style:"sp-ws" },
{ name: "COMMENT",
regex:new RegExp("^"+COMMENT),
style:"sp-comment" },
{ name: "IRI_REF",
regex:new RegExp("^"+IRI_REF),
style:"sp-uri" },
{ name: "VAR1",
regex:new RegExp("^"+VAR1),
style:"sp-var"},
{ name: "VAR2",
regex:new RegExp("^"+VAR2),
style:"sp-var"},
{ name: "LANGTAG",
regex:new RegExp("^"+LANGTAG),
style:"sp-punc"},
{ name: "DOUBLE",
regex:new RegExp("^"+DOUBLE),
style:"sp-number" },
{ name: "DECIMAL",
regex:new RegExp("^"+DECIMAL),
style:"sp-number" },
{ name: "INTEGER",
regex:new RegExp("^"+INTEGER),
style:"sp-number" },
{ name: "DOUBLE_POSITIVE",
regex:new RegExp("^"+DOUBLE_POSITIVE),
style:"sp-number" },
{ name: "DECIMAL_POSITIVE",
regex:new RegExp("^"+DECIMAL_POSITIVE),
style:"sp-number" },
{ name: "INTEGER_POSITIVE",
regex:new RegExp("^"+INTEGER_POSITIVE),
style:"sp-number" },
{ name: "DOUBLE_NEGATIVE",
regex:new RegExp("^"+DOUBLE_NEGATIVE),
style:"sp-number" },
{ name: "DECIMAL_NEGATIVE",
regex:new RegExp("^"+DECIMAL_NEGATIVE),
style:"sp-number" },
{ name: "INTEGER_NEGATIVE",
regex:new RegExp("^"+INTEGER_NEGATIVE),
style:"sp-number" },
{ name: "STRING_LITERAL_LONG1",
regex:new RegExp("^"+STRING_LITERAL_LONG1),
style:"sp-literal" },
{ name: "STRING_LITERAL_LONG2",
regex:new RegExp("^"+STRING_LITERAL_LONG2),
style:"sp-literal" },
{ name: "STRING_LITERAL1",
regex:new RegExp("^"+STRING_LITERAL1),
style:"sp-literal" },
{ name: "STRING_LITERAL2",
regex:new RegExp("^"+STRING_LITERAL2),
style:"sp-literal" },
// Enclosed comments won't be highlighted
{ name: "NIL",
regex:new RegExp("^"+NIL),
style:"sp-punc" },
// Enclosed comments won't be highlighted
{ name: "ANON",
regex:new RegExp("^"+ANON),
style:"sp-punc" },
{ name: "PNAME_LN",
regex:new RegExp("^"+PNAME_LN),
style:"sp-prefixed" },
{ name: "PNAME_NS",
regex:new RegExp("^"+PNAME_NS),
style:"sp-prefixed" },
{ name: "BLANK_NODE_LABEL",
regex:new RegExp("^"+BLANK_NODE_LABEL),
style:"sp-prefixed" }
],
}
return terminals;
}
function getPossibles(symbol)
{
var possibles=[], possiblesOb=ll1_table[symbol];
if (possiblesOb!=undefined)
for (var property in possiblesOb)
possibles.push(property.toString());
else
possibles.push(symbol);
return possibles;
}
var tms= getTerminals();
var terminal=tms.terminal;
function tokenBase(stream, state) {
function nextToken() {
var consumed=null;
// Tokens defined by individual regular expressions
for (var i=0; i",
style: "sp-invalid",
text: consumed[0]
};
}
function recordFailurePos() {
// tokenOb.style= "sp-invalid";
var col= stream.column();
state.errorStartPos= col;
state.errorEndPos= col+tokenOb.text.length;
};
function setQueryType(s) {
if (state.queryType==null) {
if (s=="SELECT" || s=="CONSTRUCT" || s=="ASK" || s=="DESCRIBE")
state.queryType=s;
}
}
// Some fake non-terminals are just there to have side-effect on state
// - i.e. allow or disallow variables and bnodes in certain non-nesting
// contexts
function setSideConditions(topSymbol) {
if (topSymbol=="disallowVars") state.allowVars=false;
else if (topSymbol=="allowVars") state.allowVars=true;
else if (topSymbol=="disallowBnodes") state.allowBnodes=false;
else if (topSymbol=="allowBnodes") state.allowBnodes=true;
else if (topSymbol=="storeProperty") state.storeProperty=true;
}
function checkSideConditions(topSymbol) {
return(
(state.allowVars || topSymbol!="var") &&
(state.allowBnodes ||
(topSymbol!="blankNode" &&
topSymbol!="blankNodePropertyList" &&
topSymbol!="blankNodePropertyListPath")))
}
// CodeMirror works with one line at a time,
// but newline should behave like whitespace
// - i.e. a definite break between tokens (for autocompleter)
if (stream.pos==0)
state.possibleCurrent= state.possibleNext;
var tokenOb= nextToken();
if (tokenOb.cat=="") {
// set error state, and
if (state.OK==true) {
state.OK=false;
recordFailurePos();
}
state.complete=false;
// alert("Invalid:"+tokenOb.text);
return tokenOb.style;
}
if (tokenOb.cat == "WS" ||
tokenOb.cat == "COMMENT") {
state.possibleCurrent= state.possibleNext;
return(tokenOb.style)
}
// Otherwise, run the parser until the token is digested
// or failure
var finished= false;
var topSymbol;
var token= tokenOb.cat;
// Incremental LL1 parse
while(state.stack.length>0 && token && state.OK && !finished ) {
topSymbol= state.stack.pop();
if (!ll1_table[topSymbol]) {
// Top symbol is a terminal
if (topSymbol==token) {
// Matching terminals
// - consume token from input stream
finished=true;
setQueryType(topSymbol);
// Check whether $ (end of input token) is poss next
// for everything on stack
var allNillable=true;
for(var sp=state.stack.length;sp>0;--sp) {
var item=ll1_table[state.stack[sp-1]];
if (!item || !item["$"])
allNillable=false;
}
state.complete= allNillable;
if (state.storeProperty && token.cat!="sp-punc") {
state.lastProperty= tokenOb.text;
state.storeProperty= false;
}
} else {
state.OK=false;
state.complete=false;
recordFailurePos();
}
} else {
// topSymbol is nonterminal
// - see if there is an entry for topSymbol
// and nextToken in table
var nextSymbols= ll1_table[topSymbol][token];
if (nextSymbols!=undefined
&& checkSideConditions(topSymbol)
)
{
// Match - copy RHS of rule to stack
for (var i=nextSymbols.length-1; i>=0; --i)
state.stack.push(nextSymbols[i]);
// Peform any non-grammatical side-effects
setSideConditions(topSymbol);
} else {
// No match in table - fail
state.OK=false;
state.complete=false;
recordFailurePos();
state.stack.push(topSymbol); // Shove topSymbol back on stack
}
}
}
if (!finished && state.OK) {
state.OK=false; state.complete=false; recordFailurePos();
}
state.possibleCurrent= state.possibleNext;
state.possibleNext= getPossibles(state.stack[state.stack.length-1]);
// alert(token+"="+tokenOb.style+'\n'+state.stack);
return tokenOb.style;
}
var indentTop={
"*[,, object]": 3,
"*[ (,), object]": 3,
"*[ (,), objectPath]": 3,
"*[/, pathEltOrInverse]": 2,
"object": 2,
"objectPath": 2,
"objectList": 2,
"objectListPath": 2,
"storeProperty": 2,
"pathMod": 2,
"?pathMod": 2,
"propertyListNotEmpty": 1,
"propertyList": 1,
"propertyListPath": 1,
"propertyListPathNotEmpty": 1,
"?[verb, objectList]": 1,
"?[or([verbPath, verbSimple]), objectList]": 1
};
var indentTable={
"}":1,
"]":0,
")":1,
"{":-1,
"(":-1
};
function indent(state, textAfter) {
var n = 0; // indent level
var i=state.stack.length-1;
if (/^[\}\]\)]/.test(textAfter)) {
// Skip stack items until after matching bracket
var closeBracket=textAfter.substr(0,1);
for( ;i>=0;--i)
{
if (state.stack[i]==closeBracket)
{--i; break};
}
} else {
// Consider nullable non-terminals if at top of stack
var dn=indentTop[state.stack[i]];
if (dn) { n+=dn; --i}
}
for( ;i>=0;--i)
{
var dn=indentTable[state.stack[i]];
if (dn) n+=dn;
}
return n * config.indentUnit;
};
return {
token: tokenBase,
startState: function(base) {
return {
tokenize: tokenBase,
OK: true,
complete: acceptEmpty,
errorStartPos: null,
errorEndPos: null,
queryType: defaultQueryType,
possibleCurrent: getPossibles(startSymbol),
possibleNext: getPossibles(startSymbol),
allowVars : true,
allowBnodes : true,
storeProperty : false,
lastProperty : "",
stack: [startSymbol] }; },
indent: indent,
electricChars: "}])"
};
});
© 2015 - 2025 Weber Informatics LLC | Privacy Policy