flowquery 1.0.46 → 1.0.48

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 (422) hide show
  1. package/dist/flowquery.min.js +1 -1
  2. package/dist/index.d.ts +0 -7
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +6 -4
  5. package/dist/index.js.map +1 -1
  6. package/dist/parsing/data_structures/list_comprehension.d.ts +56 -0
  7. package/dist/parsing/data_structures/list_comprehension.d.ts.map +1 -0
  8. package/dist/parsing/data_structures/list_comprehension.js +102 -0
  9. package/dist/parsing/data_structures/list_comprehension.js.map +1 -0
  10. package/dist/parsing/parser.d.ts +18 -0
  11. package/dist/parsing/parser.d.ts.map +1 -1
  12. package/dist/parsing/parser.js +92 -0
  13. package/dist/parsing/parser.js.map +1 -1
  14. package/package.json +4 -1
  15. package/.editorconfig +0 -21
  16. package/.gitattributes +0 -3
  17. package/.github/workflows/npm-publish.yml +0 -32
  18. package/.github/workflows/python-publish.yml +0 -143
  19. package/.github/workflows/release.yml +0 -107
  20. package/.husky/pre-commit +0 -28
  21. package/.prettierrc +0 -22
  22. package/CODE_OF_CONDUCT.md +0 -10
  23. package/FlowQueryLogoIcon.png +0 -0
  24. package/SECURITY.md +0 -14
  25. package/SUPPORT.md +0 -13
  26. package/docs/flowquery.min.js +0 -1
  27. package/docs/index.html +0 -105
  28. package/flowquery-py/CONTRIBUTING.md +0 -127
  29. package/flowquery-py/README.md +0 -67
  30. package/flowquery-py/misc/data/test.json +0 -10
  31. package/flowquery-py/misc/data/users.json +0 -242
  32. package/flowquery-py/notebooks/TestFlowQuery.ipynb +0 -440
  33. package/flowquery-py/pyproject.toml +0 -121
  34. package/flowquery-py/setup_env.ps1 +0 -92
  35. package/flowquery-py/setup_env.sh +0 -87
  36. package/flowquery-py/src/__init__.py +0 -38
  37. package/flowquery-py/src/__main__.py +0 -10
  38. package/flowquery-py/src/compute/__init__.py +0 -6
  39. package/flowquery-py/src/compute/flowquery.py +0 -68
  40. package/flowquery-py/src/compute/runner.py +0 -64
  41. package/flowquery-py/src/extensibility.py +0 -52
  42. package/flowquery-py/src/graph/__init__.py +0 -31
  43. package/flowquery-py/src/graph/data.py +0 -136
  44. package/flowquery-py/src/graph/database.py +0 -141
  45. package/flowquery-py/src/graph/hops.py +0 -43
  46. package/flowquery-py/src/graph/node.py +0 -143
  47. package/flowquery-py/src/graph/node_data.py +0 -26
  48. package/flowquery-py/src/graph/node_reference.py +0 -50
  49. package/flowquery-py/src/graph/pattern.py +0 -115
  50. package/flowquery-py/src/graph/pattern_expression.py +0 -67
  51. package/flowquery-py/src/graph/patterns.py +0 -42
  52. package/flowquery-py/src/graph/physical_node.py +0 -41
  53. package/flowquery-py/src/graph/physical_relationship.py +0 -36
  54. package/flowquery-py/src/graph/relationship.py +0 -193
  55. package/flowquery-py/src/graph/relationship_data.py +0 -36
  56. package/flowquery-py/src/graph/relationship_match_collector.py +0 -85
  57. package/flowquery-py/src/graph/relationship_reference.py +0 -21
  58. package/flowquery-py/src/io/__init__.py +0 -5
  59. package/flowquery-py/src/io/command_line.py +0 -108
  60. package/flowquery-py/src/parsing/__init__.py +0 -17
  61. package/flowquery-py/src/parsing/alias.py +0 -20
  62. package/flowquery-py/src/parsing/alias_option.py +0 -11
  63. package/flowquery-py/src/parsing/ast_node.py +0 -147
  64. package/flowquery-py/src/parsing/base_parser.py +0 -84
  65. package/flowquery-py/src/parsing/components/__init__.py +0 -19
  66. package/flowquery-py/src/parsing/components/csv.py +0 -8
  67. package/flowquery-py/src/parsing/components/from_.py +0 -12
  68. package/flowquery-py/src/parsing/components/headers.py +0 -12
  69. package/flowquery-py/src/parsing/components/json.py +0 -8
  70. package/flowquery-py/src/parsing/components/null.py +0 -10
  71. package/flowquery-py/src/parsing/components/post.py +0 -8
  72. package/flowquery-py/src/parsing/components/text.py +0 -8
  73. package/flowquery-py/src/parsing/context.py +0 -50
  74. package/flowquery-py/src/parsing/data_structures/__init__.py +0 -15
  75. package/flowquery-py/src/parsing/data_structures/associative_array.py +0 -41
  76. package/flowquery-py/src/parsing/data_structures/json_array.py +0 -30
  77. package/flowquery-py/src/parsing/data_structures/key_value_pair.py +0 -38
  78. package/flowquery-py/src/parsing/data_structures/lookup.py +0 -51
  79. package/flowquery-py/src/parsing/data_structures/range_lookup.py +0 -42
  80. package/flowquery-py/src/parsing/expressions/__init__.py +0 -61
  81. package/flowquery-py/src/parsing/expressions/boolean.py +0 -20
  82. package/flowquery-py/src/parsing/expressions/expression.py +0 -141
  83. package/flowquery-py/src/parsing/expressions/expression_map.py +0 -26
  84. package/flowquery-py/src/parsing/expressions/f_string.py +0 -27
  85. package/flowquery-py/src/parsing/expressions/identifier.py +0 -21
  86. package/flowquery-py/src/parsing/expressions/number.py +0 -32
  87. package/flowquery-py/src/parsing/expressions/operator.py +0 -271
  88. package/flowquery-py/src/parsing/expressions/reference.py +0 -47
  89. package/flowquery-py/src/parsing/expressions/string.py +0 -27
  90. package/flowquery-py/src/parsing/functions/__init__.py +0 -127
  91. package/flowquery-py/src/parsing/functions/aggregate_function.py +0 -60
  92. package/flowquery-py/src/parsing/functions/async_function.py +0 -65
  93. package/flowquery-py/src/parsing/functions/avg.py +0 -55
  94. package/flowquery-py/src/parsing/functions/coalesce.py +0 -43
  95. package/flowquery-py/src/parsing/functions/collect.py +0 -75
  96. package/flowquery-py/src/parsing/functions/count.py +0 -79
  97. package/flowquery-py/src/parsing/functions/date_.py +0 -61
  98. package/flowquery-py/src/parsing/functions/datetime_.py +0 -62
  99. package/flowquery-py/src/parsing/functions/duration.py +0 -159
  100. package/flowquery-py/src/parsing/functions/element_id.py +0 -50
  101. package/flowquery-py/src/parsing/functions/function.py +0 -68
  102. package/flowquery-py/src/parsing/functions/function_factory.py +0 -170
  103. package/flowquery-py/src/parsing/functions/function_metadata.py +0 -148
  104. package/flowquery-py/src/parsing/functions/functions.py +0 -67
  105. package/flowquery-py/src/parsing/functions/head.py +0 -39
  106. package/flowquery-py/src/parsing/functions/id_.py +0 -49
  107. package/flowquery-py/src/parsing/functions/join.py +0 -49
  108. package/flowquery-py/src/parsing/functions/keys.py +0 -34
  109. package/flowquery-py/src/parsing/functions/last.py +0 -39
  110. package/flowquery-py/src/parsing/functions/localdatetime.py +0 -60
  111. package/flowquery-py/src/parsing/functions/localtime.py +0 -57
  112. package/flowquery-py/src/parsing/functions/max_.py +0 -49
  113. package/flowquery-py/src/parsing/functions/min_.py +0 -49
  114. package/flowquery-py/src/parsing/functions/nodes.py +0 -48
  115. package/flowquery-py/src/parsing/functions/predicate_function.py +0 -47
  116. package/flowquery-py/src/parsing/functions/predicate_sum.py +0 -49
  117. package/flowquery-py/src/parsing/functions/properties.py +0 -50
  118. package/flowquery-py/src/parsing/functions/rand.py +0 -28
  119. package/flowquery-py/src/parsing/functions/range_.py +0 -41
  120. package/flowquery-py/src/parsing/functions/reducer_element.py +0 -15
  121. package/flowquery-py/src/parsing/functions/relationships.py +0 -46
  122. package/flowquery-py/src/parsing/functions/replace.py +0 -39
  123. package/flowquery-py/src/parsing/functions/round_.py +0 -34
  124. package/flowquery-py/src/parsing/functions/schema.py +0 -40
  125. package/flowquery-py/src/parsing/functions/size.py +0 -34
  126. package/flowquery-py/src/parsing/functions/split.py +0 -54
  127. package/flowquery-py/src/parsing/functions/string_distance.py +0 -92
  128. package/flowquery-py/src/parsing/functions/stringify.py +0 -49
  129. package/flowquery-py/src/parsing/functions/substring.py +0 -76
  130. package/flowquery-py/src/parsing/functions/sum.py +0 -51
  131. package/flowquery-py/src/parsing/functions/tail.py +0 -37
  132. package/flowquery-py/src/parsing/functions/temporal_utils.py +0 -186
  133. package/flowquery-py/src/parsing/functions/time_.py +0 -57
  134. package/flowquery-py/src/parsing/functions/timestamp.py +0 -37
  135. package/flowquery-py/src/parsing/functions/to_float.py +0 -46
  136. package/flowquery-py/src/parsing/functions/to_integer.py +0 -46
  137. package/flowquery-py/src/parsing/functions/to_json.py +0 -35
  138. package/flowquery-py/src/parsing/functions/to_lower.py +0 -37
  139. package/flowquery-py/src/parsing/functions/to_string.py +0 -41
  140. package/flowquery-py/src/parsing/functions/trim.py +0 -37
  141. package/flowquery-py/src/parsing/functions/type_.py +0 -47
  142. package/flowquery-py/src/parsing/functions/value_holder.py +0 -24
  143. package/flowquery-py/src/parsing/logic/__init__.py +0 -15
  144. package/flowquery-py/src/parsing/logic/case.py +0 -28
  145. package/flowquery-py/src/parsing/logic/else_.py +0 -12
  146. package/flowquery-py/src/parsing/logic/end.py +0 -8
  147. package/flowquery-py/src/parsing/logic/then.py +0 -12
  148. package/flowquery-py/src/parsing/logic/when.py +0 -12
  149. package/flowquery-py/src/parsing/operations/__init__.py +0 -46
  150. package/flowquery-py/src/parsing/operations/aggregated_return.py +0 -25
  151. package/flowquery-py/src/parsing/operations/aggregated_with.py +0 -22
  152. package/flowquery-py/src/parsing/operations/call.py +0 -73
  153. package/flowquery-py/src/parsing/operations/create_node.py +0 -35
  154. package/flowquery-py/src/parsing/operations/create_relationship.py +0 -35
  155. package/flowquery-py/src/parsing/operations/delete_node.py +0 -29
  156. package/flowquery-py/src/parsing/operations/delete_relationship.py +0 -29
  157. package/flowquery-py/src/parsing/operations/group_by.py +0 -148
  158. package/flowquery-py/src/parsing/operations/limit.py +0 -33
  159. package/flowquery-py/src/parsing/operations/load.py +0 -148
  160. package/flowquery-py/src/parsing/operations/match.py +0 -52
  161. package/flowquery-py/src/parsing/operations/operation.py +0 -69
  162. package/flowquery-py/src/parsing/operations/order_by.py +0 -114
  163. package/flowquery-py/src/parsing/operations/projection.py +0 -21
  164. package/flowquery-py/src/parsing/operations/return_op.py +0 -88
  165. package/flowquery-py/src/parsing/operations/union.py +0 -115
  166. package/flowquery-py/src/parsing/operations/union_all.py +0 -17
  167. package/flowquery-py/src/parsing/operations/unwind.py +0 -42
  168. package/flowquery-py/src/parsing/operations/where.py +0 -43
  169. package/flowquery-py/src/parsing/operations/with_op.py +0 -18
  170. package/flowquery-py/src/parsing/parser.py +0 -1384
  171. package/flowquery-py/src/parsing/parser_state.py +0 -26
  172. package/flowquery-py/src/parsing/token_to_node.py +0 -109
  173. package/flowquery-py/src/tokenization/__init__.py +0 -23
  174. package/flowquery-py/src/tokenization/keyword.py +0 -54
  175. package/flowquery-py/src/tokenization/operator.py +0 -29
  176. package/flowquery-py/src/tokenization/string_walker.py +0 -158
  177. package/flowquery-py/src/tokenization/symbol.py +0 -19
  178. package/flowquery-py/src/tokenization/token.py +0 -693
  179. package/flowquery-py/src/tokenization/token_mapper.py +0 -53
  180. package/flowquery-py/src/tokenization/token_type.py +0 -21
  181. package/flowquery-py/src/tokenization/tokenizer.py +0 -214
  182. package/flowquery-py/src/tokenization/trie.py +0 -125
  183. package/flowquery-py/src/utils/__init__.py +0 -6
  184. package/flowquery-py/src/utils/object_utils.py +0 -20
  185. package/flowquery-py/src/utils/string_utils.py +0 -113
  186. package/flowquery-py/tests/__init__.py +0 -1
  187. package/flowquery-py/tests/compute/__init__.py +0 -1
  188. package/flowquery-py/tests/compute/test_runner.py +0 -4902
  189. package/flowquery-py/tests/graph/__init__.py +0 -1
  190. package/flowquery-py/tests/graph/test_create.py +0 -56
  191. package/flowquery-py/tests/graph/test_data.py +0 -73
  192. package/flowquery-py/tests/graph/test_match.py +0 -40
  193. package/flowquery-py/tests/parsing/__init__.py +0 -1
  194. package/flowquery-py/tests/parsing/test_context.py +0 -34
  195. package/flowquery-py/tests/parsing/test_expression.py +0 -248
  196. package/flowquery-py/tests/parsing/test_parser.py +0 -1237
  197. package/flowquery-py/tests/test_extensibility.py +0 -611
  198. package/flowquery-py/tests/tokenization/__init__.py +0 -1
  199. package/flowquery-py/tests/tokenization/test_token_mapper.py +0 -60
  200. package/flowquery-py/tests/tokenization/test_tokenizer.py +0 -198
  201. package/flowquery-py/tests/tokenization/test_trie.py +0 -30
  202. package/flowquery-vscode/.vscode-test.mjs +0 -5
  203. package/flowquery-vscode/.vscodeignore +0 -13
  204. package/flowquery-vscode/LICENSE +0 -21
  205. package/flowquery-vscode/README.md +0 -11
  206. package/flowquery-vscode/demo/FlowQueryVSCodeDemo.gif +0 -0
  207. package/flowquery-vscode/eslint.config.mjs +0 -25
  208. package/flowquery-vscode/extension.js +0 -508
  209. package/flowquery-vscode/flowQueryEngine/flowquery.min.js +0 -1
  210. package/flowquery-vscode/flowquery-worker.js +0 -66
  211. package/flowquery-vscode/images/FlowQueryLogoIcon.png +0 -0
  212. package/flowquery-vscode/jsconfig.json +0 -13
  213. package/flowquery-vscode/libs/page.css +0 -53
  214. package/flowquery-vscode/libs/table.css +0 -13
  215. package/flowquery-vscode/libs/tabs.css +0 -66
  216. package/flowquery-vscode/package-lock.json +0 -2917
  217. package/flowquery-vscode/package.json +0 -51
  218. package/flowquery-vscode/test/extension.test.js +0 -196
  219. package/flowquery-vscode/test/worker.test.js +0 -25
  220. package/flowquery-vscode/vsc-extension-quickstart.md +0 -42
  221. package/jest.config.js +0 -14
  222. package/misc/apps/RAG/README.md +0 -29
  223. package/misc/apps/RAG/data/chats.json +0 -302
  224. package/misc/apps/RAG/data/emails.json +0 -182
  225. package/misc/apps/RAG/data/events.json +0 -226
  226. package/misc/apps/RAG/data/files.json +0 -172
  227. package/misc/apps/RAG/data/users.json +0 -158
  228. package/misc/apps/RAG/jest.config.js +0 -21
  229. package/misc/apps/RAG/package.json +0 -48
  230. package/misc/apps/RAG/public/index.html +0 -18
  231. package/misc/apps/RAG/src/App.css +0 -42
  232. package/misc/apps/RAG/src/App.tsx +0 -50
  233. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.css +0 -172
  234. package/misc/apps/RAG/src/components/AdaptiveCardRenderer.tsx +0 -380
  235. package/misc/apps/RAG/src/components/ApiKeySettings.tsx +0 -245
  236. package/misc/apps/RAG/src/components/ChatContainer.css +0 -67
  237. package/misc/apps/RAG/src/components/ChatContainer.tsx +0 -242
  238. package/misc/apps/RAG/src/components/ChatInput.css +0 -23
  239. package/misc/apps/RAG/src/components/ChatInput.tsx +0 -76
  240. package/misc/apps/RAG/src/components/ChatMessage.css +0 -160
  241. package/misc/apps/RAG/src/components/ChatMessage.tsx +0 -286
  242. package/misc/apps/RAG/src/components/FlowQueryAgent.ts +0 -708
  243. package/misc/apps/RAG/src/components/FlowQueryRunner.css +0 -113
  244. package/misc/apps/RAG/src/components/FlowQueryRunner.tsx +0 -371
  245. package/misc/apps/RAG/src/components/index.ts +0 -28
  246. package/misc/apps/RAG/src/graph/index.ts +0 -19
  247. package/misc/apps/RAG/src/graph/initializeGraph.ts +0 -254
  248. package/misc/apps/RAG/src/index.tsx +0 -29
  249. package/misc/apps/RAG/src/prompts/FlowQuerySystemPrompt.ts +0 -327
  250. package/misc/apps/RAG/src/prompts/index.ts +0 -10
  251. package/misc/apps/RAG/src/tests/graph.test.ts +0 -35
  252. package/misc/apps/RAG/src/utils/FlowQueryExecutor.ts +0 -130
  253. package/misc/apps/RAG/src/utils/FlowQueryExtractor.ts +0 -208
  254. package/misc/apps/RAG/src/utils/Llm.ts +0 -248
  255. package/misc/apps/RAG/src/utils/index.ts +0 -12
  256. package/misc/apps/RAG/tsconfig.json +0 -22
  257. package/misc/apps/RAG/webpack.config.js +0 -43
  258. package/misc/apps/README.md +0 -1
  259. package/misc/queries/analyze_catfacts.cql +0 -75
  260. package/misc/queries/azure_openai_completions.cql +0 -13
  261. package/misc/queries/azure_openai_models.cql +0 -9
  262. package/misc/queries/mock_pipeline.cql +0 -84
  263. package/misc/queries/openai_completions.cql +0 -15
  264. package/misc/queries/openai_models.cql +0 -13
  265. package/misc/queries/test.cql +0 -6
  266. package/misc/queries/tool_inference.cql +0 -24
  267. package/misc/queries/wisdom.cql +0 -6
  268. package/misc/queries/wisdom_letter_histogram.cql +0 -8
  269. package/src/compute/flowquery.ts +0 -46
  270. package/src/compute/runner.ts +0 -66
  271. package/src/extensibility.ts +0 -45
  272. package/src/graph/data.ts +0 -130
  273. package/src/graph/database.ts +0 -143
  274. package/src/graph/hops.ts +0 -22
  275. package/src/graph/node.ts +0 -122
  276. package/src/graph/node_data.ts +0 -18
  277. package/src/graph/node_reference.ts +0 -38
  278. package/src/graph/pattern.ts +0 -110
  279. package/src/graph/pattern_expression.ts +0 -48
  280. package/src/graph/patterns.ts +0 -36
  281. package/src/graph/physical_node.ts +0 -23
  282. package/src/graph/physical_relationship.ts +0 -23
  283. package/src/graph/relationship.ts +0 -167
  284. package/src/graph/relationship_data.ts +0 -31
  285. package/src/graph/relationship_match_collector.ts +0 -64
  286. package/src/graph/relationship_reference.ts +0 -25
  287. package/src/index.browser.ts +0 -46
  288. package/src/index.node.ts +0 -55
  289. package/src/index.ts +0 -12
  290. package/src/io/command_line.ts +0 -74
  291. package/src/parsing/alias.ts +0 -23
  292. package/src/parsing/alias_option.ts +0 -5
  293. package/src/parsing/ast_node.ts +0 -153
  294. package/src/parsing/base_parser.ts +0 -98
  295. package/src/parsing/components/csv.ts +0 -9
  296. package/src/parsing/components/from.ts +0 -12
  297. package/src/parsing/components/headers.ts +0 -12
  298. package/src/parsing/components/json.ts +0 -9
  299. package/src/parsing/components/null.ts +0 -9
  300. package/src/parsing/components/post.ts +0 -9
  301. package/src/parsing/components/text.ts +0 -9
  302. package/src/parsing/context.ts +0 -54
  303. package/src/parsing/data_structures/associative_array.ts +0 -43
  304. package/src/parsing/data_structures/json_array.ts +0 -31
  305. package/src/parsing/data_structures/key_value_pair.ts +0 -37
  306. package/src/parsing/data_structures/lookup.ts +0 -44
  307. package/src/parsing/data_structures/range_lookup.ts +0 -36
  308. package/src/parsing/expressions/boolean.ts +0 -21
  309. package/src/parsing/expressions/expression.ts +0 -150
  310. package/src/parsing/expressions/expression_map.ts +0 -22
  311. package/src/parsing/expressions/f_string.ts +0 -26
  312. package/src/parsing/expressions/identifier.ts +0 -22
  313. package/src/parsing/expressions/number.ts +0 -40
  314. package/src/parsing/expressions/operator.ts +0 -354
  315. package/src/parsing/expressions/reference.ts +0 -45
  316. package/src/parsing/expressions/string.ts +0 -34
  317. package/src/parsing/functions/aggregate_function.ts +0 -58
  318. package/src/parsing/functions/async_function.ts +0 -64
  319. package/src/parsing/functions/avg.ts +0 -47
  320. package/src/parsing/functions/coalesce.ts +0 -49
  321. package/src/parsing/functions/collect.ts +0 -54
  322. package/src/parsing/functions/count.ts +0 -54
  323. package/src/parsing/functions/date.ts +0 -63
  324. package/src/parsing/functions/datetime.ts +0 -63
  325. package/src/parsing/functions/duration.ts +0 -143
  326. package/src/parsing/functions/element_id.ts +0 -51
  327. package/src/parsing/functions/function.ts +0 -60
  328. package/src/parsing/functions/function_factory.ts +0 -195
  329. package/src/parsing/functions/function_metadata.ts +0 -217
  330. package/src/parsing/functions/functions.ts +0 -70
  331. package/src/parsing/functions/head.ts +0 -42
  332. package/src/parsing/functions/id.ts +0 -51
  333. package/src/parsing/functions/join.ts +0 -40
  334. package/src/parsing/functions/keys.ts +0 -29
  335. package/src/parsing/functions/last.ts +0 -42
  336. package/src/parsing/functions/localdatetime.ts +0 -63
  337. package/src/parsing/functions/localtime.ts +0 -58
  338. package/src/parsing/functions/max.ts +0 -37
  339. package/src/parsing/functions/min.ts +0 -37
  340. package/src/parsing/functions/nodes.ts +0 -54
  341. package/src/parsing/functions/predicate_function.ts +0 -48
  342. package/src/parsing/functions/predicate_sum.ts +0 -47
  343. package/src/parsing/functions/properties.ts +0 -56
  344. package/src/parsing/functions/rand.ts +0 -21
  345. package/src/parsing/functions/range.ts +0 -37
  346. package/src/parsing/functions/reducer_element.ts +0 -10
  347. package/src/parsing/functions/relationships.ts +0 -52
  348. package/src/parsing/functions/replace.ts +0 -38
  349. package/src/parsing/functions/round.ts +0 -28
  350. package/src/parsing/functions/schema.ts +0 -39
  351. package/src/parsing/functions/size.ts +0 -28
  352. package/src/parsing/functions/split.ts +0 -45
  353. package/src/parsing/functions/string_distance.ts +0 -83
  354. package/src/parsing/functions/stringify.ts +0 -37
  355. package/src/parsing/functions/substring.ts +0 -68
  356. package/src/parsing/functions/sum.ts +0 -41
  357. package/src/parsing/functions/tail.ts +0 -39
  358. package/src/parsing/functions/temporal_utils.ts +0 -180
  359. package/src/parsing/functions/time.ts +0 -58
  360. package/src/parsing/functions/timestamp.ts +0 -37
  361. package/src/parsing/functions/to_float.ts +0 -50
  362. package/src/parsing/functions/to_integer.ts +0 -50
  363. package/src/parsing/functions/to_json.ts +0 -28
  364. package/src/parsing/functions/to_lower.ts +0 -28
  365. package/src/parsing/functions/to_string.ts +0 -32
  366. package/src/parsing/functions/trim.ts +0 -28
  367. package/src/parsing/functions/type.ts +0 -39
  368. package/src/parsing/functions/value_holder.ts +0 -13
  369. package/src/parsing/logic/case.ts +0 -26
  370. package/src/parsing/logic/else.ts +0 -12
  371. package/src/parsing/logic/end.ts +0 -9
  372. package/src/parsing/logic/then.ts +0 -12
  373. package/src/parsing/logic/when.ts +0 -12
  374. package/src/parsing/operations/aggregated_return.ts +0 -22
  375. package/src/parsing/operations/aggregated_with.ts +0 -18
  376. package/src/parsing/operations/call.ts +0 -69
  377. package/src/parsing/operations/create_node.ts +0 -39
  378. package/src/parsing/operations/create_relationship.ts +0 -38
  379. package/src/parsing/operations/delete_node.ts +0 -33
  380. package/src/parsing/operations/delete_relationship.ts +0 -32
  381. package/src/parsing/operations/group_by.ts +0 -137
  382. package/src/parsing/operations/limit.ts +0 -31
  383. package/src/parsing/operations/load.ts +0 -146
  384. package/src/parsing/operations/match.ts +0 -54
  385. package/src/parsing/operations/operation.ts +0 -69
  386. package/src/parsing/operations/order_by.ts +0 -126
  387. package/src/parsing/operations/projection.ts +0 -18
  388. package/src/parsing/operations/return.ts +0 -76
  389. package/src/parsing/operations/union.ts +0 -114
  390. package/src/parsing/operations/union_all.ts +0 -16
  391. package/src/parsing/operations/unwind.ts +0 -36
  392. package/src/parsing/operations/where.ts +0 -42
  393. package/src/parsing/operations/with.ts +0 -20
  394. package/src/parsing/parser.ts +0 -1641
  395. package/src/parsing/parser_state.ts +0 -25
  396. package/src/parsing/token_to_node.ts +0 -114
  397. package/src/tokenization/keyword.ts +0 -50
  398. package/src/tokenization/operator.ts +0 -25
  399. package/src/tokenization/string_walker.ts +0 -197
  400. package/src/tokenization/symbol.ts +0 -15
  401. package/src/tokenization/token.ts +0 -764
  402. package/src/tokenization/token_mapper.ts +0 -53
  403. package/src/tokenization/token_type.ts +0 -16
  404. package/src/tokenization/tokenizer.ts +0 -250
  405. package/src/tokenization/trie.ts +0 -117
  406. package/src/utils/object_utils.ts +0 -17
  407. package/src/utils/string_utils.ts +0 -114
  408. package/tests/compute/runner.test.ts +0 -4559
  409. package/tests/extensibility.test.ts +0 -643
  410. package/tests/graph/create.test.ts +0 -36
  411. package/tests/graph/data.test.ts +0 -58
  412. package/tests/graph/match.test.ts +0 -29
  413. package/tests/parsing/context.test.ts +0 -27
  414. package/tests/parsing/expression.test.ts +0 -303
  415. package/tests/parsing/parser.test.ts +0 -1327
  416. package/tests/tokenization/token_mapper.test.ts +0 -47
  417. package/tests/tokenization/tokenizer.test.ts +0 -191
  418. package/tests/tokenization/trie.test.ts +0 -20
  419. package/tsconfig.json +0 -19
  420. package/typedoc.json +0 -16
  421. package/vscode-settings.json.recommended +0 -16
  422. package/webpack.config.js +0 -26
@@ -1,764 +0,0 @@
1
- import ASTNode from "../parsing/ast_node";
2
- import TokenToNode from "../parsing/token_to_node";
3
- import StringUtils from "../utils/string_utils";
4
- import Keyword from "./keyword";
5
- import Operator from "./operator";
6
- import Symbol from "./symbol";
7
- import TokenType from "./token_type";
8
-
9
- /**
10
- * Represents a single token in the FlowQuery language.
11
- *
12
- * Tokens are the atomic units of lexical analysis, produced by the tokenizer
13
- * and consumed by the parser. Each token has a type (keyword, operator, identifier, etc.)
14
- * and an optional value.
15
- *
16
- * @example
17
- * ```typescript
18
- * const withToken = Token.WITH;
19
- * const identToken = Token.IDENTIFIER("myVar");
20
- * const numToken = Token.NUMBER("42");
21
- * ```
22
- */
23
- class Token {
24
- private _position: number = -1;
25
- private _type: TokenType;
26
- private _value: string | null;
27
- private _case_sensitive_value: string | null = null;
28
- private _can_be_identifier: boolean = false;
29
-
30
- /**
31
- * Creates a new Token instance.
32
- *
33
- * @param type - The type of the token
34
- * @param value - The optional value associated with the token
35
- */
36
- constructor(type: TokenType, value: string | null = null) {
37
- this._type = type;
38
- this._value = value;
39
- this._can_be_identifier = StringUtils.can_be_identifier(value || "");
40
- }
41
-
42
- /**
43
- * Checks if this token equals another token.
44
- *
45
- * @param other - The token to compare against
46
- * @returns True if tokens are equal, false otherwise
47
- */
48
- public equals(other: Token): boolean {
49
- if (this._type === TokenType.IDENTIFIER && other.type === TokenType.IDENTIFIER) {
50
- return true; // Identifier values are not compared
51
- }
52
- return this._type === other.type && this._value === other.value;
53
- }
54
-
55
- public set position(position: number) {
56
- this._position = position;
57
- }
58
-
59
- public get position(): number {
60
- return this._position;
61
- }
62
-
63
- public get type(): TokenType {
64
- return this._type;
65
- }
66
-
67
- public get value(): string | null {
68
- return this._case_sensitive_value || this._value;
69
- }
70
-
71
- public set case_sensitive_value(value: string) {
72
- this._case_sensitive_value = value;
73
- }
74
-
75
- public get can_be_identifier(): boolean {
76
- return this._can_be_identifier;
77
- }
78
-
79
- public get node(): ASTNode {
80
- return TokenToNode.convert(this);
81
- }
82
-
83
- public toString(): string {
84
- return `${this._type} ${this._value}`;
85
- }
86
-
87
- // Comment tokens
88
-
89
- public static COMMENT(comment: string): Token {
90
- return new Token(TokenType.COMMENT, comment);
91
- }
92
-
93
- public isComment(): boolean {
94
- return this._type === TokenType.COMMENT;
95
- }
96
-
97
- // Identifier token
98
-
99
- public static IDENTIFIER(value: string): Token {
100
- return new Token(TokenType.IDENTIFIER, value);
101
- }
102
-
103
- public isIdentifier(): boolean {
104
- return this._type === TokenType.IDENTIFIER || this._type === TokenType.BACKTICK_STRING;
105
- }
106
-
107
- public isIdentifierOrKeyword(): boolean {
108
- return this.isIdentifier() || (this.isKeyword() && !this.isKeywordThatCannotBeIdentifier());
109
- }
110
-
111
- // String token
112
-
113
- public static STRING(value: string, quoteChar: string = '"'): Token {
114
- const unquoted = StringUtils.unquote(value);
115
- const unescaped = StringUtils.removeEscapedQuotes(unquoted, quoteChar);
116
- return new Token(TokenType.STRING, unescaped);
117
- }
118
-
119
- public isString(): boolean {
120
- return this._type === TokenType.STRING || this._type === TokenType.BACKTICK_STRING;
121
- }
122
-
123
- public static BACKTICK_STRING(value: string, quoteChar: string = '"'): Token {
124
- const unquoted = StringUtils.unquote(value);
125
- const unescaped = StringUtils.removeEscapedQuotes(unquoted, quoteChar);
126
- return new Token(TokenType.BACKTICK_STRING, unescaped);
127
- }
128
-
129
- public static F_STRING(value: string, quoteChar: string = '"'): Token {
130
- const unquoted = StringUtils.unquote(value);
131
- const unescaped = StringUtils.removeEscapedQuotes(unquoted, quoteChar);
132
- const fstring = StringUtils.removeEscapedBraces(unescaped);
133
- return new Token(TokenType.F_STRING, fstring);
134
- }
135
-
136
- public isFString(): boolean {
137
- return this._type === TokenType.F_STRING;
138
- }
139
-
140
- // Number token
141
-
142
- public static NUMBER(value: string): Token {
143
- return new Token(TokenType.NUMBER, value);
144
- }
145
-
146
- public isNumber(): boolean {
147
- return this._type === TokenType.NUMBER;
148
- }
149
-
150
- // Boolean token
151
-
152
- public static BOOLEAN(value: string): Token {
153
- return new Token(TokenType.BOOLEAN, value);
154
- }
155
-
156
- public isBoolean(): boolean {
157
- return (
158
- this._type === TokenType.BOOLEAN && (this._value === "TRUE" || this._value === "FALSE")
159
- );
160
- }
161
-
162
- // Symbol tokens
163
-
164
- public static get LEFT_PARENTHESIS(): Token {
165
- return new Token(TokenType.SYMBOL, Symbol.LEFT_PARENTHESIS);
166
- }
167
-
168
- public isLeftParenthesis(): boolean {
169
- return this._type === TokenType.SYMBOL && this._value === Symbol.LEFT_PARENTHESIS;
170
- }
171
-
172
- public static get RIGHT_PARENTHESIS(): Token {
173
- return new Token(TokenType.SYMBOL, Symbol.RIGHT_PARENTHESIS);
174
- }
175
-
176
- public isRightParenthesis(): boolean {
177
- return this._type === TokenType.SYMBOL && this._value === Symbol.RIGHT_PARENTHESIS;
178
- }
179
-
180
- public static get COMMA(): Token {
181
- return new Token(TokenType.SYMBOL, Symbol.COMMA);
182
- }
183
-
184
- public isComma(): boolean {
185
- return this._type === TokenType.SYMBOL && this._value === Symbol.COMMA;
186
- }
187
-
188
- public static get DOT(): Token {
189
- return new Token(TokenType.SYMBOL, Symbol.DOT);
190
- }
191
-
192
- public isDot(): boolean {
193
- return this._type === TokenType.SYMBOL && this._value === Symbol.DOT;
194
- }
195
-
196
- public static get COLON(): Token {
197
- return new Token(TokenType.SYMBOL, Symbol.COLON);
198
- }
199
-
200
- public isColon(): boolean {
201
- return this._type === TokenType.SYMBOL && this._value === Symbol.COLON;
202
- }
203
-
204
- public static get OPENING_BRACE(): Token {
205
- return new Token(TokenType.SYMBOL, Symbol.OPENING_BRACE);
206
- }
207
-
208
- public isOpeningBrace(): boolean {
209
- return this._type === TokenType.SYMBOL && this._value === Symbol.OPENING_BRACE;
210
- }
211
-
212
- public static get CLOSING_BRACE(): Token {
213
- return new Token(TokenType.SYMBOL, Symbol.CLOSING_BRACE);
214
- }
215
-
216
- public isClosingBrace(): boolean {
217
- return this._type === TokenType.SYMBOL && this._value === Symbol.CLOSING_BRACE;
218
- }
219
-
220
- public static get OPENING_BRACKET(): Token {
221
- return new Token(TokenType.SYMBOL, Symbol.OPENING_BRACKET);
222
- }
223
-
224
- public isOpeningBracket(): boolean {
225
- return this._type === TokenType.SYMBOL && this._value === Symbol.OPENING_BRACKET;
226
- }
227
-
228
- public static get CLOSING_BRACKET(): Token {
229
- return new Token(TokenType.SYMBOL, Symbol.CLOSING_BRACKET);
230
- }
231
-
232
- public isClosingBracket(): boolean {
233
- return this._type === TokenType.SYMBOL && this._value === Symbol.CLOSING_BRACKET;
234
- }
235
-
236
- // Whitespace token
237
-
238
- public static get WHITESPACE(): Token {
239
- return new Token(TokenType.WHITESPACE);
240
- }
241
-
242
- public isWhitespace(): boolean {
243
- return this._type === TokenType.WHITESPACE;
244
- }
245
-
246
- // Operator tokens
247
-
248
- public isOperator(): boolean {
249
- return this._type === TokenType.OPERATOR;
250
- }
251
-
252
- public isUnaryOperator(): boolean {
253
- return this._type === TokenType.UNARY_OPERATOR;
254
- }
255
-
256
- public static get ADD(): Token {
257
- return new Token(TokenType.OPERATOR, Operator.ADD);
258
- }
259
-
260
- public isAdd(): boolean {
261
- return this._type === TokenType.OPERATOR && this._value === Operator.ADD;
262
- }
263
-
264
- public static get SUBTRACT(): Token {
265
- return new Token(TokenType.OPERATOR, Operator.SUBTRACT);
266
- }
267
-
268
- public isSubtract(): boolean {
269
- return this._type === TokenType.OPERATOR && this._value === Operator.SUBTRACT;
270
- }
271
-
272
- public isNegation(): boolean {
273
- return this.isSubtract();
274
- }
275
-
276
- public static get MULTIPLY(): Token {
277
- return new Token(TokenType.OPERATOR, Operator.MULTIPLY);
278
- }
279
-
280
- public isMultiply(): boolean {
281
- return this._type === TokenType.OPERATOR && this._value === Operator.MULTIPLY;
282
- }
283
-
284
- public static get DIVIDE(): Token {
285
- return new Token(TokenType.OPERATOR, Operator.DIVIDE);
286
- }
287
-
288
- public isDivide(): boolean {
289
- return this._type === TokenType.OPERATOR && this._value === Operator.DIVIDE;
290
- }
291
-
292
- public static get EXPONENT(): Token {
293
- return new Token(TokenType.OPERATOR, Operator.EXPONENT);
294
- }
295
-
296
- public isExponent(): boolean {
297
- return this._type === TokenType.OPERATOR && this._value === Operator.EXPONENT;
298
- }
299
-
300
- public static get MODULO(): Token {
301
- return new Token(TokenType.OPERATOR, Operator.MODULO);
302
- }
303
-
304
- public isModulo(): boolean {
305
- return this._type === TokenType.OPERATOR && this._value === Operator.MODULO;
306
- }
307
-
308
- public static get EQUALS(): Token {
309
- return new Token(TokenType.OPERATOR, Operator.EQUALS);
310
- }
311
-
312
- public isEquals(): boolean {
313
- return this._type === TokenType.OPERATOR && this._value === Operator.EQUALS;
314
- }
315
-
316
- public static get NOT_EQUALS(): Token {
317
- return new Token(TokenType.OPERATOR, Operator.NOT_EQUALS);
318
- }
319
-
320
- public isNotEquals(): boolean {
321
- return this._type === TokenType.OPERATOR && this._value === Operator.NOT_EQUALS;
322
- }
323
-
324
- public static get LESS_THAN(): Token {
325
- return new Token(TokenType.OPERATOR, Operator.LESS_THAN);
326
- }
327
-
328
- public isLessThan(): boolean {
329
- return this._type === TokenType.OPERATOR && this._value === Operator.LESS_THAN;
330
- }
331
-
332
- public static get LESS_THAN_OR_EQUAL(): Token {
333
- return new Token(TokenType.OPERATOR, Operator.LESS_THAN_OR_EQUAL);
334
- }
335
-
336
- public isLessThanOrEqual(): boolean {
337
- return this._type === TokenType.OPERATOR && this._value === Operator.LESS_THAN_OR_EQUAL;
338
- }
339
-
340
- public static get GREATER_THAN(): Token {
341
- return new Token(TokenType.OPERATOR, Operator.GREATER_THAN);
342
- }
343
-
344
- public isGreaterThan(): boolean {
345
- return this._type === TokenType.OPERATOR && this._value === Operator.GREATER_THAN;
346
- }
347
-
348
- public static get GREATER_THAN_OR_EQUAL(): Token {
349
- return new Token(TokenType.OPERATOR, Operator.GREATER_THAN_OR_EQUAL);
350
- }
351
-
352
- public isGreaterThanOrEqual(): boolean {
353
- return this._type === TokenType.OPERATOR && this._value === Operator.GREATER_THAN_OR_EQUAL;
354
- }
355
-
356
- public static get AND(): Token {
357
- return new Token(TokenType.OPERATOR, Operator.AND);
358
- }
359
-
360
- public isAnd(): boolean {
361
- return this._type === TokenType.OPERATOR && this._value === Operator.AND;
362
- }
363
-
364
- public static get OR(): Token {
365
- return new Token(TokenType.OPERATOR, Operator.OR);
366
- }
367
-
368
- public isOr(): boolean {
369
- return this._type === TokenType.OPERATOR && this._value === Operator.OR;
370
- }
371
-
372
- public static get NOT(): Token {
373
- return new Token(TokenType.UNARY_OPERATOR, Operator.NOT);
374
- }
375
-
376
- public isNot(): boolean {
377
- return this._type === TokenType.UNARY_OPERATOR && this._value === Operator.NOT;
378
- }
379
-
380
- public static get IS(): Token {
381
- return new Token(TokenType.OPERATOR, Operator.IS);
382
- }
383
-
384
- public isIs(): boolean {
385
- return this._type === TokenType.OPERATOR && this._value === Operator.IS;
386
- }
387
-
388
- // Keyword tokens
389
-
390
- public isKeyword(): boolean {
391
- return this._type === TokenType.KEYWORD;
392
- }
393
-
394
- public isKeywordThatCannotBeIdentifier(): boolean {
395
- return (
396
- this.isKeyword() &&
397
- (this.isNull() ||
398
- this.isCase() ||
399
- this.isWhen() ||
400
- this.isThen() ||
401
- this.isElse() ||
402
- this.isEnd())
403
- );
404
- }
405
-
406
- public static get WITH(): Token {
407
- return new Token(TokenType.KEYWORD, Keyword.WITH);
408
- }
409
-
410
- public isWith(): boolean {
411
- return this._type === TokenType.KEYWORD && this._value === Keyword.WITH;
412
- }
413
-
414
- public static get RETURN(): Token {
415
- return new Token(TokenType.KEYWORD, Keyword.RETURN);
416
- }
417
-
418
- public isReturn(): boolean {
419
- return this._type === TokenType.KEYWORD && this._value === Keyword.RETURN;
420
- }
421
-
422
- public static get LOAD(): Token {
423
- return new Token(TokenType.KEYWORD, Keyword.LOAD);
424
- }
425
-
426
- public isLoad(): boolean {
427
- return this._type === TokenType.KEYWORD && this._value === Keyword.LOAD;
428
- }
429
-
430
- public static get CALL(): Token {
431
- return new Token(TokenType.KEYWORD, Keyword.CALL);
432
- }
433
-
434
- public isCall(): boolean {
435
- return this._type === TokenType.KEYWORD && this._value === Keyword.CALL;
436
- }
437
-
438
- public static get YIELD(): Token {
439
- return new Token(TokenType.KEYWORD, Keyword.YIELD);
440
- }
441
-
442
- public isYield(): boolean {
443
- return this._type === TokenType.KEYWORD && this._value === Keyword.YIELD;
444
- }
445
-
446
- public static get JSON(): Token {
447
- return new Token(TokenType.KEYWORD, Keyword.JSON);
448
- }
449
-
450
- public isJSON(): boolean {
451
- return this._type === TokenType.KEYWORD && this._value === Keyword.JSON;
452
- }
453
-
454
- public static get CSV(): Token {
455
- return new Token(TokenType.KEYWORD, Keyword.CSV);
456
- }
457
-
458
- public isCSV(): boolean {
459
- return this._type === TokenType.KEYWORD && this._value === Keyword.CSV;
460
- }
461
-
462
- public static get TEXT(): Token {
463
- return new Token(TokenType.KEYWORD, Keyword.TEXT);
464
- }
465
-
466
- public isText(): boolean {
467
- return this._type === TokenType.KEYWORD && this._value === Keyword.TEXT;
468
- }
469
-
470
- public static get FROM(): Token {
471
- return new Token(TokenType.KEYWORD, Keyword.FROM);
472
- }
473
-
474
- public isFrom(): boolean {
475
- return this._type === TokenType.KEYWORD && this._value === Keyword.FROM;
476
- }
477
-
478
- public static get HEADERS(): Token {
479
- return new Token(TokenType.KEYWORD, Keyword.HEADERS);
480
- }
481
-
482
- public isHeaders(): boolean {
483
- return this._type === TokenType.KEYWORD && this._value === Keyword.HEADERS;
484
- }
485
-
486
- public static get POST(): Token {
487
- return new Token(TokenType.KEYWORD, Keyword.POST);
488
- }
489
-
490
- public isPost(): boolean {
491
- return this._type === TokenType.KEYWORD && this._value === Keyword.POST;
492
- }
493
-
494
- public static get UNWIND(): Token {
495
- return new Token(TokenType.KEYWORD, Keyword.UNWIND);
496
- }
497
-
498
- public isUnwind(): boolean {
499
- return this._type === TokenType.KEYWORD && this._value === Keyword.UNWIND;
500
- }
501
-
502
- public static get MATCH(): Token {
503
- return new Token(TokenType.KEYWORD, Keyword.MATCH);
504
- }
505
-
506
- public isMatch(): boolean {
507
- return this._type === TokenType.KEYWORD && this._value === Keyword.MATCH;
508
- }
509
-
510
- public static get OPTIONAL(): Token {
511
- return new Token(TokenType.KEYWORD, Keyword.OPTIONAL);
512
- }
513
-
514
- public isOptional(): boolean {
515
- return this._type === TokenType.KEYWORD && this._value === Keyword.OPTIONAL;
516
- }
517
-
518
- public static get AS(): Token {
519
- return new Token(TokenType.KEYWORD, Keyword.AS);
520
- }
521
-
522
- public isAs(): boolean {
523
- return this._type === TokenType.KEYWORD && this._value === Keyword.AS;
524
- }
525
-
526
- public static get WHERE(): Token {
527
- return new Token(TokenType.KEYWORD, Keyword.WHERE);
528
- }
529
-
530
- public isWhere(): boolean {
531
- return this._type === TokenType.KEYWORD && this._value === Keyword.WHERE;
532
- }
533
-
534
- public static get MERGE(): Token {
535
- return new Token(TokenType.KEYWORD, Keyword.MERGE);
536
- }
537
-
538
- public isMerge(): boolean {
539
- return this._type === TokenType.KEYWORD && this._value === Keyword.MERGE;
540
- }
541
-
542
- public static get CREATE(): Token {
543
- return new Token(TokenType.KEYWORD, Keyword.CREATE);
544
- }
545
-
546
- public isCreate(): boolean {
547
- return this._type === TokenType.KEYWORD && this._value === Keyword.CREATE;
548
- }
549
-
550
- public static get VIRTUAL(): Token {
551
- return new Token(TokenType.KEYWORD, Keyword.VIRTUAL);
552
- }
553
-
554
- public isVirtual(): boolean {
555
- return this._type === TokenType.KEYWORD && this._value === Keyword.VIRTUAL;
556
- }
557
-
558
- public static get DELETE(): Token {
559
- return new Token(TokenType.KEYWORD, Keyword.DELETE);
560
- }
561
-
562
- public isDelete(): boolean {
563
- return this._type === TokenType.KEYWORD && this._value === Keyword.DELETE;
564
- }
565
-
566
- public static get SET(): Token {
567
- return new Token(TokenType.KEYWORD, Keyword.SET);
568
- }
569
-
570
- public isSet(): boolean {
571
- return this._type === TokenType.KEYWORD && this._value === Keyword.SET;
572
- }
573
-
574
- public static get REMOVE(): Token {
575
- return new Token(TokenType.KEYWORD, Keyword.REMOVE);
576
- }
577
-
578
- public isRemove(): boolean {
579
- return this._type === TokenType.KEYWORD && this._value === Keyword.REMOVE;
580
- }
581
-
582
- public static get CASE(): Token {
583
- return new Token(TokenType.KEYWORD, Keyword.CASE);
584
- }
585
-
586
- public isCase(): boolean {
587
- return this._type === TokenType.KEYWORD && this._value === Keyword.CASE;
588
- }
589
-
590
- public static get WHEN(): Token {
591
- return new Token(TokenType.KEYWORD, Keyword.WHEN);
592
- }
593
-
594
- public isWhen(): boolean {
595
- return this._type === TokenType.KEYWORD && this._value === Keyword.WHEN;
596
- }
597
-
598
- public static get THEN(): Token {
599
- return new Token(TokenType.KEYWORD, Keyword.THEN);
600
- }
601
-
602
- public isThen(): boolean {
603
- return this._type === TokenType.KEYWORD && this._value === Keyword.THEN;
604
- }
605
-
606
- public static get ELSE(): Token {
607
- return new Token(TokenType.KEYWORD, Keyword.ELSE);
608
- }
609
-
610
- public isElse(): boolean {
611
- return this._type === TokenType.KEYWORD && this._value === Keyword.ELSE;
612
- }
613
-
614
- public static get END(): Token {
615
- return new Token(TokenType.KEYWORD, Keyword.END);
616
- }
617
-
618
- public isEnd(): boolean {
619
- return this._type === TokenType.KEYWORD && this._value === Keyword.END;
620
- }
621
-
622
- public static get NULL(): Token {
623
- return new Token(TokenType.KEYWORD, Keyword.NULL);
624
- }
625
-
626
- public isNull(): boolean {
627
- return this._type === TokenType.KEYWORD && this._value === Keyword.NULL;
628
- }
629
-
630
- public static get IN(): Token {
631
- return new Token(TokenType.KEYWORD, Keyword.IN);
632
- }
633
-
634
- public isIn(): boolean {
635
- return this._type === TokenType.KEYWORD && this._value === Keyword.IN;
636
- }
637
-
638
- public static get CONTAINS(): Token {
639
- return new Token(TokenType.KEYWORD, Keyword.CONTAINS);
640
- }
641
-
642
- public isContains(): boolean {
643
- return this._type === TokenType.KEYWORD && this._value === Keyword.CONTAINS;
644
- }
645
-
646
- public static get STARTS(): Token {
647
- return new Token(TokenType.KEYWORD, Keyword.STARTS);
648
- }
649
-
650
- public isStarts(): boolean {
651
- return this._type === TokenType.KEYWORD && this._value === Keyword.STARTS;
652
- }
653
-
654
- public static get ENDS(): Token {
655
- return new Token(TokenType.KEYWORD, Keyword.ENDS);
656
- }
657
-
658
- public isEnds(): boolean {
659
- return this._type === TokenType.KEYWORD && this._value === Keyword.ENDS;
660
- }
661
-
662
- public static get PIPE(): Token {
663
- return new Token(TokenType.KEYWORD, Operator.PIPE);
664
- }
665
-
666
- public isPipe(): boolean {
667
- return this._type === TokenType.KEYWORD && this._value === Operator.PIPE;
668
- }
669
-
670
- public static get DISTINCT(): Token {
671
- return new Token(TokenType.KEYWORD, Keyword.DISTINCT);
672
- }
673
-
674
- public isDistinct(): boolean {
675
- return this._type === TokenType.KEYWORD && this._value === Keyword.DISTINCT;
676
- }
677
-
678
- public static get ORDER(): Token {
679
- return new Token(TokenType.KEYWORD, Keyword.ORDER);
680
- }
681
-
682
- public isOrder(): boolean {
683
- return this._type === TokenType.KEYWORD && this._value === Keyword.ORDER;
684
- }
685
-
686
- public static get BY(): Token {
687
- return new Token(TokenType.KEYWORD, Keyword.BY);
688
- }
689
-
690
- public isByKeyword(): boolean {
691
- return this._type === TokenType.KEYWORD && this._value === Keyword.BY;
692
- }
693
-
694
- public static get ASC(): Token {
695
- return new Token(TokenType.KEYWORD, Keyword.ASC);
696
- }
697
-
698
- public isAsc(): boolean {
699
- return this._type === TokenType.KEYWORD && this._value === Keyword.ASC;
700
- }
701
-
702
- public static get DESC(): Token {
703
- return new Token(TokenType.KEYWORD, Keyword.DESC);
704
- }
705
-
706
- public isDesc(): boolean {
707
- return this._type === TokenType.KEYWORD && this._value === Keyword.DESC;
708
- }
709
-
710
- public static get LIMIT(): Token {
711
- return new Token(TokenType.KEYWORD, Keyword.LIMIT);
712
- }
713
-
714
- public isLimit(): boolean {
715
- return this._type === TokenType.KEYWORD && this._value === Keyword.LIMIT;
716
- }
717
-
718
- public static get UNION(): Token {
719
- return new Token(TokenType.KEYWORD, Keyword.UNION);
720
- }
721
-
722
- public isUnion(): boolean {
723
- return this._type === TokenType.KEYWORD && this._value === Keyword.UNION;
724
- }
725
-
726
- public static get ALL(): Token {
727
- return new Token(TokenType.KEYWORD, Keyword.ALL);
728
- }
729
-
730
- public isAll(): boolean {
731
- return this._type === TokenType.KEYWORD && this._value === Keyword.ALL;
732
- }
733
-
734
- // End of file token
735
-
736
- public static get EOF(): Token {
737
- return new Token(TokenType.EOF);
738
- }
739
-
740
- public isEOF(): boolean {
741
- return this._type === TokenType.EOF;
742
- }
743
-
744
- // Other utility methods
745
-
746
- public isOperand(): boolean {
747
- return this.isNumber() || this.isBoolean() || this.isString() || this.isNull();
748
- }
749
-
750
- public isWhitespaceOrComment(): boolean {
751
- return this.isWhitespace() || this.isComment();
752
- }
753
-
754
- public isSymbol(): boolean {
755
- return this._type === TokenType.SYMBOL;
756
- }
757
-
758
- // Static class method lookup via string
759
- public static method(name: string): Token | undefined {
760
- return (Token as any)[name.toUpperCase()] as Token | undefined;
761
- }
762
- }
763
-
764
- export default Token;