Validating against the SPARUL_EGP grammar. See
Input some text to test:
Productions: | |||
| [1] | Query |
::= | Prologue ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery | Replace | Update | Manage ) |
| [2] | Update |
::= | Insert |
| [3] | Replace |
::= | "REPLACE" WhereClause "WITH" GraphTemplate |
| [4] | Delete |
::= | "DELETE" GraphTemplate (WhereClause)? |
| [5] | Insert |
::= | "INSERT" GraphTemplate (WhereClause)? |
| [6] | GraphIRI |
::= | "GRAPH" IRIref |
| [7] | Load |
::= | "LOAD" (IRIref)+ (( "INTO" IRIref ))? |
| [8] | Clear |
::= | "CLEAR" (GraphIRI)? |
| [9] | Manage |
::= | Create |
| [10] | Create |
::= | "CREATE" ("SILENT")? GraphIRI |
| [11] | Drop |
::= | "DROP" ("SILENT")? GraphIRI |
| [12] | Prologue |
::= | (BaseDecl)? (PrefixDecl)* |
| [13] | BaseDecl |
::= | "BASE" IRI_REF |
| [14] | PrefixDecl |
::= | "PREFIX" PNAME_NS IRI_REF |
| [15] | SelectQuery |
::= | "SELECT" (( "DISTINCT" | "REDUCED" ))? ( (Var)+ | "*" ) (DatasetClause)* WhereClause SolutionModifier |
| [16] | ConstructQuery |
::= | "CONSTRUCT" ConstructTemplate (DatasetClause)* WhereClause SolutionModifier |
| [17] | DescribeQuery |
::= | "DESCRIBE" ( (VarOrIRIref)+ | "*" ) (DatasetClause)* (WhereClause)? SolutionModifier |
| [18] | AskQuery |
::= | "ASK" (DatasetClause)* WhereClause |
| [19] | DatasetClause |
::= | "FROM" ( DefaultGraphClause | NamedGraphClause ) |
| [20] | DefaultGraphClause |
::= | SourceSelector |
| [21] | NamedGraphClause |
::= | "NAMED" SourceSelector |
| [22] | SourceSelector |
::= | IRIref |
| [23] | WhereClause |
::= | ("WHERE")? GroupGraphPattern (BindingClause)? |
| [24] | BindingClause |
::= | "BINDINGS" (Var)+ "{" (Binding)* "}" |
| [25] | Binding |
::= | "(" (( VarOrTerm | "NULL" ))+ ")" |
| [26] | SolutionModifier |
::= | (OrderClause)? (LimitOffsetClauses)? |
| [27] | LimitOffsetClauses |
::= | ( LimitClause (OffsetClause)? | OffsetClause (LimitClause)? ) |
| [28] | OrderClause |
::= | "ORDER" "BY" (OrderCondition)+ |
| [29] | OrderCondition |
::= | ( ( "ASC" | "DESC" ) BrackettedExpression ) |
| [30] | LimitClause |
::= | "LIMIT" INTEGER |
| [31] | OffsetClause |
::= | "OFFSET" INTEGER |
| [32] | GroupGraphPattern |
::= | "{" (TriplesBlock)? (( ( GraphPatternNotTriples | Filter ) (".")? (TriplesBlock)? ))* "}" |
| [33] | GraphTemplate |
::= | "{" (TriplesBlock)? (( ( "GRAPH" VarOrIRIref GraphTemplate ) (".")? (TriplesBlock)? ))* "}" |
| [34] | TriplesBlock |
::= | TriplesSameSubject (( "." (TriplesBlock)? ))? |
| [35] | GraphPatternNotTriples |
::= | OptionalGraphPattern |
| [36] | OptionalGraphPattern |
::= | "OPTIONAL" GroupGraphPattern |
| [37] | GraphGraphPattern |
::= | "GRAPH" VarOrIRIref GroupGraphPattern |
| [38] | GroupOrUnionGraphPattern |
::= | GroupGraphPattern (( "UNION" GroupGraphPattern ))* |
| [39] | Filter |
::= | "FILTER" Constraint |
| [40] | Constraint |
::= | BrackettedExpression |
| [41] | FunctionCall |
::= | IRIref ArgList |
| [42] | ArgList |
::= | ( NIL | "(" Expression (( "," Expression ))* ")" ) |
| [43] | ConstructTemplate |
::= | "{" (ConstructTriples)? "}" |
| [44] | ConstructTriples |
::= | TriplesSameSubject (( "." (ConstructTriples)? ))? |
| [45] | TriplesSameSubject |
::= | VarOrTerm PropertyListNotEmpty |
| [46] | PropertyListNotEmpty |
::= | Verb ObjectList (( ";" (( Verb ObjectList ))? ))* |
| [47] | PropertyList |
::= | (PropertyListNotEmpty)? |
| [48] | ObjectList |
::= | Object (( "," Object ))* |
| [49] | Object |
::= | GraphNode |
| [50] | Verb |
::= | VarOrIRIref |
| [51] | TriplesNode |
::= | Collection |
| [52] | BlankNodePropertyList |
::= | "[" PropertyListNotEmpty "]" |
| [53] | Collection |
::= | "(" (GraphNode)+ ")" |
| [54] | GraphNode |
::= | VarOrTerm |
| [55] | VarOrTerm |
::= | Var |
| [56] | VarOrIRIref |
::= | Var |
| [57] | Var |
::= | VAR1 |
| [58] | GraphTerm |
::= | IRIref |
| [59] | Expression |
::= | ConditionalOrExpression |
| [60] | ConditionalOrExpression |
::= | ConditionalAndExpression (( "||" ConditionalAndExpression ))* |
| [61] | ConditionalAndExpression |
::= | ValueLogical (( "&&" ValueLogical ))* |
| [62] | ValueLogical |
::= | RelationalExpression |
| [63] | RelationalExpression |
::= | NumericExpression (( "=" NumericExpression | "!=" NumericExpression | "<" NumericExpression | ">" NumericExpression | "<=" NumericExpression | ">=" NumericExpression ))? |
| [64] | NumericExpression |
::= | AdditiveExpression |
| [65] | AdditiveExpression |
::= | MultiplicativeExpression (( "+" MultiplicativeExpression | "-" MultiplicativeExpression | NumericLiteralPositive | NumericLiteralNegative ))* |
| [66] | MultiplicativeExpression |
::= | UnaryExpression (( "*" UnaryExpression | "/" UnaryExpression ))* |
| [67] | UnaryExpression |
::= | "!" PrimaryExpression |
| [68] | PrimaryExpression |
::= | BrackettedExpression |
| [69] | BrackettedExpression |
::= | "(" Expression ")" |
| [70] | BuiltInCall |
::= | "STR" "(" Expression ")" |
| [71] | RegexExpression |
::= | "REGEX" "(" Expression "," Expression (( "," Expression ))? ")" |
| [72] | IRIrefOrFunction |
::= | IRIref (ArgList)? |
| [73] | RDFLiteral |
::= | String (( LANGTAG | ( "^^" IRIref ) ))? |
| [74] | NumericLiteral |
::= | NumericLiteralUnsigned |
| [75] | NumericLiteralUnsigned |
::= | INTEGER |
| [76] | NumericLiteralPositive |
::= | INTEGER_POSITIVE |
| [77] | NumericLiteralNegative |
::= | INTEGER_NEGATIVE |
| [78] | BooleanLiteral |
::= | "true" |
| [79] | String |
::= | STRING_LITERAL1 |
| [80] | IRIref |
::= | IRI_REF |
| [81] | PrefixedName |
::= | PNAME_LN |
| [82] | BlankNode |
::= | BLANK_NODE_LABEL |
| [83] | <IRI_REF> |
::= | "<" (( [^<>\"{}|^`\\] - [#0000- ] ))* ">" |
| [84] | <PNAME_NS> |
::= | (PN_PREFIX)? ":" |
| [85] | <PNAME_LN> |
::= | PNAME_NS PN_LOCAL |
| [86] | <BLANK_NODE_LABEL> |
::= | "_:" PN_LOCAL |
| [87] | <VAR1> |
::= | "?" VARNAME |
| [88] | <VAR2> |
::= | "$" VARNAME |
| [89] | <LANGTAG> |
::= | "@" ([a-zA-Z])+ (( "-" ([a-zA-Z0-9])+ ))* |
| [90] | <INTEGER> |
::= | ([0-9])+ |
| [91] | <DECIMAL> |
::= | ([0-9])+ "." ([0-9])* |
| [92] | <DOUBLE> |
::= | ([0-9])+ "." ([0-9])* EXPONENT |
| [93] | <INTEGER_POSITIVE> |
::= | "+" INTEGER |
| [94] | <DECIMAL_POSITIVE> |
::= | "+" DECIMAL |
| [95] | <DOUBLE_POSITIVE> |
::= | "+" DOUBLE |
| [96] | <INTEGER_NEGATIVE> |
::= | "-" INTEGER |
| [97] | <DECIMAL_NEGATIVE> |
::= | "-" DECIMAL |
| [98] | <DOUBLE_NEGATIVE> |
::= | "-" DOUBLE |
| [99] | <EXPONENT> |
::= | [eE] ([+-])? ([0-9])+ |
| [100] | <STRING_LITERAL1> |
::= | "'" (( ( [^'\\\n\r] ) | ECHAR ))* "'" |
| [101] | <STRING_LITERAL2> |
::= | '"' (( ( [^\"\\\n\r] ) | ECHAR ))* '"' |
| [102] | <STRING_LITERAL_LONG1> |
::= | "'''" (( (( "'" | "''" ))? ( [^'\\] | ECHAR ) ))* "'''" |
| [103] | <STRING_LITERAL_LONG2> |
::= | '"""' (( (( '"' | '""' ))? ( [^\"\\] | ECHAR ) ))* '"""' |
| [104] | <ECHAR> |
::= | "\\" [tbnrf\\\"'] |
| [105] | <NIL> |
::= | "(" (WS)* ")" |
| [106] | <WS> |
::= | " " |
| [107] | <ANON> |
::= | "[" (WS)* "]" |
| [108] | <PN_CHARS_BASE> |
::= | [A-Z] |
| [109] | <PN_CHARS_U> |
::= | PN_CHARS_BASE |
| [110] | <VARNAME> |
::= | ( PN_CHARS_U | [0-9] ) (( PN_CHARS_U | [0-9] | #00B7 | [#0300-#036F] | [#203F-#2040] ))* |
| [111] | <PN_CHARS> |
::= | PN_CHARS_U |
| [112] | <PN_PREFIX> |
::= | PN_CHARS_BASE (( (( PN_CHARS | "." ))* PN_CHARS ))? |
| [113] | <PN_LOCAL> |
::= | ( PN_CHARS_U | [0-9] ) (( (( PN_CHARS | "." ))* PN_CHARS ))? |
| [114] | PASSED TOKENS |
::= | (WS)+ |