ebnf 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/bin/ebnf +2 -2
- data/etc/sparql.ebnf +288 -0
- data/etc/sparql.html +1753 -0
- data/etc/sparql.ll1.sxp +7197 -0
- data/etc/sparql.rb +45633 -0
- data/etc/sparql.sxp +362 -0
- data/etc/turtle.html +519 -0
- data/lib/ebnf/ll1.rb +16 -11
- metadata +9 -3
data/etc/sparql.sxp
ADDED
@@ -0,0 +1,362 @@
|
|
1
|
+
(
|
2
|
+
(rule QueryUnit "1" (opt Query))
|
3
|
+
(rule Query "2"
|
4
|
+
(seq Prologue (alt SelectQuery ConstructQuery DescribeQuery AskQuery)))
|
5
|
+
(rule UpdateUnit "3" (seq Update))
|
6
|
+
(rule Prologue "4" (star (alt BaseDecl PrefixDecl)))
|
7
|
+
(rule BaseDecl "5" (seq "BASE" IRIREF))
|
8
|
+
(rule PrefixDecl "6" (seq "PREFIX" PNAME_NS IRIREF))
|
9
|
+
(rule SelectQuery "7"
|
10
|
+
(seq SelectClause (star DatasetClause) WhereClause SolutionModifier ValuesClause))
|
11
|
+
(rule SubSelect "8" (seq SelectClause WhereClause SolutionModifier ValuesClause))
|
12
|
+
(rule SelectClause "9"
|
13
|
+
(seq "SELECT"
|
14
|
+
(opt (alt "DISTINCT" "REDUCED"))
|
15
|
+
(alt (plus (alt Var (seq "(" Expression "AS" Var ")"))) "*")) )
|
16
|
+
(rule ConstructQuery "10"
|
17
|
+
(seq "CONSTRUCT"
|
18
|
+
(alt
|
19
|
+
(seq ConstructTemplate (star DatasetClause) WhereClause SolutionModifier)
|
20
|
+
(seq (star DatasetClause) "WHERE" "{" (opt TriplesTemplate) "}" SolutionModifier)) ValuesClause ))
|
21
|
+
(rule DescribeQuery "11"
|
22
|
+
(seq "DESCRIBE"
|
23
|
+
(alt (plus VarOrIri) "*")
|
24
|
+
(star DatasetClause)
|
25
|
+
(opt WhereClause) SolutionModifier ValuesClause ))
|
26
|
+
(rule AskQuery "12" (seq "ASK" (star DatasetClause) WhereClause ValuesClause))
|
27
|
+
(rule DatasetClause "13" (seq "FROM" (alt DefaultGraphClause NamedGraphClause)))
|
28
|
+
(rule DefaultGraphClause "14" (seq SourceSelector))
|
29
|
+
(rule NamedGraphClause "15" (seq "NAMED" SourceSelector))
|
30
|
+
(rule SourceSelector "16" (seq iri))
|
31
|
+
(rule WhereClause "17" (seq (opt "WHERE") GroupGraphPattern))
|
32
|
+
(rule SolutionModifier "18"
|
33
|
+
(seq (opt GroupClause) (opt HavingClause) (opt OrderClause) (opt LimitOffsetClauses)))
|
34
|
+
(rule GroupClause "19" (seq "GROUP" "BY" (plus GroupCondition)))
|
35
|
+
(rule GroupCondition "20"
|
36
|
+
(alt BuiltInCall FunctionCall (seq "(" Expression (opt (seq "AS" Var)) ")") Var))
|
37
|
+
(rule HavingClause "21" (seq "HAVING" (plus HavingCondition)))
|
38
|
+
(rule HavingCondition "22" (seq Constraint))
|
39
|
+
(rule OrderClause "23" (seq "ORDER" "BY" (plus OrderCondition)))
|
40
|
+
(rule OrderCondition "24"
|
41
|
+
(alt (seq (alt "ASC" "DESC") BrackettedExpression) (alt Constraint Var)))
|
42
|
+
(rule LimitOffsetClauses "25"
|
43
|
+
(alt (seq LimitClause (opt OffsetClause)) (seq OffsetClause (opt LimitClause))))
|
44
|
+
(rule LimitClause "26" (seq "LIMIT" INTEGER))
|
45
|
+
(rule OffsetClause "27" (seq "OFFSET" INTEGER))
|
46
|
+
(rule ValuesClause "28" (opt (seq "VALUES" DataBlock)))
|
47
|
+
(rule Update "29" (seq Prologue (opt (seq Update1 (opt (seq ";" Update))))))
|
48
|
+
(rule Update1 "30"
|
49
|
+
(alt Load Clear Drop Add Move Copy Create InsertData DeleteData DeleteWhere
|
50
|
+
Modify ))
|
51
|
+
(rule Load "31" (seq "LOAD" (opt "SILENT") iri (opt (seq "INTO" GraphRef))))
|
52
|
+
(rule Clear "32" (seq "CLEAR" (opt "SILENT") GraphRefAll))
|
53
|
+
(rule Drop "33" (seq "DROP" (opt "SILENT") GraphRefAll))
|
54
|
+
(rule Create "34" (seq "CREATE" (opt "SILENT") GraphRef))
|
55
|
+
(rule Add "35" (seq "ADD" (opt "SILENT") GraphOrDefault "TO" GraphOrDefault))
|
56
|
+
(rule Move "36" (seq "MOVE" (opt "SILENT") GraphOrDefault "TO" GraphOrDefault))
|
57
|
+
(rule Copy "37" (seq "COPY" (opt "SILENT") GraphOrDefault "TO" GraphOrDefault))
|
58
|
+
(rule InsertData "38" (seq "INSERT DATA" QuadData))
|
59
|
+
(rule DeleteData "39" (seq "DELETE DATA" QuadData))
|
60
|
+
(rule DeleteWhere "40" (seq "DELETE WHERE" QuadPattern))
|
61
|
+
(rule Modify "41"
|
62
|
+
(seq
|
63
|
+
(opt (seq "WITH" iri))
|
64
|
+
(alt (seq DeleteClause (opt InsertClause)) InsertClause)
|
65
|
+
(star UsingClause) "WHERE" GroupGraphPattern ))
|
66
|
+
(rule DeleteClause "42" (seq "DELETE" QuadPattern))
|
67
|
+
(rule InsertClause "43" (seq "INSERT" QuadPattern))
|
68
|
+
(rule UsingClause "44" (seq "USING" (alt iri (seq "NAMED" iri))))
|
69
|
+
(rule GraphOrDefault "45" (alt "DEFAULT" (seq (opt "GRAPH") iri)))
|
70
|
+
(rule GraphRef "46" (seq "GRAPH" iri))
|
71
|
+
(rule GraphRefAll "47" (alt GraphRef "DEFAULT" "NAMED" "ALL"))
|
72
|
+
(rule QuadPattern "48" (seq "{" Quads "}"))
|
73
|
+
(rule QuadData "49" (seq "{" Quads "}"))
|
74
|
+
(rule Quads "50"
|
75
|
+
(seq (opt TriplesTemplate) (star (seq QuadsNotTriples (opt ".") (opt TriplesTemplate)))))
|
76
|
+
(rule QuadsNotTriples "51" (seq "GRAPH" VarOrIri "{" (opt TriplesTemplate) "}"))
|
77
|
+
(rule TriplesTemplate "52" (seq TriplesSameSubject (opt (seq "." (opt TriplesTemplate)))))
|
78
|
+
(rule GroupGraphPattern "53" (seq "{" (alt SubSelect GroupGraphPatternSub) "}"))
|
79
|
+
(rule GroupGraphPatternSub "54"
|
80
|
+
(seq (opt TriplesBlock) (star (seq GraphPatternNotTriples (opt ".") (opt TriplesBlock)))))
|
81
|
+
(rule TriplesBlock "55" (seq TriplesSameSubjectPath (opt (seq "." (opt TriplesBlock)))))
|
82
|
+
(rule GraphPatternNotTriples "56"
|
83
|
+
(alt GroupOrUnionGraphPattern OptionalGraphPattern MinusGraphPattern
|
84
|
+
GraphGraphPattern ServiceGraphPattern Filter Bind InlineData ))
|
85
|
+
(rule OptionalGraphPattern "57" (seq "OPTIONAL" GroupGraphPattern))
|
86
|
+
(rule GraphGraphPattern "58" (seq "GRAPH" VarOrIri GroupGraphPattern))
|
87
|
+
(rule ServiceGraphPattern "59"
|
88
|
+
(seq "SERVICE" (opt "SILENT") VarOrIri GroupGraphPattern))
|
89
|
+
(rule Bind "60" (seq "BIND" "(" Expression "AS" Var ")"))
|
90
|
+
(rule InlineData "61" (seq "VALUES" DataBlock))
|
91
|
+
(rule DataBlock "62" (alt InlineDataOneVar InlineDataFull))
|
92
|
+
(rule InlineDataOneVar "63" (seq Var "{" (star DataBlockValue) "}"))
|
93
|
+
(rule InlineDataFull "64"
|
94
|
+
(seq
|
95
|
+
(alt NIL (seq "(" (star Var) ")")) "{"
|
96
|
+
(star (alt (seq "(" (star DataBlockValue) ")") NIL)) "}" ))
|
97
|
+
(rule DataBlockValue "65"
|
98
|
+
(alt iri RDFLiteral NumericLiteral BooleanLiteral "UNDEF"))
|
99
|
+
(rule MinusGraphPattern "66" (seq "MINUS" GroupGraphPattern))
|
100
|
+
(rule GroupOrUnionGraphPattern "67"
|
101
|
+
(seq GroupGraphPattern (star (seq "UNION" GroupGraphPattern))))
|
102
|
+
(rule Filter "68" (seq "FILTER" Constraint))
|
103
|
+
(rule Constraint "69" (alt BrackettedExpression BuiltInCall FunctionCall))
|
104
|
+
(rule FunctionCall "70" (seq iri ArgList))
|
105
|
+
(rule ArgList "71"
|
106
|
+
(alt NIL (seq "(" (opt "DISTINCT") Expression (star (seq "," Expression)) ")")))
|
107
|
+
(rule ExpressionList "72" (alt NIL (seq "(" Expression (star (seq "," Expression)) ")")))
|
108
|
+
(rule ConstructTemplate "73" (seq "{" (opt ConstructTriples) "}"))
|
109
|
+
(rule ConstructTriples "74"
|
110
|
+
(seq TriplesSameSubject (opt (seq "." (opt ConstructTriples)))))
|
111
|
+
(rule TriplesSameSubject "75"
|
112
|
+
(alt (seq VarOrTerm PropertyListNotEmpty) (seq TriplesNode PropertyList)))
|
113
|
+
(rule PropertyList "76" (opt PropertyListNotEmpty))
|
114
|
+
(rule PropertyListNotEmpty "77"
|
115
|
+
(seq Verb ObjectList (star (seq ";" (opt (seq Verb ObjectList))))))
|
116
|
+
(rule Verb "78" (alt VarOrIri "a"))
|
117
|
+
(rule ObjectList "79" (seq Object (star (seq "," Object))))
|
118
|
+
(rule Object "80" (seq GraphNode))
|
119
|
+
(rule TriplesSameSubjectPath "81"
|
120
|
+
(alt (seq VarOrTerm PropertyListNotEmptyPath) (seq TriplesNode PropertyListPath)))
|
121
|
+
(rule PropertyListPath "82" (opt PropertyListNotEmpty))
|
122
|
+
(rule PropertyListNotEmptyPath "83"
|
123
|
+
(seq
|
124
|
+
(alt VerbPath VerbSimple) ObjectList
|
125
|
+
(star (seq ";" (opt (seq (alt VerbPath VerbSimple) ObjectList))))) )
|
126
|
+
(rule VerbPath "84" (seq Path))
|
127
|
+
(rule VerbSimple "85" (seq Var))
|
128
|
+
(rule ObjectListPath "86" (seq ObjectPath (star (seq "," ObjectPath))))
|
129
|
+
(rule ObjectPath "87" (seq GraphNodePath))
|
130
|
+
(rule Path "88" (seq PathAlternative))
|
131
|
+
(rule PathAlternative "89" (seq PathSequence (star (seq "|" PathSequence))))
|
132
|
+
(rule PathSequence "90" (seq PathEltOrInverse (star (seq "/" PathEltOrInverse))))
|
133
|
+
(rule PathElt "91" (seq PathPrimary (opt PathMod)))
|
134
|
+
(rule PathEltOrInverse "92" (alt PathElt (seq "^" PathElt)))
|
135
|
+
(rule PathMod "93"
|
136
|
+
(alt "*" "?" "+"
|
137
|
+
(seq "{"
|
138
|
+
(alt (seq Integer (alt (seq "," (alt "}" (seq Integer "}"))) "}")) (seq "," Integer "}"))) ))
|
139
|
+
(rule PathPrimary "94"
|
140
|
+
(alt iri "a" (seq "!" PathNegatedPropertySet) (seq "(" Path ")")))
|
141
|
+
(rule PathNegatedPropertySet "95"
|
142
|
+
(alt PathOneInPropertySet
|
143
|
+
(seq "(" (opt (seq PathOneInPropertySet (star (seq "|" PathOneInPropertySet)))) ")")) )
|
144
|
+
(rule PathOneInPropertySet "96" (alt iri "a" (seq "^" (alt iri "a"))))
|
145
|
+
(rule Integer "97" (seq INTEGER))
|
146
|
+
(rule TriplesNode "98" (alt Collection BlankNodePropertyList))
|
147
|
+
(rule BlankNodePropertyList "99" (seq "[" PropertyListNotEmpty "]"))
|
148
|
+
(rule TriplesNodePath "100" (alt CollectionPath BlankNodePropertyListPath))
|
149
|
+
(rule BlankNodePropertyListPath "101" (seq "[" PropertyListPathNotEmpty "]"))
|
150
|
+
(rule Collection "102" (seq "(" (plus GraphNode) ")"))
|
151
|
+
(rule CollectionPath "103" (seq "(" (plus GraphNodePath) ")"))
|
152
|
+
(rule GraphNode "104" (alt VarOrTerm TriplesNode))
|
153
|
+
(rule GraphNodePath "105" (alt VarOrTerm TriplesNodePath))
|
154
|
+
(rule VarOrTerm "106" (alt Var GraphTerm))
|
155
|
+
(rule VarOrIri "107" (alt Var iri))
|
156
|
+
(rule Var "108" (alt VAR1 VAR2))
|
157
|
+
(rule GraphTerm "109"
|
158
|
+
(alt iri RDFLiteral NumericLiteral BooleanLiteral BlankNode NIL))
|
159
|
+
(rule Expression "110" (seq ConditionalOrExpression))
|
160
|
+
(rule ConditionalOrExpression "111"
|
161
|
+
(seq ConditionalAndExpression (star (seq "||" ConditionalAndExpression))))
|
162
|
+
(rule ConditionalAndExpression "112" (seq ValueLogical (star (seq "&&" ValueLogical))))
|
163
|
+
(rule ValueLogical "113" (seq RelationalExpression))
|
164
|
+
(rule RelationalExpression "114"
|
165
|
+
(seq NumericExpression
|
166
|
+
(opt
|
167
|
+
(alt
|
168
|
+
(seq "=" NumericExpression)
|
169
|
+
(seq "!=" NumericExpression)
|
170
|
+
(seq "<" NumericExpression)
|
171
|
+
(seq ">" NumericExpression)
|
172
|
+
(seq "<=" NumericExpression)
|
173
|
+
(seq ">=" NumericExpression)
|
174
|
+
(seq "IN" ExpressionList)
|
175
|
+
(seq "NOT" "IN" ExpressionList)) )) )
|
176
|
+
(rule NumericExpression "115" (seq AdditiveExpression))
|
177
|
+
(rule AdditiveExpression "116"
|
178
|
+
(seq MultiplicativeExpression
|
179
|
+
(star
|
180
|
+
(alt
|
181
|
+
(seq "+" MultiplicativeExpression)
|
182
|
+
(seq "-" MultiplicativeExpression)
|
183
|
+
(seq
|
184
|
+
(alt NumericLiteralPositive NumericLiteralNegative)
|
185
|
+
(opt (alt (seq "*" UnaryExpression) (seq "/" UnaryExpression)))) )) ))
|
186
|
+
(rule MultiplicativeExpression "117"
|
187
|
+
(seq UnaryExpression (star (alt (seq "*" UnaryExpression) (seq "/" UnaryExpression)))))
|
188
|
+
(rule UnaryExpression "118"
|
189
|
+
(alt
|
190
|
+
(seq "!" PrimaryExpression)
|
191
|
+
(seq "+" PrimaryExpression)
|
192
|
+
(seq "-" PrimaryExpression) PrimaryExpression ))
|
193
|
+
(rule PrimaryExpression "119"
|
194
|
+
(alt BrackettedExpression BuiltInCall iriOrFunction RDFLiteral NumericLiteral
|
195
|
+
BooleanLiteral Var ))
|
196
|
+
(rule BrackettedExpression "120" (seq "(" Expression ")"))
|
197
|
+
(rule BuiltInCall "121"
|
198
|
+
(alt Aggregate
|
199
|
+
(seq "STR" "(" Expression ")")
|
200
|
+
(seq "LANG" "(" Expression ")")
|
201
|
+
(seq "LANGMATCHES" "(" Expression "," Expression ")")
|
202
|
+
(seq "DATATYPE" "(" Expression ")")
|
203
|
+
(seq "BOUND" "(" Var ")")
|
204
|
+
(seq "IRI" "(" Expression ")")
|
205
|
+
(seq "URI" "(" Expression ")")
|
206
|
+
(seq "BNODE" (alt (seq "(" Expression ")") NIL))
|
207
|
+
(seq "RAND" NIL)
|
208
|
+
(seq "ABS" "(" Expression ")")
|
209
|
+
(seq "CEIL" "(" Expression ")")
|
210
|
+
(seq "FLOOR" "(" Expression ")")
|
211
|
+
(seq "ROUND" "(" Expression ")")
|
212
|
+
(seq "CONCAT" ExpressionList) SubstringExpression
|
213
|
+
(seq "STRLEN" "(" Expression ")") StrReplaceExpression
|
214
|
+
(seq "UCASE" "(" Expression ")")
|
215
|
+
(seq "LCASE" "(" Expression ")")
|
216
|
+
(seq "ENCODE_FOR_URI" "(" Expression ")")
|
217
|
+
(seq "CONTAINS" "(" Expression "," Expression ")")
|
218
|
+
(seq "STRSTARTS" "(" Expression "," Expression ")")
|
219
|
+
(seq "STRENDS" "(" Expression "," Expression ")")
|
220
|
+
(seq "STRBEFORE" "(" Expression "," Expression ")")
|
221
|
+
(seq "STRAFTER" "(" Expression "," Expression ")")
|
222
|
+
(seq "YEAR" "(" Expression ")")
|
223
|
+
(seq "MONTH" "(" Expression ")")
|
224
|
+
(seq "DAY" "(" Expression ")")
|
225
|
+
(seq "HOURS" "(" Expression ")")
|
226
|
+
(seq "MINUTES" "(" Expression ")")
|
227
|
+
(seq "SECONDS" "(" Expression ")")
|
228
|
+
(seq "TIMEZONE" "(" Expression ")")
|
229
|
+
(seq "TZ" "(" Expression ")")
|
230
|
+
(seq "NOW" NIL)
|
231
|
+
(seq "UUID" NIL)
|
232
|
+
(seq "STRUUID" NIL)
|
233
|
+
(seq "MD5" "(" Expression ")")
|
234
|
+
(seq "SHA1" "(" Expression ")")
|
235
|
+
(seq "SHA224" "(" Expression ")")
|
236
|
+
(seq "SHA256" "(" Expression ")")
|
237
|
+
(seq "SHA384" "(" Expression ")")
|
238
|
+
(seq "SHA512" "(" Expression ")")
|
239
|
+
(seq "COALESCE" ExpressionList)
|
240
|
+
(seq "IF" "(" Expression "," Expression "," Expression ")")
|
241
|
+
(seq "STRLANG" "(" Expression "," Expression ")")
|
242
|
+
(seq "STRDT" "(" Expression "," Expression ")")
|
243
|
+
(seq "sameTerm" "(" Expression "," Expression ")")
|
244
|
+
(seq "isIRI" "(" Expression ")")
|
245
|
+
(seq "isURI" "(" Expression ")")
|
246
|
+
(seq "isBLANK" "(" Expression ")")
|
247
|
+
(seq "isLITERAL" "(" Expression ")")
|
248
|
+
(seq "isNUMERIC" "(" Expression ")") RegexExpression ExistsFunc
|
249
|
+
NotExistsFunc ))
|
250
|
+
(rule RegexExpression "122"
|
251
|
+
(seq "REGEX" "(" Expression "," Expression (opt (seq "," Expression)) ")"))
|
252
|
+
(rule SubstringExpression "123"
|
253
|
+
(seq "SUBSTR" "(" Expression "," Expression (opt (seq "," Expression)) ")"))
|
254
|
+
(rule StrReplaceExpression "124"
|
255
|
+
(seq "REPLACE" "(" Expression "," Expression "," Expression
|
256
|
+
(opt (seq "," Expression)) ")" ))
|
257
|
+
(rule ExistsFunc "125" (seq "EXISTS" GroupGraphPattern))
|
258
|
+
(rule NotExistsFunc "126" (seq "NOT" "EXISTS" GroupGraphPattern))
|
259
|
+
(rule Aggregate "127"
|
260
|
+
(alt
|
261
|
+
(seq "COUNT" "(" (opt "DISTINCT") (alt "*" Expression) ")")
|
262
|
+
(seq "SUM" "(" (opt "DISTINCT") Expression ")")
|
263
|
+
(seq "MIN" "(" (opt "DISTINCT") Expression ")")
|
264
|
+
(seq "MAX" "(" (opt "DISTINCT") Expression ")")
|
265
|
+
(seq "AVG" "(" (opt "DISTINCT") Expression ")")
|
266
|
+
(seq "SAMPLE" "(" (opt "DISTINCT") Expression ")")
|
267
|
+
(seq "GROUP_CONCAT" "("
|
268
|
+
(opt "DISTINCT") Expression
|
269
|
+
(opt (seq ";" "SEPARATOR" "=" String)) ")" )) )
|
270
|
+
(rule iriOrFunction "128" (seq iri (opt ArgList)))
|
271
|
+
(rule RDFLiteral "129" (seq String (opt (alt LANGTAG (seq "^^" iri)))))
|
272
|
+
(rule NumericLiteral "130"
|
273
|
+
(alt NumericLiteralUnsigned NumericLiteralPositive NumericLiteralNegative))
|
274
|
+
(rule NumericLiteralUnsigned "131" (alt INTEGER DECIMAL DOUBLE))
|
275
|
+
(rule NumericLiteralPositive "132"
|
276
|
+
(alt INTEGER_POSITIVE DECIMAL_POSITIVE DOUBLE_POSITIVE))
|
277
|
+
(rule NumericLiteralNegative "133"
|
278
|
+
(alt INTEGER_NEGATIVE DECIMAL_NEGATIVE DOUBLE_NEGATIVE))
|
279
|
+
(rule BooleanLiteral "134" (alt "true" "false"))
|
280
|
+
(rule String "135"
|
281
|
+
(alt STRING_LITERAL1 STRING_LITERAL2 STRING_LITERAL_LONG1 STRING_LITERAL_LONG2))
|
282
|
+
(rule iri "136" (alt IRIREF PrefixedName))
|
283
|
+
(rule PrefixedName "137" (alt PNAME_LN PNAME_NS))
|
284
|
+
(rule BlankNode "138" (alt BLANK_NODE_LABEL ANON))
|
285
|
+
(terminal IRIREF "139" (seq "<" (range "^#x00-#x20<>\"{}|^`] | UCHAR)* '>'")))
|
286
|
+
(terminal PNAME_NS "140" (seq (opt PN_PREFIX) ":"))
|
287
|
+
(terminal PNAME_LN "141" (seq PNAME_NS PN_LOCAL))
|
288
|
+
(terminal BLANK_NODE_LABEL "142"
|
289
|
+
(seq "_:" (alt PN_CHARS_U (range "0-9")) (opt (seq (star (alt PN_CHARS ".")) PN_CHARS))))
|
290
|
+
(terminal VAR1 "143" (seq "?" VARNAME))
|
291
|
+
(terminal VAR2 "144" (seq "$" VARNAME))
|
292
|
+
(terminal LANGTAG "145"
|
293
|
+
(seq "@" (plus (range "a-zA-Z")) (star (seq "-" (plus (range "a-zA-Z0-9"))))))
|
294
|
+
(terminal INTEGER "146" (plus (range "0-9")))
|
295
|
+
(terminal DECIMAL "147" (seq (star (range "0-9")) "." (plus (range "0-9"))))
|
296
|
+
(terminal DOUBLE "148"
|
297
|
+
(alt
|
298
|
+
(seq (plus (range "0-9")) "." (star (range "0-9")) EXPONENT)
|
299
|
+
(seq "." (plus (range "0-9")) EXPONENT)
|
300
|
+
(seq (plus (range "0-9")) EXPONENT)) )
|
301
|
+
(terminal INTEGER_POSITIVE "149" (seq "+" INTEGER))
|
302
|
+
(terminal DECIMAL_POSITIVE "150" (seq "+" DECIMAL))
|
303
|
+
(terminal DOUBLE_POSITIVE "151" (seq "+" DOUBLE))
|
304
|
+
(terminal INTEGER_NEGATIVE "152" (seq "-" INTEGER))
|
305
|
+
(terminal DECIMAL_NEGATIVE "153" (seq "-" DECIMAL))
|
306
|
+
(terminal DOUBLE_NEGATIVE "154" (seq "-" DOUBLE))
|
307
|
+
(terminal EXPONENT "155" (seq (range "eE") (opt (range "+-")) (plus (range "0-9"))))
|
308
|
+
(terminal STRING_LITERAL1 "156"
|
309
|
+
(seq "'" (star (alt (range "^#x27#x5C#xA#xD") ECHAR)) "'"))
|
310
|
+
(terminal STRING_LITERAL2 "157"
|
311
|
+
(seq "\"" (star (alt (range "^#x22#x5C#xA#xD") ECHAR)) "\""))
|
312
|
+
(terminal STRING_LITERAL_LONG1 "158"
|
313
|
+
(seq "'''" (seq (opt (alt "'" "''")) (range "^'] | ECHAR ))* \"'''\""))))
|
314
|
+
(terminal STRING_LITERAL_LONG2 "159"
|
315
|
+
(seq "\"\"\"" (seq (opt (alt "\"" "\"\"")) (range "^\"] | ECHAR ))* '\"\"\"'"))))
|
316
|
+
(terminal ECHAR "160" (seq "\\" (range "tbnrf\"'")))
|
317
|
+
(terminal NIL "161" (seq "(" (star WS) ")"))
|
318
|
+
(terminal WS "162" (alt (hex "#x20") (hex "#x9") (hex "#xD") (hex "#xA")))
|
319
|
+
(terminal ANON "163" (seq "[" (star WS) "]"))
|
320
|
+
(terminal PN_CHARS_BASE "164"
|
321
|
+
(alt
|
322
|
+
(range "A-Z")
|
323
|
+
(range "a-z")
|
324
|
+
(range "#x00C0-#x00D6")
|
325
|
+
(range "#x00D8-#x00F6")
|
326
|
+
(range "#x00F8-#x02FF")
|
327
|
+
(range "#x0370-#x037D")
|
328
|
+
(range "#x037F-#x1FFF")
|
329
|
+
(range "#x200C-#x200D")
|
330
|
+
(range "#x2070-#x218F")
|
331
|
+
(range "#x2C00-#x2FEF")
|
332
|
+
(range "#x3001-#xD7FF")
|
333
|
+
(range "#xF900-#xFDCF")
|
334
|
+
(range "#xFDF0-#xFFFD")
|
335
|
+
(range "#x10000-#xEFFFF")) )
|
336
|
+
(terminal PN_CHARS_U "165" (alt PN_CHARS_BASE "_"))
|
337
|
+
(terminal VARNAME "166"
|
338
|
+
(seq
|
339
|
+
(alt PN_CHARS_U (range "0-9"))
|
340
|
+
(star
|
341
|
+
(alt PN_CHARS_U
|
342
|
+
(range "0-9")
|
343
|
+
(hex "#x00B7")
|
344
|
+
(range "#x0300-#x036F")
|
345
|
+
(range "#x203F-#x2040")) )) )
|
346
|
+
(terminal PN_CHARS "167"
|
347
|
+
(alt PN_CHARS_U "-"
|
348
|
+
(range "0-9")
|
349
|
+
(hex "#x00B7")
|
350
|
+
(range "#x0300-#x036F")
|
351
|
+
(range "#x203F-#x2040")) )
|
352
|
+
(terminal PN_PREFIX "168"
|
353
|
+
(seq PN_CHARS_BASE (opt (seq (star (alt PN_CHARS ".")) PN_CHARS))))
|
354
|
+
(terminal PN_LOCAL "169"
|
355
|
+
(seq (alt PN_CHARS_U (range "0-9")) (opt (seq (star (alt PN_CHARS ".")) PN_CHARS))))
|
356
|
+
(terminal PLX "170" (alt PERCENT PN_LOCAL_ESC))
|
357
|
+
(terminal PERCENT "171" (seq "%" HEX HEX))
|
358
|
+
(terminal HEX "172" (alt (range "0-9") (range "A-F") (range "a-f")))
|
359
|
+
(terminal PN_LOCAL_ESC "173"
|
360
|
+
(seq "\\"
|
361
|
+
(alt "_" "~" "." "-" "!" "$" "&" "'" "(" ")" "*" "+" "," ";" "=" "/" "?" "#"
|
362
|
+
"@" "%" )) ))
|
data/etc/turtle.html
ADDED
@@ -0,0 +1,519 @@
|
|
1
|
+
<table class='grammar'>
|
2
|
+
<tbody id='grammar-productions'>
|
3
|
+
<tr id='grammar-production-turtleDoc'>
|
4
|
+
<td>[1]</td>
|
5
|
+
<td><code>turtleDoc</code></td>
|
6
|
+
<td>::=</td>
|
7
|
+
<td>
|
8
|
+
<a href="#grammar-production-statement">statement</a><code>*</code>
|
9
|
+
</td>
|
10
|
+
</tr>
|
11
|
+
<tr id='grammar-production-statement'>
|
12
|
+
<td>[2]</td>
|
13
|
+
<td><code>statement</code></td>
|
14
|
+
<td>::=</td>
|
15
|
+
<td>
|
16
|
+
<a href="#grammar-production-directive">directive</a>
|
17
|
+
<code>|</code> <a href="#grammar-production-triples">triples</a> "<code class="grammar-literal">.</code>"
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
<tr id='grammar-production-directive'>
|
21
|
+
<td>[3]</td>
|
22
|
+
<td><code>directive</code></td>
|
23
|
+
<td>::=</td>
|
24
|
+
<td>
|
25
|
+
<a href="#grammar-production-prefixID">prefixID</a>
|
26
|
+
<code>|</code> <a href="#grammar-production-base">base</a>
|
27
|
+
<code>|</code> <a href="#grammar-production-sparqlPrefix">sparqlPrefix</a>
|
28
|
+
<code>|</code> <a href="#grammar-production-sparqlBase">sparqlBase</a>
|
29
|
+
</td>
|
30
|
+
</tr>
|
31
|
+
<tr id='grammar-production-prefixID'>
|
32
|
+
<td>[4]</td>
|
33
|
+
<td><code>prefixID</code></td>
|
34
|
+
<td>::=</td>
|
35
|
+
<td>
|
36
|
+
"<code class="grammar-literal">@prefix</code>"
|
37
|
+
<a href="#grammar-production-PNAME_NS">PNAME_NS</a>
|
38
|
+
<a href="#grammar-production-IRIREF">IRIREF</a>
|
39
|
+
"<code class="grammar-literal">.</code>"
|
40
|
+
</td>
|
41
|
+
</tr>
|
42
|
+
<tr id='grammar-production-base'>
|
43
|
+
<td>[5]</td>
|
44
|
+
<td><code>base</code></td>
|
45
|
+
<td>::=</td>
|
46
|
+
<td>
|
47
|
+
"<code class="grammar-literal">@base</code>"
|
48
|
+
<a href="#grammar-production-IRIREF">IRIREF</a>
|
49
|
+
"<code class="grammar-literal">.</code>"
|
50
|
+
</td>
|
51
|
+
</tr>
|
52
|
+
<tr id='grammar-production-sparqlPrefix'>
|
53
|
+
<td>[28s]</td>
|
54
|
+
<td><code>sparqlPrefix</code></td>
|
55
|
+
<td>::=</td>
|
56
|
+
<td>
|
57
|
+
<a href="#grammar-production-SPARQL_PREFIX">SPARQL_PREFIX</a>
|
58
|
+
<a href="#grammar-production-PNAME_NS">PNAME_NS</a>
|
59
|
+
<a href="#grammar-production-IRIREF">IRIREF</a>
|
60
|
+
</td>
|
61
|
+
</tr>
|
62
|
+
<tr id='grammar-production-sparqlBase'>
|
63
|
+
<td>[29s]</td>
|
64
|
+
<td><code>sparqlBase</code></td>
|
65
|
+
<td>::=</td>
|
66
|
+
<td>
|
67
|
+
<a href="#grammar-production-SPARQL_BASE">SPARQL_BASE</a>
|
68
|
+
<a href="#grammar-production-IRIREF">IRIREF</a>
|
69
|
+
</td>
|
70
|
+
</tr>
|
71
|
+
<tr id='grammar-production-triples'>
|
72
|
+
<td>[6]</td>
|
73
|
+
<td><code>triples</code></td>
|
74
|
+
<td>::=</td>
|
75
|
+
<td>
|
76
|
+
<a href="#grammar-production-subject">subject</a> <a href="#grammar-production-predicateObjectList">predicateObjectList</a>
|
77
|
+
<code>|</code> <a href="#grammar-production-blankNodePropertyList">blankNodePropertyList</a> <a href="#grammar-production-predicateObjectList">predicateObjectList</a><code>?</code>
|
78
|
+
</td>
|
79
|
+
</tr>
|
80
|
+
<tr id='grammar-production-predicateObjectList'>
|
81
|
+
<td>[7]</td>
|
82
|
+
<td><code>predicateObjectList</code></td>
|
83
|
+
<td>::=</td>
|
84
|
+
<td>
|
85
|
+
<a href="#grammar-production-verb">verb</a>
|
86
|
+
<a href="#grammar-production-objectList">objectList</a>
|
87
|
+
("<code class="grammar-literal">;</code>" (<a href="#grammar-production-verb">verb</a> <a href="#grammar-production-objectList">objectList</a>)<code>?</code> )<code>*</code>
|
88
|
+
</td>
|
89
|
+
</tr>
|
90
|
+
<tr id='grammar-production-objectList'>
|
91
|
+
<td>[8]</td>
|
92
|
+
<td><code>objectList</code></td>
|
93
|
+
<td>::=</td>
|
94
|
+
<td>
|
95
|
+
<a href="#grammar-production-object">object</a>
|
96
|
+
("<code class="grammar-literal">,</code>" <a href="#grammar-production-object">object</a>)<code>*</code>
|
97
|
+
</td>
|
98
|
+
</tr>
|
99
|
+
<tr id='grammar-production-verb'>
|
100
|
+
<td>[9]</td>
|
101
|
+
<td><code>verb</code></td>
|
102
|
+
<td>::=</td>
|
103
|
+
<td>
|
104
|
+
<a href="#grammar-production-predicate">predicate</a>
|
105
|
+
<code>|</code> "<code class="grammar-literal">a</code>"
|
106
|
+
</td>
|
107
|
+
</tr>
|
108
|
+
<tr id='grammar-production-subject'>
|
109
|
+
<td>[10]</td>
|
110
|
+
<td><code>subject</code></td>
|
111
|
+
<td>::=</td>
|
112
|
+
<td>
|
113
|
+
<a href="#grammar-production-iri">iri</a>
|
114
|
+
<code>|</code> <a href="#grammar-production-BlankNode">BlankNode</a>
|
115
|
+
<code>|</code> <a href="#grammar-production-collection">collection</a>
|
116
|
+
</td>
|
117
|
+
</tr>
|
118
|
+
<tr id='grammar-production-predicate'>
|
119
|
+
<td>[11]</td>
|
120
|
+
<td><code>predicate</code></td>
|
121
|
+
<td>::=</td>
|
122
|
+
<td>
|
123
|
+
<a href="#grammar-production-iri">iri</a>
|
124
|
+
</td>
|
125
|
+
</tr>
|
126
|
+
<tr id='grammar-production-object'>
|
127
|
+
<td>[12]</td>
|
128
|
+
<td><code>object</code></td>
|
129
|
+
<td>::=</td>
|
130
|
+
<td>
|
131
|
+
<a href="#grammar-production-iri">iri</a>
|
132
|
+
<code>|</code> <a href="#grammar-production-BlankNode">BlankNode</a>
|
133
|
+
<code>|</code> <a href="#grammar-production-collection">collection</a>
|
134
|
+
<code>|</code> <a href="#grammar-production-blankNodePropertyList">blankNodePropertyList</a>
|
135
|
+
<code>|</code> <a href="#grammar-production-literal">literal</a>
|
136
|
+
</td>
|
137
|
+
</tr>
|
138
|
+
<tr id='grammar-production-literal'>
|
139
|
+
<td>[13]</td>
|
140
|
+
<td><code>literal</code></td>
|
141
|
+
<td>::=</td>
|
142
|
+
<td>
|
143
|
+
<a href="#grammar-production-RDFLiteral">RDFLiteral</a>
|
144
|
+
<code>|</code> <a href="#grammar-production-NumericLiteral">NumericLiteral</a>
|
145
|
+
<code>|</code> <a href="#grammar-production-BooleanLiteral">BooleanLiteral</a>
|
146
|
+
</td>
|
147
|
+
</tr>
|
148
|
+
<tr id='grammar-production-blankNodePropertyList'>
|
149
|
+
<td>[14]</td>
|
150
|
+
<td><code>blankNodePropertyList</code></td>
|
151
|
+
<td>::=</td>
|
152
|
+
<td>
|
153
|
+
"<code class="grammar-literal">[</code>"
|
154
|
+
<a href="#grammar-production-predicateObjectList">predicateObjectList</a>
|
155
|
+
"<code class="grammar-literal">]</code>"
|
156
|
+
</td>
|
157
|
+
</tr>
|
158
|
+
<tr id='grammar-production-collection'>
|
159
|
+
<td>[15]</td>
|
160
|
+
<td><code>collection</code></td>
|
161
|
+
<td>::=</td>
|
162
|
+
<td>
|
163
|
+
"<code class="grammar-literal">(</code>"
|
164
|
+
<a href="#grammar-production-object">object</a><code>*</code>
|
165
|
+
"<code class="grammar-literal">)</code>"
|
166
|
+
</td>
|
167
|
+
</tr>
|
168
|
+
<tr id='grammar-production-NumericLiteral'>
|
169
|
+
<td>[16]</td>
|
170
|
+
<td><code>NumericLiteral</code></td>
|
171
|
+
<td>::=</td>
|
172
|
+
<td>
|
173
|
+
<a href="#grammar-production-INTEGER">INTEGER</a>
|
174
|
+
<code>|</code> <a href="#grammar-production-DECIMAL">DECIMAL</a>
|
175
|
+
<code>|</code> <a href="#grammar-production-DOUBLE">DOUBLE</a>
|
176
|
+
</td>
|
177
|
+
</tr>
|
178
|
+
<tr id='grammar-production-RDFLiteral'>
|
179
|
+
<td>[128s]</td>
|
180
|
+
<td><code>RDFLiteral</code></td>
|
181
|
+
<td>::=</td>
|
182
|
+
<td>
|
183
|
+
<a href="#grammar-production-String">String</a>
|
184
|
+
(<a href="#grammar-production-LANGTAG">LANGTAG</a> <code>|</code> "<code class="grammar-literal">^^</code>" <a href="#grammar-production-iri">iri</a>)<code>?</code>
|
185
|
+
</td>
|
186
|
+
</tr>
|
187
|
+
<tr id='grammar-production-BooleanLiteral'>
|
188
|
+
<td>[133s]</td>
|
189
|
+
<td><code>BooleanLiteral</code></td>
|
190
|
+
<td>::=</td>
|
191
|
+
<td>
|
192
|
+
"<code class="grammar-literal">true</code>"
|
193
|
+
<code>|</code> "<code class="grammar-literal">false</code>"
|
194
|
+
</td>
|
195
|
+
</tr>
|
196
|
+
<tr id='grammar-production-String'>
|
197
|
+
<td>[17]</td>
|
198
|
+
<td><code>String</code></td>
|
199
|
+
<td>::=</td>
|
200
|
+
<td>
|
201
|
+
<a href="#grammar-production-STRING_LITERAL_QUOTE">STRING_LITERAL_QUOTE</a>
|
202
|
+
<code>|</code> <a href="#grammar-production-STRING_LITERAL_SINGLE_QUOTE">STRING_LITERAL_SINGLE_QUOTE</a>
|
203
|
+
<code>|</code> <a href="#grammar-production-STRING_LITERAL_LONG_SINGLE_QUOTE">STRING_LITERAL_LONG_SINGLE_QUOTE</a>
|
204
|
+
<code>|</code> <a href="#grammar-production-STRING_LITERAL_LONG_QUOTE">STRING_LITERAL_LONG_QUOTE</a>
|
205
|
+
</td>
|
206
|
+
</tr>
|
207
|
+
<tr id='grammar-production-iri'>
|
208
|
+
<td>[135s]</td>
|
209
|
+
<td><code>iri</code></td>
|
210
|
+
<td>::=</td>
|
211
|
+
<td>
|
212
|
+
<a href="#grammar-production-IRIREF">IRIREF</a>
|
213
|
+
<code>|</code> <a href="#grammar-production-PrefixedName">PrefixedName</a>
|
214
|
+
</td>
|
215
|
+
</tr>
|
216
|
+
<tr id='grammar-production-PrefixedName'>
|
217
|
+
<td>[136s]</td>
|
218
|
+
<td><code>PrefixedName</code></td>
|
219
|
+
<td>::=</td>
|
220
|
+
<td>
|
221
|
+
<a href="#grammar-production-PNAME_LN">PNAME_LN</a>
|
222
|
+
<code>|</code> <a href="#grammar-production-PNAME_NS">PNAME_NS</a>
|
223
|
+
</td>
|
224
|
+
</tr>
|
225
|
+
<tr id='grammar-production-BlankNode'>
|
226
|
+
<td>[137s]</td>
|
227
|
+
<td><code>BlankNode</code></td>
|
228
|
+
<td>::=</td>
|
229
|
+
<td>
|
230
|
+
<a href="#grammar-production-BLANK_NODE_LABEL">BLANK_NODE_LABEL</a>
|
231
|
+
<code>|</code> <a href="#grammar-production-ANON">ANON</a>
|
232
|
+
</td>
|
233
|
+
</tr>
|
234
|
+
<tr id='grammar-production-IRIREF'>
|
235
|
+
<td>[18]</td>
|
236
|
+
<td><code>IRIREF</code></td>
|
237
|
+
<td>::=</td>
|
238
|
+
<td>
|
239
|
+
"<code class="grammar-literal"><</code>"
|
240
|
+
<code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x00</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal"><>"{}|^`]</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">UCHAR)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">'>'</code><code>]</code>
|
241
|
+
</td>
|
242
|
+
</tr>
|
243
|
+
<tr id='grammar-production-PNAME_NS'>
|
244
|
+
<td>[139s]</td>
|
245
|
+
<td><code>PNAME_NS</code></td>
|
246
|
+
<td>::=</td>
|
247
|
+
<td>
|
248
|
+
<a href="#grammar-production-PN_PREFIX">PN_PREFIX</a><code>?</code>
|
249
|
+
"<code class="grammar-literal">:</code>"
|
250
|
+
</td>
|
251
|
+
</tr>
|
252
|
+
<tr id='grammar-production-PNAME_LN'>
|
253
|
+
<td>[140s]</td>
|
254
|
+
<td><code>PNAME_LN</code></td>
|
255
|
+
<td>::=</td>
|
256
|
+
<td>
|
257
|
+
<a href="#grammar-production-PNAME_NS">PNAME_NS</a>
|
258
|
+
<a href="#grammar-production-PN_LOCAL">PN_LOCAL</a>
|
259
|
+
</td>
|
260
|
+
</tr>
|
261
|
+
<tr id='grammar-production-BLANK_NODE_LABEL'>
|
262
|
+
<td>[141s]</td>
|
263
|
+
<td><code>BLANK_NODE_LABEL</code></td>
|
264
|
+
<td>::=</td>
|
265
|
+
<td>
|
266
|
+
"<code class="grammar-literal">_:</code>"
|
267
|
+
<code>(</code> <a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code> <code>)</code>
|
268
|
+
(<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
|
269
|
+
</td>
|
270
|
+
</tr>
|
271
|
+
<tr id='grammar-production-LANGTAG'>
|
272
|
+
<td>[144s]</td>
|
273
|
+
<td><code>LANGTAG</code></td>
|
274
|
+
<td>::=</td>
|
275
|
+
<td>
|
276
|
+
"<code class="grammar-literal">@</code>"
|
277
|
+
(<code>[</code> <code class="grammar-literal">a-zA-Z</code><code>]</code> )<code>+</code>
|
278
|
+
("<code class="grammar-literal">-</code>" (<code>[</code> <code class="grammar-literal">a-zA-Z0-9</code><code>]</code> )<code>+</code> )<code>*</code>
|
279
|
+
</td>
|
280
|
+
</tr>
|
281
|
+
<tr id='grammar-production-INTEGER'>
|
282
|
+
<td>[19]</td>
|
283
|
+
<td><code>INTEGER</code></td>
|
284
|
+
<td>::=</td>
|
285
|
+
<td>
|
286
|
+
(<code>[</code> <code class="grammar-literal">+-</code><code>]</code> )<code>?</code>
|
287
|
+
(<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
|
288
|
+
</td>
|
289
|
+
</tr>
|
290
|
+
<tr id='grammar-production-DECIMAL'>
|
291
|
+
<td>[20]</td>
|
292
|
+
<td><code>DECIMAL</code></td>
|
293
|
+
<td>::=</td>
|
294
|
+
<td>
|
295
|
+
(<code>[</code> <code class="grammar-literal">+-</code><code>]</code> )<code>?</code>
|
296
|
+
<code>(</code> (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>*</code> "<code class="grammar-literal">.</code>" (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> <code>)</code>
|
297
|
+
</td>
|
298
|
+
</tr>
|
299
|
+
<tr id='grammar-production-DOUBLE'>
|
300
|
+
<td>[21]</td>
|
301
|
+
<td><code>DOUBLE</code></td>
|
302
|
+
<td>::=</td>
|
303
|
+
<td>
|
304
|
+
(<code>[</code> <code class="grammar-literal">+-</code><code>]</code> )<code>?</code>
|
305
|
+
<code>(</code> (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> "<code class="grammar-literal">.</code>" (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>*</code> <a href="#grammar-production-EXPONENT">EXPONENT</a> <code>|</code> "<code class="grammar-literal">.</code>" (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a> <code>|</code> (<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code> <a href="#grammar-production-EXPONENT">EXPONENT</a><code>)</code>
|
306
|
+
</td>
|
307
|
+
</tr>
|
308
|
+
<tr id='grammar-production-EXPONENT'>
|
309
|
+
<td>[154s]</td>
|
310
|
+
<td><code>EXPONENT</code></td>
|
311
|
+
<td>::=</td>
|
312
|
+
<td>
|
313
|
+
<code>[</code> <code class="grammar-literal">eE</code><code>]</code>
|
314
|
+
(<code>[</code> <code class="grammar-literal">+-</code><code>]</code> )<code>?</code>
|
315
|
+
(<code>[</code> <code class="grammar-literal">0-9</code><code>]</code> )<code>+</code>
|
316
|
+
</td>
|
317
|
+
</tr>
|
318
|
+
<tr id='grammar-production-STRING_LITERAL_QUOTE'>
|
319
|
+
<td>[22]</td>
|
320
|
+
<td><code>STRING_LITERAL_QUOTE</code></td>
|
321
|
+
<td>::=</td>
|
322
|
+
<td>
|
323
|
+
'<code class="grammar-literal">"</code>'
|
324
|
+
(<code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x22</code><code class="grammar-char-escape">#x5C</code><code class="grammar-char-escape">#xA</code><code class="grammar-char-escape">#xD</code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code>|</code> <a href="#grammar-production-UCHAR">UCHAR</a>)<code>*</code>
|
325
|
+
'<code class="grammar-literal">"</code>'
|
326
|
+
</td>
|
327
|
+
</tr>
|
328
|
+
<tr id='grammar-production-STRING_LITERAL_SINGLE_QUOTE'>
|
329
|
+
<td>[23]</td>
|
330
|
+
<td><code>STRING_LITERAL_SINGLE_QUOTE</code></td>
|
331
|
+
<td>::=</td>
|
332
|
+
<td>
|
333
|
+
"<code class="grammar-literal">'</code>"
|
334
|
+
(<code>[</code> <code class="grammar-literal">^</code><code class="grammar-char-escape">#x27</code><code class="grammar-char-escape">#x5C</code><code class="grammar-char-escape">#xA</code><code class="grammar-char-escape">#xD</code><code>]</code> <code>|</code> <a href="#grammar-production-ECHAR">ECHAR</a> <code>|</code> <a href="#grammar-production-UCHAR">UCHAR</a>)<code>*</code>
|
335
|
+
"<code class="grammar-literal">'</code>"
|
336
|
+
</td>
|
337
|
+
</tr>
|
338
|
+
<tr id='grammar-production-STRING_LITERAL_LONG_SINGLE_QUOTE'>
|
339
|
+
<td>[24]</td>
|
340
|
+
<td><code>STRING_LITERAL_LONG_SINGLE_QUOTE</code></td>
|
341
|
+
<td>::=</td>
|
342
|
+
<td>
|
343
|
+
"<code class="grammar-literal">'''</code>"
|
344
|
+
<code>(</code> ("<code class="grammar-literal">'</code>" <code>|</code> "<code class="grammar-literal">''</code>")<code>?</code> <code>[</code> <code class="grammar-literal">^']</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">UCHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">"'''"</code><code>]</code> <code>)</code>
|
345
|
+
</td>
|
346
|
+
</tr>
|
347
|
+
<tr id='grammar-production-STRING_LITERAL_LONG_QUOTE'>
|
348
|
+
<td>[25]</td>
|
349
|
+
<td><code>STRING_LITERAL_LONG_QUOTE</code></td>
|
350
|
+
<td>::=</td>
|
351
|
+
<td>
|
352
|
+
'<code class="grammar-literal">"""</code>'
|
353
|
+
<code>(</code> ('<code class="grammar-literal">"</code>' <code>|</code> '<code class="grammar-literal">""</code>')<code>?</code> <code>[</code> <code class="grammar-literal">^"]</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">ECHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">|</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">UCHAR</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">)*</code><code class="grammar-char-escape">#x20</code><code class="grammar-literal">'"""'</code><code>]</code> <code>)</code>
|
354
|
+
</td>
|
355
|
+
</tr>
|
356
|
+
<tr id='grammar-production-UCHAR'>
|
357
|
+
<td>[26]</td>
|
358
|
+
<td><code>UCHAR</code></td>
|
359
|
+
<td>::=</td>
|
360
|
+
<td>
|
361
|
+
"<code class="grammar-literal">u</code>" <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a>
|
362
|
+
<code>|</code> "<code class="grammar-literal">U</code>" <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a> <a href="#grammar-production-HEX">HEX</a>
|
363
|
+
</td>
|
364
|
+
</tr>
|
365
|
+
<tr id='grammar-production-ECHAR'>
|
366
|
+
<td>[159s]</td>
|
367
|
+
<td><code>ECHAR</code></td>
|
368
|
+
<td>::=</td>
|
369
|
+
<td>
|
370
|
+
"<code class="grammar-literal">\</code>"
|
371
|
+
<code>[</code> <code class="grammar-literal">tbnrf"'</code><code>]</code>
|
372
|
+
</td>
|
373
|
+
</tr>
|
374
|
+
<tr id='grammar-production-SPARQL_PREFIX'>
|
375
|
+
<td>[28t]</td>
|
376
|
+
<td><code>SPARQL_PREFIX</code></td>
|
377
|
+
<td>::=</td>
|
378
|
+
<td>
|
379
|
+
<code>[</code> <code class="grammar-literal">Pp</code><code>]</code>
|
380
|
+
<code>[</code> <code class="grammar-literal">Rr</code><code>]</code>
|
381
|
+
<code>[</code> <code class="grammar-literal">Ee</code><code>]</code>
|
382
|
+
<code>[</code> <code class="grammar-literal">Ff</code><code>]</code>
|
383
|
+
<code>[</code> <code class="grammar-literal">Ii</code><code>]</code>
|
384
|
+
<code>[</code> <code class="grammar-literal">Xx</code><code>]</code>
|
385
|
+
</td>
|
386
|
+
</tr>
|
387
|
+
<tr id='grammar-production-SPARQL_BASE'>
|
388
|
+
<td>[29t]</td>
|
389
|
+
<td><code>SPARQL_BASE</code></td>
|
390
|
+
<td>::=</td>
|
391
|
+
<td>
|
392
|
+
<code>[</code> <code class="grammar-literal">Bb</code><code>]</code>
|
393
|
+
<code>[</code> <code class="grammar-literal">Aa</code><code>]</code>
|
394
|
+
<code>[</code> <code class="grammar-literal">Ss</code><code>]</code>
|
395
|
+
<code>[</code> <code class="grammar-literal">Ee</code><code>]</code>
|
396
|
+
</td>
|
397
|
+
</tr>
|
398
|
+
<tr id='grammar-production-WS'>
|
399
|
+
<td>[161s]</td>
|
400
|
+
<td><code>WS</code></td>
|
401
|
+
<td>::=</td>
|
402
|
+
<td>
|
403
|
+
<code class="grammar-char-escape">#x20</code>
|
404
|
+
<code>|</code> <code class="grammar-char-escape">#x9</code>
|
405
|
+
<code>|</code> <code class="grammar-char-escape">#xD</code>
|
406
|
+
<code>|</code> <code class="grammar-char-escape">#xA</code>
|
407
|
+
</td>
|
408
|
+
</tr>
|
409
|
+
<tr id='grammar-production-ANON'>
|
410
|
+
<td>[162s]</td>
|
411
|
+
<td><code>ANON</code></td>
|
412
|
+
<td>::=</td>
|
413
|
+
<td>
|
414
|
+
"<code class="grammar-literal">[</code>"
|
415
|
+
<a href="#grammar-production-WS">WS</a><code>*</code>
|
416
|
+
"<code class="grammar-literal">]</code>"
|
417
|
+
</td>
|
418
|
+
</tr>
|
419
|
+
<tr id='grammar-production-PN_CHARS_BASE'>
|
420
|
+
<td>[163s]</td>
|
421
|
+
<td><code>PN_CHARS_BASE</code></td>
|
422
|
+
<td>::=</td>
|
423
|
+
<td>
|
424
|
+
<code>[</code> <code class="grammar-literal">A-Z</code><code>]</code>
|
425
|
+
<code>|</code> <code>[</code> <code class="grammar-literal">a-z</code><code>]</code>
|
426
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x00C0</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x00D6</code><code>]</code>
|
427
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x00D8</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x00F6</code><code>]</code>
|
428
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x00F8</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x02FF</code><code>]</code>
|
429
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x0370</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x037D</code><code>]</code>
|
430
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x037F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x1FFF</code><code>]</code>
|
431
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x200C</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x200D</code><code>]</code>
|
432
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x2070</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x218F</code><code>]</code>
|
433
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x2C00</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2FEF</code><code>]</code>
|
434
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x3001</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xD7FF</code><code>]</code>
|
435
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#xF900</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xFDCF</code><code>]</code>
|
436
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#xFDF0</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xFFFD</code><code>]</code>
|
437
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x10000</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#xEFFFF</code><code>]</code>
|
438
|
+
</td>
|
439
|
+
</tr>
|
440
|
+
<tr id='grammar-production-PN_CHARS_U'>
|
441
|
+
<td>[164s]</td>
|
442
|
+
<td><code>PN_CHARS_U</code></td>
|
443
|
+
<td>::=</td>
|
444
|
+
<td>
|
445
|
+
<a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a>
|
446
|
+
<code>|</code> "<code class="grammar-literal">_</code>"
|
447
|
+
</td>
|
448
|
+
</tr>
|
449
|
+
<tr id='grammar-production-PN_CHARS'>
|
450
|
+
<td>[166s]</td>
|
451
|
+
<td><code>PN_CHARS</code></td>
|
452
|
+
<td>::=</td>
|
453
|
+
<td>
|
454
|
+
<a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a>
|
455
|
+
<code>|</code> "<code class="grammar-literal">-</code>"
|
456
|
+
<code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code>
|
457
|
+
<code>|</code> <code class="grammar-char-escape">#x00B7</code>
|
458
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x0300</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x036F</code><code>]</code>
|
459
|
+
<code>|</code> <code>[</code> <code class="grammar-char-escape">#x203F</code><code class="grammar-literal">-</code><code class="grammar-char-escape">#x2040</code><code>]</code>
|
460
|
+
</td>
|
461
|
+
</tr>
|
462
|
+
<tr id='grammar-production-PN_PREFIX'>
|
463
|
+
<td>[167s]</td>
|
464
|
+
<td><code>PN_PREFIX</code></td>
|
465
|
+
<td>::=</td>
|
466
|
+
<td>
|
467
|
+
<a href="#grammar-production-PN_CHARS_BASE">PN_CHARS_BASE</a>
|
468
|
+
(<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>")<code>*</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a><code>?</code>
|
469
|
+
</td>
|
470
|
+
</tr>
|
471
|
+
<tr id='grammar-production-PN_LOCAL'>
|
472
|
+
<td>[168s]</td>
|
473
|
+
<td><code>PN_LOCAL</code></td>
|
474
|
+
<td>::=</td>
|
475
|
+
<td>
|
476
|
+
<code>(</code> <a href="#grammar-production-PN_CHARS_U">PN_CHARS_U</a> <code>|</code> "<code class="grammar-literal">:</code>" <code>|</code> <code>[</code> <code class="grammar-literal">0-9</code><code>]</code> <code>|</code> <a href="#grammar-production-PLX">PLX</a><code>)</code>
|
477
|
+
(<a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">.</code>" <code>|</code> "<code class="grammar-literal">:</code>" <code>|</code> <a href="#grammar-production-PLX">PLX</a>)<code>*</code> <code>(</code> <a href="#grammar-production-PN_CHARS">PN_CHARS</a> <code>|</code> "<code class="grammar-literal">:</code>" <code>|</code> <a href="#grammar-production-PLX">PLX</a><code>)</code> <code>?</code>
|
478
|
+
</td>
|
479
|
+
</tr>
|
480
|
+
<tr id='grammar-production-PLX'>
|
481
|
+
<td>[169s]</td>
|
482
|
+
<td><code>PLX</code></td>
|
483
|
+
<td>::=</td>
|
484
|
+
<td>
|
485
|
+
<a href="#grammar-production-PERCENT">PERCENT</a>
|
486
|
+
<code>|</code> <a href="#grammar-production-PN_LOCAL_ESC">PN_LOCAL_ESC</a>
|
487
|
+
</td>
|
488
|
+
</tr>
|
489
|
+
<tr id='grammar-production-PERCENT'>
|
490
|
+
<td>[170s]</td>
|
491
|
+
<td><code>PERCENT</code></td>
|
492
|
+
<td>::=</td>
|
493
|
+
<td>
|
494
|
+
"<code class="grammar-literal">%</code>"
|
495
|
+
<a href="#grammar-production-HEX">HEX</a>
|
496
|
+
<a href="#grammar-production-HEX">HEX</a>
|
497
|
+
</td>
|
498
|
+
</tr>
|
499
|
+
<tr id='grammar-production-HEX'>
|
500
|
+
<td>[171s]</td>
|
501
|
+
<td><code>HEX</code></td>
|
502
|
+
<td>::=</td>
|
503
|
+
<td>
|
504
|
+
<code>[</code> <code class="grammar-literal">0-9</code><code>]</code>
|
505
|
+
<code>|</code> <code>[</code> <code class="grammar-literal">A-F</code><code>]</code>
|
506
|
+
<code>|</code> <code>[</code> <code class="grammar-literal">a-f</code><code>]</code>
|
507
|
+
</td>
|
508
|
+
</tr>
|
509
|
+
<tr id='grammar-production-PN_LOCAL_ESC'>
|
510
|
+
<td>[172s]</td>
|
511
|
+
<td><code>PN_LOCAL_ESC</code></td>
|
512
|
+
<td>::=</td>
|
513
|
+
<td>
|
514
|
+
"<code class="grammar-literal">\</code>"
|
515
|
+
<code>(</code> "<code class="grammar-literal">_</code>" <code>|</code> "<code class="grammar-literal">~</code>" <code>|</code> "<code class="grammar-literal">.</code>" <code>|</code> "<code class="grammar-literal">-</code>" <code>|</code> <code class="grammar-char-escape">#x21</code> <code>|</code> "<code class="grammar-literal">$</code>" <code>|</code> "<code class="grammar-literal">&</code>" <code>|</code> "<code class="grammar-literal">'</code>" <code>|</code> "<code class="grammar-literal">(</code>" <code>|</code> "<code class="grammar-literal">)</code>" <code>|</code> "<code class="grammar-literal">*</code>" <code>|</code> "<code class="grammar-literal">+</code>" <code>|</code> "<code class="grammar-literal">,</code>" <code>|</code> "<code class="grammar-literal">;</code>" <code>|</code> "<code class="grammar-literal">=</code>" <code>|</code> "<code class="grammar-literal">/</code>" <code>|</code> "<code class="grammar-literal">?</code>" <code>|</code> "<code class="grammar-literal">#</code>" <code>|</code> "<code class="grammar-literal">@</code>" <code>|</code> "<code class="grammar-literal">%</code>"<code>)</code>
|
516
|
+
</td>
|
517
|
+
</tr>
|
518
|
+
</tbody>
|
519
|
+
</table>
|