gkellogg-reddy 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) hide show
  1. data/.autotest +2 -0
  2. data/.gitignore +9 -0
  3. data/.gitmodules +3 -0
  4. data/History.txt +66 -0
  5. data/README.rdoc +107 -0
  6. data/Rakefile +96 -0
  7. data/VERSION +1 -0
  8. data/bin/reddy +59 -0
  9. data/lib/reddy.rb +62 -0
  10. data/lib/reddy/bnode.rb +101 -0
  11. data/lib/reddy/conjunctive_graph.rb +47 -0
  12. data/lib/reddy/exceptions.rb +11 -0
  13. data/lib/reddy/graph.rb +327 -0
  14. data/lib/reddy/literal.rb +340 -0
  15. data/lib/reddy/n3_grammar.rb +2171 -0
  16. data/lib/reddy/n3_grammar.treetop +143 -0
  17. data/lib/reddy/n3parser.rb +151 -0
  18. data/lib/reddy/namespace.rb +82 -0
  19. data/lib/reddy/nokogiri_hacks.rb +8 -0
  20. data/lib/reddy/parser.rb +127 -0
  21. data/lib/reddy/rdfaparser.rb +398 -0
  22. data/lib/reddy/rdfxmlparser.rb +529 -0
  23. data/lib/reddy/store/abstract_store.rb +64 -0
  24. data/lib/reddy/store/list_store.rb +61 -0
  25. data/lib/reddy/store/memory_store.rb +349 -0
  26. data/lib/reddy/string_hacks.rb +108 -0
  27. data/lib/reddy/triple.rb +144 -0
  28. data/lib/reddy/uriref.rb +95 -0
  29. data/script/console +10 -0
  30. data/spec/bnode_spec.rb +58 -0
  31. data/spec/conjunctive_graph_spec.rb +59 -0
  32. data/spec/graph_spec.rb +390 -0
  33. data/spec/literal_spec.rb +314 -0
  34. data/spec/matchers.rb +148 -0
  35. data/spec/n3parser_spec.rb +229 -0
  36. data/spec/namespaces_spec.rb +66 -0
  37. data/spec/ntriples/test.nt +78 -0
  38. data/spec/parser_spec.rb +29 -0
  39. data/spec/rdfa-triples/0001.nt +1 -0
  40. data/spec/rdfa-triples/0006.nt +2 -0
  41. data/spec/rdfa-triples/0007.nt +3 -0
  42. data/spec/rdfa-triples/0008.nt +1 -0
  43. data/spec/rdfa-triples/0009.nt +1 -0
  44. data/spec/rdfa-triples/0010.nt +2 -0
  45. data/spec/rdfa-triples/0011.nt +3 -0
  46. data/spec/rdfa-triples/0012.nt +1 -0
  47. data/spec/rdfa-triples/0013.nt +1 -0
  48. data/spec/rdfa-triples/0014.nt +1 -0
  49. data/spec/rdfa-triples/0015.nt +2 -0
  50. data/spec/rdfa-triples/0017.nt +3 -0
  51. data/spec/rdfa-triples/0018.nt +1 -0
  52. data/spec/rdfa-triples/0019.nt +1 -0
  53. data/spec/rdfa-triples/0020.nt +1 -0
  54. data/spec/rdfa-triples/0021.nt +1 -0
  55. data/spec/rdfa-triples/0023.nt +1 -0
  56. data/spec/rdfa-triples/0025.nt +2 -0
  57. data/spec/rdfa-triples/0026.nt +1 -0
  58. data/spec/rdfa-triples/0027.nt +1 -0
  59. data/spec/rdfa-triples/0029.nt +1 -0
  60. data/spec/rdfa-triples/0030.nt +1 -0
  61. data/spec/rdfa-triples/0031.nt +1 -0
  62. data/spec/rdfa-triples/0032.nt +1 -0
  63. data/spec/rdfa-triples/0033.nt +2 -0
  64. data/spec/rdfa-triples/0034.nt +1 -0
  65. data/spec/rdfa-triples/0035.nt +1 -0
  66. data/spec/rdfa-triples/0036.nt +1 -0
  67. data/spec/rdfa-triples/0037.nt +1 -0
  68. data/spec/rdfa-triples/0038.nt +1 -0
  69. data/spec/rdfa-triples/0039.nt +1 -0
  70. data/spec/rdfa-triples/0040.nt +1 -0
  71. data/spec/rdfa-triples/0041.nt +1 -0
  72. data/spec/rdfa-triples/0042.nt +0 -0
  73. data/spec/rdfa-triples/0046.nt +3 -0
  74. data/spec/rdfa-triples/0047.nt +3 -0
  75. data/spec/rdfa-triples/0048.nt +3 -0
  76. data/spec/rdfa-triples/0049.nt +2 -0
  77. data/spec/rdfa-triples/0050.nt +2 -0
  78. data/spec/rdfa-triples/0051.nt +2 -0
  79. data/spec/rdfa-triples/0052.nt +1 -0
  80. data/spec/rdfa-triples/0053.nt +2 -0
  81. data/spec/rdfa-triples/0054.nt +2 -0
  82. data/spec/rdfa-triples/0055.nt +2 -0
  83. data/spec/rdfa-triples/0056.nt +3 -0
  84. data/spec/rdfa-triples/0057.nt +4 -0
  85. data/spec/rdfa-triples/0058.nt +6 -0
  86. data/spec/rdfa-triples/0059.nt +6 -0
  87. data/spec/rdfa-triples/0060.nt +2 -0
  88. data/spec/rdfa-triples/0061.nt +1 -0
  89. data/spec/rdfa-triples/0062.nt +1 -0
  90. data/spec/rdfa-triples/0063.nt +1 -0
  91. data/spec/rdfa-triples/0064.nt +1 -0
  92. data/spec/rdfa-triples/0065.nt +3 -0
  93. data/spec/rdfa-triples/0066.nt +1 -0
  94. data/spec/rdfa-triples/0067.nt +1 -0
  95. data/spec/rdfa-triples/0068.nt +1 -0
  96. data/spec/rdfa-triples/0069.nt +1 -0
  97. data/spec/rdfa-triples/0070.nt +1 -0
  98. data/spec/rdfa-triples/0071.nt +1 -0
  99. data/spec/rdfa-triples/0072.nt +1 -0
  100. data/spec/rdfa-triples/0073.nt +1 -0
  101. data/spec/rdfa-triples/0074.nt +1 -0
  102. data/spec/rdfa-triples/0075.nt +1 -0
  103. data/spec/rdfa-triples/0076.nt +23 -0
  104. data/spec/rdfa-triples/0077.nt +23 -0
  105. data/spec/rdfa-triples/0078.nt +6 -0
  106. data/spec/rdfa-triples/0079.nt +3 -0
  107. data/spec/rdfa-triples/0080.nt +1 -0
  108. data/spec/rdfa-triples/0081.nt +6 -0
  109. data/spec/rdfa-triples/0082.nt +8 -0
  110. data/spec/rdfa-triples/0083.nt +6 -0
  111. data/spec/rdfa-triples/0084.nt +8 -0
  112. data/spec/rdfa-triples/0085.nt +4 -0
  113. data/spec/rdfa-triples/0086.nt +0 -0
  114. data/spec/rdfa-triples/0087.nt +23 -0
  115. data/spec/rdfa-triples/0088.nt +3 -0
  116. data/spec/rdfa-triples/0089.nt +1 -0
  117. data/spec/rdfa-triples/0090.nt +1 -0
  118. data/spec/rdfa-triples/0091.nt +3 -0
  119. data/spec/rdfa-triples/0092.nt +3 -0
  120. data/spec/rdfa-triples/0093.nt +2 -0
  121. data/spec/rdfa-triples/0094.nt +3 -0
  122. data/spec/rdfa-triples/0099.nt +1 -0
  123. data/spec/rdfa-triples/0100.nt +3 -0
  124. data/spec/rdfa-triples/0101.nt +3 -0
  125. data/spec/rdfa-triples/0102.nt +1 -0
  126. data/spec/rdfa-triples/0103.nt +1 -0
  127. data/spec/rdfa-triples/0104.nt +3 -0
  128. data/spec/rdfa-triples/0105.nt +1 -0
  129. data/spec/rdfa-triples/0106.nt +1 -0
  130. data/spec/rdfa-triples/0107.nt +0 -0
  131. data/spec/rdfa-triples/0108.nt +1 -0
  132. data/spec/rdfa-triples/0109.nt +1 -0
  133. data/spec/rdfa-triples/0110.nt +1 -0
  134. data/spec/rdfa-triples/0111.nt +2 -0
  135. data/spec/rdfa-triples/0112.nt +1 -0
  136. data/spec/rdfa-triples/0113.nt +2 -0
  137. data/spec/rdfa-triples/0114.nt +3 -0
  138. data/spec/rdfa-triples/0115.nt +4 -0
  139. data/spec/rdfa-triples/0116.nt +2 -0
  140. data/spec/rdfa-triples/0117.nt +2 -0
  141. data/spec/rdfa-triples/0118.nt +1 -0
  142. data/spec/rdfa-triples/0119.nt +1 -0
  143. data/spec/rdfa-triples/0120.nt +1 -0
  144. data/spec/rdfa-triples/0121.nt +2 -0
  145. data/spec/rdfa-triples/0122.nt +1 -0
  146. data/spec/rdfa-triples/0123.nt +3 -0
  147. data/spec/rdfa-triples/0124.nt +4 -0
  148. data/spec/rdfa-triples/0125.nt +1 -0
  149. data/spec/rdfa-triples/0126.nt +3 -0
  150. data/spec/rdfa-triples/1001.nt +6 -0
  151. data/spec/rdfa_helper.rb +189 -0
  152. data/spec/rdfa_parser_spec.rb +130 -0
  153. data/spec/rdfcore/Manifest.rdf +5395 -0
  154. data/spec/rdfcore/amp-in-url/test001.nt +16 -0
  155. data/spec/rdfcore/amp-in-url/test001.rdf +40 -0
  156. data/spec/rdfcore/datatypes-intensional/test001.nt +18 -0
  157. data/spec/rdfcore/datatypes-intensional/test002.nt +18 -0
  158. data/spec/rdfcore/datatypes/test001.nt +15 -0
  159. data/spec/rdfcore/datatypes/test001.rdf +29 -0
  160. data/spec/rdfcore/datatypes/test002.nt +14 -0
  161. data/spec/rdfcore/datatypes/test002.rdf +27 -0
  162. data/spec/rdfcore/datatypes/test002b.nt +17 -0
  163. data/spec/rdfcore/datatypes/test003a.nt +16 -0
  164. data/spec/rdfcore/datatypes/test003b.nt +16 -0
  165. data/spec/rdfcore/datatypes/test005a.nt +16 -0
  166. data/spec/rdfcore/datatypes/test005b.nt +16 -0
  167. data/spec/rdfcore/datatypes/test006.nt +17 -0
  168. data/spec/rdfcore/datatypes/test008a.nt +15 -0
  169. data/spec/rdfcore/datatypes/test008b.nt +15 -0
  170. data/spec/rdfcore/datatypes/test009a.nt +15 -0
  171. data/spec/rdfcore/datatypes/test009b.nt +15 -0
  172. data/spec/rdfcore/datatypes/test010.nt +17 -0
  173. data/spec/rdfcore/datatypes/test011a.nt +17 -0
  174. data/spec/rdfcore/datatypes/test011b.nt +17 -0
  175. data/spec/rdfcore/horst-01/test001.rdf +38 -0
  176. data/spec/rdfcore/horst-01/test002.rdf +39 -0
  177. data/spec/rdfcore/horst-01/test003.rdf +40 -0
  178. data/spec/rdfcore/horst-01/test004.rdf +42 -0
  179. data/spec/rdfcore/pfps-10/test001a.nt +14 -0
  180. data/spec/rdfcore/pfps-10/test001b.nt +15 -0
  181. data/spec/rdfcore/rdf-charmod-literals/test001.nt +15 -0
  182. data/spec/rdfcore/rdf-charmod-literals/test001.rdf +34 -0
  183. data/spec/rdfcore/rdf-charmod-uris/test001.nt +14 -0
  184. data/spec/rdfcore/rdf-charmod-uris/test001.rdf +34 -0
  185. data/spec/rdfcore/rdf-charmod-uris/test002.nt +15 -0
  186. data/spec/rdfcore/rdf-charmod-uris/test002.rdf +33 -0
  187. data/spec/rdfcore/rdf-containers-syntax-vs-schema/error001.rdf +27 -0
  188. data/spec/rdfcore/rdf-containers-syntax-vs-schema/error002.rdf +34 -0
  189. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test001.nt +17 -0
  190. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test001.rdf +27 -0
  191. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test002.nt +19 -0
  192. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test002.rdf +37 -0
  193. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test003.nt +18 -0
  194. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test003.rdf +29 -0
  195. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test004.nt +29 -0
  196. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test004.rdf +33 -0
  197. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test006.nt +40 -0
  198. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test006.rdf +28 -0
  199. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test007.nt +20 -0
  200. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test007.rdf +32 -0
  201. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test008.nt +15 -0
  202. data/spec/rdfcore/rdf-containers-syntax-vs-schema/test008.rdf +28 -0
  203. data/spec/rdfcore/rdf-element-not-mandatory/test001.nt +10 -0
  204. data/spec/rdfcore/rdf-element-not-mandatory/test001.rdf +14 -0
  205. data/spec/rdfcore/rdf-ns-prefix-confusion/test0001.nt +14 -0
  206. data/spec/rdfcore/rdf-ns-prefix-confusion/test0001.rdf +35 -0
  207. data/spec/rdfcore/rdf-ns-prefix-confusion/test0003.nt +14 -0
  208. data/spec/rdfcore/rdf-ns-prefix-confusion/test0003.rdf +35 -0
  209. data/spec/rdfcore/rdf-ns-prefix-confusion/test0004.nt +14 -0
  210. data/spec/rdfcore/rdf-ns-prefix-confusion/test0004.rdf +34 -0
  211. data/spec/rdfcore/rdf-ns-prefix-confusion/test0005.nt +15 -0
  212. data/spec/rdfcore/rdf-ns-prefix-confusion/test0005.rdf +40 -0
  213. data/spec/rdfcore/rdf-ns-prefix-confusion/test0006.nt +14 -0
  214. data/spec/rdfcore/rdf-ns-prefix-confusion/test0006.rdf +32 -0
  215. data/spec/rdfcore/rdf-ns-prefix-confusion/test0009.nt +14 -0
  216. data/spec/rdfcore/rdf-ns-prefix-confusion/test0009.rdf +32 -0
  217. data/spec/rdfcore/rdf-ns-prefix-confusion/test0010.nt +14 -0
  218. data/spec/rdfcore/rdf-ns-prefix-confusion/test0010.rdf +38 -0
  219. data/spec/rdfcore/rdf-ns-prefix-confusion/test0011.nt +15 -0
  220. data/spec/rdfcore/rdf-ns-prefix-confusion/test0011.rdf +40 -0
  221. data/spec/rdfcore/rdf-ns-prefix-confusion/test0012.nt +15 -0
  222. data/spec/rdfcore/rdf-ns-prefix-confusion/test0012.rdf +40 -0
  223. data/spec/rdfcore/rdf-ns-prefix-confusion/test0013.nt +15 -0
  224. data/spec/rdfcore/rdf-ns-prefix-confusion/test0013.rdf +40 -0
  225. data/spec/rdfcore/rdf-ns-prefix-confusion/test0014.nt +15 -0
  226. data/spec/rdfcore/rdf-ns-prefix-confusion/test0014.rdf +42 -0
  227. data/spec/rdfcore/rdfms-abouteach/error001.rdf +35 -0
  228. data/spec/rdfcore/rdfms-abouteach/error002.rdf +35 -0
  229. data/spec/rdfcore/rdfms-difference-between-ID-and-about/error1.rdf +25 -0
  230. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test1.nt +14 -0
  231. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test1.rdf +22 -0
  232. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test2.nt +14 -0
  233. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test2.rdf +22 -0
  234. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test3.nt +14 -0
  235. data/spec/rdfcore/rdfms-difference-between-ID-and-about/test3.rdf +22 -0
  236. data/spec/rdfcore/rdfms-duplicate-member-props/test001.nt +17 -0
  237. data/spec/rdfcore/rdfms-duplicate-member-props/test001.rdf +30 -0
  238. data/spec/rdfcore/rdfms-empty-property-elements/error001.rdf +33 -0
  239. data/spec/rdfcore/rdfms-empty-property-elements/error002.rdf +33 -0
  240. data/spec/rdfcore/rdfms-empty-property-elements/error003.rdf +39 -0
  241. data/spec/rdfcore/rdfms-empty-property-elements/test001.nt +14 -0
  242. data/spec/rdfcore/rdfms-empty-property-elements/test001.rdf +33 -0
  243. data/spec/rdfcore/rdfms-empty-property-elements/test002.nt +14 -0
  244. data/spec/rdfcore/rdfms-empty-property-elements/test002.rdf +31 -0
  245. data/spec/rdfcore/rdfms-empty-property-elements/test003.nt +14 -0
  246. data/spec/rdfcore/rdfms-empty-property-elements/test003.rdf +32 -0
  247. data/spec/rdfcore/rdfms-empty-property-elements/test004.nt +14 -0
  248. data/spec/rdfcore/rdfms-empty-property-elements/test004.rdf +32 -0
  249. data/spec/rdfcore/rdfms-empty-property-elements/test005.nt +18 -0
  250. data/spec/rdfcore/rdfms-empty-property-elements/test005.rdf +32 -0
  251. data/spec/rdfcore/rdfms-empty-property-elements/test006.nt +18 -0
  252. data/spec/rdfcore/rdfms-empty-property-elements/test006.rdf +32 -0
  253. data/spec/rdfcore/rdfms-empty-property-elements/test007.nt +14 -0
  254. data/spec/rdfcore/rdfms-empty-property-elements/test007.rdf +32 -0
  255. data/spec/rdfcore/rdfms-empty-property-elements/test008.nt +14 -0
  256. data/spec/rdfcore/rdfms-empty-property-elements/test008.rdf +31 -0
  257. data/spec/rdfcore/rdfms-empty-property-elements/test009.nt +14 -0
  258. data/spec/rdfcore/rdfms-empty-property-elements/test009.rdf +32 -0
  259. data/spec/rdfcore/rdfms-empty-property-elements/test010.nt +14 -0
  260. data/spec/rdfcore/rdfms-empty-property-elements/test010.rdf +31 -0
  261. data/spec/rdfcore/rdfms-empty-property-elements/test011.nt +18 -0
  262. data/spec/rdfcore/rdfms-empty-property-elements/test011.rdf +30 -0
  263. data/spec/rdfcore/rdfms-empty-property-elements/test012.nt +18 -0
  264. data/spec/rdfcore/rdfms-empty-property-elements/test012.rdf +30 -0
  265. data/spec/rdfcore/rdfms-empty-property-elements/test013.nt +15 -0
  266. data/spec/rdfcore/rdfms-empty-property-elements/test013.rdf +35 -0
  267. data/spec/rdfcore/rdfms-empty-property-elements/test014.nt +15 -0
  268. data/spec/rdfcore/rdfms-empty-property-elements/test014.rdf +34 -0
  269. data/spec/rdfcore/rdfms-empty-property-elements/test015.nt +15 -0
  270. data/spec/rdfcore/rdfms-empty-property-elements/test015.rdf +38 -0
  271. data/spec/rdfcore/rdfms-empty-property-elements/test016.nt +14 -0
  272. data/spec/rdfcore/rdfms-empty-property-elements/test016.rdf +31 -0
  273. data/spec/rdfcore/rdfms-empty-property-elements/test017.nt +14 -0
  274. data/spec/rdfcore/rdfms-empty-property-elements/test017.rdf +38 -0
  275. data/spec/rdfcore/rdfms-identity-anon-resources/test001.nt +14 -0
  276. data/spec/rdfcore/rdfms-identity-anon-resources/test001.rdf +33 -0
  277. data/spec/rdfcore/rdfms-identity-anon-resources/test002.nt +15 -0
  278. data/spec/rdfcore/rdfms-identity-anon-resources/test002.rdf +33 -0
  279. data/spec/rdfcore/rdfms-identity-anon-resources/test003.nt +14 -0
  280. data/spec/rdfcore/rdfms-identity-anon-resources/test003.rdf +31 -0
  281. data/spec/rdfcore/rdfms-identity-anon-resources/test004.nt +15 -0
  282. data/spec/rdfcore/rdfms-identity-anon-resources/test004.rdf +33 -0
  283. data/spec/rdfcore/rdfms-identity-anon-resources/test005.nt +14 -0
  284. data/spec/rdfcore/rdfms-identity-anon-resources/test005.rdf +31 -0
  285. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test001.nt +19 -0
  286. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test001.rdf +29 -0
  287. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test002.nt +15 -0
  288. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test002.rdf +29 -0
  289. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test004.nt +18 -0
  290. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test004.rdf +29 -0
  291. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test005.nt +19 -0
  292. data/spec/rdfcore/rdfms-not-id-and-resource-attr/test005.rdf +29 -0
  293. data/spec/rdfcore/rdfms-para196/test001.nt +17 -0
  294. data/spec/rdfcore/rdfms-para196/test001.rdf +35 -0
  295. data/spec/rdfcore/rdfms-rdf-id/error001.rdf +26 -0
  296. data/spec/rdfcore/rdfms-rdf-id/error002.rdf +26 -0
  297. data/spec/rdfcore/rdfms-rdf-id/error003.rdf +29 -0
  298. data/spec/rdfcore/rdfms-rdf-id/error004.rdf +27 -0
  299. data/spec/rdfcore/rdfms-rdf-id/error005.rdf +31 -0
  300. data/spec/rdfcore/rdfms-rdf-id/error006.rdf +26 -0
  301. data/spec/rdfcore/rdfms-rdf-id/error007.rdf +29 -0
  302. data/spec/rdfcore/rdfms-rdf-names-use/error-001.rdf +23 -0
  303. data/spec/rdfcore/rdfms-rdf-names-use/error-002.rdf +23 -0
  304. data/spec/rdfcore/rdfms-rdf-names-use/error-003.rdf +23 -0
  305. data/spec/rdfcore/rdfms-rdf-names-use/error-004.rdf +23 -0
  306. data/spec/rdfcore/rdfms-rdf-names-use/error-005.rdf +23 -0
  307. data/spec/rdfcore/rdfms-rdf-names-use/error-006.rdf +23 -0
  308. data/spec/rdfcore/rdfms-rdf-names-use/error-007.rdf +23 -0
  309. data/spec/rdfcore/rdfms-rdf-names-use/error-008.rdf +23 -0
  310. data/spec/rdfcore/rdfms-rdf-names-use/error-009.rdf +23 -0
  311. data/spec/rdfcore/rdfms-rdf-names-use/error-010.rdf +23 -0
  312. data/spec/rdfcore/rdfms-rdf-names-use/error-011.rdf +25 -0
  313. data/spec/rdfcore/rdfms-rdf-names-use/error-012.rdf +25 -0
  314. data/spec/rdfcore/rdfms-rdf-names-use/error-013.rdf +25 -0
  315. data/spec/rdfcore/rdfms-rdf-names-use/error-014.rdf +25 -0
  316. data/spec/rdfcore/rdfms-rdf-names-use/error-015.rdf +25 -0
  317. data/spec/rdfcore/rdfms-rdf-names-use/error-016.rdf +25 -0
  318. data/spec/rdfcore/rdfms-rdf-names-use/error-017.rdf +25 -0
  319. data/spec/rdfcore/rdfms-rdf-names-use/error-018.rdf +25 -0
  320. data/spec/rdfcore/rdfms-rdf-names-use/error-019.rdf +25 -0
  321. data/spec/rdfcore/rdfms-rdf-names-use/error-020.rdf +25 -0
  322. data/spec/rdfcore/rdfms-rdf-names-use/test-001.nt +1 -0
  323. data/spec/rdfcore/rdfms-rdf-names-use/test-001.rdf +23 -0
  324. data/spec/rdfcore/rdfms-rdf-names-use/test-002.nt +1 -0
  325. data/spec/rdfcore/rdfms-rdf-names-use/test-002.rdf +23 -0
  326. data/spec/rdfcore/rdfms-rdf-names-use/test-003.nt +1 -0
  327. data/spec/rdfcore/rdfms-rdf-names-use/test-003.rdf +23 -0
  328. data/spec/rdfcore/rdfms-rdf-names-use/test-004.nt +1 -0
  329. data/spec/rdfcore/rdfms-rdf-names-use/test-004.rdf +23 -0
  330. data/spec/rdfcore/rdfms-rdf-names-use/test-005.nt +1 -0
  331. data/spec/rdfcore/rdfms-rdf-names-use/test-005.rdf +23 -0
  332. data/spec/rdfcore/rdfms-rdf-names-use/test-006.nt +1 -0
  333. data/spec/rdfcore/rdfms-rdf-names-use/test-006.rdf +23 -0
  334. data/spec/rdfcore/rdfms-rdf-names-use/test-007.nt +1 -0
  335. data/spec/rdfcore/rdfms-rdf-names-use/test-007.rdf +23 -0
  336. data/spec/rdfcore/rdfms-rdf-names-use/test-008.nt +1 -0
  337. data/spec/rdfcore/rdfms-rdf-names-use/test-008.rdf +23 -0
  338. data/spec/rdfcore/rdfms-rdf-names-use/test-009.nt +1 -0
  339. data/spec/rdfcore/rdfms-rdf-names-use/test-009.rdf +23 -0
  340. data/spec/rdfcore/rdfms-rdf-names-use/test-010.nt +1 -0
  341. data/spec/rdfcore/rdfms-rdf-names-use/test-010.rdf +23 -0
  342. data/spec/rdfcore/rdfms-rdf-names-use/test-011.nt +1 -0
  343. data/spec/rdfcore/rdfms-rdf-names-use/test-011.rdf +23 -0
  344. data/spec/rdfcore/rdfms-rdf-names-use/test-012.nt +1 -0
  345. data/spec/rdfcore/rdfms-rdf-names-use/test-012.rdf +23 -0
  346. data/spec/rdfcore/rdfms-rdf-names-use/test-013.nt +1 -0
  347. data/spec/rdfcore/rdfms-rdf-names-use/test-013.rdf +23 -0
  348. data/spec/rdfcore/rdfms-rdf-names-use/test-014.nt +1 -0
  349. data/spec/rdfcore/rdfms-rdf-names-use/test-014.rdf +23 -0
  350. data/spec/rdfcore/rdfms-rdf-names-use/test-015.nt +1 -0
  351. data/spec/rdfcore/rdfms-rdf-names-use/test-015.rdf +23 -0
  352. data/spec/rdfcore/rdfms-rdf-names-use/test-016.nt +1 -0
  353. data/spec/rdfcore/rdfms-rdf-names-use/test-016.rdf +23 -0
  354. data/spec/rdfcore/rdfms-rdf-names-use/test-017.nt +1 -0
  355. data/spec/rdfcore/rdfms-rdf-names-use/test-017.rdf +25 -0
  356. data/spec/rdfcore/rdfms-rdf-names-use/test-018.nt +1 -0
  357. data/spec/rdfcore/rdfms-rdf-names-use/test-018.rdf +25 -0
  358. data/spec/rdfcore/rdfms-rdf-names-use/test-019.nt +1 -0
  359. data/spec/rdfcore/rdfms-rdf-names-use/test-019.rdf +25 -0
  360. data/spec/rdfcore/rdfms-rdf-names-use/test-020.nt +1 -0
  361. data/spec/rdfcore/rdfms-rdf-names-use/test-020.rdf +25 -0
  362. data/spec/rdfcore/rdfms-rdf-names-use/test-021.nt +1 -0
  363. data/spec/rdfcore/rdfms-rdf-names-use/test-021.rdf +25 -0
  364. data/spec/rdfcore/rdfms-rdf-names-use/test-022.nt +1 -0
  365. data/spec/rdfcore/rdfms-rdf-names-use/test-022.rdf +25 -0
  366. data/spec/rdfcore/rdfms-rdf-names-use/test-023.nt +1 -0
  367. data/spec/rdfcore/rdfms-rdf-names-use/test-023.rdf +25 -0
  368. data/spec/rdfcore/rdfms-rdf-names-use/test-024.nt +1 -0
  369. data/spec/rdfcore/rdfms-rdf-names-use/test-024.rdf +25 -0
  370. data/spec/rdfcore/rdfms-rdf-names-use/test-025.nt +1 -0
  371. data/spec/rdfcore/rdfms-rdf-names-use/test-025.rdf +25 -0
  372. data/spec/rdfcore/rdfms-rdf-names-use/test-026.nt +1 -0
  373. data/spec/rdfcore/rdfms-rdf-names-use/test-026.rdf +25 -0
  374. data/spec/rdfcore/rdfms-rdf-names-use/test-027.nt +1 -0
  375. data/spec/rdfcore/rdfms-rdf-names-use/test-027.rdf +25 -0
  376. data/spec/rdfcore/rdfms-rdf-names-use/test-028.nt +1 -0
  377. data/spec/rdfcore/rdfms-rdf-names-use/test-028.rdf +25 -0
  378. data/spec/rdfcore/rdfms-rdf-names-use/test-029.nt +1 -0
  379. data/spec/rdfcore/rdfms-rdf-names-use/test-029.rdf +25 -0
  380. data/spec/rdfcore/rdfms-rdf-names-use/test-030.nt +1 -0
  381. data/spec/rdfcore/rdfms-rdf-names-use/test-030.rdf +25 -0
  382. data/spec/rdfcore/rdfms-rdf-names-use/test-031.nt +1 -0
  383. data/spec/rdfcore/rdfms-rdf-names-use/test-031.rdf +25 -0
  384. data/spec/rdfcore/rdfms-rdf-names-use/test-032.nt +1 -0
  385. data/spec/rdfcore/rdfms-rdf-names-use/test-032.rdf +24 -0
  386. data/spec/rdfcore/rdfms-rdf-names-use/test-033.nt +1 -0
  387. data/spec/rdfcore/rdfms-rdf-names-use/test-033.rdf +24 -0
  388. data/spec/rdfcore/rdfms-rdf-names-use/test-034.nt +1 -0
  389. data/spec/rdfcore/rdfms-rdf-names-use/test-034.rdf +24 -0
  390. data/spec/rdfcore/rdfms-rdf-names-use/test-035.nt +1 -0
  391. data/spec/rdfcore/rdfms-rdf-names-use/test-035.rdf +24 -0
  392. data/spec/rdfcore/rdfms-rdf-names-use/test-036.nt +1 -0
  393. data/spec/rdfcore/rdfms-rdf-names-use/test-036.rdf +24 -0
  394. data/spec/rdfcore/rdfms-rdf-names-use/test-037.nt +1 -0
  395. data/spec/rdfcore/rdfms-rdf-names-use/test-037.rdf +24 -0
  396. data/spec/rdfcore/rdfms-rdf-names-use/warn-001.nt +1 -0
  397. data/spec/rdfcore/rdfms-rdf-names-use/warn-001.rdf +23 -0
  398. data/spec/rdfcore/rdfms-rdf-names-use/warn-002.nt +1 -0
  399. data/spec/rdfcore/rdfms-rdf-names-use/warn-002.rdf +25 -0
  400. data/spec/rdfcore/rdfms-rdf-names-use/warn-003.nt +1 -0
  401. data/spec/rdfcore/rdfms-rdf-names-use/warn-003.rdf +24 -0
  402. data/spec/rdfcore/rdfms-reification-required/test001.nt +15 -0
  403. data/spec/rdfcore/rdfms-reification-required/test001.rdf +29 -0
  404. data/spec/rdfcore/rdfms-seq-representation/empty.nt +13 -0
  405. data/spec/rdfcore/rdfms-seq-representation/test001.nt +19 -0
  406. data/spec/rdfcore/rdfms-seq-representation/test001.rdf +33 -0
  407. data/spec/rdfcore/rdfms-seq-representation/test002.nt +14 -0
  408. data/spec/rdfcore/rdfms-seq-representation/test003a.nt +14 -0
  409. data/spec/rdfcore/rdfms-seq-representation/test003b.nt +14 -0
  410. data/spec/rdfcore/rdfms-seq-representation/test004.nt +14 -0
  411. data/spec/rdfcore/rdfms-syntax-incomplete/error001.rdf +26 -0
  412. data/spec/rdfcore/rdfms-syntax-incomplete/error002.rdf +26 -0
  413. data/spec/rdfcore/rdfms-syntax-incomplete/error003.rdf +29 -0
  414. data/spec/rdfcore/rdfms-syntax-incomplete/error004.rdf +25 -0
  415. data/spec/rdfcore/rdfms-syntax-incomplete/error005.rdf +25 -0
  416. data/spec/rdfcore/rdfms-syntax-incomplete/error006.rdf +28 -0
  417. data/spec/rdfcore/rdfms-syntax-incomplete/test001.nt +14 -0
  418. data/spec/rdfcore/rdfms-syntax-incomplete/test001.rdf +28 -0
  419. data/spec/rdfcore/rdfms-syntax-incomplete/test002.nt +19 -0
  420. data/spec/rdfcore/rdfms-syntax-incomplete/test002.rdf +38 -0
  421. data/spec/rdfcore/rdfms-syntax-incomplete/test003.nt +17 -0
  422. data/spec/rdfcore/rdfms-syntax-incomplete/test003.rdf +28 -0
  423. data/spec/rdfcore/rdfms-syntax-incomplete/test004.nt +21 -0
  424. data/spec/rdfcore/rdfms-syntax-incomplete/test004.rdf +36 -0
  425. data/spec/rdfcore/rdfms-uri-substructure/error001.nt +18 -0
  426. data/spec/rdfcore/rdfms-uri-substructure/test001.nt +17 -0
  427. data/spec/rdfcore/rdfms-uri-substructure/test001.rdf +29 -0
  428. data/spec/rdfcore/rdfms-xml-literal-namespaces/test001.nt +13 -0
  429. data/spec/rdfcore/rdfms-xml-literal-namespaces/test001.rdf +33 -0
  430. data/spec/rdfcore/rdfms-xml-literal-namespaces/test002.nt +14 -0
  431. data/spec/rdfcore/rdfms-xml-literal-namespaces/test002.rdf +47 -0
  432. data/spec/rdfcore/rdfms-xmllang/test001.nt +14 -0
  433. data/spec/rdfcore/rdfms-xmllang/test001.rdf +30 -0
  434. data/spec/rdfcore/rdfms-xmllang/test002.nt +14 -0
  435. data/spec/rdfcore/rdfms-xmllang/test002.rdf +29 -0
  436. data/spec/rdfcore/rdfms-xmllang/test003.nt +14 -0
  437. data/spec/rdfcore/rdfms-xmllang/test003.rdf +28 -0
  438. data/spec/rdfcore/rdfms-xmllang/test004.nt +14 -0
  439. data/spec/rdfcore/rdfms-xmllang/test004.rdf +28 -0
  440. data/spec/rdfcore/rdfms-xmllang/test005.nt +14 -0
  441. data/spec/rdfcore/rdfms-xmllang/test005.rdf +28 -0
  442. data/spec/rdfcore/rdfms-xmllang/test006.nt +14 -0
  443. data/spec/rdfcore/rdfms-xmllang/test006.rdf +29 -0
  444. data/spec/rdfcore/rdfms-xmllang/test007a.nt +14 -0
  445. data/spec/rdfcore/rdfms-xmllang/test007b.nt +14 -0
  446. data/spec/rdfcore/rdfms-xmllang/test007c.nt +14 -0
  447. data/spec/rdfcore/rdfs-container-membership-superProperty/not1C.rdf +13 -0
  448. data/spec/rdfcore/rdfs-container-membership-superProperty/not1P.rdf +14 -0
  449. data/spec/rdfcore/rdfs-domain-and-range/nonconclusions005.rdf +28 -0
  450. data/spec/rdfcore/rdfs-domain-and-range/nonconclusions006.rdf +28 -0
  451. data/spec/rdfcore/rdfs-domain-and-range/premises005.rdf +32 -0
  452. data/spec/rdfcore/rdfs-domain-and-range/premises006.rdf +32 -0
  453. data/spec/rdfcore/rdfs-domain-and-range/test001.nt +16 -0
  454. data/spec/rdfcore/rdfs-domain-and-range/test001.rdf +29 -0
  455. data/spec/rdfcore/rdfs-domain-and-range/test002.nt +16 -0
  456. data/spec/rdfcore/rdfs-domain-and-range/test002.rdf +29 -0
  457. data/spec/rdfcore/rdfs-entailment/test001.nt +16 -0
  458. data/spec/rdfcore/rdfs-entailment/test002.nt +15 -0
  459. data/spec/rdfcore/rdfs-no-cycles-in-subClassOf/test001.nt +18 -0
  460. data/spec/rdfcore/rdfs-no-cycles-in-subClassOf/test001.rdf +37 -0
  461. data/spec/rdfcore/rdfs-no-cycles-in-subPropertyOf/test001.nt +18 -0
  462. data/spec/rdfcore/rdfs-no-cycles-in-subPropertyOf/test001.rdf +40 -0
  463. data/spec/rdfcore/rdfs-subClassOf-a-Property/test001.nt +15 -0
  464. data/spec/rdfcore/rdfs-subPropertyOf-semantics/test001.nt +24 -0
  465. data/spec/rdfcore/rdfs-subPropertyOf-semantics/test002.nt +21 -0
  466. data/spec/rdfcore/statement-entailment/test001a.nt +12 -0
  467. data/spec/rdfcore/statement-entailment/test001b.nt +2 -0
  468. data/spec/rdfcore/statement-entailment/test002a.nt +2 -0
  469. data/spec/rdfcore/statement-entailment/test002b.nt +5 -0
  470. data/spec/rdfcore/tex-01/test001.rdf +34 -0
  471. data/spec/rdfcore/tex-01/test002.rdf +33 -0
  472. data/spec/rdfcore/unrecognised-xml-attributes/test001.nt +15 -0
  473. data/spec/rdfcore/unrecognised-xml-attributes/test001.rdf +31 -0
  474. data/spec/rdfcore/unrecognised-xml-attributes/test002.nt +14 -0
  475. data/spec/rdfcore/unrecognised-xml-attributes/test002.rdf +32 -0
  476. data/spec/rdfcore/xml-canon/test001.nt +16 -0
  477. data/spec/rdfcore/xml-canon/test001.rdf +28 -0
  478. data/spec/rdfcore/xmlbase/test001.nt +14 -0
  479. data/spec/rdfcore/xmlbase/test001.rdf +27 -0
  480. data/spec/rdfcore/xmlbase/test002.nt +14 -0
  481. data/spec/rdfcore/xmlbase/test002.rdf +28 -0
  482. data/spec/rdfcore/xmlbase/test003.nt +14 -0
  483. data/spec/rdfcore/xmlbase/test003.rdf +25 -0
  484. data/spec/rdfcore/xmlbase/test004.nt +18 -0
  485. data/spec/rdfcore/xmlbase/test004.rdf +27 -0
  486. data/spec/rdfcore/xmlbase/test006.nt +15 -0
  487. data/spec/rdfcore/xmlbase/test006.rdf +26 -0
  488. data/spec/rdfcore/xmlbase/test007.nt +14 -0
  489. data/spec/rdfcore/xmlbase/test007.rdf +25 -0
  490. data/spec/rdfcore/xmlbase/test008.nt +14 -0
  491. data/spec/rdfcore/xmlbase/test008.rdf +25 -0
  492. data/spec/rdfcore/xmlbase/test009.nt +14 -0
  493. data/spec/rdfcore/xmlbase/test009.rdf +26 -0
  494. data/spec/rdfcore/xmlbase/test010.nt +14 -0
  495. data/spec/rdfcore/xmlbase/test010.rdf +26 -0
  496. data/spec/rdfcore/xmlbase/test011.nt +14 -0
  497. data/spec/rdfcore/xmlbase/test011.rdf +27 -0
  498. data/spec/rdfcore/xmlbase/test013.nt +15 -0
  499. data/spec/rdfcore/xmlbase/test013.rdf +28 -0
  500. data/spec/rdfcore/xmlbase/test014.nt +15 -0
  501. data/spec/rdfcore/xmlbase/test014.rdf +28 -0
  502. data/spec/rdfcore/xmlsch-02/test001.rdf +34 -0
  503. data/spec/rdfcore/xmlsch-02/test002.rdf +34 -0
  504. data/spec/rdfcore/xmlsch-02/test003.rdf +37 -0
  505. data/spec/rdfcore_helper.rb +137 -0
  506. data/spec/rdfxml_spec.rb +349 -0
  507. data/spec/spec.opts +1 -0
  508. data/spec/spec_helper.rb +23 -0
  509. data/spec/store_spec.rb +205 -0
  510. data/spec/string_hacks_spec.rb +21 -0
  511. data/spec/triple_spec.rb +172 -0
  512. data/spec/uriref_spec.rb +117 -0
  513. data/test/longtests_spec.rb +25 -0
  514. data/test/n3_tests/lcsh/sh85062913.n3 +41 -0
  515. data/test/n3_tests/lcsh/sh85062913.nt +21 -0
  516. data/test/n3_tests/lcsh/sh85082139.n3 +157 -0
  517. data/test/n3_tests/lcsh/sh85082139.nt +79 -0
  518. data/test/n3_tests/lcsh/sh85118553.n3 +123 -0
  519. data/test/n3_tests/lcsh/sh85118553.nt +63 -0
  520. data/test/n3_tests/misc/on_now-01.n3 +30 -0
  521. data/test/n3_tests/misc/on_now-01.nt +15 -0
  522. data/test/n3_tests/n3p/simple-01.n3 +1 -0
  523. data/test/n3_tests/n3p/simple-01.nt +0 -0
  524. data/test/n3_tests/n3p/simple-02.n3 +4 -0
  525. data/test/n3_tests/n3p/simple-02.nt +0 -0
  526. data/test/n3_tests/n3p/simple-03.n3 +5 -0
  527. data/test/n3_tests/n3p/simple-03.nt +1 -0
  528. data/test/n3_tests/n3p/simple-04.n3 +6 -0
  529. data/test/n3_tests/n3p/simple-04.nt +3 -0
  530. data/test/n3_tests/n3p/simple-05.n3 +7 -0
  531. data/test/n3_tests/n3p/simple-05.nt +2 -0
  532. data/test/n3_tests/n3p/simple-06.n3 +6 -0
  533. data/test/n3_tests/n3p/simple-06.nt +4 -0
  534. data/test/n3_tests/n3p/simple-07.n3 +7 -0
  535. data/test/n3_tests/n3p/simple-07.nt +6 -0
  536. data/test/perf_test/test.rb +11 -0
  537. data/test/perf_test/tommorris.rdf +2267 -0
  538. data/test/rdf_tests/cc197bad-dc9c-440d-a5b5-d52ba2e14234.nt +24 -0
  539. data/test/rdf_tests/cc197bad-dc9c-440d-a5b5-d52ba2e14234.rdf +46 -0
  540. data/test/rdf_tests/tm_001.nt +1 -0
  541. data/test/rdf_tests/tm_001.rdf +7 -0
  542. data/test/rdf_tests/xml-literal-mixed.nt +7 -0
  543. data/test/rdf_tests/xml-literal-mixed.rdf +15 -0
  544. data/test/xml.rdf +6 -0
  545. metadata +698 -0
@@ -0,0 +1,2171 @@
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
+