@reqlan/language 1.4.0

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 (371) hide show
  1. package/README.md +24 -0
  2. package/out/file-path-rewrite.d.ts +25 -0
  3. package/out/file-path-rewrite.js +56 -0
  4. package/out/file-path-rewrite.js.map +1 -0
  5. package/out/generated/ast.d.ts +1157 -0
  6. package/out/generated/ast.js +980 -0
  7. package/out/generated/ast.js.map +1 -0
  8. package/out/generated/grammar.d.ts +7 -0
  9. package/out/generated/grammar.js +3071 -0
  10. package/out/generated/grammar.js.map +1 -0
  11. package/out/generated/module.d.ts +20 -0
  12. package/out/generated/module.js +32 -0
  13. package/out/generated/module.js.map +1 -0
  14. package/out/index.d.ts +34 -0
  15. package/out/index.js +35 -0
  16. package/out/index.js.map +1 -0
  17. package/out/reqlan-attribute-catalog.d.ts +19 -0
  18. package/out/reqlan-attribute-catalog.js +87 -0
  19. package/out/reqlan-attribute-catalog.js.map +1 -0
  20. package/out/reqlan-code-action-provider.d.ts +55 -0
  21. package/out/reqlan-code-action-provider.js +269 -0
  22. package/out/reqlan-code-action-provider.js.map +1 -0
  23. package/out/reqlan-code-lens-provider.d.ts +13 -0
  24. package/out/reqlan-code-lens-provider.js +27 -0
  25. package/out/reqlan-code-lens-provider.js.map +1 -0
  26. package/out/reqlan-code-lens-settings.d.ts +34 -0
  27. package/out/reqlan-code-lens-settings.js +12 -0
  28. package/out/reqlan-code-lens-settings.js.map +1 -0
  29. package/out/reqlan-comment-resolver.d.ts +35 -0
  30. package/out/reqlan-comment-resolver.js +308 -0
  31. package/out/reqlan-comment-resolver.js.map +1 -0
  32. package/out/reqlan-completion-context.d.ts +46 -0
  33. package/out/reqlan-completion-context.js +244 -0
  34. package/out/reqlan-completion-context.js.map +1 -0
  35. package/out/reqlan-completion-provider.d.ts +41 -0
  36. package/out/reqlan-completion-provider.js +317 -0
  37. package/out/reqlan-completion-provider.js.map +1 -0
  38. package/out/reqlan-definition-provider.d.ts +31 -0
  39. package/out/reqlan-definition-provider.js +240 -0
  40. package/out/reqlan-definition-provider.js.map +1 -0
  41. package/out/reqlan-document-highlight-provider.d.ts +10 -0
  42. package/out/reqlan-document-highlight-provider.js +11 -0
  43. package/out/reqlan-document-highlight-provider.js.map +1 -0
  44. package/out/reqlan-document-link-provider.d.ts +14 -0
  45. package/out/reqlan-document-link-provider.js +24 -0
  46. package/out/reqlan-document-link-provider.js.map +1 -0
  47. package/out/reqlan-embedded-file-references.d.ts +11 -0
  48. package/out/reqlan-embedded-file-references.js +50 -0
  49. package/out/reqlan-embedded-file-references.js.map +1 -0
  50. package/out/reqlan-file-link-resolver.d.ts +44 -0
  51. package/out/reqlan-file-link-resolver.js +347 -0
  52. package/out/reqlan-file-link-resolver.js.map +1 -0
  53. package/out/reqlan-file-references.d.ts +15 -0
  54. package/out/reqlan-file-references.js +72 -0
  55. package/out/reqlan-file-references.js.map +1 -0
  56. package/out/reqlan-grammar-config.d.ts +5 -0
  57. package/out/reqlan-grammar-config.js +9 -0
  58. package/out/reqlan-grammar-config.js.map +1 -0
  59. package/out/reqlan-idea-reference-site.d.ts +14 -0
  60. package/out/reqlan-idea-reference-site.js +47 -0
  61. package/out/reqlan-idea-reference-site.js.map +1 -0
  62. package/out/reqlan-idea-summary.d.ts +6 -0
  63. package/out/reqlan-idea-summary.js +134 -0
  64. package/out/reqlan-idea-summary.js.map +1 -0
  65. package/out/reqlan-ignore-error.d.ts +10 -0
  66. package/out/reqlan-ignore-error.js +42 -0
  67. package/out/reqlan-ignore-error.js.map +1 -0
  68. package/out/reqlan-import-bindings.d.ts +12 -0
  69. package/out/reqlan-import-bindings.js +65 -0
  70. package/out/reqlan-import-bindings.js.map +1 -0
  71. package/out/reqlan-import-edits.d.ts +17 -0
  72. package/out/reqlan-import-edits.js +96 -0
  73. package/out/reqlan-import-edits.js.map +1 -0
  74. package/out/reqlan-imports.d.ts +22 -0
  75. package/out/reqlan-imports.js +61 -0
  76. package/out/reqlan-imports.js.map +1 -0
  77. package/out/reqlan-inbound-reference-inlay-label.d.ts +27 -0
  78. package/out/reqlan-inbound-reference-inlay-label.js +142 -0
  79. package/out/reqlan-inbound-reference-inlay-label.js.map +1 -0
  80. package/out/reqlan-inlay-hint-provider.d.ts +15 -0
  81. package/out/reqlan-inlay-hint-provider.js +54 -0
  82. package/out/reqlan-inlay-hint-provider.js.map +1 -0
  83. package/out/reqlan-inlay-hint-settings.d.ts +10 -0
  84. package/out/reqlan-inlay-hint-settings.js +10 -0
  85. package/out/reqlan-inlay-hint-settings.js.map +1 -0
  86. package/out/reqlan-linker.d.ts +26 -0
  87. package/out/reqlan-linker.js +83 -0
  88. package/out/reqlan-linker.js.map +1 -0
  89. package/out/reqlan-markdown-links.d.ts +28 -0
  90. package/out/reqlan-markdown-links.js +113 -0
  91. package/out/reqlan-markdown-links.js.map +1 -0
  92. package/out/reqlan-module.d.ts +41 -0
  93. package/out/reqlan-module.js +78 -0
  94. package/out/reqlan-module.js.map +1 -0
  95. package/out/reqlan-name-catalog.d.ts +23 -0
  96. package/out/reqlan-name-catalog.js +63 -0
  97. package/out/reqlan-name-catalog.js.map +1 -0
  98. package/out/reqlan-name-provider.d.ts +10 -0
  99. package/out/reqlan-name-provider.js +38 -0
  100. package/out/reqlan-name-provider.js.map +1 -0
  101. package/out/reqlan-namespace-import-links.d.ts +10 -0
  102. package/out/reqlan-namespace-import-links.js +69 -0
  103. package/out/reqlan-namespace-import-links.js.map +1 -0
  104. package/out/reqlan-path-completion.d.ts +50 -0
  105. package/out/reqlan-path-completion.js +304 -0
  106. package/out/reqlan-path-completion.js.map +1 -0
  107. package/out/reqlan-path-references.d.ts +5 -0
  108. package/out/reqlan-path-references.js +124 -0
  109. package/out/reqlan-path-references.js.map +1 -0
  110. package/out/reqlan-path-resolve.d.ts +81 -0
  111. package/out/reqlan-path-resolve.js +245 -0
  112. package/out/reqlan-path-resolve.js.map +1 -0
  113. package/out/reqlan-quoted-strings.d.ts +9 -0
  114. package/out/reqlan-quoted-strings.js +26 -0
  115. package/out/reqlan-quoted-strings.js.map +1 -0
  116. package/out/reqlan-reference-at-position.d.ts +20 -0
  117. package/out/reqlan-reference-at-position.js +89 -0
  118. package/out/reqlan-reference-at-position.js.map +1 -0
  119. package/out/reqlan-reference-code-lens.d.ts +32 -0
  120. package/out/reqlan-reference-code-lens.js +240 -0
  121. package/out/reqlan-reference-code-lens.js.map +1 -0
  122. package/out/reqlan-reference-search-site.d.ts +34 -0
  123. package/out/reqlan-reference-search-site.js +136 -0
  124. package/out/reqlan-reference-search-site.js.map +1 -0
  125. package/out/reqlan-references.d.ts +16 -0
  126. package/out/reqlan-references.js +51 -0
  127. package/out/reqlan-references.js.map +1 -0
  128. package/out/reqlan-scope.d.ts +25 -0
  129. package/out/reqlan-scope.js +259 -0
  130. package/out/reqlan-scope.js.map +1 -0
  131. package/out/reqlan-semantic-token-provider.d.ts +8 -0
  132. package/out/reqlan-semantic-token-provider.js +91 -0
  133. package/out/reqlan-semantic-token-provider.js.map +1 -0
  134. package/out/reqlan-token-builder.d.ts +12 -0
  135. package/out/reqlan-token-builder.js +459 -0
  136. package/out/reqlan-token-builder.js.map +1 -0
  137. package/out/reqlan-validator.d.ts +25 -0
  138. package/out/reqlan-validator.js +119 -0
  139. package/out/reqlan-validator.js.map +1 -0
  140. package/out/reqlan-workspace-attribute-catalog.d.ts +6 -0
  141. package/out/reqlan-workspace-attribute-catalog.js +54 -0
  142. package/out/reqlan-workspace-attribute-catalog.js.map +1 -0
  143. package/out/src/file-path-rewrite.d.ts +25 -0
  144. package/out/src/file-path-rewrite.js +56 -0
  145. package/out/src/file-path-rewrite.js.map +1 -0
  146. package/out/src/generated/ast.d.ts +1173 -0
  147. package/out/src/generated/ast.js +994 -0
  148. package/out/src/generated/ast.js.map +1 -0
  149. package/out/src/generated/grammar.d.ts +7 -0
  150. package/out/src/generated/grammar.js +3045 -0
  151. package/out/src/generated/grammar.js.map +1 -0
  152. package/out/src/generated/module.d.ts +20 -0
  153. package/out/src/generated/module.js +32 -0
  154. package/out/src/generated/module.js.map +1 -0
  155. package/out/src/index.d.ts +29 -0
  156. package/out/src/index.js +30 -0
  157. package/out/src/index.js.map +1 -0
  158. package/out/src/reqlan-attribute-catalog.d.ts +19 -0
  159. package/out/src/reqlan-attribute-catalog.js +87 -0
  160. package/out/src/reqlan-attribute-catalog.js.map +1 -0
  161. package/out/src/reqlan-code-action-provider.d.ts +34 -0
  162. package/out/src/reqlan-code-action-provider.js +206 -0
  163. package/out/src/reqlan-code-action-provider.js.map +1 -0
  164. package/out/src/reqlan-comment-resolver.d.ts +35 -0
  165. package/out/src/reqlan-comment-resolver.js +308 -0
  166. package/out/src/reqlan-comment-resolver.js.map +1 -0
  167. package/out/src/reqlan-completion-context.d.ts +46 -0
  168. package/out/src/reqlan-completion-context.js +244 -0
  169. package/out/src/reqlan-completion-context.js.map +1 -0
  170. package/out/src/reqlan-completion-provider.d.ts +41 -0
  171. package/out/src/reqlan-completion-provider.js +320 -0
  172. package/out/src/reqlan-completion-provider.js.map +1 -0
  173. package/out/src/reqlan-definition-provider.d.ts +31 -0
  174. package/out/src/reqlan-definition-provider.js +240 -0
  175. package/out/src/reqlan-definition-provider.js.map +1 -0
  176. package/out/src/reqlan-document-highlight-provider.d.ts +10 -0
  177. package/out/src/reqlan-document-highlight-provider.js +11 -0
  178. package/out/src/reqlan-document-highlight-provider.js.map +1 -0
  179. package/out/src/reqlan-document-link-provider.d.ts +14 -0
  180. package/out/src/reqlan-document-link-provider.js +24 -0
  181. package/out/src/reqlan-document-link-provider.js.map +1 -0
  182. package/out/src/reqlan-embedded-file-references.d.ts +11 -0
  183. package/out/src/reqlan-embedded-file-references.js +50 -0
  184. package/out/src/reqlan-embedded-file-references.js.map +1 -0
  185. package/out/src/reqlan-file-link-resolver.d.ts +44 -0
  186. package/out/src/reqlan-file-link-resolver.js +347 -0
  187. package/out/src/reqlan-file-link-resolver.js.map +1 -0
  188. package/out/src/reqlan-file-references.d.ts +15 -0
  189. package/out/src/reqlan-file-references.js +72 -0
  190. package/out/src/reqlan-file-references.js.map +1 -0
  191. package/out/src/reqlan-grammar-config.d.ts +5 -0
  192. package/out/src/reqlan-grammar-config.js +9 -0
  193. package/out/src/reqlan-grammar-config.js.map +1 -0
  194. package/out/src/reqlan-idea-summary.d.ts +6 -0
  195. package/out/src/reqlan-idea-summary.js +78 -0
  196. package/out/src/reqlan-idea-summary.js.map +1 -0
  197. package/out/src/reqlan-ignore-error.d.ts +10 -0
  198. package/out/src/reqlan-ignore-error.js +42 -0
  199. package/out/src/reqlan-ignore-error.js.map +1 -0
  200. package/out/src/reqlan-import-bindings.d.ts +12 -0
  201. package/out/src/reqlan-import-bindings.js +65 -0
  202. package/out/src/reqlan-import-bindings.js.map +1 -0
  203. package/out/src/reqlan-import-edits.d.ts +17 -0
  204. package/out/src/reqlan-import-edits.js +96 -0
  205. package/out/src/reqlan-import-edits.js.map +1 -0
  206. package/out/src/reqlan-imports.d.ts +22 -0
  207. package/out/src/reqlan-imports.js +61 -0
  208. package/out/src/reqlan-imports.js.map +1 -0
  209. package/out/src/reqlan-inbound-reference-inlay-label.d.ts +23 -0
  210. package/out/src/reqlan-inbound-reference-inlay-label.js +128 -0
  211. package/out/src/reqlan-inbound-reference-inlay-label.js.map +1 -0
  212. package/out/src/reqlan-inlay-hint-provider.d.ts +15 -0
  213. package/out/src/reqlan-inlay-hint-provider.js +54 -0
  214. package/out/src/reqlan-inlay-hint-provider.js.map +1 -0
  215. package/out/src/reqlan-inlay-hint-settings.d.ts +10 -0
  216. package/out/src/reqlan-inlay-hint-settings.js +10 -0
  217. package/out/src/reqlan-inlay-hint-settings.js.map +1 -0
  218. package/out/src/reqlan-linker.d.ts +26 -0
  219. package/out/src/reqlan-linker.js +86 -0
  220. package/out/src/reqlan-linker.js.map +1 -0
  221. package/out/src/reqlan-markdown-links.d.ts +28 -0
  222. package/out/src/reqlan-markdown-links.js +113 -0
  223. package/out/src/reqlan-markdown-links.js.map +1 -0
  224. package/out/src/reqlan-module.d.ts +41 -0
  225. package/out/src/reqlan-module.js +76 -0
  226. package/out/src/reqlan-module.js.map +1 -0
  227. package/out/src/reqlan-name-catalog.d.ts +23 -0
  228. package/out/src/reqlan-name-catalog.js +63 -0
  229. package/out/src/reqlan-name-catalog.js.map +1 -0
  230. package/out/src/reqlan-name-provider.d.ts +10 -0
  231. package/out/src/reqlan-name-provider.js +38 -0
  232. package/out/src/reqlan-name-provider.js.map +1 -0
  233. package/out/src/reqlan-namespace-import-links.d.ts +10 -0
  234. package/out/src/reqlan-namespace-import-links.js +81 -0
  235. package/out/src/reqlan-namespace-import-links.js.map +1 -0
  236. package/out/src/reqlan-path-completion.d.ts +50 -0
  237. package/out/src/reqlan-path-completion.js +304 -0
  238. package/out/src/reqlan-path-completion.js.map +1 -0
  239. package/out/src/reqlan-path-references.d.ts +5 -0
  240. package/out/src/reqlan-path-references.js +124 -0
  241. package/out/src/reqlan-path-references.js.map +1 -0
  242. package/out/src/reqlan-path-resolve.d.ts +59 -0
  243. package/out/src/reqlan-path-resolve.js +173 -0
  244. package/out/src/reqlan-path-resolve.js.map +1 -0
  245. package/out/src/reqlan-quoted-strings.d.ts +9 -0
  246. package/out/src/reqlan-quoted-strings.js +26 -0
  247. package/out/src/reqlan-quoted-strings.js.map +1 -0
  248. package/out/src/reqlan-reference-at-position.d.ts +20 -0
  249. package/out/src/reqlan-reference-at-position.js +89 -0
  250. package/out/src/reqlan-reference-at-position.js.map +1 -0
  251. package/out/src/reqlan-references.d.ts +16 -0
  252. package/out/src/reqlan-references.js +51 -0
  253. package/out/src/reqlan-references.js.map +1 -0
  254. package/out/src/reqlan-scope.d.ts +25 -0
  255. package/out/src/reqlan-scope.js +266 -0
  256. package/out/src/reqlan-scope.js.map +1 -0
  257. package/out/src/reqlan-semantic-token-provider.d.ts +8 -0
  258. package/out/src/reqlan-semantic-token-provider.js +97 -0
  259. package/out/src/reqlan-semantic-token-provider.js.map +1 -0
  260. package/out/src/reqlan-token-builder.d.ts +12 -0
  261. package/out/src/reqlan-token-builder.js +459 -0
  262. package/out/src/reqlan-token-builder.js.map +1 -0
  263. package/out/src/reqlan-validator.d.ts +25 -0
  264. package/out/src/reqlan-validator.js +119 -0
  265. package/out/src/reqlan-validator.js.map +1 -0
  266. package/out/src/reqlan-workspace-attribute-catalog.d.ts +6 -0
  267. package/out/src/reqlan-workspace-attribute-catalog.js +54 -0
  268. package/out/src/reqlan-workspace-attribute-catalog.js.map +1 -0
  269. package/out/test/code-actions.test.d.ts +1 -0
  270. package/out/test/code-actions.test.js +126 -0
  271. package/out/test/code-actions.test.js.map +1 -0
  272. package/out/test/comment-in-string.test.d.ts +1 -0
  273. package/out/test/comment-in-string.test.js +100 -0
  274. package/out/test/comment-in-string.test.js.map +1 -0
  275. package/out/test/completion.test.d.ts +1 -0
  276. package/out/test/completion.test.js +467 -0
  277. package/out/test/completion.test.js.map +1 -0
  278. package/out/test/file-path-rewrite.test.d.ts +1 -0
  279. package/out/test/file-path-rewrite.test.js +64 -0
  280. package/out/test/file-path-rewrite.test.js.map +1 -0
  281. package/out/test/ignore-error.test.d.ts +1 -0
  282. package/out/test/ignore-error.test.js +87 -0
  283. package/out/test/ignore-error.test.js.map +1 -0
  284. package/out/test/implicit-import-extension.test.d.ts +1 -0
  285. package/out/test/implicit-import-extension.test.js +203 -0
  286. package/out/test/implicit-import-extension.test.js.map +1 -0
  287. package/out/test/import-edits.test.d.ts +1 -0
  288. package/out/test/import-edits.test.js +20 -0
  289. package/out/test/import-edits.test.js.map +1 -0
  290. package/out/test/inlay-hints.test.d.ts +1 -0
  291. package/out/test/inlay-hints.test.js +238 -0
  292. package/out/test/inlay-hints.test.js.map +1 -0
  293. package/out/test/linking.test.d.ts +1 -0
  294. package/out/test/linking.test.js +754 -0
  295. package/out/test/linking.test.js.map +1 -0
  296. package/out/test/naked-strings.test.d.ts +1 -0
  297. package/out/test/naked-strings.test.js +50 -0
  298. package/out/test/naked-strings.test.js.map +1 -0
  299. package/out/test/parsing.test.d.ts +1 -0
  300. package/out/test/parsing.test.js +773 -0
  301. package/out/test/parsing.test.js.map +1 -0
  302. package/out/test/path-resolve.test.d.ts +1 -0
  303. package/out/test/path-resolve.test.js +88 -0
  304. package/out/test/path-resolve.test.js.map +1 -0
  305. package/out/test/references.test.d.ts +1 -0
  306. package/out/test/references.test.js +168 -0
  307. package/out/test/references.test.js.map +1 -0
  308. package/out/test/rqconfig.test.d.ts +1 -0
  309. package/out/test/rqconfig.test.js +275 -0
  310. package/out/test/rqconfig.test.js.map +1 -0
  311. package/out/test/test-requirement-refs.d.ts +8 -0
  312. package/out/test/test-requirement-refs.js +35 -0
  313. package/out/test/test-requirement-refs.js.map +1 -0
  314. package/out/test/testing.test.d.ts +1 -0
  315. package/out/test/testing.test.js +23 -0
  316. package/out/test/testing.test.js.map +1 -0
  317. package/out/test/validating.test.d.ts +1 -0
  318. package/out/test/validating.test.js +117 -0
  319. package/out/test/validating.test.js.map +1 -0
  320. package/out/tsconfig.tsbuildinfo +1 -0
  321. package/package.json +54 -0
  322. package/src/chevrotain.d.ts +8 -0
  323. package/src/file-path-rewrite.ts +96 -0
  324. package/src/generated/ast.ts +1481 -0
  325. package/src/generated/grammar.ts +3074 -0
  326. package/src/generated/module.ts +38 -0
  327. package/src/index.ts +34 -0
  328. package/src/reqlan-attribute-catalog.ts +100 -0
  329. package/src/reqlan-code-action-provider.ts +385 -0
  330. package/src/reqlan-code-lens-provider.ts +54 -0
  331. package/src/reqlan-code-lens-settings.ts +42 -0
  332. package/src/reqlan-comment-resolver.ts +372 -0
  333. package/src/reqlan-comment.langium +23 -0
  334. package/src/reqlan-completion-context.ts +330 -0
  335. package/src/reqlan-completion-provider.ts +400 -0
  336. package/src/reqlan-definition-provider.ts +319 -0
  337. package/src/reqlan-document-highlight-provider.ts +21 -0
  338. package/src/reqlan-document-link-provider.ts +45 -0
  339. package/src/reqlan-embedded-file-references.ts +72 -0
  340. package/src/reqlan-file-link-resolver.ts +485 -0
  341. package/src/reqlan-file-references.ts +84 -0
  342. package/src/reqlan-grammar-config.ts +14 -0
  343. package/src/reqlan-idea-reference-site.ts +74 -0
  344. package/src/reqlan-idea-summary.ts +162 -0
  345. package/src/reqlan-ignore-error.ts +50 -0
  346. package/src/reqlan-import-bindings.ts +87 -0
  347. package/src/reqlan-import-edits.ts +124 -0
  348. package/src/reqlan-imports.ts +115 -0
  349. package/src/reqlan-inbound-reference-inlay-label.ts +194 -0
  350. package/src/reqlan-inlay-hint-provider.ts +88 -0
  351. package/src/reqlan-inlay-hint-settings.ts +15 -0
  352. package/src/reqlan-linker.ts +108 -0
  353. package/src/reqlan-markdown-links.ts +136 -0
  354. package/src/reqlan-module.ts +104 -0
  355. package/src/reqlan-name-catalog.ts +81 -0
  356. package/src/reqlan-name-provider.ts +56 -0
  357. package/src/reqlan-namespace-import-links.ts +92 -0
  358. package/src/reqlan-path-completion.ts +420 -0
  359. package/src/reqlan-path-references.ts +140 -0
  360. package/src/reqlan-path-resolve.ts +346 -0
  361. package/src/reqlan-quoted-strings.ts +30 -0
  362. package/src/reqlan-reference-at-position.ts +154 -0
  363. package/src/reqlan-reference-code-lens.ts +323 -0
  364. package/src/reqlan-reference-search-site.ts +202 -0
  365. package/src/reqlan-references.ts +76 -0
  366. package/src/reqlan-scope.ts +312 -0
  367. package/src/reqlan-semantic-token-provider.ts +113 -0
  368. package/src/reqlan-token-builder.ts +492 -0
  369. package/src/reqlan-validator.ts +149 -0
  370. package/src/reqlan-workspace-attribute-catalog.ts +62 -0
  371. package/src/reqlan.langium +236 -0
@@ -0,0 +1,3074 @@
1
+ /******************************************************************************
2
+ * This file was generated by langium-cli 4.3.0.
3
+ * DO NOT EDIT MANUALLY!
4
+ ******************************************************************************/
5
+
6
+ import type { Grammar } from 'langium';
7
+ import { loadGrammarFromJson } from 'langium';
8
+
9
+ let loadedReqlanGrammar: Grammar | undefined;
10
+ export const ReqlanGrammar = (): Grammar => loadedReqlanGrammar ?? (loadedReqlanGrammar = loadGrammarFromJson(`{
11
+ "$type": "Grammar",
12
+ "isDeclared": true,
13
+ "name": "Reqlan",
14
+ "rules": [
15
+ {
16
+ "$type": "ParserRule",
17
+ "entry": true,
18
+ "name": "Model",
19
+ "definition": {
20
+ "$type": "Group",
21
+ "elements": [
22
+ {
23
+ "$type": "Group",
24
+ "elements": [
25
+ {
26
+ "$type": "RuleCall",
27
+ "rule": {
28
+ "$ref": "#/rules@51"
29
+ },
30
+ "arguments": [],
31
+ "cardinality": "*"
32
+ },
33
+ {
34
+ "$type": "Assignment",
35
+ "feature": "imports",
36
+ "operator": "+=",
37
+ "terminal": {
38
+ "$type": "RuleCall",
39
+ "rule": {
40
+ "$ref": "#/rules@46"
41
+ },
42
+ "arguments": []
43
+ }
44
+ }
45
+ ],
46
+ "cardinality": "*"
47
+ },
48
+ {
49
+ "$type": "Group",
50
+ "elements": [
51
+ {
52
+ "$type": "RuleCall",
53
+ "rule": {
54
+ "$ref": "#/rules@51"
55
+ },
56
+ "arguments": [],
57
+ "cardinality": "*"
58
+ },
59
+ {
60
+ "$type": "Assignment",
61
+ "feature": "elements",
62
+ "operator": "+=",
63
+ "terminal": {
64
+ "$type": "RuleCall",
65
+ "rule": {
66
+ "$ref": "#/rules@1"
67
+ },
68
+ "arguments": []
69
+ }
70
+ }
71
+ ],
72
+ "cardinality": "*"
73
+ },
74
+ {
75
+ "$type": "RuleCall",
76
+ "rule": {
77
+ "$ref": "#/rules@51"
78
+ },
79
+ "arguments": [],
80
+ "cardinality": "*"
81
+ }
82
+ ]
83
+ },
84
+ "fragment": false,
85
+ "parameters": []
86
+ },
87
+ {
88
+ "$type": "ParserRule",
89
+ "name": "TopLevelElement",
90
+ "definition": {
91
+ "$type": "Alternatives",
92
+ "elements": [
93
+ {
94
+ "$type": "RuleCall",
95
+ "rule": {
96
+ "$ref": "#/rules@5"
97
+ },
98
+ "arguments": []
99
+ },
100
+ {
101
+ "$type": "RuleCall",
102
+ "rule": {
103
+ "$ref": "#/rules@6"
104
+ },
105
+ "arguments": []
106
+ },
107
+ {
108
+ "$type": "RuleCall",
109
+ "rule": {
110
+ "$ref": "#/rules@2"
111
+ },
112
+ "arguments": []
113
+ }
114
+ ]
115
+ },
116
+ "entry": false,
117
+ "fragment": false,
118
+ "parameters": []
119
+ },
120
+ {
121
+ "$type": "ParserRule",
122
+ "name": "OneLinerIdea",
123
+ "definition": {
124
+ "$type": "Group",
125
+ "elements": [
126
+ {
127
+ "$type": "Assignment",
128
+ "feature": "name",
129
+ "operator": "=",
130
+ "terminal": {
131
+ "$type": "RuleCall",
132
+ "rule": {
133
+ "$ref": "#/rules@7"
134
+ },
135
+ "arguments": []
136
+ }
137
+ },
138
+ {
139
+ "$type": "Assignment",
140
+ "feature": "body",
141
+ "operator": "=",
142
+ "terminal": {
143
+ "$type": "RuleCall",
144
+ "rule": {
145
+ "$ref": "#/rules@3"
146
+ },
147
+ "arguments": []
148
+ },
149
+ "cardinality": "?"
150
+ }
151
+ ]
152
+ },
153
+ "entry": false,
154
+ "fragment": false,
155
+ "parameters": []
156
+ },
157
+ {
158
+ "$type": "ParserRule",
159
+ "name": "OneLinerBody",
160
+ "definition": {
161
+ "$type": "Assignment",
162
+ "feature": "content",
163
+ "operator": "+=",
164
+ "terminal": {
165
+ "$type": "Alternatives",
166
+ "elements": [
167
+ {
168
+ "$type": "RuleCall",
169
+ "rule": {
170
+ "$ref": "#/rules@37"
171
+ },
172
+ "arguments": []
173
+ },
174
+ {
175
+ "$type": "RuleCall",
176
+ "rule": {
177
+ "$ref": "#/rules@40"
178
+ },
179
+ "arguments": []
180
+ },
181
+ {
182
+ "$type": "RuleCall",
183
+ "rule": {
184
+ "$ref": "#/rules@38"
185
+ },
186
+ "arguments": []
187
+ },
188
+ {
189
+ "$type": "RuleCall",
190
+ "rule": {
191
+ "$ref": "#/rules@15"
192
+ },
193
+ "arguments": []
194
+ }
195
+ ]
196
+ },
197
+ "cardinality": "+"
198
+ },
199
+ "entry": false,
200
+ "fragment": false,
201
+ "parameters": []
202
+ },
203
+ {
204
+ "$type": "ParserRule",
205
+ "name": "IdeaDeclaration",
206
+ "definition": {
207
+ "$type": "Alternatives",
208
+ "elements": [
209
+ {
210
+ "$type": "RuleCall",
211
+ "rule": {
212
+ "$ref": "#/rules@5"
213
+ },
214
+ "arguments": []
215
+ },
216
+ {
217
+ "$type": "RuleCall",
218
+ "rule": {
219
+ "$ref": "#/rules@2"
220
+ },
221
+ "arguments": []
222
+ }
223
+ ]
224
+ },
225
+ "entry": false,
226
+ "fragment": false,
227
+ "parameters": []
228
+ },
229
+ {
230
+ "$type": "ParserRule",
231
+ "name": "Idea",
232
+ "definition": {
233
+ "$type": "Group",
234
+ "elements": [
235
+ {
236
+ "$type": "Assignment",
237
+ "feature": "name",
238
+ "operator": "=",
239
+ "terminal": {
240
+ "$type": "RuleCall",
241
+ "rule": {
242
+ "$ref": "#/rules@7"
243
+ },
244
+ "arguments": []
245
+ }
246
+ },
247
+ {
248
+ "$type": "Keyword",
249
+ "value": "{"
250
+ },
251
+ {
252
+ "$type": "Group",
253
+ "elements": [
254
+ {
255
+ "$type": "RuleCall",
256
+ "rule": {
257
+ "$ref": "#/rules@51"
258
+ },
259
+ "arguments": [],
260
+ "cardinality": "*"
261
+ },
262
+ {
263
+ "$type": "Assignment",
264
+ "feature": "elements",
265
+ "operator": "+=",
266
+ "terminal": {
267
+ "$type": "RuleCall",
268
+ "rule": {
269
+ "$ref": "#/rules@10"
270
+ },
271
+ "arguments": []
272
+ }
273
+ }
274
+ ],
275
+ "cardinality": "*"
276
+ },
277
+ {
278
+ "$type": "RuleCall",
279
+ "rule": {
280
+ "$ref": "#/rules@51"
281
+ },
282
+ "arguments": [],
283
+ "cardinality": "*"
284
+ },
285
+ {
286
+ "$type": "Keyword",
287
+ "value": "}"
288
+ }
289
+ ]
290
+ },
291
+ "entry": false,
292
+ "fragment": false,
293
+ "parameters": []
294
+ },
295
+ {
296
+ "$type": "ParserRule",
297
+ "name": "IdeaSet",
298
+ "definition": {
299
+ "$type": "Group",
300
+ "elements": [
301
+ {
302
+ "$type": "Assignment",
303
+ "feature": "name",
304
+ "operator": "=",
305
+ "terminal": {
306
+ "$type": "RuleCall",
307
+ "rule": {
308
+ "$ref": "#/rules@7"
309
+ },
310
+ "arguments": []
311
+ }
312
+ },
313
+ {
314
+ "$type": "Keyword",
315
+ "value": "("
316
+ },
317
+ {
318
+ "$type": "RuleCall",
319
+ "rule": {
320
+ "$ref": "#/rules@51"
321
+ },
322
+ "arguments": [],
323
+ "cardinality": "*"
324
+ },
325
+ {
326
+ "$type": "Assignment",
327
+ "feature": "members",
328
+ "operator": "+=",
329
+ "terminal": {
330
+ "$type": "CrossReference",
331
+ "type": {
332
+ "$ref": "#/rules@4"
333
+ },
334
+ "terminal": {
335
+ "$type": "RuleCall",
336
+ "rule": {
337
+ "$ref": "#/rules@8"
338
+ },
339
+ "arguments": []
340
+ },
341
+ "deprecatedSyntax": false,
342
+ "isMulti": false
343
+ }
344
+ },
345
+ {
346
+ "$type": "Group",
347
+ "elements": [
348
+ {
349
+ "$type": "RuleCall",
350
+ "rule": {
351
+ "$ref": "#/rules@51"
352
+ },
353
+ "arguments": [],
354
+ "cardinality": "*"
355
+ },
356
+ {
357
+ "$type": "Keyword",
358
+ "value": ","
359
+ },
360
+ {
361
+ "$type": "RuleCall",
362
+ "rule": {
363
+ "$ref": "#/rules@51"
364
+ },
365
+ "arguments": [],
366
+ "cardinality": "*"
367
+ },
368
+ {
369
+ "$type": "Assignment",
370
+ "feature": "members",
371
+ "operator": "+=",
372
+ "terminal": {
373
+ "$type": "CrossReference",
374
+ "type": {
375
+ "$ref": "#/rules@4"
376
+ },
377
+ "terminal": {
378
+ "$type": "RuleCall",
379
+ "rule": {
380
+ "$ref": "#/rules@8"
381
+ },
382
+ "arguments": []
383
+ },
384
+ "deprecatedSyntax": false,
385
+ "isMulti": false
386
+ }
387
+ }
388
+ ],
389
+ "cardinality": "*"
390
+ },
391
+ {
392
+ "$type": "RuleCall",
393
+ "rule": {
394
+ "$ref": "#/rules@51"
395
+ },
396
+ "arguments": [],
397
+ "cardinality": "*"
398
+ },
399
+ {
400
+ "$type": "Keyword",
401
+ "value": ")"
402
+ }
403
+ ]
404
+ },
405
+ "entry": false,
406
+ "fragment": false,
407
+ "parameters": []
408
+ },
409
+ {
410
+ "$type": "ParserRule",
411
+ "name": "IdeaName",
412
+ "dataType": "string",
413
+ "definition": {
414
+ "$type": "Alternatives",
415
+ "elements": [
416
+ {
417
+ "$type": "RuleCall",
418
+ "rule": {
419
+ "$ref": "#/rules@56"
420
+ },
421
+ "arguments": []
422
+ },
423
+ {
424
+ "$type": "RuleCall",
425
+ "rule": {
426
+ "$ref": "#/rules@57"
427
+ },
428
+ "arguments": []
429
+ }
430
+ ]
431
+ },
432
+ "entry": false,
433
+ "fragment": false,
434
+ "parameters": []
435
+ },
436
+ {
437
+ "$type": "ParserRule",
438
+ "name": "IdeaMemberName",
439
+ "dataType": "string",
440
+ "definition": {
441
+ "$type": "Alternatives",
442
+ "elements": [
443
+ {
444
+ "$type": "RuleCall",
445
+ "rule": {
446
+ "$ref": "#/rules@56"
447
+ },
448
+ "arguments": []
449
+ },
450
+ {
451
+ "$type": "RuleCall",
452
+ "rule": {
453
+ "$ref": "#/rules@57"
454
+ },
455
+ "arguments": []
456
+ }
457
+ ]
458
+ },
459
+ "entry": false,
460
+ "fragment": false,
461
+ "parameters": []
462
+ },
463
+ {
464
+ "$type": "ParserRule",
465
+ "name": "ReferenceName",
466
+ "dataType": "string",
467
+ "definition": {
468
+ "$type": "RuleCall",
469
+ "rule": {
470
+ "$ref": "#/rules@56"
471
+ },
472
+ "arguments": []
473
+ },
474
+ "entry": false,
475
+ "fragment": false,
476
+ "parameters": []
477
+ },
478
+ {
479
+ "$type": "ParserRule",
480
+ "name": "BodyElement",
481
+ "definition": {
482
+ "$type": "Alternatives",
483
+ "elements": [
484
+ {
485
+ "$type": "RuleCall",
486
+ "rule": {
487
+ "$ref": "#/rules@18"
488
+ },
489
+ "arguments": []
490
+ },
491
+ {
492
+ "$type": "RuleCall",
493
+ "rule": {
494
+ "$ref": "#/rules@14"
495
+ },
496
+ "arguments": []
497
+ },
498
+ {
499
+ "$type": "RuleCall",
500
+ "rule": {
501
+ "$ref": "#/rules@28"
502
+ },
503
+ "arguments": []
504
+ },
505
+ {
506
+ "$type": "RuleCall",
507
+ "rule": {
508
+ "$ref": "#/rules@29"
509
+ },
510
+ "arguments": []
511
+ },
512
+ {
513
+ "$type": "RuleCall",
514
+ "rule": {
515
+ "$ref": "#/rules@11"
516
+ },
517
+ "arguments": []
518
+ }
519
+ ]
520
+ },
521
+ "entry": false,
522
+ "fragment": false,
523
+ "parameters": []
524
+ },
525
+ {
526
+ "$type": "ParserRule",
527
+ "name": "BodyLine",
528
+ "definition": {
529
+ "$type": "Assignment",
530
+ "feature": "parts",
531
+ "operator": "+=",
532
+ "terminal": {
533
+ "$type": "RuleCall",
534
+ "rule": {
535
+ "$ref": "#/rules@12"
536
+ },
537
+ "arguments": []
538
+ },
539
+ "cardinality": "+"
540
+ },
541
+ "entry": false,
542
+ "fragment": false,
543
+ "parameters": []
544
+ },
545
+ {
546
+ "$type": "ParserRule",
547
+ "name": "RichTextPart",
548
+ "definition": {
549
+ "$type": "Alternatives",
550
+ "elements": [
551
+ {
552
+ "$type": "RuleCall",
553
+ "rule": {
554
+ "$ref": "#/rules@37"
555
+ },
556
+ "arguments": []
557
+ },
558
+ {
559
+ "$type": "RuleCall",
560
+ "rule": {
561
+ "$ref": "#/rules@38"
562
+ },
563
+ "arguments": []
564
+ },
565
+ {
566
+ "$type": "RuleCall",
567
+ "rule": {
568
+ "$ref": "#/rules@40"
569
+ },
570
+ "arguments": []
571
+ },
572
+ {
573
+ "$type": "Assignment",
574
+ "feature": "inlineCode",
575
+ "operator": "=",
576
+ "terminal": {
577
+ "$type": "RuleCall",
578
+ "rule": {
579
+ "$ref": "#/rules@61"
580
+ },
581
+ "arguments": []
582
+ }
583
+ },
584
+ {
585
+ "$type": "Assignment",
586
+ "feature": "text",
587
+ "operator": "=",
588
+ "terminal": {
589
+ "$type": "RuleCall",
590
+ "rule": {
591
+ "$ref": "#/rules@16"
592
+ },
593
+ "arguments": []
594
+ }
595
+ },
596
+ {
597
+ "$type": "Assignment",
598
+ "feature": "lparen",
599
+ "operator": "=",
600
+ "terminal": {
601
+ "$type": "Keyword",
602
+ "value": "("
603
+ }
604
+ },
605
+ {
606
+ "$type": "Assignment",
607
+ "feature": "rparen",
608
+ "operator": "=",
609
+ "terminal": {
610
+ "$type": "Keyword",
611
+ "value": ")"
612
+ }
613
+ }
614
+ ]
615
+ },
616
+ "entry": false,
617
+ "fragment": false,
618
+ "parameters": []
619
+ },
620
+ {
621
+ "$type": "ParserRule",
622
+ "name": "InlineTextPart",
623
+ "definition": {
624
+ "$type": "Alternatives",
625
+ "elements": [
626
+ {
627
+ "$type": "RuleCall",
628
+ "rule": {
629
+ "$ref": "#/rules@37"
630
+ },
631
+ "arguments": []
632
+ },
633
+ {
634
+ "$type": "RuleCall",
635
+ "rule": {
636
+ "$ref": "#/rules@38"
637
+ },
638
+ "arguments": []
639
+ },
640
+ {
641
+ "$type": "RuleCall",
642
+ "rule": {
643
+ "$ref": "#/rules@40"
644
+ },
645
+ "arguments": []
646
+ },
647
+ {
648
+ "$type": "Assignment",
649
+ "feature": "inlineCode",
650
+ "operator": "=",
651
+ "terminal": {
652
+ "$type": "RuleCall",
653
+ "rule": {
654
+ "$ref": "#/rules@61"
655
+ },
656
+ "arguments": []
657
+ }
658
+ },
659
+ {
660
+ "$type": "Assignment",
661
+ "feature": "text",
662
+ "operator": "=",
663
+ "terminal": {
664
+ "$type": "RuleCall",
665
+ "rule": {
666
+ "$ref": "#/rules@16"
667
+ },
668
+ "arguments": []
669
+ }
670
+ }
671
+ ]
672
+ },
673
+ "entry": false,
674
+ "fragment": false,
675
+ "parameters": []
676
+ },
677
+ {
678
+ "$type": "ParserRule",
679
+ "name": "CodeSnippet",
680
+ "definition": {
681
+ "$type": "Assignment",
682
+ "feature": "raw",
683
+ "operator": "=",
684
+ "terminal": {
685
+ "$type": "RuleCall",
686
+ "rule": {
687
+ "$ref": "#/rules@62"
688
+ },
689
+ "arguments": []
690
+ }
691
+ },
692
+ "entry": false,
693
+ "fragment": false,
694
+ "parameters": []
695
+ },
696
+ {
697
+ "$type": "ParserRule",
698
+ "name": "OneLinerText",
699
+ "dataType": "string",
700
+ "definition": {
701
+ "$type": "Alternatives",
702
+ "elements": [
703
+ {
704
+ "$type": "RuleCall",
705
+ "rule": {
706
+ "$ref": "#/rules@59"
707
+ },
708
+ "arguments": []
709
+ },
710
+ {
711
+ "$type": "RuleCall",
712
+ "rule": {
713
+ "$ref": "#/rules@56"
714
+ },
715
+ "arguments": []
716
+ },
717
+ {
718
+ "$type": "RuleCall",
719
+ "rule": {
720
+ "$ref": "#/rules@58"
721
+ },
722
+ "arguments": []
723
+ },
724
+ {
725
+ "$type": "RuleCall",
726
+ "rule": {
727
+ "$ref": "#/rules@61"
728
+ },
729
+ "arguments": []
730
+ },
731
+ {
732
+ "$type": "RuleCall",
733
+ "rule": {
734
+ "$ref": "#/rules@60"
735
+ },
736
+ "arguments": []
737
+ },
738
+ {
739
+ "$type": "RuleCall",
740
+ "rule": {
741
+ "$ref": "#/rules@17"
742
+ },
743
+ "arguments": []
744
+ },
745
+ {
746
+ "$type": "Keyword",
747
+ "value": "("
748
+ },
749
+ {
750
+ "$type": "Keyword",
751
+ "value": ")"
752
+ },
753
+ {
754
+ "$type": "Keyword",
755
+ "value": "|"
756
+ },
757
+ {
758
+ "$type": "Keyword",
759
+ "value": "from"
760
+ },
761
+ {
762
+ "$type": "Keyword",
763
+ "value": "import"
764
+ },
765
+ {
766
+ "$type": "Keyword",
767
+ "value": "as"
768
+ },
769
+ {
770
+ "$type": "Keyword",
771
+ "value": "\`"
772
+ }
773
+ ]
774
+ },
775
+ "entry": false,
776
+ "fragment": false,
777
+ "parameters": []
778
+ },
779
+ {
780
+ "$type": "ParserRule",
781
+ "name": "PlainText",
782
+ "dataType": "string",
783
+ "definition": {
784
+ "$type": "Alternatives",
785
+ "elements": [
786
+ {
787
+ "$type": "RuleCall",
788
+ "rule": {
789
+ "$ref": "#/rules@59"
790
+ },
791
+ "arguments": []
792
+ },
793
+ {
794
+ "$type": "RuleCall",
795
+ "rule": {
796
+ "$ref": "#/rules@56"
797
+ },
798
+ "arguments": []
799
+ },
800
+ {
801
+ "$type": "RuleCall",
802
+ "rule": {
803
+ "$ref": "#/rules@58"
804
+ },
805
+ "arguments": []
806
+ },
807
+ {
808
+ "$type": "RuleCall",
809
+ "rule": {
810
+ "$ref": "#/rules@60"
811
+ },
812
+ "arguments": []
813
+ },
814
+ {
815
+ "$type": "RuleCall",
816
+ "rule": {
817
+ "$ref": "#/rules@17"
818
+ },
819
+ "arguments": []
820
+ },
821
+ {
822
+ "$type": "Keyword",
823
+ "value": "["
824
+ },
825
+ {
826
+ "$type": "Keyword",
827
+ "value": "]"
828
+ },
829
+ {
830
+ "$type": "Keyword",
831
+ "value": "|"
832
+ },
833
+ {
834
+ "$type": "Keyword",
835
+ "value": "from"
836
+ },
837
+ {
838
+ "$type": "Keyword",
839
+ "value": "import"
840
+ },
841
+ {
842
+ "$type": "Keyword",
843
+ "value": "as"
844
+ },
845
+ {
846
+ "$type": "Keyword",
847
+ "value": "\`"
848
+ }
849
+ ]
850
+ },
851
+ "entry": false,
852
+ "fragment": false,
853
+ "parameters": []
854
+ },
855
+ {
856
+ "$type": "ParserRule",
857
+ "name": "PlainPunctuation",
858
+ "dataType": "string",
859
+ "definition": {
860
+ "$type": "Alternatives",
861
+ "elements": [
862
+ {
863
+ "$type": "Keyword",
864
+ "value": "."
865
+ },
866
+ {
867
+ "$type": "Keyword",
868
+ "value": ","
869
+ },
870
+ {
871
+ "$type": "Keyword",
872
+ "value": ":"
873
+ },
874
+ {
875
+ "$type": "Keyword",
876
+ "value": ";"
877
+ },
878
+ {
879
+ "$type": "Keyword",
880
+ "value": "!"
881
+ },
882
+ {
883
+ "$type": "Keyword",
884
+ "value": "?"
885
+ },
886
+ {
887
+ "$type": "Keyword",
888
+ "value": "-"
889
+ }
890
+ ]
891
+ },
892
+ "entry": false,
893
+ "fragment": false,
894
+ "parameters": []
895
+ },
896
+ {
897
+ "$type": "ParserRule",
898
+ "name": "Attribute",
899
+ "definition": {
900
+ "$type": "Group",
901
+ "elements": [
902
+ {
903
+ "$type": "Keyword",
904
+ "value": "@"
905
+ },
906
+ {
907
+ "$type": "Assignment",
908
+ "feature": "name",
909
+ "operator": "=",
910
+ "terminal": {
911
+ "$type": "RuleCall",
912
+ "rule": {
913
+ "$ref": "#/rules@56"
914
+ },
915
+ "arguments": []
916
+ }
917
+ },
918
+ {
919
+ "$type": "Alternatives",
920
+ "elements": [
921
+ {
922
+ "$type": "Assignment",
923
+ "feature": "negated",
924
+ "operator": "?=",
925
+ "terminal": {
926
+ "$type": "Keyword",
927
+ "value": "!"
928
+ }
929
+ },
930
+ {
931
+ "$type": "Group",
932
+ "elements": [
933
+ {
934
+ "$type": "Keyword",
935
+ "value": ":"
936
+ },
937
+ {
938
+ "$type": "Assignment",
939
+ "feature": "value",
940
+ "operator": "=",
941
+ "terminal": {
942
+ "$type": "RuleCall",
943
+ "rule": {
944
+ "$ref": "#/rules@19"
945
+ },
946
+ "arguments": []
947
+ }
948
+ }
949
+ ]
950
+ },
951
+ {
952
+ "$type": "Assignment",
953
+ "feature": "value",
954
+ "operator": "=",
955
+ "terminal": {
956
+ "$type": "RuleCall",
957
+ "rule": {
958
+ "$ref": "#/rules@19"
959
+ },
960
+ "arguments": []
961
+ }
962
+ }
963
+ ],
964
+ "cardinality": "?"
965
+ }
966
+ ]
967
+ },
968
+ "entry": false,
969
+ "fragment": false,
970
+ "parameters": []
971
+ },
972
+ {
973
+ "$type": "ParserRule",
974
+ "name": "AttributeValue",
975
+ "definition": {
976
+ "$type": "Alternatives",
977
+ "elements": [
978
+ {
979
+ "$type": "RuleCall",
980
+ "rule": {
981
+ "$ref": "#/rules@24"
982
+ },
983
+ "arguments": []
984
+ },
985
+ {
986
+ "$type": "RuleCall",
987
+ "rule": {
988
+ "$ref": "#/rules@27"
989
+ },
990
+ "arguments": []
991
+ },
992
+ {
993
+ "$type": "RuleCall",
994
+ "rule": {
995
+ "$ref": "#/rules@20"
996
+ },
997
+ "arguments": []
998
+ }
999
+ ]
1000
+ },
1001
+ "entry": false,
1002
+ "fragment": false,
1003
+ "parameters": []
1004
+ },
1005
+ {
1006
+ "$type": "ParserRule",
1007
+ "name": "ScalarValue",
1008
+ "definition": {
1009
+ "$type": "Group",
1010
+ "elements": [
1011
+ {
1012
+ "$type": "Assignment",
1013
+ "feature": "parts",
1014
+ "operator": "+=",
1015
+ "terminal": {
1016
+ "$type": "RuleCall",
1017
+ "rule": {
1018
+ "$ref": "#/rules@21"
1019
+ },
1020
+ "arguments": []
1021
+ }
1022
+ },
1023
+ {
1024
+ "$type": "Assignment",
1025
+ "feature": "parts",
1026
+ "operator": "+=",
1027
+ "terminal": {
1028
+ "$type": "RuleCall",
1029
+ "rule": {
1030
+ "$ref": "#/rules@13"
1031
+ },
1032
+ "arguments": []
1033
+ },
1034
+ "cardinality": "*"
1035
+ }
1036
+ ]
1037
+ },
1038
+ "entry": false,
1039
+ "fragment": false,
1040
+ "parameters": []
1041
+ },
1042
+ {
1043
+ "$type": "ParserRule",
1044
+ "name": "NonBangInlineTextPart",
1045
+ "definition": {
1046
+ "$type": "Alternatives",
1047
+ "elements": [
1048
+ {
1049
+ "$type": "RuleCall",
1050
+ "rule": {
1051
+ "$ref": "#/rules@37"
1052
+ },
1053
+ "arguments": []
1054
+ },
1055
+ {
1056
+ "$type": "RuleCall",
1057
+ "rule": {
1058
+ "$ref": "#/rules@38"
1059
+ },
1060
+ "arguments": []
1061
+ },
1062
+ {
1063
+ "$type": "RuleCall",
1064
+ "rule": {
1065
+ "$ref": "#/rules@40"
1066
+ },
1067
+ "arguments": []
1068
+ },
1069
+ {
1070
+ "$type": "Assignment",
1071
+ "feature": "inlineCode",
1072
+ "operator": "=",
1073
+ "terminal": {
1074
+ "$type": "RuleCall",
1075
+ "rule": {
1076
+ "$ref": "#/rules@61"
1077
+ },
1078
+ "arguments": []
1079
+ }
1080
+ },
1081
+ {
1082
+ "$type": "Assignment",
1083
+ "feature": "text",
1084
+ "operator": "=",
1085
+ "terminal": {
1086
+ "$type": "RuleCall",
1087
+ "rule": {
1088
+ "$ref": "#/rules@22"
1089
+ },
1090
+ "arguments": []
1091
+ }
1092
+ }
1093
+ ]
1094
+ },
1095
+ "entry": false,
1096
+ "fragment": false,
1097
+ "parameters": []
1098
+ },
1099
+ {
1100
+ "$type": "ParserRule",
1101
+ "name": "NonBangPlainText",
1102
+ "dataType": "string",
1103
+ "definition": {
1104
+ "$type": "Alternatives",
1105
+ "elements": [
1106
+ {
1107
+ "$type": "RuleCall",
1108
+ "rule": {
1109
+ "$ref": "#/rules@59"
1110
+ },
1111
+ "arguments": []
1112
+ },
1113
+ {
1114
+ "$type": "RuleCall",
1115
+ "rule": {
1116
+ "$ref": "#/rules@56"
1117
+ },
1118
+ "arguments": []
1119
+ },
1120
+ {
1121
+ "$type": "RuleCall",
1122
+ "rule": {
1123
+ "$ref": "#/rules@58"
1124
+ },
1125
+ "arguments": []
1126
+ },
1127
+ {
1128
+ "$type": "RuleCall",
1129
+ "rule": {
1130
+ "$ref": "#/rules@60"
1131
+ },
1132
+ "arguments": []
1133
+ },
1134
+ {
1135
+ "$type": "RuleCall",
1136
+ "rule": {
1137
+ "$ref": "#/rules@23"
1138
+ },
1139
+ "arguments": []
1140
+ },
1141
+ {
1142
+ "$type": "Keyword",
1143
+ "value": "["
1144
+ },
1145
+ {
1146
+ "$type": "Keyword",
1147
+ "value": "]"
1148
+ },
1149
+ {
1150
+ "$type": "Keyword",
1151
+ "value": "|"
1152
+ },
1153
+ {
1154
+ "$type": "Keyword",
1155
+ "value": "from"
1156
+ },
1157
+ {
1158
+ "$type": "Keyword",
1159
+ "value": "import"
1160
+ },
1161
+ {
1162
+ "$type": "Keyword",
1163
+ "value": "as"
1164
+ },
1165
+ {
1166
+ "$type": "Keyword",
1167
+ "value": "\`"
1168
+ }
1169
+ ]
1170
+ },
1171
+ "entry": false,
1172
+ "fragment": false,
1173
+ "parameters": []
1174
+ },
1175
+ {
1176
+ "$type": "ParserRule",
1177
+ "name": "NonBangPunctuation",
1178
+ "dataType": "string",
1179
+ "definition": {
1180
+ "$type": "Alternatives",
1181
+ "elements": [
1182
+ {
1183
+ "$type": "Keyword",
1184
+ "value": "."
1185
+ },
1186
+ {
1187
+ "$type": "Keyword",
1188
+ "value": ","
1189
+ },
1190
+ {
1191
+ "$type": "Keyword",
1192
+ "value": ";"
1193
+ },
1194
+ {
1195
+ "$type": "Keyword",
1196
+ "value": "?"
1197
+ },
1198
+ {
1199
+ "$type": "Keyword",
1200
+ "value": "-"
1201
+ }
1202
+ ]
1203
+ },
1204
+ "entry": false,
1205
+ "fragment": false,
1206
+ "parameters": []
1207
+ },
1208
+ {
1209
+ "$type": "ParserRule",
1210
+ "name": "BlockValue",
1211
+ "definition": {
1212
+ "$type": "Group",
1213
+ "elements": [
1214
+ {
1215
+ "$type": "Keyword",
1216
+ "value": "{"
1217
+ },
1218
+ {
1219
+ "$type": "Group",
1220
+ "elements": [
1221
+ {
1222
+ "$type": "RuleCall",
1223
+ "rule": {
1224
+ "$ref": "#/rules@51"
1225
+ },
1226
+ "arguments": [],
1227
+ "cardinality": "*"
1228
+ },
1229
+ {
1230
+ "$type": "Assignment",
1231
+ "feature": "elements",
1232
+ "operator": "+=",
1233
+ "terminal": {
1234
+ "$type": "RuleCall",
1235
+ "rule": {
1236
+ "$ref": "#/rules@25"
1237
+ },
1238
+ "arguments": []
1239
+ }
1240
+ }
1241
+ ],
1242
+ "cardinality": "*"
1243
+ },
1244
+ {
1245
+ "$type": "RuleCall",
1246
+ "rule": {
1247
+ "$ref": "#/rules@51"
1248
+ },
1249
+ "arguments": [],
1250
+ "cardinality": "*"
1251
+ },
1252
+ {
1253
+ "$type": "Keyword",
1254
+ "value": "}"
1255
+ }
1256
+ ]
1257
+ },
1258
+ "entry": false,
1259
+ "fragment": false,
1260
+ "parameters": []
1261
+ },
1262
+ {
1263
+ "$type": "ParserRule",
1264
+ "name": "BlockElement",
1265
+ "definition": {
1266
+ "$type": "Alternatives",
1267
+ "elements": [
1268
+ {
1269
+ "$type": "RuleCall",
1270
+ "rule": {
1271
+ "$ref": "#/rules@18"
1272
+ },
1273
+ "arguments": []
1274
+ },
1275
+ {
1276
+ "$type": "RuleCall",
1277
+ "rule": {
1278
+ "$ref": "#/rules@14"
1279
+ },
1280
+ "arguments": []
1281
+ },
1282
+ {
1283
+ "$type": "RuleCall",
1284
+ "rule": {
1285
+ "$ref": "#/rules@28"
1286
+ },
1287
+ "arguments": []
1288
+ },
1289
+ {
1290
+ "$type": "RuleCall",
1291
+ "rule": {
1292
+ "$ref": "#/rules@29"
1293
+ },
1294
+ "arguments": []
1295
+ },
1296
+ {
1297
+ "$type": "RuleCall",
1298
+ "rule": {
1299
+ "$ref": "#/rules@26"
1300
+ },
1301
+ "arguments": []
1302
+ }
1303
+ ]
1304
+ },
1305
+ "entry": false,
1306
+ "fragment": false,
1307
+ "parameters": []
1308
+ },
1309
+ {
1310
+ "$type": "ParserRule",
1311
+ "name": "BlockLine",
1312
+ "definition": {
1313
+ "$type": "Assignment",
1314
+ "feature": "parts",
1315
+ "operator": "+=",
1316
+ "terminal": {
1317
+ "$type": "RuleCall",
1318
+ "rule": {
1319
+ "$ref": "#/rules@12"
1320
+ },
1321
+ "arguments": []
1322
+ },
1323
+ "cardinality": "+"
1324
+ },
1325
+ "entry": false,
1326
+ "fragment": false,
1327
+ "parameters": []
1328
+ },
1329
+ {
1330
+ "$type": "ParserRule",
1331
+ "name": "ListValue",
1332
+ "definition": {
1333
+ "$type": "Group",
1334
+ "elements": [
1335
+ {
1336
+ "$type": "Keyword",
1337
+ "value": "("
1338
+ },
1339
+ {
1340
+ "$type": "RuleCall",
1341
+ "rule": {
1342
+ "$ref": "#/rules@51"
1343
+ },
1344
+ "arguments": [],
1345
+ "cardinality": "*"
1346
+ },
1347
+ {
1348
+ "$type": "Assignment",
1349
+ "feature": "items",
1350
+ "operator": "+=",
1351
+ "terminal": {
1352
+ "$type": "RuleCall",
1353
+ "rule": {
1354
+ "$ref": "#/rules@30"
1355
+ },
1356
+ "arguments": []
1357
+ }
1358
+ },
1359
+ {
1360
+ "$type": "Group",
1361
+ "elements": [
1362
+ {
1363
+ "$type": "Alternatives",
1364
+ "elements": [
1365
+ {
1366
+ "$type": "Group",
1367
+ "elements": [
1368
+ {
1369
+ "$type": "RuleCall",
1370
+ "rule": {
1371
+ "$ref": "#/rules@51"
1372
+ },
1373
+ "arguments": [],
1374
+ "cardinality": "*"
1375
+ },
1376
+ {
1377
+ "$type": "Keyword",
1378
+ "value": ","
1379
+ },
1380
+ {
1381
+ "$type": "RuleCall",
1382
+ "rule": {
1383
+ "$ref": "#/rules@51"
1384
+ },
1385
+ "arguments": [],
1386
+ "cardinality": "*"
1387
+ }
1388
+ ]
1389
+ },
1390
+ {
1391
+ "$type": "RuleCall",
1392
+ "rule": {
1393
+ "$ref": "#/rules@51"
1394
+ },
1395
+ "arguments": [],
1396
+ "cardinality": "+"
1397
+ }
1398
+ ]
1399
+ },
1400
+ {
1401
+ "$type": "Assignment",
1402
+ "feature": "items",
1403
+ "operator": "+=",
1404
+ "terminal": {
1405
+ "$type": "RuleCall",
1406
+ "rule": {
1407
+ "$ref": "#/rules@30"
1408
+ },
1409
+ "arguments": []
1410
+ }
1411
+ }
1412
+ ],
1413
+ "cardinality": "*"
1414
+ },
1415
+ {
1416
+ "$type": "RuleCall",
1417
+ "rule": {
1418
+ "$ref": "#/rules@51"
1419
+ },
1420
+ "arguments": [],
1421
+ "cardinality": "*"
1422
+ },
1423
+ {
1424
+ "$type": "Group",
1425
+ "elements": [
1426
+ {
1427
+ "$type": "Keyword",
1428
+ "value": ","
1429
+ },
1430
+ {
1431
+ "$type": "RuleCall",
1432
+ "rule": {
1433
+ "$ref": "#/rules@51"
1434
+ },
1435
+ "arguments": [],
1436
+ "cardinality": "*"
1437
+ }
1438
+ ],
1439
+ "cardinality": "?"
1440
+ },
1441
+ {
1442
+ "$type": "Keyword",
1443
+ "value": ")"
1444
+ }
1445
+ ]
1446
+ },
1447
+ "entry": false,
1448
+ "fragment": false,
1449
+ "parameters": []
1450
+ },
1451
+ {
1452
+ "$type": "ParserRule",
1453
+ "name": "NamedList",
1454
+ "definition": {
1455
+ "$type": "Group",
1456
+ "elements": [
1457
+ {
1458
+ "$type": "Assignment",
1459
+ "feature": "label",
1460
+ "operator": "=",
1461
+ "terminal": {
1462
+ "$type": "RuleCall",
1463
+ "rule": {
1464
+ "$ref": "#/rules@56"
1465
+ },
1466
+ "arguments": []
1467
+ }
1468
+ },
1469
+ {
1470
+ "$type": "Keyword",
1471
+ "value": "("
1472
+ },
1473
+ {
1474
+ "$type": "RuleCall",
1475
+ "rule": {
1476
+ "$ref": "#/rules@51"
1477
+ },
1478
+ "arguments": [],
1479
+ "cardinality": "+"
1480
+ },
1481
+ {
1482
+ "$type": "Assignment",
1483
+ "feature": "items",
1484
+ "operator": "+=",
1485
+ "terminal": {
1486
+ "$type": "RuleCall",
1487
+ "rule": {
1488
+ "$ref": "#/rules@30"
1489
+ },
1490
+ "arguments": []
1491
+ }
1492
+ },
1493
+ {
1494
+ "$type": "Group",
1495
+ "elements": [
1496
+ {
1497
+ "$type": "Alternatives",
1498
+ "elements": [
1499
+ {
1500
+ "$type": "Group",
1501
+ "elements": [
1502
+ {
1503
+ "$type": "RuleCall",
1504
+ "rule": {
1505
+ "$ref": "#/rules@51"
1506
+ },
1507
+ "arguments": [],
1508
+ "cardinality": "*"
1509
+ },
1510
+ {
1511
+ "$type": "Keyword",
1512
+ "value": ","
1513
+ },
1514
+ {
1515
+ "$type": "RuleCall",
1516
+ "rule": {
1517
+ "$ref": "#/rules@51"
1518
+ },
1519
+ "arguments": [],
1520
+ "cardinality": "*"
1521
+ }
1522
+ ]
1523
+ },
1524
+ {
1525
+ "$type": "RuleCall",
1526
+ "rule": {
1527
+ "$ref": "#/rules@51"
1528
+ },
1529
+ "arguments": [],
1530
+ "cardinality": "+"
1531
+ }
1532
+ ]
1533
+ },
1534
+ {
1535
+ "$type": "Assignment",
1536
+ "feature": "items",
1537
+ "operator": "+=",
1538
+ "terminal": {
1539
+ "$type": "RuleCall",
1540
+ "rule": {
1541
+ "$ref": "#/rules@30"
1542
+ },
1543
+ "arguments": []
1544
+ }
1545
+ }
1546
+ ],
1547
+ "cardinality": "*"
1548
+ },
1549
+ {
1550
+ "$type": "RuleCall",
1551
+ "rule": {
1552
+ "$ref": "#/rules@51"
1553
+ },
1554
+ "arguments": [],
1555
+ "cardinality": "*"
1556
+ },
1557
+ {
1558
+ "$type": "Group",
1559
+ "elements": [
1560
+ {
1561
+ "$type": "Keyword",
1562
+ "value": ","
1563
+ },
1564
+ {
1565
+ "$type": "RuleCall",
1566
+ "rule": {
1567
+ "$ref": "#/rules@51"
1568
+ },
1569
+ "arguments": [],
1570
+ "cardinality": "*"
1571
+ }
1572
+ ],
1573
+ "cardinality": "?"
1574
+ },
1575
+ {
1576
+ "$type": "Keyword",
1577
+ "value": ")"
1578
+ }
1579
+ ]
1580
+ },
1581
+ "entry": false,
1582
+ "fragment": false,
1583
+ "parameters": []
1584
+ },
1585
+ {
1586
+ "$type": "ParserRule",
1587
+ "name": "NestedList",
1588
+ "definition": {
1589
+ "$type": "Group",
1590
+ "elements": [
1591
+ {
1592
+ "$type": "Keyword",
1593
+ "value": "("
1594
+ },
1595
+ {
1596
+ "$type": "RuleCall",
1597
+ "rule": {
1598
+ "$ref": "#/rules@51"
1599
+ },
1600
+ "arguments": [],
1601
+ "cardinality": "+"
1602
+ },
1603
+ {
1604
+ "$type": "Assignment",
1605
+ "feature": "items",
1606
+ "operator": "+=",
1607
+ "terminal": {
1608
+ "$type": "RuleCall",
1609
+ "rule": {
1610
+ "$ref": "#/rules@30"
1611
+ },
1612
+ "arguments": []
1613
+ }
1614
+ },
1615
+ {
1616
+ "$type": "Group",
1617
+ "elements": [
1618
+ {
1619
+ "$type": "Alternatives",
1620
+ "elements": [
1621
+ {
1622
+ "$type": "Group",
1623
+ "elements": [
1624
+ {
1625
+ "$type": "RuleCall",
1626
+ "rule": {
1627
+ "$ref": "#/rules@51"
1628
+ },
1629
+ "arguments": [],
1630
+ "cardinality": "*"
1631
+ },
1632
+ {
1633
+ "$type": "Keyword",
1634
+ "value": ","
1635
+ },
1636
+ {
1637
+ "$type": "RuleCall",
1638
+ "rule": {
1639
+ "$ref": "#/rules@51"
1640
+ },
1641
+ "arguments": [],
1642
+ "cardinality": "*"
1643
+ }
1644
+ ]
1645
+ },
1646
+ {
1647
+ "$type": "RuleCall",
1648
+ "rule": {
1649
+ "$ref": "#/rules@51"
1650
+ },
1651
+ "arguments": [],
1652
+ "cardinality": "+"
1653
+ }
1654
+ ]
1655
+ },
1656
+ {
1657
+ "$type": "Assignment",
1658
+ "feature": "items",
1659
+ "operator": "+=",
1660
+ "terminal": {
1661
+ "$type": "RuleCall",
1662
+ "rule": {
1663
+ "$ref": "#/rules@30"
1664
+ },
1665
+ "arguments": []
1666
+ }
1667
+ }
1668
+ ],
1669
+ "cardinality": "*"
1670
+ },
1671
+ {
1672
+ "$type": "RuleCall",
1673
+ "rule": {
1674
+ "$ref": "#/rules@51"
1675
+ },
1676
+ "arguments": [],
1677
+ "cardinality": "*"
1678
+ },
1679
+ {
1680
+ "$type": "Group",
1681
+ "elements": [
1682
+ {
1683
+ "$type": "Keyword",
1684
+ "value": ","
1685
+ },
1686
+ {
1687
+ "$type": "RuleCall",
1688
+ "rule": {
1689
+ "$ref": "#/rules@51"
1690
+ },
1691
+ "arguments": [],
1692
+ "cardinality": "*"
1693
+ }
1694
+ ],
1695
+ "cardinality": "?"
1696
+ },
1697
+ {
1698
+ "$type": "Keyword",
1699
+ "value": ")"
1700
+ }
1701
+ ]
1702
+ },
1703
+ "entry": false,
1704
+ "fragment": false,
1705
+ "parameters": []
1706
+ },
1707
+ {
1708
+ "$type": "ParserRule",
1709
+ "name": "ListItem",
1710
+ "definition": {
1711
+ "$type": "Alternatives",
1712
+ "elements": [
1713
+ {
1714
+ "$type": "RuleCall",
1715
+ "rule": {
1716
+ "$ref": "#/rules@31"
1717
+ },
1718
+ "arguments": []
1719
+ },
1720
+ {
1721
+ "$type": "RuleCall",
1722
+ "rule": {
1723
+ "$ref": "#/rules@36"
1724
+ },
1725
+ "arguments": []
1726
+ },
1727
+ {
1728
+ "$type": "RuleCall",
1729
+ "rule": {
1730
+ "$ref": "#/rules@35"
1731
+ },
1732
+ "arguments": []
1733
+ },
1734
+ {
1735
+ "$type": "RuleCall",
1736
+ "rule": {
1737
+ "$ref": "#/rules@29"
1738
+ },
1739
+ "arguments": []
1740
+ }
1741
+ ]
1742
+ },
1743
+ "entry": false,
1744
+ "fragment": false,
1745
+ "parameters": []
1746
+ },
1747
+ {
1748
+ "$type": "ParserRule",
1749
+ "name": "OneLinerListItem",
1750
+ "definition": {
1751
+ "$type": "Assignment",
1752
+ "feature": "body",
1753
+ "operator": "=",
1754
+ "terminal": {
1755
+ "$type": "RuleCall",
1756
+ "rule": {
1757
+ "$ref": "#/rules@32"
1758
+ },
1759
+ "arguments": []
1760
+ }
1761
+ },
1762
+ "entry": false,
1763
+ "fragment": false,
1764
+ "parameters": []
1765
+ },
1766
+ {
1767
+ "$type": "ParserRule",
1768
+ "name": "ListItemBody",
1769
+ "definition": {
1770
+ "$type": "Assignment",
1771
+ "feature": "content",
1772
+ "operator": "+=",
1773
+ "terminal": {
1774
+ "$type": "Alternatives",
1775
+ "elements": [
1776
+ {
1777
+ "$type": "RuleCall",
1778
+ "rule": {
1779
+ "$ref": "#/rules@37"
1780
+ },
1781
+ "arguments": []
1782
+ },
1783
+ {
1784
+ "$type": "RuleCall",
1785
+ "rule": {
1786
+ "$ref": "#/rules@40"
1787
+ },
1788
+ "arguments": []
1789
+ },
1790
+ {
1791
+ "$type": "RuleCall",
1792
+ "rule": {
1793
+ "$ref": "#/rules@38"
1794
+ },
1795
+ "arguments": []
1796
+ },
1797
+ {
1798
+ "$type": "RuleCall",
1799
+ "rule": {
1800
+ "$ref": "#/rules@33"
1801
+ },
1802
+ "arguments": []
1803
+ }
1804
+ ]
1805
+ },
1806
+ "cardinality": "+"
1807
+ },
1808
+ "entry": false,
1809
+ "fragment": false,
1810
+ "parameters": []
1811
+ },
1812
+ {
1813
+ "$type": "ParserRule",
1814
+ "name": "ListItemText",
1815
+ "dataType": "string",
1816
+ "definition": {
1817
+ "$type": "Alternatives",
1818
+ "elements": [
1819
+ {
1820
+ "$type": "RuleCall",
1821
+ "rule": {
1822
+ "$ref": "#/rules@59"
1823
+ },
1824
+ "arguments": []
1825
+ },
1826
+ {
1827
+ "$type": "RuleCall",
1828
+ "rule": {
1829
+ "$ref": "#/rules@56"
1830
+ },
1831
+ "arguments": []
1832
+ },
1833
+ {
1834
+ "$type": "RuleCall",
1835
+ "rule": {
1836
+ "$ref": "#/rules@58"
1837
+ },
1838
+ "arguments": []
1839
+ },
1840
+ {
1841
+ "$type": "RuleCall",
1842
+ "rule": {
1843
+ "$ref": "#/rules@61"
1844
+ },
1845
+ "arguments": []
1846
+ },
1847
+ {
1848
+ "$type": "RuleCall",
1849
+ "rule": {
1850
+ "$ref": "#/rules@60"
1851
+ },
1852
+ "arguments": []
1853
+ },
1854
+ {
1855
+ "$type": "RuleCall",
1856
+ "rule": {
1857
+ "$ref": "#/rules@34"
1858
+ },
1859
+ "arguments": []
1860
+ },
1861
+ {
1862
+ "$type": "Keyword",
1863
+ "value": "("
1864
+ },
1865
+ {
1866
+ "$type": "Keyword",
1867
+ "value": "|"
1868
+ },
1869
+ {
1870
+ "$type": "Keyword",
1871
+ "value": "from"
1872
+ },
1873
+ {
1874
+ "$type": "Keyword",
1875
+ "value": "import"
1876
+ },
1877
+ {
1878
+ "$type": "Keyword",
1879
+ "value": "as"
1880
+ },
1881
+ {
1882
+ "$type": "Keyword",
1883
+ "value": "\`"
1884
+ }
1885
+ ]
1886
+ },
1887
+ "entry": false,
1888
+ "fragment": false,
1889
+ "parameters": []
1890
+ },
1891
+ {
1892
+ "$type": "ParserRule",
1893
+ "name": "ListItemPunctuation",
1894
+ "dataType": "string",
1895
+ "definition": {
1896
+ "$type": "Alternatives",
1897
+ "elements": [
1898
+ {
1899
+ "$type": "Keyword",
1900
+ "value": "."
1901
+ },
1902
+ {
1903
+ "$type": "Keyword",
1904
+ "value": ":"
1905
+ },
1906
+ {
1907
+ "$type": "Keyword",
1908
+ "value": ";"
1909
+ },
1910
+ {
1911
+ "$type": "Keyword",
1912
+ "value": "!"
1913
+ },
1914
+ {
1915
+ "$type": "Keyword",
1916
+ "value": "?"
1917
+ },
1918
+ {
1919
+ "$type": "Keyword",
1920
+ "value": "-"
1921
+ }
1922
+ ]
1923
+ },
1924
+ "entry": false,
1925
+ "fragment": false,
1926
+ "parameters": []
1927
+ },
1928
+ {
1929
+ "$type": "ParserRule",
1930
+ "name": "NamedBlockListItem",
1931
+ "definition": {
1932
+ "$type": "Group",
1933
+ "elements": [
1934
+ {
1935
+ "$type": "Assignment",
1936
+ "feature": "name",
1937
+ "operator": "=",
1938
+ "terminal": {
1939
+ "$type": "RuleCall",
1940
+ "rule": {
1941
+ "$ref": "#/rules@56"
1942
+ },
1943
+ "arguments": []
1944
+ }
1945
+ },
1946
+ {
1947
+ "$type": "Keyword",
1948
+ "value": "{"
1949
+ },
1950
+ {
1951
+ "$type": "Group",
1952
+ "elements": [
1953
+ {
1954
+ "$type": "RuleCall",
1955
+ "rule": {
1956
+ "$ref": "#/rules@51"
1957
+ },
1958
+ "arguments": [],
1959
+ "cardinality": "*"
1960
+ },
1961
+ {
1962
+ "$type": "Assignment",
1963
+ "feature": "elements",
1964
+ "operator": "+=",
1965
+ "terminal": {
1966
+ "$type": "RuleCall",
1967
+ "rule": {
1968
+ "$ref": "#/rules@10"
1969
+ },
1970
+ "arguments": []
1971
+ }
1972
+ }
1973
+ ],
1974
+ "cardinality": "*"
1975
+ },
1976
+ {
1977
+ "$type": "RuleCall",
1978
+ "rule": {
1979
+ "$ref": "#/rules@51"
1980
+ },
1981
+ "arguments": [],
1982
+ "cardinality": "*"
1983
+ },
1984
+ {
1985
+ "$type": "Keyword",
1986
+ "value": "}"
1987
+ }
1988
+ ]
1989
+ },
1990
+ "entry": false,
1991
+ "fragment": false,
1992
+ "parameters": []
1993
+ },
1994
+ {
1995
+ "$type": "ParserRule",
1996
+ "name": "AnonymousBlock",
1997
+ "definition": {
1998
+ "$type": "Group",
1999
+ "elements": [
2000
+ {
2001
+ "$type": "Keyword",
2002
+ "value": "{"
2003
+ },
2004
+ {
2005
+ "$type": "Group",
2006
+ "elements": [
2007
+ {
2008
+ "$type": "RuleCall",
2009
+ "rule": {
2010
+ "$ref": "#/rules@51"
2011
+ },
2012
+ "arguments": [],
2013
+ "cardinality": "*"
2014
+ },
2015
+ {
2016
+ "$type": "Assignment",
2017
+ "feature": "elements",
2018
+ "operator": "+=",
2019
+ "terminal": {
2020
+ "$type": "RuleCall",
2021
+ "rule": {
2022
+ "$ref": "#/rules@10"
2023
+ },
2024
+ "arguments": []
2025
+ }
2026
+ }
2027
+ ],
2028
+ "cardinality": "*"
2029
+ },
2030
+ {
2031
+ "$type": "RuleCall",
2032
+ "rule": {
2033
+ "$ref": "#/rules@51"
2034
+ },
2035
+ "arguments": [],
2036
+ "cardinality": "*"
2037
+ },
2038
+ {
2039
+ "$type": "Keyword",
2040
+ "value": "}"
2041
+ }
2042
+ ]
2043
+ },
2044
+ "entry": false,
2045
+ "fragment": false,
2046
+ "parameters": []
2047
+ },
2048
+ {
2049
+ "$type": "ParserRule",
2050
+ "name": "MarkdownLink",
2051
+ "definition": {
2052
+ "$type": "Assignment",
2053
+ "feature": "raw",
2054
+ "operator": "=",
2055
+ "terminal": {
2056
+ "$type": "RuleCall",
2057
+ "rule": {
2058
+ "$ref": "#/rules@55"
2059
+ },
2060
+ "arguments": []
2061
+ }
2062
+ },
2063
+ "entry": false,
2064
+ "fragment": false,
2065
+ "parameters": []
2066
+ },
2067
+ {
2068
+ "$type": "ParserRule",
2069
+ "name": "WikiLink",
2070
+ "definition": {
2071
+ "$type": "Group",
2072
+ "elements": [
2073
+ {
2074
+ "$type": "Keyword",
2075
+ "value": "[["
2076
+ },
2077
+ {
2078
+ "$type": "Assignment",
2079
+ "feature": "target",
2080
+ "operator": "=",
2081
+ "terminal": {
2082
+ "$type": "RuleCall",
2083
+ "rule": {
2084
+ "$ref": "#/rules@41"
2085
+ },
2086
+ "arguments": []
2087
+ }
2088
+ },
2089
+ {
2090
+ "$type": "Group",
2091
+ "elements": [
2092
+ {
2093
+ "$type": "Keyword",
2094
+ "value": "|"
2095
+ },
2096
+ {
2097
+ "$type": "Assignment",
2098
+ "feature": "alias",
2099
+ "operator": "+=",
2100
+ "terminal": {
2101
+ "$type": "RuleCall",
2102
+ "rule": {
2103
+ "$ref": "#/rules@39"
2104
+ },
2105
+ "arguments": []
2106
+ },
2107
+ "cardinality": "+"
2108
+ }
2109
+ ],
2110
+ "cardinality": "?"
2111
+ },
2112
+ {
2113
+ "$type": "Keyword",
2114
+ "value": "]]"
2115
+ }
2116
+ ]
2117
+ },
2118
+ "entry": false,
2119
+ "fragment": false,
2120
+ "parameters": []
2121
+ },
2122
+ {
2123
+ "$type": "ParserRule",
2124
+ "name": "AliasPart",
2125
+ "definition": {
2126
+ "$type": "Assignment",
2127
+ "feature": "text",
2128
+ "operator": "=",
2129
+ "terminal": {
2130
+ "$type": "RuleCall",
2131
+ "rule": {
2132
+ "$ref": "#/rules@16"
2133
+ },
2134
+ "arguments": []
2135
+ }
2136
+ },
2137
+ "entry": false,
2138
+ "fragment": false,
2139
+ "parameters": []
2140
+ },
2141
+ {
2142
+ "$type": "ParserRule",
2143
+ "name": "BracketReference",
2144
+ "definition": {
2145
+ "$type": "Group",
2146
+ "elements": [
2147
+ {
2148
+ "$type": "Keyword",
2149
+ "value": "["
2150
+ },
2151
+ {
2152
+ "$type": "Assignment",
2153
+ "feature": "target",
2154
+ "operator": "=",
2155
+ "terminal": {
2156
+ "$type": "RuleCall",
2157
+ "rule": {
2158
+ "$ref": "#/rules@41"
2159
+ },
2160
+ "arguments": []
2161
+ }
2162
+ },
2163
+ {
2164
+ "$type": "Keyword",
2165
+ "value": "]"
2166
+ }
2167
+ ]
2168
+ },
2169
+ "entry": false,
2170
+ "fragment": false,
2171
+ "parameters": []
2172
+ },
2173
+ {
2174
+ "$type": "ParserRule",
2175
+ "name": "ReferenceTarget",
2176
+ "definition": {
2177
+ "$type": "Alternatives",
2178
+ "elements": [
2179
+ {
2180
+ "$type": "RuleCall",
2181
+ "rule": {
2182
+ "$ref": "#/rules@44"
2183
+ },
2184
+ "arguments": []
2185
+ },
2186
+ {
2187
+ "$type": "RuleCall",
2188
+ "rule": {
2189
+ "$ref": "#/rules@43"
2190
+ },
2191
+ "arguments": []
2192
+ },
2193
+ {
2194
+ "$type": "RuleCall",
2195
+ "rule": {
2196
+ "$ref": "#/rules@42"
2197
+ },
2198
+ "arguments": []
2199
+ },
2200
+ {
2201
+ "$type": "RuleCall",
2202
+ "rule": {
2203
+ "$ref": "#/rules@45"
2204
+ },
2205
+ "arguments": []
2206
+ }
2207
+ ]
2208
+ },
2209
+ "entry": false,
2210
+ "fragment": false,
2211
+ "parameters": []
2212
+ },
2213
+ {
2214
+ "$type": "ParserRule",
2215
+ "name": "FileReference",
2216
+ "definition": {
2217
+ "$type": "Assignment",
2218
+ "feature": "file",
2219
+ "operator": "=",
2220
+ "terminal": {
2221
+ "$type": "RuleCall",
2222
+ "rule": {
2223
+ "$ref": "#/rules@57"
2224
+ },
2225
+ "arguments": []
2226
+ }
2227
+ },
2228
+ "entry": false,
2229
+ "fragment": false,
2230
+ "parameters": []
2231
+ },
2232
+ {
2233
+ "$type": "ParserRule",
2234
+ "name": "FileSymbolReference",
2235
+ "definition": {
2236
+ "$type": "Group",
2237
+ "elements": [
2238
+ {
2239
+ "$type": "Assignment",
2240
+ "feature": "file",
2241
+ "operator": "=",
2242
+ "terminal": {
2243
+ "$type": "RuleCall",
2244
+ "rule": {
2245
+ "$ref": "#/rules@57"
2246
+ },
2247
+ "arguments": []
2248
+ }
2249
+ },
2250
+ {
2251
+ "$type": "Keyword",
2252
+ "value": "."
2253
+ },
2254
+ {
2255
+ "$type": "Assignment",
2256
+ "feature": "symbols",
2257
+ "operator": "+=",
2258
+ "terminal": {
2259
+ "$type": "RuleCall",
2260
+ "rule": {
2261
+ "$ref": "#/rules@56"
2262
+ },
2263
+ "arguments": []
2264
+ }
2265
+ },
2266
+ {
2267
+ "$type": "Keyword",
2268
+ "value": "."
2269
+ },
2270
+ {
2271
+ "$type": "Assignment",
2272
+ "feature": "symbols",
2273
+ "operator": "+=",
2274
+ "terminal": {
2275
+ "$type": "RuleCall",
2276
+ "rule": {
2277
+ "$ref": "#/rules@56"
2278
+ },
2279
+ "arguments": []
2280
+ }
2281
+ },
2282
+ {
2283
+ "$type": "Keyword",
2284
+ "value": "."
2285
+ },
2286
+ {
2287
+ "$type": "Assignment",
2288
+ "feature": "symbols",
2289
+ "operator": "+=",
2290
+ "terminal": {
2291
+ "$type": "RuleCall",
2292
+ "rule": {
2293
+ "$ref": "#/rules@56"
2294
+ },
2295
+ "arguments": []
2296
+ }
2297
+ },
2298
+ {
2299
+ "$type": "Group",
2300
+ "elements": [
2301
+ {
2302
+ "$type": "Keyword",
2303
+ "value": "."
2304
+ },
2305
+ {
2306
+ "$type": "Assignment",
2307
+ "feature": "symbols",
2308
+ "operator": "+=",
2309
+ "terminal": {
2310
+ "$type": "RuleCall",
2311
+ "rule": {
2312
+ "$ref": "#/rules@56"
2313
+ },
2314
+ "arguments": []
2315
+ }
2316
+ }
2317
+ ],
2318
+ "cardinality": "*"
2319
+ }
2320
+ ]
2321
+ },
2322
+ "entry": false,
2323
+ "fragment": false,
2324
+ "parameters": []
2325
+ },
2326
+ {
2327
+ "$type": "ParserRule",
2328
+ "name": "QualifiedReference",
2329
+ "definition": {
2330
+ "$type": "Group",
2331
+ "elements": [
2332
+ {
2333
+ "$type": "Alternatives",
2334
+ "elements": [
2335
+ {
2336
+ "$type": "Assignment",
2337
+ "feature": "path",
2338
+ "operator": "=",
2339
+ "terminal": {
2340
+ "$type": "CrossReference",
2341
+ "type": {
2342
+ "$ref": "#/rules@46"
2343
+ },
2344
+ "terminal": {
2345
+ "$type": "RuleCall",
2346
+ "rule": {
2347
+ "$ref": "#/rules@57"
2348
+ },
2349
+ "arguments": []
2350
+ },
2351
+ "deprecatedSyntax": false,
2352
+ "isMulti": false
2353
+ }
2354
+ },
2355
+ {
2356
+ "$type": "Assignment",
2357
+ "feature": "qualifier",
2358
+ "operator": "=",
2359
+ "terminal": {
2360
+ "$type": "CrossReference",
2361
+ "type": {
2362
+ "$ref": "#/rules@46"
2363
+ },
2364
+ "terminal": {
2365
+ "$type": "RuleCall",
2366
+ "rule": {
2367
+ "$ref": "#/rules@56"
2368
+ },
2369
+ "arguments": []
2370
+ },
2371
+ "deprecatedSyntax": false,
2372
+ "isMulti": false
2373
+ }
2374
+ }
2375
+ ]
2376
+ },
2377
+ {
2378
+ "$type": "Keyword",
2379
+ "value": "."
2380
+ },
2381
+ {
2382
+ "$type": "Group",
2383
+ "elements": [
2384
+ {
2385
+ "$type": "Assignment",
2386
+ "feature": "ideaset",
2387
+ "operator": "=",
2388
+ "terminal": {
2389
+ "$type": "CrossReference",
2390
+ "type": {
2391
+ "$ref": "#/rules@6"
2392
+ },
2393
+ "terminal": {
2394
+ "$type": "RuleCall",
2395
+ "rule": {
2396
+ "$ref": "#/rules@9"
2397
+ },
2398
+ "arguments": []
2399
+ },
2400
+ "deprecatedSyntax": false,
2401
+ "isMulti": false
2402
+ }
2403
+ },
2404
+ {
2405
+ "$type": "Keyword",
2406
+ "value": "."
2407
+ }
2408
+ ],
2409
+ "cardinality": "?"
2410
+ },
2411
+ {
2412
+ "$type": "Assignment",
2413
+ "feature": "idea",
2414
+ "operator": "=",
2415
+ "terminal": {
2416
+ "$type": "CrossReference",
2417
+ "type": {
2418
+ "$ref": "#/rules@4"
2419
+ },
2420
+ "terminal": {
2421
+ "$type": "RuleCall",
2422
+ "rule": {
2423
+ "$ref": "#/rules@9"
2424
+ },
2425
+ "arguments": []
2426
+ },
2427
+ "deprecatedSyntax": false,
2428
+ "isMulti": false
2429
+ }
2430
+ }
2431
+ ]
2432
+ },
2433
+ "entry": false,
2434
+ "fragment": false,
2435
+ "parameters": []
2436
+ },
2437
+ {
2438
+ "$type": "ParserRule",
2439
+ "name": "LocalReference",
2440
+ "definition": {
2441
+ "$type": "Assignment",
2442
+ "feature": "idea",
2443
+ "operator": "=",
2444
+ "terminal": {
2445
+ "$type": "CrossReference",
2446
+ "type": {
2447
+ "$ref": "#/rules@4"
2448
+ },
2449
+ "terminal": {
2450
+ "$type": "RuleCall",
2451
+ "rule": {
2452
+ "$ref": "#/rules@9"
2453
+ },
2454
+ "arguments": []
2455
+ },
2456
+ "deprecatedSyntax": false,
2457
+ "isMulti": false
2458
+ }
2459
+ },
2460
+ "entry": false,
2461
+ "fragment": false,
2462
+ "parameters": []
2463
+ },
2464
+ {
2465
+ "$type": "ParserRule",
2466
+ "name": "Import",
2467
+ "definition": {
2468
+ "$type": "Alternatives",
2469
+ "elements": [
2470
+ {
2471
+ "$type": "RuleCall",
2472
+ "rule": {
2473
+ "$ref": "#/rules@47"
2474
+ },
2475
+ "arguments": []
2476
+ },
2477
+ {
2478
+ "$type": "RuleCall",
2479
+ "rule": {
2480
+ "$ref": "#/rules@49"
2481
+ },
2482
+ "arguments": []
2483
+ },
2484
+ {
2485
+ "$type": "RuleCall",
2486
+ "rule": {
2487
+ "$ref": "#/rules@50"
2488
+ },
2489
+ "arguments": []
2490
+ }
2491
+ ]
2492
+ },
2493
+ "entry": false,
2494
+ "fragment": false,
2495
+ "parameters": []
2496
+ },
2497
+ {
2498
+ "$type": "ParserRule",
2499
+ "name": "FromImport",
2500
+ "definition": {
2501
+ "$type": "Group",
2502
+ "elements": [
2503
+ {
2504
+ "$type": "Keyword",
2505
+ "value": "from"
2506
+ },
2507
+ {
2508
+ "$type": "Assignment",
2509
+ "feature": "path",
2510
+ "operator": "=",
2511
+ "terminal": {
2512
+ "$type": "RuleCall",
2513
+ "rule": {
2514
+ "$ref": "#/rules@57"
2515
+ },
2516
+ "arguments": []
2517
+ }
2518
+ },
2519
+ {
2520
+ "$type": "Keyword",
2521
+ "value": "import"
2522
+ },
2523
+ {
2524
+ "$type": "Assignment",
2525
+ "feature": "specifiers",
2526
+ "operator": "+=",
2527
+ "terminal": {
2528
+ "$type": "RuleCall",
2529
+ "rule": {
2530
+ "$ref": "#/rules@48"
2531
+ },
2532
+ "arguments": []
2533
+ }
2534
+ },
2535
+ {
2536
+ "$type": "Group",
2537
+ "elements": [
2538
+ {
2539
+ "$type": "Keyword",
2540
+ "value": ","
2541
+ },
2542
+ {
2543
+ "$type": "Assignment",
2544
+ "feature": "specifiers",
2545
+ "operator": "+=",
2546
+ "terminal": {
2547
+ "$type": "RuleCall",
2548
+ "rule": {
2549
+ "$ref": "#/rules@48"
2550
+ },
2551
+ "arguments": []
2552
+ }
2553
+ }
2554
+ ],
2555
+ "cardinality": "*"
2556
+ }
2557
+ ]
2558
+ },
2559
+ "entry": false,
2560
+ "fragment": false,
2561
+ "parameters": []
2562
+ },
2563
+ {
2564
+ "$type": "ParserRule",
2565
+ "name": "FromImportSpecifier",
2566
+ "definition": {
2567
+ "$type": "Group",
2568
+ "elements": [
2569
+ {
2570
+ "$type": "Assignment",
2571
+ "feature": "idea",
2572
+ "operator": "=",
2573
+ "terminal": {
2574
+ "$type": "CrossReference",
2575
+ "type": {
2576
+ "$ref": "#/rules@4"
2577
+ },
2578
+ "terminal": {
2579
+ "$type": "RuleCall",
2580
+ "rule": {
2581
+ "$ref": "#/rules@56"
2582
+ },
2583
+ "arguments": []
2584
+ },
2585
+ "deprecatedSyntax": false,
2586
+ "isMulti": false
2587
+ }
2588
+ },
2589
+ {
2590
+ "$type": "Group",
2591
+ "elements": [
2592
+ {
2593
+ "$type": "Keyword",
2594
+ "value": "as"
2595
+ },
2596
+ {
2597
+ "$type": "Assignment",
2598
+ "feature": "alias",
2599
+ "operator": "=",
2600
+ "terminal": {
2601
+ "$type": "RuleCall",
2602
+ "rule": {
2603
+ "$ref": "#/rules@56"
2604
+ },
2605
+ "arguments": []
2606
+ }
2607
+ }
2608
+ ],
2609
+ "cardinality": "?"
2610
+ }
2611
+ ]
2612
+ },
2613
+ "entry": false,
2614
+ "fragment": false,
2615
+ "parameters": []
2616
+ },
2617
+ {
2618
+ "$type": "ParserRule",
2619
+ "name": "NamespaceImport",
2620
+ "definition": {
2621
+ "$type": "Group",
2622
+ "elements": [
2623
+ {
2624
+ "$type": "Keyword",
2625
+ "value": "import"
2626
+ },
2627
+ {
2628
+ "$type": "Assignment",
2629
+ "feature": "path",
2630
+ "operator": "=",
2631
+ "terminal": {
2632
+ "$type": "RuleCall",
2633
+ "rule": {
2634
+ "$ref": "#/rules@57"
2635
+ },
2636
+ "arguments": []
2637
+ }
2638
+ },
2639
+ {
2640
+ "$type": "Group",
2641
+ "elements": [
2642
+ {
2643
+ "$type": "Keyword",
2644
+ "value": "as"
2645
+ },
2646
+ {
2647
+ "$type": "Assignment",
2648
+ "feature": "alias",
2649
+ "operator": "=",
2650
+ "terminal": {
2651
+ "$type": "RuleCall",
2652
+ "rule": {
2653
+ "$ref": "#/rules@56"
2654
+ },
2655
+ "arguments": []
2656
+ }
2657
+ }
2658
+ ],
2659
+ "cardinality": "?"
2660
+ }
2661
+ ]
2662
+ },
2663
+ "entry": false,
2664
+ "fragment": false,
2665
+ "parameters": []
2666
+ },
2667
+ {
2668
+ "$type": "ParserRule",
2669
+ "name": "QualifiedImport",
2670
+ "definition": {
2671
+ "$type": "Group",
2672
+ "elements": [
2673
+ {
2674
+ "$type": "Keyword",
2675
+ "value": "import"
2676
+ },
2677
+ {
2678
+ "$type": "Assignment",
2679
+ "feature": "path",
2680
+ "operator": "=",
2681
+ "terminal": {
2682
+ "$type": "RuleCall",
2683
+ "rule": {
2684
+ "$ref": "#/rules@57"
2685
+ },
2686
+ "arguments": []
2687
+ }
2688
+ },
2689
+ {
2690
+ "$type": "Keyword",
2691
+ "value": "."
2692
+ },
2693
+ {
2694
+ "$type": "Assignment",
2695
+ "feature": "ideaset",
2696
+ "operator": "=",
2697
+ "terminal": {
2698
+ "$type": "RuleCall",
2699
+ "rule": {
2700
+ "$ref": "#/rules@56"
2701
+ },
2702
+ "arguments": []
2703
+ }
2704
+ },
2705
+ {
2706
+ "$type": "Keyword",
2707
+ "value": "."
2708
+ },
2709
+ {
2710
+ "$type": "Assignment",
2711
+ "feature": "idea",
2712
+ "operator": "=",
2713
+ "terminal": {
2714
+ "$type": "CrossReference",
2715
+ "type": {
2716
+ "$ref": "#/rules@4"
2717
+ },
2718
+ "terminal": {
2719
+ "$type": "RuleCall",
2720
+ "rule": {
2721
+ "$ref": "#/rules@56"
2722
+ },
2723
+ "arguments": []
2724
+ },
2725
+ "deprecatedSyntax": false,
2726
+ "isMulti": false
2727
+ }
2728
+ },
2729
+ {
2730
+ "$type": "Group",
2731
+ "elements": [
2732
+ {
2733
+ "$type": "Keyword",
2734
+ "value": "as"
2735
+ },
2736
+ {
2737
+ "$type": "Assignment",
2738
+ "feature": "alias",
2739
+ "operator": "=",
2740
+ "terminal": {
2741
+ "$type": "RuleCall",
2742
+ "rule": {
2743
+ "$ref": "#/rules@56"
2744
+ },
2745
+ "arguments": []
2746
+ }
2747
+ }
2748
+ ],
2749
+ "cardinality": "?"
2750
+ }
2751
+ ]
2752
+ },
2753
+ "entry": false,
2754
+ "fragment": false,
2755
+ "parameters": []
2756
+ },
2757
+ {
2758
+ "$type": "TerminalRule",
2759
+ "name": "NL",
2760
+ "definition": {
2761
+ "$type": "RegexToken",
2762
+ "regex": "/\\\\r?\\\\n/",
2763
+ "parenthesized": false
2764
+ },
2765
+ "fragment": false,
2766
+ "hidden": false
2767
+ },
2768
+ {
2769
+ "$type": "TerminalRule",
2770
+ "hidden": true,
2771
+ "name": "WS",
2772
+ "definition": {
2773
+ "$type": "RegexToken",
2774
+ "regex": "/[ \\\\t]+/",
2775
+ "parenthesized": false
2776
+ },
2777
+ "fragment": false
2778
+ },
2779
+ {
2780
+ "$type": "TerminalRule",
2781
+ "hidden": true,
2782
+ "name": "ML_COMMENT",
2783
+ "definition": {
2784
+ "$type": "RegexToken",
2785
+ "regex": "/\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\//",
2786
+ "parenthesized": false
2787
+ },
2788
+ "fragment": false
2789
+ },
2790
+ {
2791
+ "$type": "TerminalRule",
2792
+ "hidden": true,
2793
+ "name": "SL_COMMENT",
2794
+ "definition": {
2795
+ "$type": "RegexToken",
2796
+ "regex": "/\\\\/\\\\/[^\\\\n\\\\r]*/",
2797
+ "parenthesized": false
2798
+ },
2799
+ "fragment": false
2800
+ },
2801
+ {
2802
+ "$type": "TerminalRule",
2803
+ "name": "MARKDOWN_LINK",
2804
+ "definition": {
2805
+ "$type": "RegexToken",
2806
+ "regex": "/\\\\[(?!\\\\[)[^\\\\]]+\\\\]\\\\([^)]+\\\\)/",
2807
+ "parenthesized": false
2808
+ },
2809
+ "fragment": false,
2810
+ "hidden": false
2811
+ },
2812
+ {
2813
+ "$type": "TerminalRule",
2814
+ "name": "ID",
2815
+ "definition": {
2816
+ "$type": "RegexToken",
2817
+ "regex": "/[_a-zA-Z][\\\\w-]*/",
2818
+ "parenthesized": false
2819
+ },
2820
+ "fragment": false,
2821
+ "hidden": false
2822
+ },
2823
+ {
2824
+ "$type": "TerminalRule",
2825
+ "name": "STRING",
2826
+ "definition": {
2827
+ "$type": "RegexToken",
2828
+ "regex": "/\\"(\\\\\\\\.|[^\\"\\\\\\\\\\\\r\\\\n])*\\"|'(\\\\\\\\.|[^'\\\\\\\\\\\\r\\\\n])*'/",
2829
+ "parenthesized": false
2830
+ },
2831
+ "fragment": false,
2832
+ "hidden": false
2833
+ },
2834
+ {
2835
+ "$type": "TerminalRule",
2836
+ "name": "NUMBER",
2837
+ "definition": {
2838
+ "$type": "RegexToken",
2839
+ "regex": "/\\\\d+/",
2840
+ "parenthesized": false
2841
+ },
2842
+ "fragment": false,
2843
+ "hidden": false
2844
+ },
2845
+ {
2846
+ "$type": "TerminalRule",
2847
+ "name": "WORD",
2848
+ "definition": {
2849
+ "$type": "RegexToken",
2850
+ "regex": "/[A-Za-z_][\\\\w']*/",
2851
+ "parenthesized": false
2852
+ },
2853
+ "fragment": false,
2854
+ "hidden": false
2855
+ },
2856
+ {
2857
+ "$type": "TerminalRule",
2858
+ "name": "OTHER",
2859
+ "definition": {
2860
+ "$type": "RegexToken",
2861
+ "regex": "/[^\\\\s\\\\w\\\\[\\\\]()\`]/",
2862
+ "parenthesized": false
2863
+ },
2864
+ "fragment": false,
2865
+ "hidden": false
2866
+ },
2867
+ {
2868
+ "$type": "TerminalRule",
2869
+ "name": "INLINE_CODE",
2870
+ "definition": {
2871
+ "$type": "RegexToken",
2872
+ "regex": "/\`[^\`\\\\n]+\`/",
2873
+ "parenthesized": false
2874
+ },
2875
+ "fragment": false,
2876
+ "hidden": false
2877
+ },
2878
+ {
2879
+ "$type": "TerminalRule",
2880
+ "name": "CODE_FENCE",
2881
+ "definition": {
2882
+ "$type": "RegexToken",
2883
+ "regex": "/\`\`\`[^\\\\n]*(?:\\\\r?\\\\n[\\\\s\\\\S]*?)?\`\`\`/",
2884
+ "parenthesized": false
2885
+ },
2886
+ "fragment": false,
2887
+ "hidden": false
2888
+ }
2889
+ ],
2890
+ "imports": [],
2891
+ "interfaces": [],
2892
+ "types": [],
2893
+ "$comment": "/**\\n * Implementation of the rules described in reqlan rq/language/syntax.rq.\\n *\\n * Design:\\n * - Imports and top-level declarations are line-oriented; import/from/as are keywords only there.\\n * - One-liner ideas are name + body on a single line; block ideas use braces for rich content.\\n * - ReferenceTarget covers local members, import-qualified, alias-qualified, and file targets.\\n */"
2894
+ }`));
2895
+
2896
+ let loadedReqlanCommentGrammar: Grammar | undefined;
2897
+ export const ReqlanCommentGrammar = (): Grammar => loadedReqlanCommentGrammar ?? (loadedReqlanCommentGrammar = loadGrammarFromJson(`{
2898
+ "$type": "Grammar",
2899
+ "isDeclared": true,
2900
+ "name": "ReqlanComment",
2901
+ "rules": [
2902
+ {
2903
+ "$type": "ParserRule",
2904
+ "entry": true,
2905
+ "name": "CommentModel",
2906
+ "definition": {
2907
+ "$type": "Assignment",
2908
+ "feature": "references",
2909
+ "operator": "+=",
2910
+ "terminal": {
2911
+ "$type": "RuleCall",
2912
+ "rule": {
2913
+ "$ref": "#/rules@1"
2914
+ },
2915
+ "arguments": []
2916
+ },
2917
+ "cardinality": "*"
2918
+ },
2919
+ "fragment": false,
2920
+ "parameters": []
2921
+ },
2922
+ {
2923
+ "$type": "ParserRule",
2924
+ "name": "CommentReference",
2925
+ "definition": {
2926
+ "$type": "Group",
2927
+ "elements": [
2928
+ {
2929
+ "$type": "Keyword",
2930
+ "value": "rq"
2931
+ },
2932
+ {
2933
+ "$type": "Keyword",
2934
+ "value": ":"
2935
+ },
2936
+ {
2937
+ "$type": "Keyword",
2938
+ "value": "["
2939
+ },
2940
+ {
2941
+ "$type": "Assignment",
2942
+ "feature": "target",
2943
+ "operator": "=",
2944
+ "terminal": {
2945
+ "$type": "RuleCall",
2946
+ "rule": {
2947
+ "$ref": "#/rules@2"
2948
+ },
2949
+ "arguments": []
2950
+ }
2951
+ },
2952
+ {
2953
+ "$type": "Keyword",
2954
+ "value": "]"
2955
+ }
2956
+ ]
2957
+ },
2958
+ "entry": false,
2959
+ "fragment": false,
2960
+ "parameters": []
2961
+ },
2962
+ {
2963
+ "$type": "ParserRule",
2964
+ "name": "CommentReferenceTarget",
2965
+ "definition": {
2966
+ "$type": "Alternatives",
2967
+ "elements": [
2968
+ {
2969
+ "$type": "RuleCall",
2970
+ "rule": {
2971
+ "$ref": "#/rules@3"
2972
+ },
2973
+ "arguments": []
2974
+ },
2975
+ {
2976
+ "$type": "RuleCall",
2977
+ "rule": {
2978
+ "$ref": "#/rules@4"
2979
+ },
2980
+ "arguments": []
2981
+ }
2982
+ ]
2983
+ },
2984
+ "entry": false,
2985
+ "fragment": false,
2986
+ "parameters": []
2987
+ },
2988
+ {
2989
+ "$type": "ParserRule",
2990
+ "name": "QualifiedCommentReference",
2991
+ "definition": {
2992
+ "$type": "Group",
2993
+ "elements": [
2994
+ {
2995
+ "$type": "Assignment",
2996
+ "feature": "path",
2997
+ "operator": "=",
2998
+ "terminal": {
2999
+ "$type": "RuleCall",
3000
+ "rule": {
3001
+ "$ref": "#/rules@6"
3002
+ },
3003
+ "arguments": []
3004
+ }
3005
+ },
3006
+ {
3007
+ "$type": "Keyword",
3008
+ "value": "."
3009
+ },
3010
+ {
3011
+ "$type": "Assignment",
3012
+ "feature": "idea",
3013
+ "operator": "=",
3014
+ "terminal": {
3015
+ "$type": "RuleCall",
3016
+ "rule": {
3017
+ "$ref": "#/rules@5"
3018
+ },
3019
+ "arguments": []
3020
+ }
3021
+ }
3022
+ ]
3023
+ },
3024
+ "entry": false,
3025
+ "fragment": false,
3026
+ "parameters": []
3027
+ },
3028
+ {
3029
+ "$type": "ParserRule",
3030
+ "name": "LocalCommentReference",
3031
+ "definition": {
3032
+ "$type": "Assignment",
3033
+ "feature": "idea",
3034
+ "operator": "=",
3035
+ "terminal": {
3036
+ "$type": "RuleCall",
3037
+ "rule": {
3038
+ "$ref": "#/rules@5"
3039
+ },
3040
+ "arguments": []
3041
+ }
3042
+ },
3043
+ "entry": false,
3044
+ "fragment": false,
3045
+ "parameters": []
3046
+ },
3047
+ {
3048
+ "$type": "TerminalRule",
3049
+ "name": "ID",
3050
+ "definition": {
3051
+ "$type": "RegexToken",
3052
+ "regex": "/[_a-zA-Z][\\\\w-]*/",
3053
+ "parenthesized": false
3054
+ },
3055
+ "fragment": false,
3056
+ "hidden": false
3057
+ },
3058
+ {
3059
+ "$type": "TerminalRule",
3060
+ "name": "STRING",
3061
+ "definition": {
3062
+ "$type": "RegexToken",
3063
+ "regex": "/\\"(\\\\\\\\.|[^\\"\\\\\\\\])*\\"/",
3064
+ "parenthesized": false
3065
+ },
3066
+ "fragment": false,
3067
+ "hidden": false
3068
+ }
3069
+ ],
3070
+ "imports": [],
3071
+ "interfaces": [],
3072
+ "types": [],
3073
+ "$comment": "/**\\n * Embedded reqlan references in comments of arbitrary source files.\\n * Syntax: rq:[idea] or rq:[\\"./reqfile.rq\\".idea_name]\\n */"
3074
+ }`));