1- ntriplesDoc ::= triple ? (EOL triple )* EOL ?
1+ ntriplesDoc ::= statement ? (EOL statement )* EOL ?
2+ statement ::= directive | triple ' .'
3+ directive ::= versionDirective
4+ versionDirective ::= ' VERSION' versionSpecifier
5+ versionSpecifier ::= STRING_LITERAL_QUOTE
26triple ::= subject predicate object ' .'
3- subject ::= IRIREF | BLANK_NODE_LABEL | quotedTriple
7+ subject ::= IRIREF | BLANK_NODE_LABEL
48predicate ::= IRIREF
5- object ::= IRIREF | BLANK_NODE_LABEL | literal | tripleTerm | quotedTriple
9+ object ::= IRIREF | BLANK_NODE_LABEL | literal | tripleTerm
610literal ::= STRING_LITERAL_QUOTE (' ^^' IRIREF | LANG_DIR )?
7- tripleTerm ::= ' <<' subject predicate object ' >>'
8- quotedTriple ::= ' <<' subject predicate object ' >>'
11+ tripleTerm ::= ' <<(' subject predicate object ' )>>'
912
1013@terminals
1114
1215IRIREF ::= ' <' ([^#x00- #x20 <>" {}|^`\] | UCHAR )* ' >'
1316BLANK_NODE_LABEL ::= ' _:' ( PN_CHARS_U | [0- 9] ) ((PN_CHARS | ' .' )* PN_CHARS )?
14- LANG_DIR ::= " @ " [a-zA-Z ]+ ( " - " [a-zA-Z0-9 ]+ )* (' --' [a-zA-Z ]+ ) ? `
17+ LANG_DIR ::= ' @ ' [a-zA-Z ]+ ( ' - ' [a-zA-Z0-9 ]+ )* ( ' --' [a-zA-Z ]+ ) ?
1518STRING_LITERAL_QUOTE ::= ' "' ( [^#x22 #x5C #xA #xD ] | ECHAR | UCHAR )* ' "'
16- UCHAR ::= ( " \u " HEX HEX HEX HEX )
17- | ( " \U " HEX HEX HEX HEX HEX HEX HEX HEX )
18- ECHAR ::= (" \ " [tbnrf " '])
19+ UCHAR ::= ( ' \u ' HEX HEX HEX HEX )
20+ | ( ' \U ' HEX HEX HEX HEX HEX HEX HEX HEX )
21+ ECHAR ::= (' \ ' [tbnrf \ " '])
1922PN_CHARS_BASE ::= ([A-Z ]
2023 | [a-z ]
2124 | [#x00C0- #x00D6 ]
@@ -32,7 +35,7 @@ PN_CHARS_BASE ::= ([A-Z]
3235 | [#x10000- #xEFFFF ])
3336PN_CHARS_U ::= PN_CHARS_BASE | ' _'
3437PN_CHARS ::= (PN_CHARS_U
35- | " - "
38+ | ' - '
3639 | [0- 9]
3740 | #x00B7
3841 | [#x0300- #x036F ]
0 commit comments