| [1] |
shexDoc |
::= |
directive* ( ( notStartAction | startActions) statement* ) ? |
| [2] |
directive |
::= |
baseDecl | prefixDecl | importDecl |
| [3] |
baseDecl |
::= |
"BASE" IRIREF |
| [4] |
prefixDecl |
::= |
"PREFIX" PNAME_NS IRIREF |
| [4.5] |
importDecl |
::= |
"IMPORT" IRIREF |
| [5] |
notStartAction |
::= |
start | shapeExprDecl |
| [6] |
start |
::= |
"START" "=" inlineShapeExpression |
| [7] |
startActions |
::= |
codeDecl+ |
| [8] |
statement |
::= |
directive | notStartAction |
| [9] |
shapeExprDecl |
::= |
shapeExprLabel ( shapeExpression | "EXTERNAL") |
| [10] |
shapeExpression |
::= |
shapeOr |
| [11] |
inlineShapeExpression |
::= |
inlineShapeOr |
| [12] |
shapeOr |
::= |
shapeAnd ( "OR" shapeAnd) * |
| [13] |
inlineShapeOr |
::= |
inlineShapeAnd ( "OR" inlineShapeAnd) * |
| [14] |
shapeAnd |
::= |
shapeNot ( "AND" shapeNot) * |
| [15] |
inlineShapeAnd |
::= |
inlineShapeNot ( "AND" inlineShapeNot) * |
| [16] |
shapeNot |
::= |
"NOT"? shapeAtom |
| [17] |
inlineShapeNot |
::= |
"NOT"? inlineShapeAtom |
| [18] |
shapeAtom |
::= |
( nonLitNodeConstraint shapeOrRef? ) | litNodeConstraint | ( shapeOrRef nonLitNodeConstraint? ) | ( "(" shapeExpression ")") | "." |
| [19] |
shapeAtomNoRef |
::= |
( nonLitNodeConstraint shapeOrRef? ) | litNodeConstraint | ( shapeDefinition nonLitNodeConstraint? ) | ( "(" shapeExpression ")") | "." |
| [20] |
inlineShapeAtom |
::= |
( nonLitNodeConstraint inlineShapeOrRef? ) | litNodeConstraint | ( inlineShapeOrRef nonLitNodeConstraint? ) | ( "(" shapeExpression ")") | "." |
| [21] |
shapeOrRef |
::= |
shapeDefinition | shapeRef |
| [22] |
inlineShapeOrRef |
::= |
inlineShapeDefinition | shapeRef |
| [23] |
shapeRef |
::= |
ATPNAME_LN | ATPNAME_NS | ( "@" shapeExprLabel) |
| [24] |
litNodeConstraint |
::= |
( "LITERAL" xsFacet* ) | ( datatype xsFacet* ) | ( valueSet xsFacet* ) | numericFacet+ |
| [25] |
nonLitNodeConstraint |
::= |
( nonLiteralKind stringFacet* ) | stringFacet+ |
| [26] |
nonLiteralKind |
::= |
"IRI" | "BNODE" | "NONLITERAL" |
| [27] |
xsFacet |
::= |
stringFacet | numericFacet |
| [28] |
stringFacet |
::= |
( stringLength INTEGER) | REGEXP |
| [29] |
stringLength |
::= |
"LENGTH" | "MINLENGTH" | "MAXLENGTH" |
| [30] |
numericFacet |
::= |
( numericRange numericLiteral) | ( numericLength INTEGER) |
| [31] |
numericRange |
::= |
"MININCLUSIVE" | "MINEXCLUSIVE" | "MAXINCLUSIVE" | "MAXEXCLUSIVE" |
| [32] |
numericLength |
::= |
"TOTALDIGITS" | "FRACTIONDIGITS" |
| [33] |
shapeDefinition |
::= |
( extraPropertySet | "CLOSED") * "{" tripleExpression? "}" annotation* semanticActions |
| [34] |
inlineShapeDefinition |
::= |
( extraPropertySet | "CLOSED") * "{" tripleExpression? "}" |
| [36] |
tripleExpression |
::= |
oneOfTripleExpr |
| [37] |
oneOfTripleExpr |
::= |
groupTripleExpr ( "|" groupTripleExpr) * |
| [40] |
groupTripleExpr |
::= |
unaryTripleExpr ( ";" unaryTripleExpr? ) * |
| [43] |
unaryTripleExpr |
::= |
( ( "$" tripleExprLabel) ? ( tripleConstraint | bracketedTripleExpr) ) | include |
| [44] |
bracketedTripleExpr |
::= |
"(" tripleExpression ")" cardinality? annotation* semanticActions |
| [45] |
tripleConstraint |
::= |
senseFlags? predicate inlineShapeExpression cardinality? annotation* semanticActions |
| [46] |
cardinality |
::= |
"*" | "+" | "?" | REPEAT_RANGE |
| [47] |
senseFlags |
::= |
"^" |
| [48] |
valueSet |
::= |
"[" valueSetValue* "]" |
| [49] |
valueSetValue |
::= |
iriRange | literalRange | languageRange | ( "." exclusion+ ) |
| [50] |
exclusion |
::= |
"-" ( iri | literal | LANGTAG) "~"? |
| [51] |
iriRange |
::= |
iri ( "~" iriExclusion* ) ? |
| [52] |
iriExclusion |
::= |
"-" iri "~"? |
| [53] |
literalRange |
::= |
literal ( "~" literalExclusion* ) ? |
| [54] |
literalExclusion |
::= |
"-" literal "~"? |
| [55] |
languageRange |
::= |
( LANGTAG ( "~" languageExclusion* ) ? ) | ( "@" "~" languageExclusion* ) |
| [56] |
languageExclusion |
::= |
"-" LANGTAG "~"? |
| [57] |
include |
::= |
"&" tripleExprLabel |
| [58] |
annotation |
::= |
"//" predicate ( iri | literal) |
| [59] |
semanticActions |
::= |
codeDecl* |
| [60] |
codeDecl |
::= |
"%" iri ( CODE | "%") |
| [13t] |
literal |
::= |
rdfLiteral | numericLiteral | booleanLiteral |
| [61] |
predicate |
::= |
iri | RDF_TYPE |
| [62] |
datatype |
::= |
iri |
| [63] |
shapeExprLabel |
::= |
iri | blankNode |
| [64] |
tripleExprLabel |
::= |
iri | blankNode |
| [16t] |
numericLiteral |
::= |
DOUBLE | DECIMAL | INTEGER |
| [65] |
rdfLiteral |
::= |
langString | ( string ( "^^" datatype) ? ) |
| [134s] |
booleanLiteral |
::= |
"true" | "false" |
| [135s] |
string |
::= |
STRING_LITERAL_LONG1 | STRING_LITERAL_LONG2 | STRING_LITERAL1 | STRING_LITERAL2 |
| [66] |
langString |
::= |
LANG_STRING_LITERAL1 | LANG_STRING_LITERAL_LONG1 | LANG_STRING_LITERAL2 | LANG_STRING_LITERAL_LONG2 |
| [136s] |
iri |
::= |
IRIREF | prefixedName |
| [137s] |
prefixedName |
::= |
PNAME_LN | PNAME_NS |
| [138s] |
blankNode |
::= |
BLANK_NODE_LABEL |
| @terminals |
|
# Productions for terminals |
| [67] |
CODE |
::= |
"{" [ ^%\]#x20|#x20'\'[%\]#x20|#x20UCHAR)*#x20'%''}'] |
| [68] |
REPEAT_RANGE |
::= |
"{" INTEGER ( "," ( INTEGER | "*") ? ) ? "}" |
| [69] |
RDF_TYPE |
::= |
"a" |
| [18t] |
IRIREF |
::= |
"<" [ ^#x00-#x20<>"{}|^`\]#x20|#x20UCHAR)*#x20'>'#x20/*#x20#x00=NULL#x20#x2301-#x1F=control#x20codes#x20#x20=space#x20*/] |
| [140s] |
PNAME_NS |
::= |
PN_PREFIX? ":" |
| [141s] |
PNAME_LN |
::= |
PNAME_NS PN_LOCAL |
| [70] |
ATPNAME_NS |
::= |
"@" PN_PREFIX? ":" |
| [71] |
ATPNAME_LN |
::= |
"@" PNAME_NS PN_LOCAL |
| [72] |
REGEXP |
::= |
"/" ( [ ^/\#x0A#x0D] | ( "\" [ nrt\|.?*+(){}$-[]^/] ) | UCHAR) + "/" [ smix] * |
| [142s] |
BLANK_NODE_LABEL |
::= |
"_:" ( PN_CHARS_U | [ 0-9] ) ( ( PN_CHARS | ".") * PN_CHARS) ? |
| [145s] |
LANGTAG |
::= |
"@" [ a-zA-Z] + ( "-" [ a-zA-Z0-9] + ) * |
| [19t] |
INTEGER |
::= |
[ +-] ? [ 0-9] + |
| [20t] |
DECIMAL |
::= |
[ +-] ? [ 0-9] * "." [ 0-9] + |
| [21t] |
DOUBLE |
::= |
[ +-] ? ( ( [ 0-9] + "." [ 0-9] * EXPONENT) | ( "."? [ 0-9] + EXPONENT) ) |
| [155s] |
EXPONENT |
::= |
[ eE] [ +-] ? [ 0-9] + |
| [156s] |
STRING_LITERAL1 |
::= |
"'" ( [ ^#x27#x5C#x0A#x0D] | ECHAR | UCHAR) * "'" |
| [157s] |
STRING_LITERAL2 |
::= |
'"' ( [ ^>"#x5C#x0A#x0D] | ECHAR | UCHAR) * '"' |
| [158s] |
STRING_LITERAL_LONG1 |
::= |
"'''" ( ( "'" | "''") ? [ ^'\]#x20|#x20ECHAR#x20|#x20UCHAR))*#x20"'''"] ) |
| [159s] |
STRING_LITERAL_LONG2 |
::= |
'"""' ( ( '"' | '""') ? [ ^"\]#x20|#x20ECHAR#x20|#x20UCHAR))*#x20'"""'] ) |
| [73] |
LANG_STRING_LITERAL1 |
::= |
"'" ( [ ^#x27#x5C#x0A#x0D] | ECHAR | UCHAR) * "'" LANGTAG |
| [74] |
LANG_STRING_LITERAL2 |
::= |
'"' ( [ ^>"#x5C#x0A#x0D] | ECHAR | UCHAR) * '"' LANGTAG |
| [75] |
LANG_STRING_LITERAL_LONG1 |
::= |
"'''" ( ( "'" | "''") ? [ ^'\]#x20|#x20ECHAR#x20|#x20UCHAR))*#x20"'''"#x20LANGTAG] ) |
| [76] |
LANG_STRING_LITERAL_LONG2 |
::= |
'"""' ( ( '"' | '""') ? [ ^"\]#x20|#x20ECHAR#x20|#x20UCHAR))*#x20'"""'#x20LANGTAG] ) |
| [26t] |
UCHAR |
::= |
( "\u" HEX HEX HEX HEX) | ( "\U" HEX HEX HEX HEX HEX HEX HEX HEX) |
| [160s] |
ECHAR |
::= |
"\" [ tbnrf\"'] |
| [164s] |
PN_CHARS_BASE |
::= |
[ A-Z] |
|
| |
[ a-z] |
|
| |
[ #xC0-#xD6] |
|
| |
[ #xD8-#xF6] |
|
| |
[ #xF8-#x02FF] |
|
| |
[ #x0370-#x037D] |
|
| |
[ #x037F-#x1FFF] |
|
| |
[ #x200C-#x200D] |
|
| |
[ #x2070-#x218F] |
|
| |
[ #x2C00-#x2FEF] |
|
| |
[ #x3001-#xD7FF] |
|
| |
[ #xF900-#xFDCF] |
|
| |
[ #xFDF0-#xFFFD] |
|
| |
[ #x00010000-#x000EFFFF] |
| [165s] |
PN_CHARS_U |
::= |
PN_CHARS_BASE | "_" |
| [167s] |
PN_CHARS |
::= |
PN_CHARS_U | "-" | [ 0-9] | [ #xB7] | [ #x0300-#x036F] | [ #x203F-#x2040] |
| [168s] |
PN_PREFIX |
::= |
PN_CHARS_BASE ( ( PN_CHARS | ".") * PN_CHARS) ? |
| [169s] |
PN_LOCAL |
::= |
( PN_CHARS_U | ":" | [ 0-9] | PLX) ( ( PN_CHARS | "." | ":" | PLX) * ( PN_CHARS | ":" | PLX) ) ? |
| [170s] |
PLX |
::= |
PERCENT | PN_LOCAL_ESC |
| [171s] |
PERCENT |
::= |
"%" HEX HEX |
| [172s] |
HEX |
::= |
[ 0-9] | [ A-F] | [ a-f] |
| [173s] |
PN_LOCAL_ESC |
::= |
"\" ( "_" | "~" | "." | "-" | "!" | "$" | "&" | "'" | "(" | ")" | "*" | "+" | "," | ";" | "=" | "/" | "?" | "#" | "@" | "%") |
| @pass |
|
[ #x20#x09#x0D#x0A] + | ( "#" [ ^#x0D#x0A] * ) | ( "/*" ( [ ^*] | ( "*" ( [ ^/] | "\/") ) ) * "*/") |