yacker: SPARUL_EGP validator

Validating against the SPARUL_EGP grammar. See

Input some text to test:


    

Edit this grammar.

with seed . with limit . and ascii weight (0-100).

Hide grammar.

Productions:

[1]    Query    ::=    Prologue ( SelectQuery | ConstructQuery | DescribeQuery | AskQuery | Replace | Update | Manage )
[2]    Update    ::=    Insert
| Delete
| Load
| Clear
[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
| Drop
[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 )
| ( Constraint | Var )
[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
| GroupOrUnionGraphPattern
| GraphGraphPattern
[36]    OptionalGraphPattern    ::=    "OPTIONAL" GroupGraphPattern
[37]    GraphGraphPattern    ::=    "GRAPH" VarOrIRIref GroupGraphPattern
[38]    GroupOrUnionGraphPattern    ::=    GroupGraphPattern (( "UNION" GroupGraphPattern ))*
[39]    Filter    ::=    "FILTER" Constraint
[40]    Constraint    ::=    BrackettedExpression
| BuiltInCall
| FunctionCall
[41]    FunctionCall    ::=    IRIref ArgList
[42]    ArgList    ::=    ( NIL | "(" Expression (( "," Expression ))* ")" )
[43]    ConstructTemplate    ::=    "{" (ConstructTriples)? "}"
[44]    ConstructTriples    ::=    TriplesSameSubject (( "." (ConstructTriples)? ))?
[45]    TriplesSameSubject    ::=    VarOrTerm PropertyListNotEmpty
| TriplesNode PropertyList
[46]    PropertyListNotEmpty    ::=    Verb ObjectList (( ";" (( Verb ObjectList ))? ))*
[47]    PropertyList    ::=    (PropertyListNotEmpty)?
[48]    ObjectList    ::=    Object (( "," Object ))*
[49]    Object    ::=    GraphNode
[50]    Verb    ::=    VarOrIRIref
| "a"
[51]    TriplesNode    ::=    Collection
| BlankNodePropertyList
[52]    BlankNodePropertyList    ::=    "[" PropertyListNotEmpty "]"
[53]    Collection    ::=    "(" (GraphNode)+ ")"
[54]    GraphNode    ::=    VarOrTerm
| TriplesNode
[55]    VarOrTerm    ::=    Var
| GraphTerm
[56]    VarOrIRIref    ::=    Var
| IRIref
[57]    Var    ::=    VAR1
| VAR2
[58]    GraphTerm    ::=    IRIref
| RDFLiteral
| NumericLiteral
| BooleanLiteral
| BlankNode
| NIL
[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
| "+" PrimaryExpression
| "-" PrimaryExpression
| PrimaryExpression
[68]    PrimaryExpression    ::=    BrackettedExpression
| BuiltInCall
| IRIrefOrFunction
| RDFLiteral
| NumericLiteral
| BooleanLiteral
| Var
[69]    BrackettedExpression    ::=    "(" Expression ")"
[70]    BuiltInCall    ::=    "STR" "(" Expression ")"
| "LANG" "(" Expression ")"
| "LANGMATCHES" "(" Expression "," Expression ")"
| "DATATYPE" "(" Expression ")"
| "BOUND" "(" Var ")"
| "sameTerm" "(" Expression "," Expression ")"
| "isIRI" "(" Expression ")"
| "isURI" "(" Expression ")"
| "isBLANK" "(" Expression ")"
| "isLITERAL" "(" Expression ")"
| RegexExpression
[71]    RegexExpression    ::=    "REGEX" "(" Expression "," Expression (( "," Expression ))? ")"
[72]    IRIrefOrFunction    ::=    IRIref (ArgList)?
[73]    RDFLiteral    ::=    String (( LANGTAG | ( "^^" IRIref ) ))?
[74]    NumericLiteral    ::=    NumericLiteralUnsigned
| NumericLiteralPositive
| NumericLiteralNegative
[75]    NumericLiteralUnsigned    ::=    INTEGER
| DECIMAL
| DOUBLE
[76]    NumericLiteralPositive    ::=    INTEGER_POSITIVE
| DECIMAL_POSITIVE
| DOUBLE_POSITIVE
[77]    NumericLiteralNegative    ::=    INTEGER_NEGATIVE
| DECIMAL_NEGATIVE
| DOUBLE_NEGATIVE
[78]    BooleanLiteral    ::=    "true"
| "false"
[79]    String    ::=    STRING_LITERAL1
| STRING_LITERAL2
| STRING_LITERAL_LONG1
| STRING_LITERAL_LONG2
[80]    IRIref    ::=    IRI_REF
| PrefixedName
[81]    PrefixedName    ::=    PNAME_LN
| PNAME_NS
[82]    BlankNode    ::=    BLANK_NODE_LABEL
| ANON
[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])*
| "." ([0-9])+
[92]    <DOUBLE>    ::=    ([0-9])+ "." ([0-9])* EXPONENT
| "." (( [0-9] ))+ EXPONENT
| (( [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>    ::=    " "
| "\t"
| "\r"
| "\n"
[107]    <ANON>    ::=    "[" (WS)* "]"
[108]    <PN_CHARS_BASE>    ::=    [A-Z]
| [a-z]
| [#00C0-#00D6]
| [#00D8-#00F6]
| [#00F8-#02FF]
| [#0370-#037D]
| [#037F-#1FFF]
| [#200C-#200D]
| [#2070-#218F]
| [#2C00-#2FEF]
| [#3001-#D7FF]
| [#F900-#FDCF]
| [#FDF0-#FFFD]
| [#10000-#EFFFF]
[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
| "-"
| [0-9]
| #00B7
| [#0300-#036F]
| [#203F-#2040]
[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)+
| "#" ([^\n])* "\n"

Eric Prud'hommeaux <eric+yacker@w3.org>
$Id: yacker,v 1.82 2008/04/12 04:10:11 eric Exp $
$Id: Presenter.pm,v 1.39 2007/12/21 09:35:46 eric Exp $

Valid XHTML 1.0!