rdf_context 0.4.8 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (248) hide show
  1. data/History.txt +27 -0
  2. data/README.rdoc +22 -9
  3. data/Rakefile +11 -6
  4. data/VERSION +1 -1
  5. data/bin/rdf_context +12 -4
  6. data/lib/rdf_context.rb +3 -1
  7. data/lib/rdf_context/aggregate_graph.rb +86 -0
  8. data/lib/rdf_context/array_hacks.rb +53 -0
  9. data/lib/rdf_context/conjunctive_graph.rb +1 -1
  10. data/lib/rdf_context/exceptions.rb +9 -7
  11. data/lib/rdf_context/graph.rb +174 -15
  12. data/lib/rdf_context/literal.rb +34 -2
  13. data/lib/rdf_context/n3_grammar.treetop +213 -129
  14. data/lib/rdf_context/n3parser.rb +281 -57
  15. data/lib/rdf_context/namespace.rb +23 -12
  16. data/lib/rdf_context/parser.rb +4 -3
  17. data/lib/rdf_context/quoted_graph.rb +38 -0
  18. data/lib/rdf_context/rdfaparser.rb +2 -1
  19. data/lib/rdf_context/rdfxmlparser.rb +4 -3
  20. data/lib/rdf_context/store/abstract_sql_store.rb +4 -4
  21. data/lib/rdf_context/store/abstract_store.rb +5 -1
  22. data/lib/rdf_context/store/sqlite3_store.rb +10 -8
  23. data/lib/rdf_context/string_hacks.rb +44 -21
  24. data/lib/rdf_context/term_utils.rb +73 -4
  25. data/lib/rdf_context/triple.rb +32 -47
  26. data/lib/rdf_context/uriref.rb +33 -26
  27. data/spec/aggregate_graph_spec.rb +59 -0
  28. data/spec/conjunctive_graph_spec.rb +1 -1
  29. data/spec/cwm_spec.rb +32 -0
  30. data/spec/graph_spec.rb +114 -3
  31. data/spec/literal_spec.rb +107 -5
  32. data/spec/matchers.rb +104 -51
  33. data/spec/n3parser_spec.rb +798 -99
  34. data/spec/namespaces_spec.rb +26 -0
  35. data/spec/quoted_graph_spec.rb +0 -0
  36. data/spec/rdf_helper.rb +197 -0
  37. data/spec/rdfa_helper.rb +15 -11
  38. data/spec/rdfa_parser_spec.rb +6 -8
  39. data/spec/rdfxml_spec.rb +21 -28
  40. data/spec/spec_helper.rb +20 -0
  41. data/spec/sqlite3_store_spec.rb +6 -5
  42. data/spec/store_helper.rb +9 -1
  43. data/spec/string_hacks_spec.rb +14 -0
  44. data/spec/{rdfxml_helper.rb → swap_helper.rb} +8 -9
  45. data/spec/swap_spec.rb +77 -0
  46. data/spec/swap_test/animal.rdf +17 -0
  47. data/spec/swap_test/anon-prop.n3 +14 -0
  48. data/spec/swap_test/anonymous_loop.n3 +2 -0
  49. data/spec/swap_test/contexts.n3 +16 -0
  50. data/spec/swap_test/daml-pref.n3 +10 -0
  51. data/spec/swap_test/i18n/hiragana.n3 +22 -0
  52. data/spec/swap_test/i18n/n3string.n3 +4 -0
  53. data/spec/swap_test/list/itemType.rdf +12 -0
  54. data/spec/swap_test/lists-simple.n3 +40 -0
  55. data/spec/swap_test/lists.n3 +35 -0
  56. data/spec/swap_test/n3/n3parser.tests_n3_10001.nt +3 -0
  57. data/spec/swap_test/n3/n3parser.tests_n3_10002.nt +7 -0
  58. data/spec/swap_test/n3/n3parser.tests_n3_10003.nt +3 -0
  59. data/spec/swap_test/n3/n3parser.tests_n3_10004.nt +119 -0
  60. data/spec/swap_test/n3/n3parser.tests_n3_10005.nt +3 -0
  61. data/spec/swap_test/n3/n3parser.tests_n3_10006.nt +225 -0
  62. data/spec/swap_test/n3/n3parser.tests_n3_10007.nt +79 -0
  63. data/spec/swap_test/n3/n3parser.tests_n3_10008.nt +5 -0
  64. data/spec/swap_test/n3/n3parser.tests_n3_10009.nt +13 -0
  65. data/spec/swap_test/n3/n3parser.tests_n3_10010.nt +21 -0
  66. data/spec/swap_test/n3/n3parser.tests_n3_10011.nt +9 -0
  67. data/spec/swap_test/n3/n3parser.tests_n3_10012.nt +53 -0
  68. data/spec/swap_test/n3/n3parser.tests_n3_10013.nt +19 -0
  69. data/spec/swap_test/n3/n3parser.tests_n3_10014.nt +103 -0
  70. data/spec/swap_test/n3/n3parser.tests_n3_10015.nt +103 -0
  71. data/spec/swap_test/n3/n3parser.tests_n3_10016.nt +3 -0
  72. data/spec/swap_test/n3/n3parser.tests_n3_10017.nt +151 -0
  73. data/spec/swap_test/n3/n3parser.tests_n3_10018.nt +9 -0
  74. data/spec/swap_test/n3/n3parser.tests_n3_10019.nt +3 -0
  75. data/spec/swap_test/n3/n3parser.tests_n3_10020.nt +13 -0
  76. data/spec/swap_test/n3parser.tests +160 -0
  77. data/spec/swap_test/nodeID/classes.n3 +9 -0
  78. data/spec/swap_test/nodeID/classes.ref.rdf +15 -0
  79. data/spec/swap_test/nodeID/ex1.rdf +15 -0
  80. data/spec/swap_test/norm/fix.rdf +33 -0
  81. data/spec/swap_test/owl-ex.rdf +150 -0
  82. data/spec/swap_test/ref/animal.n3 +11 -0
  83. data/spec/swap_test/ref/anon-prop-1.n3 +8 -0
  84. data/spec/swap_test/ref/anonymous_loop.ref +7 -0
  85. data/spec/swap_test/ref/bnode.n3 +6 -0
  86. data/spec/swap_test/ref/bnode.rdf +16 -0
  87. data/spec/swap_test/ref/colon-in-uri.n3 +15 -0
  88. data/spec/swap_test/ref/daml-ex.n3 +103 -0
  89. data/spec/swap_test/ref/daml-ont.n3 +289 -0
  90. data/spec/swap_test/ref/djb1a-out.n3 +4 -0
  91. data/spec/swap_test/ref/dot-dash.n3 +8 -0
  92. data/spec/swap_test/ref/in-xml-t.n3 +4 -0
  93. data/spec/swap_test/ref/itemType.n3 +9 -0
  94. data/spec/swap_test/ref/keywords1.n3 +11 -0
  95. data/spec/swap_test/ref/keywords2.n3 +11 -0
  96. data/spec/swap_test/ref/lists-simple-1.rdf +108 -0
  97. data/spec/swap_test/ref/lists.n3 +43 -0
  98. data/spec/swap_test/ref/lstring-out.n3 +20 -0
  99. data/spec/swap_test/ref/n3string.n3 +13 -0
  100. data/spec/swap_test/ref/no-last-nl.n3 +3 -0
  101. data/spec/swap_test/ref/numbers.n3 +18 -0
  102. data/spec/swap_test/ref/path1.n3 +8 -0
  103. data/spec/swap_test/ref/path2.n3 +39 -0
  104. data/spec/swap_test/ref/prefix1.rdf +31 -0
  105. data/spec/swap_test/ref/prefix3.rdf +31 -0
  106. data/spec/swap_test/ref/rdf-redefine.rdf +11 -0
  107. data/spec/swap_test/ref/reluri-1.rdf +18 -0
  108. data/spec/swap_test/ref/strquot.n3 +23 -0
  109. data/spec/swap_test/ref/strquot_a.n3 +23 -0
  110. data/spec/swap_test/ref/xml-base3.n3 +5 -0
  111. data/spec/swap_test/ref/xml-redefine.rdf +20 -0
  112. data/spec/swap_test/ref/xml-redefine2.rdf +23 -0
  113. data/spec/swap_test/ref/xml-syntax-basic-serialization.rdf +10 -0
  114. data/spec/swap_test/ref/xmllit.nt +3 -0
  115. data/spec/swap_test/regression.n3 +231 -0
  116. data/spec/swap_test/reluri-1.n3 +10 -0
  117. data/spec/swap_test/strquot.n3 +23 -0
  118. data/spec/swap_test/syntax/colon-in-uri.rdf +27 -0
  119. data/spec/swap_test/syntax/djb1a.n3 +3 -0
  120. data/spec/swap_test/syntax/dot-dash.n3 +15 -0
  121. data/spec/swap_test/syntax/equals1.n3 +1 -0
  122. data/spec/swap_test/syntax/equals2.n3 +1 -0
  123. data/spec/swap_test/syntax/keywords1.n3 +17 -0
  124. data/spec/swap_test/syntax/keywords2.n3 +18 -0
  125. data/spec/swap_test/syntax/lstring.n3 +26 -0
  126. data/spec/swap_test/syntax/neg-formula-predicate.n3 +1 -0
  127. data/spec/swap_test/syntax/neg-keywords3.n3 +1 -0
  128. data/spec/swap_test/syntax/neg-literal-predicate.n3 +1 -0
  129. data/spec/swap_test/syntax/neg-single-quote.n3 +1 -0
  130. data/spec/swap_test/syntax/neg-thisadoc.n3 +1 -0
  131. data/spec/swap_test/syntax/no-last-nl.n3 +2 -0
  132. data/spec/swap_test/syntax/numbers.n3 +26 -0
  133. data/spec/swap_test/syntax/path1.n3 +23 -0
  134. data/spec/swap_test/syntax/path2.n3 +31 -0
  135. data/spec/swap_test/syntax/qvars1.n3 +19 -0
  136. data/spec/swap_test/syntax/qvars2.n3 +19 -0
  137. data/spec/swap_test/syntax/this-quantifiers.n3 +164 -0
  138. data/spec/swap_test/syntax/this-rules.n3 +43 -0
  139. data/spec/swap_test/syntax/too-nested.n3 +25 -0
  140. data/spec/swap_test/syntax/trailing-semicolon.n3 +12 -0
  141. data/spec/swap_test/syntax/zero-objects.n3 +1 -0
  142. data/spec/swap_test/syntax/zero-predicates.n3 +3 -0
  143. data/spec/swap_test/tests-work.txt +25 -0
  144. data/spec/swap_test/xml-syntax/basic-serialization.n3 +8 -0
  145. data/spec/swap_test/xml-syntax/in-xml.xml +13 -0
  146. data/spec/swap_test/xml-syntax/non-ascii-pred.rdf +14 -0
  147. data/spec/swap_test/xml-syntax/rdf_prefix.n3 +2 -0
  148. data/spec/swap_test/xml-syntax/xml_prefix.n3 +7 -0
  149. data/spec/swap_test/xml-syntax/xml_prefix2.n3 +9 -0
  150. data/spec/swap_test/xml-syntax/xmlbase3.rdf +10 -0
  151. data/spec/swap_test/xml-syntax/xmllit.rdf +33 -0
  152. data/spec/triple_spec.rb +90 -46
  153. data/spec/turtle/README.txt +20 -0
  154. data/spec/turtle/bad-00.ttl +2 -0
  155. data/spec/turtle/bad-01.ttl +3 -0
  156. data/spec/turtle/bad-02.ttl +3 -0
  157. data/spec/turtle/bad-03.ttl +3 -0
  158. data/spec/turtle/bad-04.ttl +3 -0
  159. data/spec/turtle/bad-05.ttl +4 -0
  160. data/spec/turtle/bad-06.ttl +3 -0
  161. data/spec/turtle/bad-07.ttl +4 -0
  162. data/spec/turtle/bad-08.ttl +2 -0
  163. data/spec/turtle/bad-09.ttl +3 -0
  164. data/spec/turtle/bad-10.ttl +3 -0
  165. data/spec/turtle/bad-11.ttl +3 -0
  166. data/spec/turtle/bad-12.ttl +3 -0
  167. data/spec/turtle/bad-13.ttl +3 -0
  168. data/spec/turtle/bad-14.ttl +6 -0
  169. data/spec/turtle/manifest-bad.ttl +88 -0
  170. data/spec/turtle/manifest.ttl +215 -0
  171. data/spec/turtle/rdf-schema.out +126 -0
  172. data/spec/turtle/rdf-schema.ttl +156 -0
  173. data/spec/turtle/rdfq-results.out +36 -0
  174. data/spec/turtle/rdfq-results.ttl +39 -0
  175. data/spec/turtle/rdfs-namespace.out +131 -0
  176. data/spec/turtle/rdfs-namespace.ttl +160 -0
  177. data/spec/turtle/test-00.out +1 -0
  178. data/spec/turtle/test-00.ttl +2 -0
  179. data/spec/turtle/test-01.out +3 -0
  180. data/spec/turtle/test-01.ttl +7 -0
  181. data/spec/turtle/test-02.out +3 -0
  182. data/spec/turtle/test-02.ttl +5 -0
  183. data/spec/turtle/test-03.out +3 -0
  184. data/spec/turtle/test-03.ttl +5 -0
  185. data/spec/turtle/test-04.out +2 -0
  186. data/spec/turtle/test-04.ttl +4 -0
  187. data/spec/turtle/test-05.out +4 -0
  188. data/spec/turtle/test-05.ttl +4 -0
  189. data/spec/turtle/test-06.out +1 -0
  190. data/spec/turtle/test-06.ttl +3 -0
  191. data/spec/turtle/test-07.out +5 -0
  192. data/spec/turtle/test-07.ttl +3 -0
  193. data/spec/turtle/test-08.out +1 -0
  194. data/spec/turtle/test-08.ttl +3 -0
  195. data/spec/turtle/test-09.out +4 -0
  196. data/spec/turtle/test-09.ttl +10 -0
  197. data/spec/turtle/test-10.out +5 -0
  198. data/spec/turtle/test-10.ttl +5 -0
  199. data/spec/turtle/test-11.out +4 -0
  200. data/spec/turtle/test-11.ttl +10 -0
  201. data/spec/turtle/test-12.out +4 -0
  202. data/spec/turtle/test-12.ttl +9 -0
  203. data/spec/turtle/test-13.out +2 -0
  204. data/spec/turtle/test-13.ttl +7 -0
  205. data/spec/turtle/test-14.out +10000 -0
  206. data/spec/turtle/test-14.ttl +10002 -0
  207. data/spec/turtle/test-15.out +10000 -0
  208. data/spec/turtle/test-15.ttl +3 -0
  209. data/spec/turtle/test-16.out +10000 -0
  210. data/spec/turtle/test-16.ttl +10002 -0
  211. data/spec/turtle/test-17.out +1 -0
  212. data/spec/turtle/test-17.ttl +6 -0
  213. data/spec/turtle/test-18.out +2 -0
  214. data/spec/turtle/test-18.ttl +9 -0
  215. data/spec/turtle/test-19.out +1 -0
  216. data/spec/turtle/test-19.ttl +4 -0
  217. data/spec/turtle/test-20.out +2 -0
  218. data/spec/turtle/test-20.ttl +6 -0
  219. data/spec/turtle/test-21.out +3 -0
  220. data/spec/turtle/test-21.ttl +4 -0
  221. data/spec/turtle/test-22.out +3 -0
  222. data/spec/turtle/test-22.ttl +4 -0
  223. data/spec/turtle/test-23.out +1 -0
  224. data/spec/turtle/test-23.ttl +3 -0
  225. data/spec/turtle/test-24.out +2 -0
  226. data/spec/turtle/test-24.ttl +3 -0
  227. data/spec/turtle/test-25.out +7 -0
  228. data/spec/turtle/test-25.ttl +14 -0
  229. data/spec/turtle/test-26.out +1 -0
  230. data/spec/turtle/test-26.ttl +4 -0
  231. data/spec/turtle/test-27.out +1 -0
  232. data/spec/turtle/test-27.ttl +5 -0
  233. data/spec/turtle/test-28-out.ttl +6 -0
  234. data/spec/turtle/test-28.out +22 -0
  235. data/spec/turtle/test-28.ttl +22 -0
  236. data/spec/turtle/test-29.out +1 -0
  237. data/spec/turtle/test-29.ttl +1 -0
  238. data/spec/turtle/test-30.out +5 -0
  239. data/spec/turtle/test-30.ttl +12 -0
  240. data/spec/turtle_spec.rb +64 -0
  241. data/spec/uriref_spec.rb +74 -34
  242. data/test/n3_tests/rdflib/n3-writer-teset-26.n3 +31 -0
  243. data/test/n3_tests/rdflib/n3-writer-teset-26.nt +14 -0
  244. data/test/rdf_tests/xml-literal-mixed.nt +1 -2
  245. metadata +278 -39
  246. data/lib/rdf_context/n3_grammar.rb +0 -2171
  247. data/test/perf_test/test.rb +0 -11
  248. data/test/perf_test/tommorris.rdf +0 -2267
@@ -1,2171 +0,0 @@
1
- # Autogenerated from a Treetop grammar. Edits may be lost.
2
-
3
-
4
- module N3Grammer # :nodoc:all
5
- include Treetop::Runtime
6
-
7
- def root
8
- @root || :document
9
- end
10
-
11
- def _nt_document
12
- start_index = index
13
- if node_cache[:document].has_key?(index)
14
- cached = node_cache[:document][index]
15
- @index = cached.interval.end if cached
16
- return cached
17
- end
18
-
19
- r0 = _nt_statements
20
-
21
- node_cache[:document][start_index] = r0
22
-
23
- r0
24
- end
25
-
26
- module Statements0
27
- end
28
-
29
- module Statements1
30
- end
31
-
32
- def _nt_statements
33
- start_index = index
34
- if node_cache[:statements].has_key?(index)
35
- cached = node_cache[:statements][index]
36
- @index = cached.interval.end if cached
37
- return cached
38
- end
39
-
40
- s0, i0 = [], index
41
- loop do
42
- i1 = index
43
- r2 = _nt_space
44
- if r2
45
- r1 = r2
46
- else
47
- i3, s3 = index, []
48
- i4 = index
49
- r5 = _nt_statement
50
- if r5
51
- r4 = r5
52
- else
53
- r6 = _nt_directive
54
- if r6
55
- r4 = r6
56
- else
57
- @index = i4
58
- r4 = nil
59
- end
60
- end
61
- s3 << r4
62
- if r4
63
- s7, i7 = [], index
64
- loop do
65
- r8 = _nt_space
66
- if r8
67
- s7 << r8
68
- else
69
- break
70
- end
71
- end
72
- r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
73
- s3 << r7
74
- if r7
75
- i10, s10 = index, []
76
- if has_terminal?('.', false, index)
77
- r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
78
- @index += 1
79
- else
80
- terminal_parse_failure('.')
81
- r11 = nil
82
- end
83
- s10 << r11
84
- if r11
85
- s12, i12 = [], index
86
- loop do
87
- r13 = _nt_space
88
- if r13
89
- s12 << r13
90
- else
91
- break
92
- end
93
- end
94
- r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
95
- s10 << r12
96
- end
97
- if s10.last
98
- r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
99
- r10.extend(Statements0)
100
- else
101
- @index = i10
102
- r10 = nil
103
- end
104
- if r10
105
- r9 = r10
106
- else
107
- r9 = instantiate_node(SyntaxNode,input, index...index)
108
- end
109
- s3 << r9
110
- end
111
- end
112
- if s3.last
113
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
114
- r3.extend(Statements1)
115
- else
116
- @index = i3
117
- r3 = nil
118
- end
119
- if r3
120
- r1 = r3
121
- else
122
- @index = i1
123
- r1 = nil
124
- end
125
- end
126
- if r1
127
- s0 << r1
128
- else
129
- break
130
- end
131
- end
132
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
133
-
134
- node_cache[:statements][start_index] = r0
135
-
136
- r0
137
- end
138
-
139
- module Statement0
140
- def subject
141
- elements[0]
142
- end
143
-
144
- def property_list
145
- elements[2]
146
- end
147
- end
148
-
149
- def _nt_statement
150
- start_index = index
151
- if node_cache[:statement].has_key?(index)
152
- cached = node_cache[:statement][index]
153
- @index = cached.interval.end if cached
154
- return cached
155
- end
156
-
157
- i0, s0 = index, []
158
- r1 = _nt_subject
159
- s0 << r1
160
- if r1
161
- s2, i2 = [], index
162
- loop do
163
- r3 = _nt_space
164
- if r3
165
- s2 << r3
166
- else
167
- break
168
- end
169
- end
170
- if s2.empty?
171
- @index = i2
172
- r2 = nil
173
- else
174
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
175
- end
176
- s0 << r2
177
- if r2
178
- r4 = _nt_property_list
179
- s0 << r4
180
- end
181
- end
182
- if s0.last
183
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
184
- r0.extend(Statement0)
185
- else
186
- @index = i0
187
- r0 = nil
188
- end
189
-
190
- node_cache[:statement][start_index] = r0
191
-
192
- r0
193
- end
194
-
195
- def _nt_subject
196
- start_index = index
197
- if node_cache[:subject].has_key?(index)
198
- cached = node_cache[:subject][index]
199
- @index = cached.interval.end if cached
200
- return cached
201
- end
202
-
203
- r0 = _nt_node
204
-
205
- node_cache[:subject][start_index] = r0
206
-
207
- r0
208
- end
209
-
210
- module Verb0
211
- def prop
212
- elements[1]
213
- end
214
-
215
- end
216
-
217
- module Verb1
218
- def prop
219
- elements[1]
220
- end
221
-
222
- end
223
-
224
- def _nt_verb
225
- start_index = index
226
- if node_cache[:verb].has_key?(index)
227
- cached = node_cache[:verb][index]
228
- @index = cached.interval.end if cached
229
- return cached
230
- end
231
-
232
- i0 = index
233
- i1, s1 = index, []
234
- if has_terminal?(">-", false, index)
235
- r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
236
- @index += 2
237
- else
238
- terminal_parse_failure(">-")
239
- r2 = nil
240
- end
241
- s1 << r2
242
- if r2
243
- r3 = _nt_prop
244
- s1 << r3
245
- if r3
246
- if has_terminal?("->", false, index)
247
- r4 = instantiate_node(SyntaxNode,input, index...(index + 2))
248
- @index += 2
249
- else
250
- terminal_parse_failure("->")
251
- r4 = nil
252
- end
253
- s1 << r4
254
- end
255
- end
256
- if s1.last
257
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
258
- r1.extend(Verb0)
259
- else
260
- @index = i1
261
- r1 = nil
262
- end
263
- if r1
264
- r0 = r1
265
- else
266
- i5, s5 = index, []
267
- if has_terminal?("<-", false, index)
268
- r6 = instantiate_node(SyntaxNode,input, index...(index + 2))
269
- @index += 2
270
- else
271
- terminal_parse_failure("<-")
272
- r6 = nil
273
- end
274
- s5 << r6
275
- if r6
276
- r7 = _nt_prop
277
- s5 << r7
278
- if r7
279
- if has_terminal?("<-", false, index)
280
- r8 = instantiate_node(SyntaxNode,input, index...(index + 2))
281
- @index += 2
282
- else
283
- terminal_parse_failure("<-")
284
- r8 = nil
285
- end
286
- s5 << r8
287
- end
288
- end
289
- if s5.last
290
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
291
- r5.extend(Verb1)
292
- else
293
- @index = i5
294
- r5 = nil
295
- end
296
- if r5
297
- r0 = r5
298
- else
299
- r9 = _nt_prop
300
- if r9
301
- r0 = r9
302
- else
303
- if has_terminal?("a", false, index)
304
- r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
305
- @index += 1
306
- else
307
- terminal_parse_failure("a")
308
- r10 = nil
309
- end
310
- if r10
311
- r0 = r10
312
- else
313
- @index = i0
314
- r0 = nil
315
- end
316
- end
317
- end
318
- end
319
-
320
- node_cache[:verb][start_index] = r0
321
-
322
- r0
323
- end
324
-
325
- def _nt_prop
326
- start_index = index
327
- if node_cache[:prop].has_key?(index)
328
- cached = node_cache[:prop][index]
329
- @index = cached.interval.end if cached
330
- return cached
331
- end
332
-
333
- r0 = _nt_node
334
-
335
- node_cache[:prop][start_index] = r0
336
-
337
- r0
338
- end
339
-
340
- def _nt_node
341
- start_index = index
342
- if node_cache[:node].has_key?(index)
343
- cached = node_cache[:node][index]
344
- @index = cached.interval.end if cached
345
- return cached
346
- end
347
-
348
- i0 = index
349
- r1 = _nt_uri_ref
350
- if r1
351
- r0 = r1
352
- else
353
- r2 = _nt_anonnode
354
- if r2
355
- r0 = r2
356
- else
357
- if has_terminal?('this', false, index)
358
- r3 = instantiate_node(SyntaxNode,input, index...(index + 4))
359
- @index += 4
360
- else
361
- terminal_parse_failure('this')
362
- r3 = nil
363
- end
364
- if r3
365
- r0 = r3
366
- else
367
- @index = i0
368
- r0 = nil
369
- end
370
- end
371
- end
372
-
373
- node_cache[:node][start_index] = r0
374
-
375
- r0
376
- end
377
-
378
- module Anonnode0
379
- def property_list
380
- elements[2]
381
- end
382
-
383
- end
384
-
385
- module Anonnode1
386
- def statementlist
387
- elements[1]
388
- end
389
-
390
- end
391
-
392
- module Anonnode2
393
- def nodelist
394
- elements[1]
395
- end
396
-
397
- end
398
-
399
- module Anonnode3
400
- def anonnode; true; end
401
- end
402
-
403
- def _nt_anonnode
404
- start_index = index
405
- if node_cache[:anonnode].has_key?(index)
406
- cached = node_cache[:anonnode][index]
407
- @index = cached.interval.end if cached
408
- return cached
409
- end
410
-
411
- i0 = index
412
- i1, s1 = index, []
413
- if has_terminal?("[", false, index)
414
- r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
415
- @index += 1
416
- else
417
- terminal_parse_failure("[")
418
- r2 = nil
419
- end
420
- s1 << r2
421
- if r2
422
- s3, i3 = [], index
423
- loop do
424
- r4 = _nt_space
425
- if r4
426
- s3 << r4
427
- else
428
- break
429
- end
430
- end
431
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
432
- s1 << r3
433
- if r3
434
- r5 = _nt_property_list
435
- s1 << r5
436
- if r5
437
- s6, i6 = [], index
438
- loop do
439
- r7 = _nt_space
440
- if r7
441
- s6 << r7
442
- else
443
- break
444
- end
445
- end
446
- r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
447
- s1 << r6
448
- if r6
449
- if has_terminal?("]", false, index)
450
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
451
- @index += 1
452
- else
453
- terminal_parse_failure("]")
454
- r8 = nil
455
- end
456
- s1 << r8
457
- end
458
- end
459
- end
460
- end
461
- if s1.last
462
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
463
- r1.extend(Anonnode0)
464
- else
465
- @index = i1
466
- r1 = nil
467
- end
468
- if r1
469
- r0 = r1
470
- else
471
- i9, s9 = index, []
472
- if has_terminal?("{", false, index)
473
- r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
474
- @index += 1
475
- else
476
- terminal_parse_failure("{")
477
- r10 = nil
478
- end
479
- s9 << r10
480
- if r10
481
- r11 = _nt_statementlist
482
- s9 << r11
483
- if r11
484
- if has_terminal?("}", false, index)
485
- r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
486
- @index += 1
487
- else
488
- terminal_parse_failure("}")
489
- r12 = nil
490
- end
491
- s9 << r12
492
- end
493
- end
494
- if s9.last
495
- r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
496
- r9.extend(Anonnode1)
497
- else
498
- @index = i9
499
- r9 = nil
500
- end
501
- if r9
502
- r0 = r9
503
- else
504
- i13, s13 = index, []
505
- if has_terminal?("(", false, index)
506
- r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
507
- @index += 1
508
- else
509
- terminal_parse_failure("(")
510
- r14 = nil
511
- end
512
- s13 << r14
513
- if r14
514
- r15 = _nt_nodelist
515
- s13 << r15
516
- if r15
517
- if has_terminal?(")", false, index)
518
- r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
519
- @index += 1
520
- else
521
- terminal_parse_failure(")")
522
- r16 = nil
523
- end
524
- s13 << r16
525
- end
526
- end
527
- if s13.last
528
- r13 = instantiate_node(SyntaxNode,input, i13...index, s13)
529
- r13.extend(Anonnode2)
530
- r13.extend(Anonnode3)
531
- else
532
- @index = i13
533
- r13 = nil
534
- end
535
- if r13
536
- r0 = r13
537
- else
538
- @index = i0
539
- r0 = nil
540
- end
541
- end
542
- end
543
-
544
- node_cache[:anonnode][start_index] = r0
545
-
546
- r0
547
- end
548
-
549
- module PropertyList0
550
- def verb
551
- elements[0]
552
- end
553
-
554
- def object_list
555
- elements[2]
556
- end
557
-
558
- def property_list
559
- elements[6]
560
- end
561
- end
562
-
563
- module PropertyList1
564
- def verb
565
- elements[0]
566
- end
567
-
568
- def object_list
569
- elements[2]
570
- end
571
- end
572
-
573
- module PropertyList2
574
- def anonnode
575
- elements[1]
576
- end
577
- end
578
-
579
- module PropertyList3
580
- def anonnode
581
- elements[1]
582
- end
583
-
584
- def property_list
585
- elements[3]
586
- end
587
- end
588
-
589
- def _nt_property_list
590
- start_index = index
591
- if node_cache[:property_list].has_key?(index)
592
- cached = node_cache[:property_list][index]
593
- @index = cached.interval.end if cached
594
- return cached
595
- end
596
-
597
- i0 = index
598
- i1, s1 = index, []
599
- r2 = _nt_verb
600
- s1 << r2
601
- if r2
602
- s3, i3 = [], index
603
- loop do
604
- r4 = _nt_space
605
- if r4
606
- s3 << r4
607
- else
608
- break
609
- end
610
- end
611
- if s3.empty?
612
- @index = i3
613
- r3 = nil
614
- else
615
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
616
- end
617
- s1 << r3
618
- if r3
619
- r5 = _nt_object_list
620
- s1 << r5
621
- if r5
622
- s6, i6 = [], index
623
- loop do
624
- r7 = _nt_space
625
- if r7
626
- s6 << r7
627
- else
628
- break
629
- end
630
- end
631
- r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
632
- s1 << r6
633
- if r6
634
- if has_terminal?(";", false, index)
635
- r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
636
- @index += 1
637
- else
638
- terminal_parse_failure(";")
639
- r8 = nil
640
- end
641
- s1 << r8
642
- if r8
643
- s9, i9 = [], index
644
- loop do
645
- r10 = _nt_space
646
- if r10
647
- s9 << r10
648
- else
649
- break
650
- end
651
- end
652
- if s9.empty?
653
- @index = i9
654
- r9 = nil
655
- else
656
- r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
657
- end
658
- s1 << r9
659
- if r9
660
- r11 = _nt_property_list
661
- s1 << r11
662
- end
663
- end
664
- end
665
- end
666
- end
667
- end
668
- if s1.last
669
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
670
- r1.extend(PropertyList0)
671
- else
672
- @index = i1
673
- r1 = nil
674
- end
675
- if r1
676
- r0 = r1
677
- else
678
- i12, s12 = index, []
679
- r13 = _nt_verb
680
- s12 << r13
681
- if r13
682
- s14, i14 = [], index
683
- loop do
684
- r15 = _nt_space
685
- if r15
686
- s14 << r15
687
- else
688
- break
689
- end
690
- end
691
- if s14.empty?
692
- @index = i14
693
- r14 = nil
694
- else
695
- r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
696
- end
697
- s12 << r14
698
- if r14
699
- r16 = _nt_object_list
700
- s12 << r16
701
- end
702
- end
703
- if s12.last
704
- r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
705
- r12.extend(PropertyList1)
706
- else
707
- @index = i12
708
- r12 = nil
709
- end
710
- if r12
711
- r0 = r12
712
- else
713
- i17, s17 = index, []
714
- if has_terminal?(":-", false, index)
715
- r18 = instantiate_node(SyntaxNode,input, index...(index + 2))
716
- @index += 2
717
- else
718
- terminal_parse_failure(":-")
719
- r18 = nil
720
- end
721
- s17 << r18
722
- if r18
723
- r19 = _nt_anonnode
724
- s17 << r19
725
- end
726
- if s17.last
727
- r17 = instantiate_node(SyntaxNode,input, i17...index, s17)
728
- r17.extend(PropertyList2)
729
- else
730
- @index = i17
731
- r17 = nil
732
- end
733
- if r17
734
- r0 = r17
735
- else
736
- i20, s20 = index, []
737
- if has_terminal?(":-", false, index)
738
- r21 = instantiate_node(SyntaxNode,input, index...(index + 2))
739
- @index += 2
740
- else
741
- terminal_parse_failure(":-")
742
- r21 = nil
743
- end
744
- s20 << r21
745
- if r21
746
- r22 = _nt_anonnode
747
- s20 << r22
748
- if r22
749
- if has_terminal?(";", false, index)
750
- r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
751
- @index += 1
752
- else
753
- terminal_parse_failure(";")
754
- r23 = nil
755
- end
756
- s20 << r23
757
- if r23
758
- r24 = _nt_property_list
759
- s20 << r24
760
- end
761
- end
762
- end
763
- if s20.last
764
- r20 = instantiate_node(SyntaxNode,input, i20...index, s20)
765
- r20.extend(PropertyList3)
766
- else
767
- @index = i20
768
- r20 = nil
769
- end
770
- if r20
771
- r0 = r20
772
- else
773
- if has_terminal?('.', false, index)
774
- r25 = instantiate_node(SyntaxNode,input, index...(index + 1))
775
- @index += 1
776
- else
777
- terminal_parse_failure('.')
778
- r25 = nil
779
- end
780
- if r25
781
- r0 = r25
782
- else
783
- @index = i0
784
- r0 = nil
785
- end
786
- end
787
- end
788
- end
789
- end
790
-
791
- node_cache[:property_list][start_index] = r0
792
-
793
- r0
794
- end
795
-
796
- module ObjectList0
797
- def object
798
- elements[0]
799
- end
800
-
801
- def object_list
802
- elements[3]
803
- end
804
- end
805
-
806
- def _nt_object_list
807
- start_index = index
808
- if node_cache[:object_list].has_key?(index)
809
- cached = node_cache[:object_list][index]
810
- @index = cached.interval.end if cached
811
- return cached
812
- end
813
-
814
- i0 = index
815
- i1, s1 = index, []
816
- r2 = _nt_object
817
- s1 << r2
818
- if r2
819
- if has_terminal?(",", false, index)
820
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
821
- @index += 1
822
- else
823
- terminal_parse_failure(",")
824
- r3 = nil
825
- end
826
- s1 << r3
827
- if r3
828
- s4, i4 = [], index
829
- loop do
830
- r5 = _nt_space
831
- if r5
832
- s4 << r5
833
- else
834
- break
835
- end
836
- end
837
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
838
- s1 << r4
839
- if r4
840
- r6 = _nt_object_list
841
- s1 << r6
842
- end
843
- end
844
- end
845
- if s1.last
846
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
847
- r1.extend(ObjectList0)
848
- else
849
- @index = i1
850
- r1 = nil
851
- end
852
- if r1
853
- r0 = r1
854
- else
855
- r7 = _nt_object
856
- if r7
857
- r0 = r7
858
- else
859
- @index = i0
860
- r0 = nil
861
- end
862
- end
863
-
864
- node_cache[:object_list][start_index] = r0
865
-
866
- r0
867
- end
868
-
869
- module Directive0
870
- def nprefix
871
- elements[2]
872
- end
873
-
874
- def uri_ref
875
- elements[5]
876
- end
877
- end
878
-
879
- module Directive1
880
- def directive; true; end
881
- end
882
-
883
- def _nt_directive
884
- start_index = index
885
- if node_cache[:directive].has_key?(index)
886
- cached = node_cache[:directive][index]
887
- @index = cached.interval.end if cached
888
- return cached
889
- end
890
-
891
- i0, s0 = index, []
892
- if has_terminal?('@prefix', false, index)
893
- r1 = instantiate_node(SyntaxNode,input, index...(index + 7))
894
- @index += 7
895
- else
896
- terminal_parse_failure('@prefix')
897
- r1 = nil
898
- end
899
- s0 << r1
900
- if r1
901
- s2, i2 = [], index
902
- loop do
903
- r3 = _nt_space
904
- if r3
905
- s2 << r3
906
- else
907
- break
908
- end
909
- end
910
- if s2.empty?
911
- @index = i2
912
- r2 = nil
913
- else
914
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
915
- end
916
- s0 << r2
917
- if r2
918
- r5 = _nt_nprefix
919
- if r5
920
- r4 = r5
921
- else
922
- r4 = instantiate_node(SyntaxNode,input, index...index)
923
- end
924
- s0 << r4
925
- if r4
926
- if has_terminal?(':', false, index)
927
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
928
- @index += 1
929
- else
930
- terminal_parse_failure(':')
931
- r6 = nil
932
- end
933
- s0 << r6
934
- if r6
935
- s7, i7 = [], index
936
- loop do
937
- r8 = _nt_space
938
- if r8
939
- s7 << r8
940
- else
941
- break
942
- end
943
- end
944
- if s7.empty?
945
- @index = i7
946
- r7 = nil
947
- else
948
- r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
949
- end
950
- s0 << r7
951
- if r7
952
- r9 = _nt_uri_ref
953
- s0 << r9
954
- end
955
- end
956
- end
957
- end
958
- end
959
- if s0.last
960
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
961
- r0.extend(Directive0)
962
- r0.extend(Directive1)
963
- else
964
- @index = i0
965
- r0 = nil
966
- end
967
-
968
- node_cache[:directive][start_index] = r0
969
-
970
- r0
971
- end
972
-
973
- module UriRef0
974
- def uri
975
- elements[1]
976
- end
977
-
978
- end
979
-
980
- def _nt_uri_ref
981
- start_index = index
982
- if node_cache[:uri_ref].has_key?(index)
983
- cached = node_cache[:uri_ref][index]
984
- @index = cached.interval.end if cached
985
- return cached
986
- end
987
-
988
- i0 = index
989
- r1 = _nt_qname
990
- if r1
991
- r0 = r1
992
- else
993
- i2, s2 = index, []
994
- if has_terminal?("<", false, index)
995
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
996
- @index += 1
997
- else
998
- terminal_parse_failure("<")
999
- r3 = nil
1000
- end
1001
- s2 << r3
1002
- if r3
1003
- r4 = _nt_URI_Reference
1004
- s2 << r4
1005
- if r4
1006
- if has_terminal?(">", false, index)
1007
- r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
1008
- @index += 1
1009
- else
1010
- terminal_parse_failure(">")
1011
- r5 = nil
1012
- end
1013
- s2 << r5
1014
- end
1015
- end
1016
- if s2.last
1017
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1018
- r2.extend(UriRef0)
1019
- else
1020
- @index = i2
1021
- r2 = nil
1022
- end
1023
- if r2
1024
- r0 = r2
1025
- else
1026
- @index = i0
1027
- r0 = nil
1028
- end
1029
- end
1030
-
1031
- node_cache[:uri_ref][start_index] = r0
1032
-
1033
- r0
1034
- end
1035
-
1036
- module Qname0
1037
- def nprefix
1038
- elements[0]
1039
- end
1040
-
1041
- def localname
1042
- elements[2]
1043
- end
1044
- end
1045
-
1046
- module Qname1
1047
- def localname
1048
- elements[1]
1049
- end
1050
- end
1051
-
1052
- def _nt_qname
1053
- start_index = index
1054
- if node_cache[:qname].has_key?(index)
1055
- cached = node_cache[:qname][index]
1056
- @index = cached.interval.end if cached
1057
- return cached
1058
- end
1059
-
1060
- i0 = index
1061
- i1, s1 = index, []
1062
- r2 = _nt_nprefix
1063
- s1 << r2
1064
- if r2
1065
- if has_terminal?(":", false, index)
1066
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1067
- @index += 1
1068
- else
1069
- terminal_parse_failure(":")
1070
- r3 = nil
1071
- end
1072
- s1 << r3
1073
- if r3
1074
- r4 = _nt_localname
1075
- s1 << r4
1076
- end
1077
- end
1078
- if s1.last
1079
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
1080
- r1.extend(Qname0)
1081
- else
1082
- @index = i1
1083
- r1 = nil
1084
- end
1085
- if r1
1086
- r0 = r1
1087
- else
1088
- i5, s5 = index, []
1089
- if has_terminal?(':', false, index)
1090
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1091
- @index += 1
1092
- else
1093
- terminal_parse_failure(':')
1094
- r6 = nil
1095
- end
1096
- s5 << r6
1097
- if r6
1098
- r7 = _nt_localname
1099
- s5 << r7
1100
- end
1101
- if s5.last
1102
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
1103
- r5.extend(Qname1)
1104
- else
1105
- @index = i5
1106
- r5 = nil
1107
- end
1108
- if r5
1109
- r0 = r5
1110
- else
1111
- @index = i0
1112
- r0 = nil
1113
- end
1114
- end
1115
-
1116
- node_cache[:qname][start_index] = r0
1117
-
1118
- r0
1119
- end
1120
-
1121
- def _nt_object
1122
- start_index = index
1123
- if node_cache[:object].has_key?(index)
1124
- cached = node_cache[:object][index]
1125
- @index = cached.interval.end if cached
1126
- return cached
1127
- end
1128
-
1129
- i0 = index
1130
- r1 = _nt_subject
1131
- if r1
1132
- r0 = r1
1133
- else
1134
- r2 = _nt_literal
1135
- if r2
1136
- r0 = r2
1137
- else
1138
- @index = i0
1139
- r0 = nil
1140
- end
1141
- end
1142
-
1143
- node_cache[:object][start_index] = r0
1144
-
1145
- r0
1146
- end
1147
-
1148
- module Literal0
1149
- def uri
1150
- elements[1]
1151
- end
1152
-
1153
- end
1154
-
1155
- module Literal1
1156
- def language
1157
- elements[1]
1158
- end
1159
- end
1160
-
1161
- module Literal2
1162
- end
1163
-
1164
- def _nt_literal
1165
- start_index = index
1166
- if node_cache[:literal].has_key?(index)
1167
- cached = node_cache[:literal][index]
1168
- @index = cached.interval.end if cached
1169
- return cached
1170
- end
1171
-
1172
- i0, s0 = index, []
1173
- i1 = index
1174
- r2 = _nt_string_single
1175
- if r2
1176
- r1 = r2
1177
- else
1178
- r3 = _nt_string_multi
1179
- if r3
1180
- r1 = r3
1181
- else
1182
- @index = i1
1183
- r1 = nil
1184
- end
1185
- end
1186
- s0 << r1
1187
- if r1
1188
- i5 = index
1189
- i6, s6 = index, []
1190
- if has_terminal?("^^<", false, index)
1191
- r7 = instantiate_node(SyntaxNode,input, index...(index + 3))
1192
- @index += 3
1193
- else
1194
- terminal_parse_failure("^^<")
1195
- r7 = nil
1196
- end
1197
- s6 << r7
1198
- if r7
1199
- r8 = _nt_URI_Reference
1200
- s6 << r8
1201
- if r8
1202
- if has_terminal?(">", false, index)
1203
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1204
- @index += 1
1205
- else
1206
- terminal_parse_failure(">")
1207
- r9 = nil
1208
- end
1209
- s6 << r9
1210
- end
1211
- end
1212
- if s6.last
1213
- r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
1214
- r6.extend(Literal0)
1215
- else
1216
- @index = i6
1217
- r6 = nil
1218
- end
1219
- if r6
1220
- r5 = r6
1221
- else
1222
- i10, s10 = index, []
1223
- if has_terminal?("@", false, index)
1224
- r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
1225
- @index += 1
1226
- else
1227
- terminal_parse_failure("@")
1228
- r11 = nil
1229
- end
1230
- s10 << r11
1231
- if r11
1232
- r12 = _nt_language
1233
- s10 << r12
1234
- end
1235
- if s10.last
1236
- r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
1237
- r10.extend(Literal1)
1238
- else
1239
- @index = i10
1240
- r10 = nil
1241
- end
1242
- if r10
1243
- r5 = r10
1244
- else
1245
- @index = i5
1246
- r5 = nil
1247
- end
1248
- end
1249
- if r5
1250
- r4 = r5
1251
- else
1252
- r4 = instantiate_node(SyntaxNode,input, index...index)
1253
- end
1254
- s0 << r4
1255
- end
1256
- if s0.last
1257
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1258
- r0.extend(Literal2)
1259
- else
1260
- @index = i0
1261
- r0 = nil
1262
- end
1263
-
1264
- node_cache[:literal][start_index] = r0
1265
-
1266
- r0
1267
- end
1268
-
1269
- module Language0
1270
- end
1271
-
1272
- module Language1
1273
- end
1274
-
1275
- def _nt_language
1276
- start_index = index
1277
- if node_cache[:language].has_key?(index)
1278
- cached = node_cache[:language][index]
1279
- @index = cached.interval.end if cached
1280
- return cached
1281
- end
1282
-
1283
- i0, s0 = index, []
1284
- s1, i1 = [], index
1285
- loop do
1286
- if has_terminal?('\G[a-z]', true, index)
1287
- r2 = true
1288
- @index += 1
1289
- else
1290
- r2 = nil
1291
- end
1292
- if r2
1293
- s1 << r2
1294
- else
1295
- break
1296
- end
1297
- end
1298
- if s1.empty?
1299
- @index = i1
1300
- r1 = nil
1301
- else
1302
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
1303
- end
1304
- s0 << r1
1305
- if r1
1306
- s3, i3 = [], index
1307
- loop do
1308
- i4, s4 = index, []
1309
- if has_terminal?("-", false, index)
1310
- r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
1311
- @index += 1
1312
- else
1313
- terminal_parse_failure("-")
1314
- r5 = nil
1315
- end
1316
- s4 << r5
1317
- if r5
1318
- s6, i6 = [], index
1319
- loop do
1320
- if has_terminal?('\G[a-z0-9]', true, index)
1321
- r7 = true
1322
- @index += 1
1323
- else
1324
- r7 = nil
1325
- end
1326
- if r7
1327
- s6 << r7
1328
- else
1329
- break
1330
- end
1331
- end
1332
- if s6.empty?
1333
- @index = i6
1334
- r6 = nil
1335
- else
1336
- r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
1337
- end
1338
- s4 << r6
1339
- end
1340
- if s4.last
1341
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
1342
- r4.extend(Language0)
1343
- else
1344
- @index = i4
1345
- r4 = nil
1346
- end
1347
- if r4
1348
- s3 << r4
1349
- else
1350
- break
1351
- end
1352
- end
1353
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
1354
- s0 << r3
1355
- end
1356
- if s0.last
1357
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1358
- r0.extend(Language1)
1359
- else
1360
- @index = i0
1361
- r0 = nil
1362
- end
1363
-
1364
- node_cache[:language][start_index] = r0
1365
-
1366
- r0
1367
- end
1368
-
1369
- def _nt_localname
1370
- start_index = index
1371
- if node_cache[:localname].has_key?(index)
1372
- cached = node_cache[:localname][index]
1373
- @index = cached.interval.end if cached
1374
- return cached
1375
- end
1376
-
1377
- r0 = _nt_fragid
1378
-
1379
- node_cache[:localname][start_index] = r0
1380
-
1381
- r0
1382
- end
1383
-
1384
- def _nt_URI_Reference
1385
- start_index = index
1386
- if node_cache[:URI_Reference].has_key?(index)
1387
- cached = node_cache[:URI_Reference][index]
1388
- @index = cached.interval.end if cached
1389
- return cached
1390
- end
1391
-
1392
- s0, i0 = [], index
1393
- loop do
1394
- if has_terminal?('\G[^{}<>]', true, index)
1395
- r1 = true
1396
- @index += 1
1397
- else
1398
- r1 = nil
1399
- end
1400
- if r1
1401
- s0 << r1
1402
- else
1403
- break
1404
- end
1405
- end
1406
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1407
-
1408
- node_cache[:URI_Reference][start_index] = r0
1409
-
1410
- r0
1411
- end
1412
-
1413
- module Nprefix0
1414
- end
1415
-
1416
- def _nt_nprefix
1417
- start_index = index
1418
- if node_cache[:nprefix].has_key?(index)
1419
- cached = node_cache[:nprefix][index]
1420
- @index = cached.interval.end if cached
1421
- return cached
1422
- end
1423
-
1424
- i0, s0 = index, []
1425
- i1 = index
1426
- r2 = _nt_alpha
1427
- if r2
1428
- r1 = r2
1429
- else
1430
- if has_terminal?("_", false, index)
1431
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1432
- @index += 1
1433
- else
1434
- terminal_parse_failure("_")
1435
- r3 = nil
1436
- end
1437
- if r3
1438
- r1 = r3
1439
- else
1440
- @index = i1
1441
- r1 = nil
1442
- end
1443
- end
1444
- s0 << r1
1445
- if r1
1446
- s4, i4 = [], index
1447
- loop do
1448
- r5 = _nt_alphanumeric
1449
- if r5
1450
- s4 << r5
1451
- else
1452
- break
1453
- end
1454
- end
1455
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
1456
- s0 << r4
1457
- end
1458
- if s0.last
1459
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1460
- r0.extend(Nprefix0)
1461
- else
1462
- @index = i0
1463
- r0 = nil
1464
- end
1465
-
1466
- node_cache[:nprefix][start_index] = r0
1467
-
1468
- r0
1469
- end
1470
-
1471
- module Fragid0
1472
- def alpha
1473
- elements[0]
1474
- end
1475
-
1476
- end
1477
-
1478
- def _nt_fragid
1479
- start_index = index
1480
- if node_cache[:fragid].has_key?(index)
1481
- cached = node_cache[:fragid][index]
1482
- @index = cached.interval.end if cached
1483
- return cached
1484
- end
1485
-
1486
- i0, s0 = index, []
1487
- r1 = _nt_alpha
1488
- s0 << r1
1489
- if r1
1490
- s2, i2 = [], index
1491
- loop do
1492
- r3 = _nt_alphanumeric
1493
- if r3
1494
- s2 << r3
1495
- else
1496
- break
1497
- end
1498
- end
1499
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1500
- s0 << r2
1501
- end
1502
- if s0.last
1503
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1504
- r0.extend(Fragid0)
1505
- else
1506
- @index = i0
1507
- r0 = nil
1508
- end
1509
-
1510
- node_cache[:fragid][start_index] = r0
1511
-
1512
- r0
1513
- end
1514
-
1515
- def _nt_alpha
1516
- start_index = index
1517
- if node_cache[:alpha].has_key?(index)
1518
- cached = node_cache[:alpha][index]
1519
- @index = cached.interval.end if cached
1520
- return cached
1521
- end
1522
-
1523
- if has_terminal?('\G[a-zA-Z]', true, index)
1524
- r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
1525
- @index += 1
1526
- else
1527
- r0 = nil
1528
- end
1529
-
1530
- node_cache[:alpha][start_index] = r0
1531
-
1532
- r0
1533
- end
1534
-
1535
- def _nt_alphanumeric
1536
- start_index = index
1537
- if node_cache[:alphanumeric].has_key?(index)
1538
- cached = node_cache[:alphanumeric][index]
1539
- @index = cached.interval.end if cached
1540
- return cached
1541
- end
1542
-
1543
- i0 = index
1544
- r1 = _nt_alpha
1545
- if r1
1546
- r0 = r1
1547
- else
1548
- if has_terminal?('\G[0-9]', true, index)
1549
- r2 = true
1550
- @index += 1
1551
- else
1552
- r2 = nil
1553
- end
1554
- if r2
1555
- r0 = r2
1556
- else
1557
- if has_terminal?("_", false, index)
1558
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1559
- @index += 1
1560
- else
1561
- terminal_parse_failure("_")
1562
- r3 = nil
1563
- end
1564
- if r3
1565
- r0 = r3
1566
- else
1567
- @index = i0
1568
- r0 = nil
1569
- end
1570
- end
1571
- end
1572
-
1573
- node_cache[:alphanumeric][start_index] = r0
1574
-
1575
- r0
1576
- end
1577
-
1578
- def _nt_space
1579
- start_index = index
1580
- if node_cache[:space].has_key?(index)
1581
- cached = node_cache[:space][index]
1582
- @index = cached.interval.end if cached
1583
- return cached
1584
- end
1585
-
1586
- i0 = index
1587
- s1, i1 = [], index
1588
- loop do
1589
- if has_terminal?('\G[ \\t\\n\\r]', true, index)
1590
- r2 = true
1591
- @index += 1
1592
- else
1593
- r2 = nil
1594
- end
1595
- if r2
1596
- s1 << r2
1597
- else
1598
- break
1599
- end
1600
- end
1601
- if s1.empty?
1602
- @index = i1
1603
- r1 = nil
1604
- else
1605
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
1606
- end
1607
- if r1
1608
- r0 = r1
1609
- else
1610
- r3 = _nt_comment
1611
- if r3
1612
- r0 = r3
1613
- else
1614
- @index = i0
1615
- r0 = nil
1616
- end
1617
- end
1618
-
1619
- node_cache[:space][start_index] = r0
1620
-
1621
- r0
1622
- end
1623
-
1624
- module Comment0
1625
- end
1626
-
1627
- module Comment1
1628
- end
1629
-
1630
- def _nt_comment
1631
- start_index = index
1632
- if node_cache[:comment].has_key?(index)
1633
- cached = node_cache[:comment][index]
1634
- @index = cached.interval.end if cached
1635
- return cached
1636
- end
1637
-
1638
- i0, s0 = index, []
1639
- if has_terminal?('#', false, index)
1640
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1641
- @index += 1
1642
- else
1643
- terminal_parse_failure('#')
1644
- r1 = nil
1645
- end
1646
- s0 << r1
1647
- if r1
1648
- s2, i2 = [], index
1649
- loop do
1650
- i3, s3 = index, []
1651
- i4 = index
1652
- if has_terminal?('\G[\\n\\r]', true, index)
1653
- r5 = true
1654
- @index += 1
1655
- else
1656
- r5 = nil
1657
- end
1658
- if r5
1659
- r4 = nil
1660
- else
1661
- @index = i4
1662
- r4 = instantiate_node(SyntaxNode,input, index...index)
1663
- end
1664
- s3 << r4
1665
- if r4
1666
- if index < input_length
1667
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1668
- @index += 1
1669
- else
1670
- terminal_parse_failure("any character")
1671
- r6 = nil
1672
- end
1673
- s3 << r6
1674
- end
1675
- if s3.last
1676
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
1677
- r3.extend(Comment0)
1678
- else
1679
- @index = i3
1680
- r3 = nil
1681
- end
1682
- if r3
1683
- s2 << r3
1684
- else
1685
- break
1686
- end
1687
- end
1688
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1689
- s0 << r2
1690
- end
1691
- if s0.last
1692
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1693
- r0.extend(Comment1)
1694
- else
1695
- @index = i0
1696
- r0 = nil
1697
- end
1698
-
1699
- node_cache[:comment][start_index] = r0
1700
-
1701
- r0
1702
- end
1703
-
1704
- module StringSingle0
1705
- end
1706
-
1707
- module StringSingle1
1708
- end
1709
-
1710
- def _nt_string_single
1711
- start_index = index
1712
- if node_cache[:string_single].has_key?(index)
1713
- cached = node_cache[:string_single][index]
1714
- @index = cached.interval.end if cached
1715
- return cached
1716
- end
1717
-
1718
- i0 = index
1719
- i1, s1 = index, []
1720
- if has_terminal?('""', false, index)
1721
- r2 = instantiate_node(SyntaxNode,input, index...(index + 2))
1722
- @index += 2
1723
- else
1724
- terminal_parse_failure('""')
1725
- r2 = nil
1726
- end
1727
- s1 << r2
1728
- if r2
1729
- i3 = index
1730
- if has_terminal?('\G["]', true, index)
1731
- r4 = true
1732
- @index += 1
1733
- else
1734
- r4 = nil
1735
- end
1736
- if r4
1737
- r3 = nil
1738
- else
1739
- @index = i3
1740
- r3 = instantiate_node(SyntaxNode,input, index...index)
1741
- end
1742
- s1 << r3
1743
- end
1744
- if s1.last
1745
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
1746
- r1.extend(StringSingle0)
1747
- else
1748
- @index = i1
1749
- r1 = nil
1750
- end
1751
- if r1
1752
- r0 = r1
1753
- else
1754
- i5, s5 = index, []
1755
- if has_terminal?('"', false, index)
1756
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1757
- @index += 1
1758
- else
1759
- terminal_parse_failure('"')
1760
- r6 = nil
1761
- end
1762
- s5 << r6
1763
- if r6
1764
- s7, i7 = [], index
1765
- loop do
1766
- r8 = _nt_string_single_char
1767
- if r8
1768
- s7 << r8
1769
- else
1770
- break
1771
- end
1772
- end
1773
- if s7.empty?
1774
- @index = i7
1775
- r7 = nil
1776
- else
1777
- r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
1778
- end
1779
- s5 << r7
1780
- if r7
1781
- if has_terminal?('"', false, index)
1782
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1783
- @index += 1
1784
- else
1785
- terminal_parse_failure('"')
1786
- r9 = nil
1787
- end
1788
- s5 << r9
1789
- end
1790
- end
1791
- if s5.last
1792
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
1793
- r5.extend(StringSingle1)
1794
- else
1795
- @index = i5
1796
- r5 = nil
1797
- end
1798
- if r5
1799
- r0 = r5
1800
- else
1801
- @index = i0
1802
- r0 = nil
1803
- end
1804
- end
1805
-
1806
- node_cache[:string_single][start_index] = r0
1807
-
1808
- r0
1809
- end
1810
-
1811
- module StringSingleChar0
1812
- end
1813
-
1814
- module StringSingleChar1
1815
- def hexdigit1
1816
- elements[1]
1817
- end
1818
-
1819
- def hexdigit2
1820
- elements[2]
1821
- end
1822
-
1823
- def hexdigit3
1824
- elements[3]
1825
- end
1826
-
1827
- def hexdigit4
1828
- elements[4]
1829
- end
1830
- end
1831
-
1832
- module StringSingleChar2
1833
- def hexdigit1
1834
- elements[2]
1835
- end
1836
-
1837
- def hexdigit2
1838
- elements[3]
1839
- end
1840
-
1841
- def hexdigit3
1842
- elements[4]
1843
- end
1844
-
1845
- def hexdigit4
1846
- elements[5]
1847
- end
1848
-
1849
- def hexdigit5
1850
- elements[6]
1851
- end
1852
-
1853
- def hexdigit6
1854
- elements[7]
1855
- end
1856
- end
1857
-
1858
- module StringSingleChar3
1859
- end
1860
-
1861
- def _nt_string_single_char
1862
- start_index = index
1863
- if node_cache[:string_single_char].has_key?(index)
1864
- cached = node_cache[:string_single_char][index]
1865
- @index = cached.interval.end if cached
1866
- return cached
1867
- end
1868
-
1869
- i0, s0 = index, []
1870
- i1 = index
1871
- if has_terminal?('\G["\\n\\r]', true, index)
1872
- r2 = true
1873
- @index += 1
1874
- else
1875
- r2 = nil
1876
- end
1877
- if r2
1878
- r1 = nil
1879
- else
1880
- @index = i1
1881
- r1 = instantiate_node(SyntaxNode,input, index...index)
1882
- end
1883
- s0 << r1
1884
- if r1
1885
- i3 = index
1886
- i4 = index
1887
- i5, s5 = index, []
1888
- if has_terminal?("\\", false, index)
1889
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1890
- @index += 1
1891
- else
1892
- terminal_parse_failure("\\")
1893
- r6 = nil
1894
- end
1895
- s5 << r6
1896
- if r6
1897
- if has_terminal?('\G[\\\\\\"nrt]', true, index)
1898
- r7 = true
1899
- @index += 1
1900
- else
1901
- r7 = nil
1902
- end
1903
- s5 << r7
1904
- end
1905
- if s5.last
1906
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
1907
- r5.extend(StringSingleChar0)
1908
- else
1909
- @index = i5
1910
- r5 = nil
1911
- end
1912
- if r5
1913
- r4 = r5
1914
- else
1915
- i8, s8 = index, []
1916
- if has_terminal?("u", false, index)
1917
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1918
- @index += 1
1919
- else
1920
- terminal_parse_failure("u")
1921
- r9 = nil
1922
- end
1923
- s8 << r9
1924
- if r9
1925
- r10 = _nt_hexdigit
1926
- s8 << r10
1927
- if r10
1928
- r11 = _nt_hexdigit
1929
- s8 << r11
1930
- if r11
1931
- r12 = _nt_hexdigit
1932
- s8 << r12
1933
- if r12
1934
- r13 = _nt_hexdigit
1935
- s8 << r13
1936
- end
1937
- end
1938
- end
1939
- end
1940
- if s8.last
1941
- r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
1942
- r8.extend(StringSingleChar1)
1943
- else
1944
- @index = i8
1945
- r8 = nil
1946
- end
1947
- if r8
1948
- r4 = r8
1949
- else
1950
- i14, s14 = index, []
1951
- if has_terminal?("U", false, index)
1952
- r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
1953
- @index += 1
1954
- else
1955
- terminal_parse_failure("U")
1956
- r15 = nil
1957
- end
1958
- s14 << r15
1959
- if r15
1960
- if has_terminal?("00", false, index)
1961
- r16 = instantiate_node(SyntaxNode,input, index...(index + 2))
1962
- @index += 2
1963
- else
1964
- terminal_parse_failure("00")
1965
- r16 = nil
1966
- end
1967
- s14 << r16
1968
- if r16
1969
- r17 = _nt_hexdigit
1970
- s14 << r17
1971
- if r17
1972
- r18 = _nt_hexdigit
1973
- s14 << r18
1974
- if r18
1975
- r19 = _nt_hexdigit
1976
- s14 << r19
1977
- if r19
1978
- r20 = _nt_hexdigit
1979
- s14 << r20
1980
- if r20
1981
- r21 = _nt_hexdigit
1982
- s14 << r21
1983
- if r21
1984
- r22 = _nt_hexdigit
1985
- s14 << r22
1986
- end
1987
- end
1988
- end
1989
- end
1990
- end
1991
- end
1992
- end
1993
- if s14.last
1994
- r14 = instantiate_node(SyntaxNode,input, i14...index, s14)
1995
- r14.extend(StringSingleChar2)
1996
- else
1997
- @index = i14
1998
- r14 = nil
1999
- end
2000
- if r14
2001
- r4 = r14
2002
- else
2003
- @index = i4
2004
- r4 = nil
2005
- end
2006
- end
2007
- end
2008
- if r4
2009
- r3 = r4
2010
- else
2011
- if index < input_length
2012
- r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
2013
- @index += 1
2014
- else
2015
- terminal_parse_failure("any character")
2016
- r23 = nil
2017
- end
2018
- if r23
2019
- r3 = r23
2020
- else
2021
- @index = i3
2022
- r3 = nil
2023
- end
2024
- end
2025
- s0 << r3
2026
- end
2027
- if s0.last
2028
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2029
- r0.extend(StringSingleChar3)
2030
- else
2031
- @index = i0
2032
- r0 = nil
2033
- end
2034
-
2035
- node_cache[:string_single_char][start_index] = r0
2036
-
2037
- r0
2038
- end
2039
-
2040
- def _nt_hexdigit
2041
- start_index = index
2042
- if node_cache[:hexdigit].has_key?(index)
2043
- cached = node_cache[:hexdigit][index]
2044
- @index = cached.interval.end if cached
2045
- return cached
2046
- end
2047
-
2048
- if has_terminal?('\G[0-9a-fA-F]', true, index)
2049
- r0 = instantiate_node(SyntaxNode,input, index...(index + 1))
2050
- @index += 1
2051
- else
2052
- r0 = nil
2053
- end
2054
-
2055
- node_cache[:hexdigit][start_index] = r0
2056
-
2057
- r0
2058
- end
2059
-
2060
- module StringMulti0
2061
- end
2062
-
2063
- def _nt_string_multi
2064
- start_index = index
2065
- if node_cache[:string_multi].has_key?(index)
2066
- cached = node_cache[:string_multi][index]
2067
- @index = cached.interval.end if cached
2068
- return cached
2069
- end
2070
-
2071
- i0, s0 = index, []
2072
- if has_terminal?('"""', false, index)
2073
- r1 = instantiate_node(SyntaxNode,input, index...(index + 3))
2074
- @index += 3
2075
- else
2076
- terminal_parse_failure('"""')
2077
- r1 = nil
2078
- end
2079
- s0 << r1
2080
- if r1
2081
- s2, i2 = [], index
2082
- loop do
2083
- r3 = _nt_string_multi_char
2084
- if r3
2085
- s2 << r3
2086
- else
2087
- break
2088
- end
2089
- end
2090
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2091
- s0 << r2
2092
- if r2
2093
- if has_terminal?('"""', false, index)
2094
- r4 = instantiate_node(SyntaxNode,input, index...(index + 3))
2095
- @index += 3
2096
- else
2097
- terminal_parse_failure('"""')
2098
- r4 = nil
2099
- end
2100
- s0 << r4
2101
- end
2102
- end
2103
- if s0.last
2104
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2105
- r0.extend(StringMulti0)
2106
- else
2107
- @index = i0
2108
- r0 = nil
2109
- end
2110
-
2111
- node_cache[:string_multi][start_index] = r0
2112
-
2113
- r0
2114
- end
2115
-
2116
- module StringMultiChar0
2117
- end
2118
-
2119
- def _nt_string_multi_char
2120
- start_index = index
2121
- if node_cache[:string_multi_char].has_key?(index)
2122
- cached = node_cache[:string_multi_char][index]
2123
- @index = cached.interval.end if cached
2124
- return cached
2125
- end
2126
-
2127
- i0, s0 = index, []
2128
- i1 = index
2129
- if has_terminal?('"""', false, index)
2130
- r2 = instantiate_node(SyntaxNode,input, index...(index + 3))
2131
- @index += 3
2132
- else
2133
- terminal_parse_failure('"""')
2134
- r2 = nil
2135
- end
2136
- if r2
2137
- r1 = nil
2138
- else
2139
- @index = i1
2140
- r1 = instantiate_node(SyntaxNode,input, index...index)
2141
- end
2142
- s0 << r1
2143
- if r1
2144
- if index < input_length
2145
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
2146
- @index += 1
2147
- else
2148
- terminal_parse_failure("any character")
2149
- r3 = nil
2150
- end
2151
- s0 << r3
2152
- end
2153
- if s0.last
2154
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2155
- r0.extend(StringMultiChar0)
2156
- else
2157
- @index = i0
2158
- r0 = nil
2159
- end
2160
-
2161
- node_cache[:string_multi_char][start_index] = r0
2162
-
2163
- r0
2164
- end
2165
-
2166
- end
2167
-
2168
- class N3GrammerParser < Treetop::Runtime::CompiledParser
2169
- include N3Grammer
2170
- end
2171
-