@sap/cds-dk 10.0.7 → 10.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/bin/add.js +7 -23
  3. package/bin/bind.js +14 -0
  4. package/bin/build.js +21 -34
  5. package/bin/cds.js +1 -1
  6. package/bin/compile/index.js +16 -41
  7. package/bin/completion/completionFs.js +11 -8
  8. package/bin/completion/index.js +603 -80
  9. package/bin/completion/scripts/cds.fish +620 -0
  10. package/bin/completion/scripts/cds.ps1 +403 -0
  11. package/bin/completion/scripts/cds.sh +327 -0
  12. package/bin/completion/scripts/cds.zsh +296 -0
  13. package/bin/completion/templates/cds-tmpl.fish +65 -0
  14. package/bin/completion/templates/cds-tmpl.ps1 +217 -0
  15. package/bin/completion/templates/cds-tmpl.sh +93 -0
  16. package/bin/completion/templates/cds-tmpl.zsh +74 -0
  17. package/bin/deploy/index.js +11 -1
  18. package/bin/deploy/options.js +25 -0
  19. package/{lib → bin}/deploy/to-hana/hana.js +8 -8
  20. package/{lib → bin}/deploy/to-hana/hdiDeployUtil.js +1 -1
  21. package/bin/deploy/{to-hana.js → to-hana/index.js} +1 -1
  22. package/{lib → bin}/deploy/to-hana/mtaUtil.js +1 -1
  23. package/bin/deploy/to-sql.js +0 -2
  24. package/bin/env.js +4 -1
  25. package/bin/export.js +44 -6
  26. package/bin/help/export.md +3 -0
  27. package/bin/help.js +1 -5
  28. package/bin/import.js +9 -0
  29. package/bin/init.js +6 -24
  30. package/bin/inspect.js +8 -0
  31. package/bin/lint.js +5 -3
  32. package/bin/login.js +26 -20
  33. package/bin/minify.js +6 -1
  34. package/bin/pull.js +19 -6
  35. package/bin/push.js +19 -6
  36. package/bin/repl.js +11 -2
  37. package/bin/run.js +12 -1
  38. package/bin/serve.js +13 -2
  39. package/bin/up.js +17 -11
  40. package/{lib → bin}/upgrade/constants.js +1 -1
  41. package/bin/{upgrade.js → upgrade/index.js} +2 -2
  42. package/{lib → bin}/upgrade/preflight/consistency.js +1 -1
  43. package/{lib → bin}/upgrade/preflight/index.js +1 -1
  44. package/{lib → bin}/upgrade/steps/analyze/index.js +1 -1
  45. package/{lib → bin}/upgrade/steps/install.js +1 -1
  46. package/{lib → bin}/upgrade/steps/openrewrite.js +1 -1
  47. package/{lib → bin}/upgrade/steps/removals.js +1 -1
  48. package/{lib → bin}/upgrade/steps/rewrite.js +1 -1
  49. package/{lib → bin}/upgrade/steps/verify.js +1 -1
  50. package/{lib/upgrade/index.js → bin/upgrade/upgrade.js} +2 -2
  51. package/{lib → bin}/upgrade/util/pom.js +2 -2
  52. package/{lib → bin}/upgrade/util/prompt.js +1 -1
  53. package/bin/util/containerize.js +10 -4
  54. package/bin/version.js +10 -1
  55. package/{lib → bin}/watch/hot-reload.js +1 -1
  56. package/bin/{watch.js → watch/index.js} +24 -9
  57. package/{lib → bin}/watch/livereload-connect.js +1 -1
  58. package/{lib → bin}/watch/vite-watch.js +1 -1
  59. package/{lib → bin}/watch/watched.js +2 -2
  60. package/lib/build/constants.js +1 -1
  61. package/lib/build/plugins/fiori/index.js +31 -2
  62. package/lib/build/plugins/internal.js +4 -2
  63. package/lib/build/plugins/mtx-sidecar/index.js +7 -8
  64. package/lib/build/plugins/nodejs/index.js +64 -7
  65. package/lib/build/util.js +2 -4
  66. package/lib/compile/to_asyncapi.js +1 -1
  67. package/lib/env/schema.js +16 -0
  68. package/lib/env/schemas/cds-rc.js +1 -76
  69. package/lib/import/importapi.js +2 -3
  70. package/lib/import/message.js +0 -2
  71. package/lib/init/constants.js +2 -1
  72. package/lib/init/index.js +2 -2
  73. package/lib/init/merge.js +123 -280
  74. package/lib/init/plugin.js +3 -1
  75. package/lib/init/projectReader.js +22 -6
  76. package/lib/init/registries/xs-app.js +3 -5
  77. package/lib/init/template/ai/files/mta.yaml.hbs +1 -1
  78. package/lib/init/template/ai/index.js +14 -2
  79. package/lib/init/template/ams/index.js +2 -2
  80. package/lib/init/template/app-frontend/files/containerize.yaml.hbs +2 -2
  81. package/lib/init/template/app-frontend/index.js +4 -4
  82. package/lib/init/template/application-logging/index.js +2 -2
  83. package/lib/init/template/approuter/files/package.json +1 -1
  84. package/lib/init/template/approuter/index.js +8 -3
  85. package/lib/init/template/attachments/files/package.json.hbs +1 -1
  86. package/lib/init/template/attachments/index.js +2 -2
  87. package/lib/init/template/audit-logging/index.js +2 -2
  88. package/lib/init/template/cloud-logging/files/package.json.hbs +4 -4
  89. package/lib/init/template/cloud-logging/index.js +2 -2
  90. package/lib/init/template/completion/completionSetup.js +36 -39
  91. package/lib/init/template/connectivity/index.js +2 -2
  92. package/lib/init/template/data/as-csv.js +15 -5
  93. package/lib/init/template/data/as-json.js +117 -42
  94. package/lib/init/template/data/index.js +16 -2
  95. package/lib/init/template/destination/index.js +2 -2
  96. package/lib/init/template/dynatrace/files/package.json.hbs +3 -3
  97. package/lib/init/template/dynatrace/index.js +2 -2
  98. package/lib/init/template/enterprise-messaging/index.js +2 -2
  99. package/lib/init/template/enterprise-messaging-shared/index.js +2 -2
  100. package/lib/init/template/extensibility/files/mta.yaml.hbs +11 -0
  101. package/lib/init/template/extensibility/files/xs-security.json.hbs +1 -1
  102. package/lib/init/template/extensibility/index.js +3 -3
  103. package/lib/init/template/github-actions/index.js +2 -2
  104. package/lib/init/template/hana/index.js +3 -2
  105. package/lib/init/template/hana-serverless/files/db/package.json +14 -0
  106. package/lib/init/template/hana-serverless/files/identity.values.yaml.hbs +10 -0
  107. package/lib/init/template/hana-serverless/files/mta.yaml.hbs +64 -0
  108. package/lib/init/template/hana-serverless/files/package.json.hbs +35 -0
  109. package/lib/init/template/hana-serverless/files/src/.hdiconfig +139 -0
  110. package/lib/init/template/hana-serverless/files/undeploy.json +7 -0
  111. package/lib/init/template/hana-serverless/files/values.yaml.hbs +18 -0
  112. package/lib/init/template/hana-serverless/index.js +184 -0
  113. package/lib/init/template/html5-repo/files/containerize.yaml.hbs +2 -2
  114. package/lib/init/template/html5-repo/files/mta.yaml.hbs +5 -0
  115. package/lib/init/template/html5-repo/index.js +18 -14
  116. package/lib/init/template/http/index.js +123 -26
  117. package/lib/init/template/ias/index.js +2 -2
  118. package/lib/init/template/kafka/index.js +2 -2
  119. package/lib/init/template/kyma/index.js +7 -5
  120. package/lib/init/template/malware-scanner/index.js +2 -2
  121. package/lib/init/template/mta/files/mta.yaml.hbs +1 -1
  122. package/lib/init/template/multitenancy/index.js +18 -3
  123. package/lib/init/template/notifications/index.js +2 -2
  124. package/lib/init/template/portal/files/mta.yaml.hbs +4 -0
  125. package/lib/init/template/portal/index.js +13 -8
  126. package/lib/init/template/postgres/index.js +2 -2
  127. package/lib/init/template/redis/index.js +2 -2
  128. package/lib/init/template/sample/files/db/currencies.cds +2 -0
  129. package/lib/init/template/sample/files/db/data/sap.capire.bookshop-Authors.csv +1 -1
  130. package/lib/init/template/tiny-sample/files/nodejs/db/data/CatalogService.Books.csv +2 -2
  131. package/lib/init/template/workzone-standard/index.js +5 -5
  132. package/lib/init/template/xsuaa/index.js +20 -2
  133. package/lib/lint/eslintHelp.json +1 -1
  134. package/lib/mtx/auth_manager.js +103 -37
  135. package/lib/mtx/params.js +3 -2
  136. package/lib/mtx/settings_manager.js +45 -28
  137. package/lib/mtx/tenant_action.js +0 -1
  138. package/lib/mtx/util/credentials.js +62 -0
  139. package/node_modules/@cap-js/db-service/CHANGELOG.md +17 -0
  140. package/node_modules/@cap-js/db-service/lib/common/generic-pool.js +4 -7
  141. package/node_modules/@cap-js/db-service/lib/cqn2pql.js +1 -1
  142. package/node_modules/@cap-js/db-service/lib/cqn2sql.js +15 -11
  143. package/node_modules/@cap-js/db-service/lib/cqn4sql.js +119 -19
  144. package/node_modules/@cap-js/db-service/lib/infer/index.js +27 -16
  145. package/node_modules/@cap-js/db-service/lib/recursion-guard.js +40 -0
  146. package/node_modules/@cap-js/db-service/lib/search.js +1 -1
  147. package/node_modules/@cap-js/db-service/package.json +1 -1
  148. package/node_modules/@cap-js/sqlite/CHANGELOG.md +19 -0
  149. package/node_modules/@cap-js/sqlite/lib/SQLiteService.js +110 -14
  150. package/node_modules/@cap-js/sqlite/package.json +3 -3
  151. package/node_modules/@sap/cds/CHANGELOG.md +57 -0
  152. package/node_modules/@sap/cds/app/index.js +5 -4
  153. package/node_modules/@sap/cds/eslint.config.mjs +1 -0
  154. package/node_modules/@sap/cds/lib/compile/minify.js +14 -10
  155. package/node_modules/@sap/cds/lib/env/cds-env.js +1 -1
  156. package/node_modules/@sap/cds/lib/env/cds-requires.js +22 -11
  157. package/node_modules/@sap/cds/lib/env/defaults.js +4 -1
  158. package/node_modules/@sap/cds/lib/env/schemas/cds-rc.js +5 -2
  159. package/node_modules/@sap/cds/lib/plugins.js +9 -5
  160. package/node_modules/@sap/cds/lib/req/spawn.js +1 -1
  161. package/node_modules/@sap/cds/lib/srv/srv-dispatch.js +1 -1
  162. package/node_modules/@sap/cds/lib/srv/srv-models.js +1 -1
  163. package/node_modules/@sap/cds/lib/utils/cds-utils.js +2 -1
  164. package/node_modules/@sap/cds/libx/_runtime/common/generic/assert.js +2 -3
  165. package/node_modules/@sap/cds/libx/_runtime/common/generic/auth/restrict.js +8 -1
  166. package/node_modules/@sap/cds/libx/_runtime/common/generic/crud.js +18 -8
  167. package/node_modules/@sap/cds/libx/_runtime/fiori/lean-draft.js +25 -17
  168. package/node_modules/@sap/cds/libx/_runtime/messaging/enterprise-messaging-utils/registerEndpoints.js +9 -3
  169. package/node_modules/@sap/cds/libx/_runtime/remote/Service.js +4 -19
  170. package/node_modules/@sap/cds/libx/_runtime/remote/utils/LruCache.js +42 -0
  171. package/node_modules/@sap/cds/libx/_runtime/remote/utils/client.js +14 -4
  172. package/node_modules/@sap/cds/libx/_runtime/remote/utils/cloudSdkProvider.js +2 -9
  173. package/node_modules/@sap/cds/libx/_runtime/remote/utils/destinationClient.js +150 -0
  174. package/node_modules/@sap/cds/libx/_runtime/remote/utils/error.js +13 -0
  175. package/node_modules/@sap/cds/libx/_runtime/remote/utils/fetchClient.js +26 -18
  176. package/node_modules/@sap/cds/libx/_runtime/remote/utils/query.js +34 -23
  177. package/node_modules/@sap/cds/libx/_runtime/remote/utils/token.js +82 -0
  178. package/node_modules/@sap/cds/libx/_runtime/ucl/Service.js +36 -189
  179. package/node_modules/@sap/cds/libx/common/utils/streaming.js +16 -16
  180. package/node_modules/@sap/cds/libx/http/location.js +3 -3
  181. package/node_modules/@sap/cds/libx/odata/middleware/batch.js +16 -10
  182. package/node_modules/@sap/cds/libx/odata/middleware/metadata.js +9 -6
  183. package/node_modules/@sap/cds/libx/odata/middleware/service-document.js +1 -1
  184. package/node_modules/@sap/cds/libx/odata/parse/afterburner.js +19 -3
  185. package/node_modules/@sap/cds/libx/odata/parse/cqn2odata.js +83 -86
  186. package/node_modules/@sap/cds/libx/queue/SchedulingService.js +17 -2
  187. package/node_modules/@sap/cds/libx/queue/processing.js +1 -3
  188. package/node_modules/@sap/cds/libx/rest/RestAdapter.js +3 -7
  189. package/node_modules/@sap/cds/libx/rest/middleware/delete.js +3 -3
  190. package/node_modules/@sap/cds/libx/rest/middleware/parse.js +13 -8
  191. package/node_modules/@sap/cds/libx/rest/middleware/read.js +3 -3
  192. package/node_modules/@sap/cds/libx/rest/middleware/upsert.js +2 -2
  193. package/node_modules/@sap/cds/package.json +1 -1
  194. package/node_modules/@sap/cds-compiler/CHANGELOG.md +75 -8
  195. package/node_modules/@sap/cds-compiler/bin/cdsc.js +2 -2
  196. package/node_modules/@sap/cds-compiler/doc/IncompatibleChanges_v7.md +46 -19
  197. package/node_modules/@sap/cds-compiler/lib/api/main.js +10 -7
  198. package/node_modules/@sap/cds-compiler/lib/api/options.js +8 -2
  199. package/node_modules/@sap/cds-compiler/lib/base/csnRefs.js +5 -2
  200. package/node_modules/@sap/cds-compiler/lib/base/message-registry.js +4 -0
  201. package/node_modules/@sap/cds-compiler/lib/base/optionProcessor.js +12 -0
  202. package/node_modules/@sap/cds-compiler/lib/checks/enricher.js +1 -0
  203. package/node_modules/@sap/cds-compiler/lib/compiler/assert-consistency.js +8 -7
  204. package/node_modules/@sap/cds-compiler/lib/compiler/checks.js +3 -3
  205. package/node_modules/@sap/cds-compiler/lib/compiler/define.js +301 -75
  206. package/node_modules/@sap/cds-compiler/lib/compiler/dictionaries.js +2 -0
  207. package/node_modules/@sap/cds-compiler/lib/compiler/extend.js +40 -26
  208. package/node_modules/@sap/cds-compiler/lib/compiler/populate.js +45 -60
  209. package/node_modules/@sap/cds-compiler/lib/compiler/propagator.js +16 -7
  210. package/node_modules/@sap/cds-compiler/lib/compiler/resolve.js +48 -18
  211. package/node_modules/@sap/cds-compiler/lib/compiler/shared.js +7 -6
  212. package/node_modules/@sap/cds-compiler/lib/compiler/tweak-assocs.js +62 -50
  213. package/node_modules/@sap/cds-compiler/lib/compiler/utils.js +29 -14
  214. package/node_modules/@sap/cds-compiler/lib/edm/edmAnnoPreprocessor.js +6 -5
  215. package/node_modules/@sap/cds-compiler/lib/gen/CdlGrammar.checksum +1 -1
  216. package/node_modules/@sap/cds-compiler/lib/gen/CdlParser.js +1119 -1109
  217. package/node_modules/@sap/cds-compiler/lib/gen/Dictionary.json +19 -3
  218. package/node_modules/@sap/cds-compiler/lib/json/from-csn.js +10 -16
  219. package/node_modules/@sap/cds-compiler/lib/json/to-csn.js +58 -39
  220. package/node_modules/@sap/cds-compiler/lib/main.d.ts +8 -0
  221. package/node_modules/@sap/cds-compiler/lib/main.js +1 -0
  222. package/node_modules/@sap/cds-compiler/lib/model/csnUtils.js +4 -0
  223. package/node_modules/@sap/cds-compiler/lib/parsers/AstBuildingParser.js +2 -1
  224. package/node_modules/@sap/cds-compiler/lib/parsers/XprTree.js +8 -0
  225. package/node_modules/@sap/cds-compiler/lib/render/toCdl.js +22 -1
  226. package/node_modules/@sap/cds-compiler/lib/render/toSql.js +17 -2
  227. package/node_modules/@sap/cds-compiler/lib/render/utils/common.js +6 -1
  228. package/node_modules/@sap/cds-compiler/lib/render/utils/operators.js +27 -0
  229. package/node_modules/@sap/cds-compiler/lib/render/utils/standardDatabaseFunctions.js +125 -3
  230. package/node_modules/@sap/cds-compiler/lib/tool-lib/revealInternalProperties.js +2 -1
  231. package/node_modules/@sap/cds-compiler/lib/transform/db/applyTransformations.js +15 -0
  232. package/node_modules/@sap/cds-compiler/lib/transform/db/associations.js +10 -2
  233. package/node_modules/@sap/cds-compiler/lib/transform/db/backlinks.js +22 -6
  234. package/node_modules/@sap/cds-compiler/lib/transform/db/constraints.js +62 -1
  235. package/node_modules/@sap/cds-compiler/lib/transform/db/flattening.js +4 -3
  236. package/node_modules/@sap/cds-compiler/lib/transform/effective/annotations.js +40 -0
  237. package/node_modules/@sap/cds-compiler/lib/transform/effective/flattening.js +17 -1
  238. package/node_modules/@sap/cds-compiler/lib/transform/effective/main.js +20 -0
  239. package/node_modules/@sap/cds-compiler/lib/transform/fioriTreeViews.js +12 -1
  240. package/node_modules/@sap/cds-compiler/lib/transform/forRelationalDB.js +7 -2
  241. package/node_modules/@sap/cds-compiler/lib/transform/odata/adaptAnnotationRefs.js +11 -5
  242. package/node_modules/@sap/cds-compiler/lib/transform/translateAssocsToJoins.js +48 -10
  243. package/node_modules/@sap/cds-compiler/package.json +1 -1
  244. package/node_modules/@sap/cds-mtxs/CHANGELOG.md +49 -0
  245. package/node_modules/@sap/cds-mtxs/bin/cds-mtx-migrate.js +26 -5
  246. package/node_modules/@sap/cds-mtxs/bin/cds-mtx.js +37 -16
  247. package/node_modules/@sap/cds-mtxs/lib/utils.js +23 -7
  248. package/node_modules/@sap/cds-mtxs/package.json +1 -1
  249. package/node_modules/@sap/cds-mtxs/srv/cf/abstract-provisioning-service.js +63 -8
  250. package/node_modules/@sap/cds-mtxs/srv/cf/saas-provisioning-service.js +1 -1
  251. package/node_modules/@sap/cds-mtxs/srv/cf/sms-provisioning-service.js +23 -3
  252. package/node_modules/@sap/cds-mtxs/srv/extensibility/compat/update.js +15 -0
  253. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/annotations.js +2 -2
  254. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/config.js +2 -0
  255. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/index.js +2 -0
  256. package/node_modules/@sap/cds-mtxs/srv/extensibility/linter/protected-namespace.js +45 -0
  257. package/node_modules/@sap/cds-mtxs/srv/extensibility-service.js +30 -16
  258. package/node_modules/@sap/cds-mtxs/srv/jobs-service.js +49 -10
  259. package/node_modules/@sap/cds-mtxs/srv/model-provider.js +28 -4
  260. package/node_modules/@sap/cds-mtxs/srv/plugins/common.js +19 -12
  261. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/ctnr-mgr-base.js +1 -1
  262. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/hdi-ctnr-mgr.js +6 -3
  263. package/node_modules/@sap/cds-mtxs/srv/plugins/hana/serverless.js +271 -0
  264. package/node_modules/@sap/cds-mtxs/srv/plugins/hana.js +7 -10
  265. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker-pool.js +212 -0
  266. package/node_modules/@sap/cds-mtxs/srv/worker/job-worker.js +61 -0
  267. package/node_modules/@sap/xsenv/CHANGELOG.md +7 -0
  268. package/node_modules/@sap/xsenv/package.json +10 -7
  269. package/node_modules/body-parser/node_modules/content-type/README.md +2 -0
  270. package/node_modules/body-parser/node_modules/content-type/dist/index.d.ts +20 -0
  271. package/node_modules/body-parser/node_modules/content-type/dist/index.js +20 -14
  272. package/node_modules/body-parser/node_modules/content-type/dist/index.js.map +1 -1
  273. package/node_modules/body-parser/node_modules/content-type/package.json +1 -1
  274. package/node_modules/hdb/cfg/VERSION +1 -1
  275. package/node_modules/hdb/lib/protocol/ClientInfo.js +16 -3
  276. package/node_modules/hdb/lib/protocol/Connection.js +1 -0
  277. package/node_modules/hdb/package.json +3 -2
  278. package/node_modules/negotiator/lib/accept.js +54 -0
  279. package/node_modules/negotiator/lib/charset.js +10 -34
  280. package/node_modules/negotiator/lib/encoding.js +9 -30
  281. package/node_modules/negotiator/lib/language.js +15 -36
  282. package/node_modules/negotiator/lib/mediaType.js +16 -134
  283. package/node_modules/negotiator/node_modules/content-type/LICENSE +22 -0
  284. package/node_modules/negotiator/node_modules/content-type/README.md +71 -0
  285. package/node_modules/negotiator/node_modules/content-type/dist/index.d.ts +46 -0
  286. package/node_modules/negotiator/node_modules/content-type/dist/index.js +176 -0
  287. package/node_modules/negotiator/node_modules/content-type/dist/index.js.map +1 -0
  288. package/node_modules/negotiator/node_modules/content-type/package.json +52 -0
  289. package/node_modules/negotiator/package.json +16 -10
  290. package/node_modules/qs/.github/THREAT_MODEL.md +3 -3
  291. package/node_modules/qs/CHANGELOG.md +15 -0
  292. package/node_modules/qs/README.md +19 -1
  293. package/node_modules/qs/dist/qs.js +21 -21
  294. package/node_modules/qs/eslint.config.mjs +1 -1
  295. package/node_modules/qs/lib/parse.js +3 -4
  296. package/node_modules/qs/lib/stringify.js +23 -8
  297. package/node_modules/qs/lib/utils.js +10 -3
  298. package/node_modules/qs/package.json +4 -4
  299. package/node_modules/qs/test/parse.js +192 -3
  300. package/node_modules/qs/test/stringify.js +317 -0
  301. package/node_modules/qs/test/utils.js +12 -0
  302. package/node_modules/type-is/node_modules/content-type/README.md +2 -0
  303. package/node_modules/type-is/node_modules/content-type/dist/index.d.ts +20 -0
  304. package/node_modules/type-is/node_modules/content-type/dist/index.js +20 -14
  305. package/node_modules/type-is/node_modules/content-type/dist/index.js.map +1 -1
  306. package/node_modules/type-is/node_modules/content-type/package.json +1 -1
  307. package/node_modules/ws/lib/permessage-deflate.js +3 -1
  308. package/node_modules/ws/package.json +1 -1
  309. package/package.json +2 -2
  310. package/bin/completion/scripts/cds-bash.sh +0 -20
  311. package/bin/completion/scripts/cds-fish.fish +0 -13
  312. package/bin/completion/scripts/cds-ps.ps1 +0 -19
  313. package/bin/completion/scripts/cds-zsh.sh +0 -13
  314. package/lib/deploy/index.js +0 -25
  315. package/lib/import/asyncapi/importAsyncAPI.js +0 -33
  316. package/lib/import/asyncapi/index.js +0 -18
  317. package/lib/import/asyncapi/parserContext.js +0 -454
  318. package/lib/import/asyncapi/utils.js +0 -49
  319. package/node_modules/@sap/cds/libx/_runtime/ucl/queries.js +0 -61
  320. package/node_modules/negotiator/HISTORY.md +0 -114
  321. /package/{lib → bin}/upgrade/context.js +0 -0
  322. /package/{lib → bin}/upgrade/migrations/cds10/migrations.json +0 -0
  323. /package/{lib → bin}/upgrade/preflight/cds-version.js +0 -0
  324. /package/{lib → bin}/upgrade/preflight/project-type.js +0 -0
  325. /package/{lib → bin}/upgrade/steps/analyze/classification.js +0 -0
  326. /package/{lib → bin}/upgrade/steps/analyze/detector.js +0 -0
  327. /package/{lib → bin}/upgrade/steps/analyze/evaluator.js +0 -0
  328. /package/{lib → bin}/upgrade/steps/analyze/reporter.js +0 -0
  329. /package/{lib → bin}/upgrade/steps/analyze/setup.js +0 -0
  330. /package/{lib → bin}/upgrade/steps/analyze/utils/detection.js +0 -0
  331. /package/{lib → bin}/upgrade/steps/analyze/utils/files.js +0 -0
  332. /package/{lib → bin}/upgrade/steps/analyze/utils/grep.js +0 -0
  333. /package/{lib → bin}/upgrade/steps/analyze/utils/yaml.js +0 -0
  334. /package/{lib → bin}/upgrade/util/workspaces.js +0 -0
  335. /package/{lib → bin}/watch/esm-resolve-registration.js +0 -0
  336. /package/{lib → bin}/watch/livereload-server.js +0 -0
  337. /package/{lib → bin}/watch/node-watch.js +0 -0
  338. /package/{lib → bin}/watch/open.js +0 -0
  339. /package/{lib → bin}/watch/watcher.js +0 -0
  340. /package/node_modules/@sap/cds-mtxs/srv/worker/{pool.js → model-worker-pool.js} +0 -0
  341. /package/node_modules/@sap/cds-mtxs/srv/worker/{load.js → model-worker.js} +0 -0
@@ -133,7 +133,7 @@ EOF:3,
133
133
  },
134
134
  ['m',0,'}',,,'afterBrace'],
135
135
  'artifactDefOrExtend',
136
- {'@':[10,782],'':11},
136
+ {'@':[10,784],'':11},
137
137
  {
138
138
  type:12,view:'type',event:'type',action:'type',aspect:'type',entity:'type',context:'type',service:'type',abstract:'type',function:'type',annotation:'type',
139
139
  define:['ck',12],
@@ -198,22 +198,22 @@ Id:[22,31],
198
198
  'serviceDef',
199
199
  ['mk',44,'service',,,'vocabularyRestriction'],
200
200
  [45,35],
201
- {'@':[45,788],'':46},
201
+ {'@':[45,790],'':46},
202
202
  {'{':[0,5],'':0},
203
203
  'contextDef',
204
204
  ['mk',49,'context',,,'vocabularyRestriction'],
205
205
  [50,35],
206
- {'@':[50,788],'':51},
206
+ {'@':[50,790],'':51},
207
207
  {'{':[0,5],'':0},
208
208
  'annotationDef',
209
209
  ['mk',54,'annotation'],
210
210
  [55,35],
211
- {'@':[55,788],'':56},
211
+ {'@':[55,790],'':56},
212
212
  [0,357],
213
213
  'typeDef',
214
214
  ['mk',59,'type'],
215
215
  [60,35],
216
- {'@':[60,788],'':61},
216
+ {'@':[60,790],'':61},
217
217
  [0,357],
218
218
  'aspectDef',
219
219
  {
@@ -222,7 +222,7 @@ abstract:['ck',64,,'hide_'],
222
222
  },
223
223
  ['mk',65,'entity'],
224
224
  [66,35],
225
- {'@':[66,788],'':67},
225
+ {'@':[66,790],'':67},
226
226
  {
227
227
  '{':[71,157],
228
228
  ':':['c',68],
@@ -239,7 +239,7 @@ abstract:['ck',64,,'hide_'],
239
239
  'entityDef',
240
240
  ['mk',74,'entity'],
241
241
  [75,35],
242
- {'@':[75,788],'':76},
242
+ {'@':[75,790],'':76},
243
243
  {'(':[77,141],'':77},
244
244
  {
245
245
  '{':81,
@@ -258,13 +258,13 @@ as:['ck',82],
258
258
  projection:['g',83,,,'sloppyOn','afterBrace'],
259
259
  },
260
260
  [84,455,,,'sloppyOn','afterBrace'],
261
- {group:[85,619],where:'group',having:'group','':85},
262
- {limit:[86,631],order:'limit','':86},
261
+ {group:[85,621],where:'group',having:'group','':85},
262
+ {limit:[86,633],order:'limit','':86},
263
263
  {actions:[0,124],'':0},
264
264
  'viewDef',
265
265
  ['mk',89,'view'],
266
266
  [90,35],
267
- {'@':[90,788],'':91},
267
+ {'@':[90,790],'':91},
268
268
  {
269
269
  '(':[97,141],
270
270
  with:['ck',92,,'hide_'],
@@ -280,7 +280,7 @@ with:['ck',92,,'hide_'],
280
280
  'eventDef',
281
281
  ['mk',101,'event'],
282
282
  [102,35],
283
- {'@':[102,788],'':103},
283
+ {'@':[102,790],'':103},
284
284
  {
285
285
  '{':[0,157],
286
286
  ':':['c',104],
@@ -298,17 +298,17 @@ projection:[0,455,[]],
298
298
  '{':109,
299
299
  },
300
300
  [0,157],
301
- {'@':[110,782],'':0},
301
+ {'@':[110,784],'':0},
302
302
  'actionMainDef',
303
303
  ['mk',113,'action'],
304
304
  [114,35],
305
- {'@':[114,788],'':115},
305
+ {'@':[114,790],'':115},
306
306
  [116,141],
307
307
  {returns:[0,153],'':0},
308
308
  'functionMainDef',
309
309
  ['mk',119,'function'],
310
310
  [120,35],
311
- {'@':[120,788],'':121},
311
+ {'@':[120,790],'':121},
312
312
  [122,141],
313
313
  [0,153],
314
314
  'actionsBlock',
@@ -322,17 +322,17 @@ projection:[0,455,[]],
322
322
  },
323
323
  ['m',0,'}',,,'afterBrace'],
324
324
  'boundActionFunctionDef',
325
- {'@':[130,782],'':131},
325
+ {'@':[130,784],'':131},
326
326
  {
327
327
  action:['ck',132],
328
328
  function:['ck',136],
329
329
  },
330
330
  ['mi',133],
331
- {'@':[133,788],'':134},
331
+ {'@':[133,790],'':134},
332
332
  [135,141],
333
333
  {returns:[0,153],'':0},
334
334
  ['mi',137],
335
- {'@':[137,788],'':138},
335
+ {'@':[137,790],'':138},
336
336
  [139,141],
337
337
  [0,153],
338
338
  'paramsList',
@@ -344,9 +344,9 @@ function:['ck',136],
344
344
  },
345
345
  ['m',0,')'],
346
346
  'paramDef',
347
- {'@':[146,782],'':147},
347
+ {'@':[146,784],'':147},
348
348
  ['my',148],
349
- {'@':[148,788],'':149},
349
+ {'@':[148,790],'':149},
350
350
  {
351
351
  '{':[150,157],
352
352
  ':':['c',151],
@@ -355,7 +355,7 @@ function:['ck',136],
355
355
  [0,367],
356
356
  'returnsSpec',
357
357
  ['mk',154,'returns',,'default','elementRestriction'],
358
- {'@':[154,782],'':155},
358
+ {'@':[154,784],'':155},
359
359
  [0,367],
360
360
  'elementsBlock',
361
361
  ['m',158,'{'],
@@ -367,12 +367,12 @@ Id:['g',158,,'afterBrace'],'@':'Id',key:'Id',
367
367
  },
368
368
  ['m',0,'}',,,'afterBrace'],
369
369
  'elementDef',
370
- {'@':[162,782],'':163},
370
+ {'@':[162,784],'':163},
371
371
  {virtual:['ck',164,['Id','key']],'':164},
372
372
  {key:['ck',165],'':165},
373
373
  {element:['ck',166,['Id'],'hide_'],'':166},
374
374
  ['mi',167,,,'elem','elementRestriction'],
375
- {'@':[167,788],'':168},
375
+ {'@':[167,790],'':168},
376
376
  {
377
377
  '{':[169,157],
378
378
  ':':['c',170],
@@ -381,10 +381,10 @@ Id:['g',158,,'afterBrace'],'@':'Id',key:'Id',
381
381
  {not:[171,448],null:'not','':171},
382
382
  [171,367],
383
383
  {'=':['c',172,,'elementRestriction','calc'],'':0},
384
- [173,653],
384
+ [173,655],
385
385
  {stored:['ck',174],'':174},
386
386
  ['g',175],
387
- {'@':[175,782,,'elementRestriction','anno'],'':0},
387
+ {'@':[175,784,,'elementRestriction','anno'],'':0},
388
388
  'enumSymbolsBlock',
389
389
  ['mk',178,'enum'],
390
390
  ['m',179,'{'],
@@ -396,19 +396,19 @@ Id:['g',179,,'fail'],'@':'Id',
396
396
  },
397
397
  ['m',0,'}',,,'afterBrace'],
398
398
  'enumSymbolDef',
399
- {'@':[183,782],'':184},
399
+ {'@':[183,784],'':184},
400
400
  ['mi',185],
401
- {'@':[185,782],'':186},
401
+ {'@':[185,784],'':186},
402
402
  {'=':['c',187],'':0},
403
403
  {
404
404
  String:['c',189],
405
405
  Number:['c',189],
406
406
  '+':['c',188],'-':'+',
407
- Id:[189,779,,'hide_'],'#':'Id',QuotedLiteral:'Id',
407
+ Id:[189,781,,'hide_'],'#':'Id',QuotedLiteral:'Id',
408
408
  },
409
409
  ['m',189,'Number'],
410
410
  ['g',190],
411
- {'@':[190,782],'':0},
411
+ {'@':[190,784],'':0},
412
412
  'foreignKeysBlock',
413
413
  ['m',193,'{'],
414
414
  {Id:[194,197],'@':'Id','':195},
@@ -418,7 +418,7 @@ Id:[189,779,,'hide_'],'#':'Id',QuotedLiteral:'Id',
418
418
  },
419
419
  ['m',0,'}'],
420
420
  'foreignKeyDef',
421
- {'@':[197,782],'':198},
421
+ {'@':[197,784],'':198},
422
422
  [199,39],
423
423
  {as:['ck',200],'':0},
424
424
  ['mi',0],
@@ -436,7 +436,7 @@ composition:['ck',207],
436
436
  {one:['ck',210,['Id'],'noRepeatedCardinality'],many:'one','':210},
437
437
  [211,39],
438
438
  ['mk',212,'on'],
439
- [0,651],
439
+ [0,653],
440
440
  'annotateArtifact',
441
441
  [215,35],
442
442
  {
@@ -447,10 +447,10 @@ with:['ck',221],
447
447
  [217,35],
448
448
  {with:['ck',218],'':218},
449
449
  ['g',219],
450
- {'@':[219,782],'':220},
450
+ {'@':[219,784],'':220},
451
451
  {'{':[0,318],'':0},
452
452
  ['g',222],
453
- {'@':[222,782],'':223},
453
+ {'@':[222,784],'':223},
454
454
  {'(':[224,305],'':224},
455
455
  {
456
456
  returns:[0,314],
@@ -468,7 +468,7 @@ with:['ck',238],
468
468
  [230,35],
469
469
  {with:['ck',231],'':231},
470
470
  ['g',232],
471
- {'@':[232,782],'':233},
471
+ {'@':[232,784],'':233},
472
472
  {
473
473
  '{':234,
474
474
  elements:['ck',234],
@@ -477,10 +477,10 @@ enum:[0,344],
477
477
  '':0
478
478
  },
479
479
  [0,328],
480
- {'@':[235,782],'':236},
480
+ {'@':[235,784],'':236},
481
481
  {'{':[237,328],'':0},
482
482
  {actions:[0,124],'':0},
483
- {'@':[238,782],'':239},
483
+ {'@':[238,784],'':239},
484
484
  {
485
485
  Id:[240,39],
486
486
  '{':244,
@@ -488,7 +488,7 @@ elements:['ck',244,['{']],
488
488
  actions:[0,124,[]],
489
489
  enum:[0,344,[]],
490
490
  '(':[0,427],
491
- group:[0,614,[]],limit:'group',order:'group',where:'group',having:'group',columns:'group',
491
+ group:[0,616,[]],limit:'group',order:'group',where:'group',having:'group',columns:'group',
492
492
  definitions:['ck',246,['{']],
493
493
  '':0
494
494
  },
@@ -504,22 +504,22 @@ definitions:['ck',246,['{']],
504
504
  [250,35],
505
505
  {with:['ck',251],'':251},
506
506
  ['g',252],
507
- {'@':[252,782],'':253},
507
+ {'@':[252,784],'':253},
508
508
  {'{':[0,5],'':0},
509
509
  'extendContext',
510
510
  ['mk',256,'context'],
511
511
  [257,35],
512
512
  {with:['ck',258],'':258},
513
513
  ['g',259],
514
- {'@':[259,782],'':260},
514
+ {'@':[259,784],'':260},
515
515
  {'{':[0,5],'':0},
516
516
  'extendType',
517
517
  ['mk',263,'type'],
518
518
  [264,35],
519
519
  {with:['ck',267],'':265},
520
- {'@':[265,782],'':266},
520
+ {'@':[265,784],'':266},
521
521
  {'{':[0,328],'':0},
522
- {'@':[267,782],'':268},
522
+ {'@':[267,784],'':268},
523
523
  {
524
524
  Id:[269,39],
525
525
  '{':272,
@@ -536,8 +536,8 @@ enum:[0,177,[]],
536
536
  {aspect:['ck',275],entity:'aspect'},
537
537
  [276,35],
538
538
  {with:['ck',278],'':277},
539
- {'@':[277,782],'':282},
540
- {'@':[278,782],'':279},
539
+ {'@':[277,784],'':282},
540
+ {'@':[278,784],'':279},
541
541
  {Id:[280,39],'':['g',282,[]],actions:''},
542
542
  {',':['c',281],'':282},
543
543
  [280,39],
@@ -548,8 +548,8 @@ enum:[0,177,[]],
548
548
  [287,35],
549
549
  {with:['ck',288],'':288},
550
550
  ['g',289],
551
- {'@':[289,782],'':290},
552
- {'{':[291,564],'':291},
551
+ {'@':[289,784],'':290},
552
+ {'{':[291,566],'':291},
553
553
  {actions:[0,124],'':0},
554
554
  'annotateActionsBlock',
555
555
  ['mk',294,'actions'],
@@ -562,9 +562,9 @@ Id:['g',295,,'afterBrace'],'@':'Id',
562
562
  },
563
563
  ['m',0,'}',,,'afterBrace'],
564
564
  'annotateBoundAction',
565
- {'@':[299,782],'':300},
565
+ {'@':[299,784],'':300},
566
566
  ['mi',301],
567
- {'@':[301,782],'':302},
567
+ {'@':[301,784],'':302},
568
568
  {'(':[303,305],'':303},
569
569
  {returns:[0,314],'':0},
570
570
  'annotateParamsBlock',
@@ -576,12 +576,12 @@ Id:['g',295,,'afterBrace'],'@':'Id',
576
576
  },
577
577
  ['m',0,')'],
578
578
  'annotateParam',
579
- {'@':[310,782],'':311},
579
+ {'@':[310,784],'':311},
580
580
  ['mi',312],
581
- {'@':[312,782],'':0},
581
+ {'@':[312,784],'':0},
582
582
  'annotateReturns',
583
583
  ['mk',315,'returns'],
584
- {'@':[315,782],'':316},
584
+ {'@':[315,784],'':316},
585
585
  {'{':[0,318],'':0},
586
586
  'annotateElementsBlock',
587
587
  ['m',319,'{'],
@@ -593,9 +593,9 @@ Id:['g',319,,'afterBrace'],'@':'Id',
593
593
  },
594
594
  ['m',0,'}',,,'afterBrace'],
595
595
  'annotateElement',
596
- {'@':[323,782],'':324},
596
+ {'@':[323,784],'':324},
597
597
  ['mi',325],
598
- {'@':[325,782],'':326},
598
+ {'@':[325,784],'':326},
599
599
  {'{':[0,318],'':0},
600
600
  'extendElementsBlock',
601
601
  ['m',329,'{'],
@@ -607,7 +607,7 @@ Id:['g',329,,'afterBrace'],'@':'Id',key:'Id',
607
607
  },
608
608
  ['m',0,'}',,,'afterBrace'],
609
609
  'elementDefOrExtend',
610
- {'@':[333,782],'':334},
610
+ {'@':[333,784],'':334},
611
611
  {
612
612
  Id:[0,162],'@':'Id',key:'Id',
613
613
  extend:['ck',335,['Id']],
@@ -615,9 +615,9 @@ extend:['ck',335,['Id']],
615
615
  {element:['ck',336,['Id']],'':336},
616
616
  ['mi',337],
617
617
  {with:['ck',340],'':338},
618
- {'@':[338,782],'':339},
618
+ {'@':[338,784],'':339},
619
619
  {'{':[0,328],'':0},
620
- {'@':[340,782],'':341},
620
+ {'@':[340,784],'':341},
621
621
  {
622
622
  '{':342,
623
623
  elements:['ck',342],
@@ -637,7 +637,7 @@ Id:['g',346,,'fail'],'@':'Id',
637
637
  },
638
638
  ['m',0,'}',,,'afterBrace'],
639
639
  'enumSymbolDefOrExtend',
640
- {'@':[350,782],'':351},
640
+ {'@':[350,784],'':351},
641
641
  {
642
642
  Id:[0,183],'@':'Id',
643
643
  extend:['ck',352,['Id']],
@@ -645,7 +645,7 @@ extend:['ck',352,['Id']],
645
645
  ['mi',353],
646
646
  {with:['ck',354],'':354},
647
647
  ['g',355],
648
- {'@':[355,782],'':0},
648
+ {'@':[355,784],'':0},
649
649
  'typeOrIncludesSpec',
650
650
  {
651
651
  '{':[358,157],
@@ -683,9 +683,9 @@ many:['ck',388,['Id','{'],,'calc','elementRestriction'],
683
683
  '{':[393,157,,,'calc','elementRestriction'],
684
684
  },
685
685
  ['g',369],
686
- {'@':[369,782],'':370},
686
+ {'@':[369,784],'':370},
687
687
  {not:[371,448,,'elementRestriction','notNull'],null:'not','':372},
688
- {'@':[371,782],'':372},
688
+ {'@':[371,784],'':372},
689
689
  {
690
690
  enum:[373,177,,,'anno','elementRestriction'],
691
691
  '@':[0,402],not:'@',null:'@',default:'@',
@@ -693,7 +693,7 @@ enum:[373,177,,,'anno','elementRestriction'],
693
693
  },
694
694
  {not:[374,448,,'elementRestriction','notNull'],null:'not','':374},
695
695
  {default:['ck',375,,'elementRestriction','default'],'':376},
696
- [376,653],
696
+ [376,655],
697
697
  {not:[0,448,,'elementRestriction','notNull'],null:'not','':0},
698
698
  [378,413],
699
699
  {'@':[0,402],not:'@',null:'@',default:'@','':0},
@@ -716,29 +716,29 @@ type:[389,405,[]],
716
716
  },
717
717
  {not:[390,448,,'elementRestriction','notNull'],null:'not','':390},
718
718
  {enum:[392,177],'':391},
719
- {'@':[391,782],'':0},
719
+ {'@':[391,784],'':0},
720
720
  {not:[0,448,,'elementRestriction','notNull'],null:'not','':0},
721
721
  {not:[0,448],null:'not','':0},
722
722
  'typeAssocProperties',
723
723
  [396,39],
724
- {'@':[396,782],'':397},
724
+ {'@':[396,784],'':397},
725
725
  {
726
726
  on:['ck',398],
727
727
  '{':[400,192],
728
728
  '@':[0,402],not:'@',null:'@',default:'@',
729
729
  '':0
730
730
  },
731
- [399,651],
732
- {'@':[399,782],'':0},
731
+ [399,653],
732
+ {'@':[399,784],'':0},
733
733
  {'@':[0,402],not:'@',null:'@',default:'@','':0},
734
734
  'typeProperties',
735
735
  {
736
- '@':[402,782],
736
+ '@':[402,784],
737
737
  not:[402,448,,'elementRestriction','notNull'],null:'not',
738
738
  default:['ck',403,,'elementRestriction','default'],
739
739
  '':0
740
740
  },
741
- [402,653],
741
+ [402,655],
742
742
  'typeTypeOf',
743
743
  ['mk',406,'type'],
744
744
  ['mk',407,'of'],
@@ -829,9 +829,9 @@ not:['ck',449],
829
829
  'projectionSpec',
830
830
  ['mk',456,'projection'],
831
831
  ['mk',457,'on'],
832
- [458,520],
833
- {'{':[459,564],'':459},
834
- {excluding:[0,557],'':0},
832
+ [458,522],
833
+ {'{':[459,566],'':459},
834
+ {excluding:[0,559],'':0},
835
835
  'queryExpression',
836
836
  {
837
837
  '(':['c',462],
@@ -848,15 +848,15 @@ union:['ck',466,,'precLeft_',2],
848
848
  {distinct:['ck',467],'':467},
849
849
  {all:['ck',467],distinct:'all','':467},
850
850
  [464,461,,,,'orderByLimitRestriction'],
851
- {limit:[0,631,,'orderByLimitRestriction'],order:'limit','':0},
851
+ {limit:[0,633,,'orderByLimitRestriction'],order:'limit','':0},
852
852
  'selectQuery',
853
853
  ['mk',471,'select'],
854
854
  {
855
855
  from:['ck',472],
856
- Id:482,'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',key:'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
857
- all:['ck',482],distinct:'all',
856
+ Id:483,'#':'Id','(':'Id','*':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',all:'Id',key:'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',distinct:'Id',QuotedLiteral:'Id',
857
+ one:['ck',483,['Id','#','(','*','+','-',':','?','@','{','all','key','not','case','cast','null','true','false','Number','String','exists','distinct','QuotedLiteral'],'hide_'],
858
858
  },
859
- [473,490],
859
+ [473,492],
860
860
  {mixin:['ck',474],'':479},
861
861
  ['m',475,'{'],
862
862
  {Id:[476,202],'':477},
@@ -868,494 +868,496 @@ Id:['g',475,,'fail'],
868
868
  ['m',478,'}'],
869
869
  ['mk',479,'into'],
870
870
  {all:['ck',480],distinct:'all','':480},
871
- {'{':[481,564],'':481},
872
- {excluding:[488,557],'':488},
873
- ['g',483,,,'sqlStyle','inSelectItem'],
871
+ {one:['ck',481,,'hide_'],'':481},
872
+ {'{':[482,566],'':482},
873
+ {excluding:[490,559],'':490},
874
+ {all:['ck',484],distinct:'all','':484},
875
+ ['g',485,,,'sqlStyle','inSelectItem'],
874
876
  {
875
- '*':['c',484],
876
- Id:[484,574],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
877
+ '*':['c',486],
878
+ Id:[486,576],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
877
879
  },
878
- {',':['c',485],'':486},
880
+ {',':['c',487],'':488},
879
881
  {
880
- '*':['c',484],
881
- Id:[484,574],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
882
+ '*':['c',486],
883
+ Id:[486,576],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
882
884
  },
883
- ['mk',487,'from'],
884
- [488,490],
885
- {group:[0,619],where:'group',having:'group','':0},
885
+ ['mk',489,'from'],
886
+ [490,492],
887
+ {group:[0,621],where:'group',having:'group','':0},
886
888
  'querySource',
887
- [491,495],
888
- {',':492,'':0},
889
- {',':['c',493],'':0},
890
- [492,495],
889
+ [493,497],
890
+ {',':494,'':0},
891
+ {',':['c',495],'':0},
892
+ [494,497],
891
893
  'tableExpression',
892
894
  {
893
- '(':[496,507],
894
- Id:[496,520],
895
+ '(':[498,509],
896
+ Id:[498,522],
895
897
  },
896
898
  {
897
- cross:['ck',497],
898
- inner:['ck',500],
899
- full:['ck',499],left:'full',right:'full',
900
- join:['ck',502],
899
+ cross:['ck',499],
900
+ inner:['ck',502],
901
+ full:['ck',501],left:'full',right:'full',
902
+ join:['ck',504],
901
903
  '':0
902
904
  },
903
- ['mk',498,'join'],
905
+ ['mk',500,'join'],
904
906
  {
905
- '(':[496,507],
906
- Id:[496,520],
907
+ '(':[498,509],
908
+ Id:[498,522],
907
909
  },
908
- {outer:['ck',500],'':500},
909
- {one:[501,514],many:'one',exact:'one','':501},
910
- ['mk',502,'join'],
911
- ['g',503],
912
- [504,495],
913
- ['mk',505,'on'],
914
- [496,651],
910
+ {outer:['ck',502],'':502},
911
+ {one:[503,516],many:'one',exact:'one','':503},
912
+ ['mk',504,'join'],
913
+ ['g',505],
914
+ [506,497],
915
+ ['mk',507,'on'],
916
+ [498,653],
915
917
  'tableOrQueryParens',
916
- ['m',508,'(',,,'queryOnLeft'],
918
+ ['m',510,'(',,,'queryOnLeft'],
917
919
  {
918
- '(':[509,507],
919
- Id:[510,495,,,'table','queryOnLeft'],
920
- select:[510,461],
920
+ '(':[511,509],
921
+ Id:[512,497,,,'table','queryOnLeft'],
922
+ select:[512,461],
921
923
  },
922
924
  {
923
- full:[510,496,,,'table','queryOnLeft'],join:'full',left:'full',cross:'full',inner:'full',right:'full',
924
- limit:[510,464,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
925
- '':510
925
+ full:[512,498,,,'table','queryOnLeft'],join:'full',left:'full',cross:'full',inner:'full',right:'full',
926
+ limit:[512,464,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
927
+ '':512
926
928
  },
927
- ['m',511,')'],
929
+ ['m',513,')'],
928
930
  {
929
- as:['ck',512,,'queryOnLeft','table'],
931
+ as:['ck',514,,'queryOnLeft','table'],
930
932
  Id:['ci',0,,'queryOnLeftSloppyAlias'],
931
933
  '':0,on:'',all:'',where:'',distinct:''
932
934
  },
933
935
  ['mi',0],
934
936
  'joinCardinality',
935
937
  {
936
- one:515,
937
- exact:['ck',515],
938
- many:['ck',516],
938
+ one:517,
939
+ exact:['ck',517],
940
+ many:['ck',518],
939
941
  },
940
- ['mk',516,'one'],
941
- ['mk',517,'to'],
942
+ ['mk',518,'one'],
943
+ ['mk',519,'to'],
942
944
  {
943
- one:518,
944
- exact:['ck',518],
945
+ one:520,
946
+ exact:['ck',520],
945
947
  many:['ck',0],
946
948
  },
947
949
  ['mk',0,'one'],
948
950
  'fromRefWithOptAlias',
949
- [521,527],
950
- {':':['c',522],'':523},
951
- [523,527],
951
+ [523,529],
952
+ {':':['c',524],'':525},
953
+ [525,529],
952
954
  {
953
- as:['ck',524],
955
+ as:['ck',526],
954
956
  Id:['ci',0,,'isNoKeywordInRuleFollow'],
955
- '':525,on:'',all:'',where:'',distinct:''
957
+ '':527,on:'',all:'',where:'',distinct:''
956
958
  },
957
959
  ['mi',0],
958
960
  ['g',0],
959
961
  'fromPath',
960
- ['mi',528],
961
- {'(':[529,533],'[':'(','':529},
962
- {'.':['c',530,,'notAfterEntityArgOrFilter'],'':0},
963
- ['my',531],
964
- {'(':[529,533],'[':'(','':529},
962
+ ['mi',530],
963
+ {'(':[531,535],'[':'(','':531},
964
+ {'.':['c',532,,'notAfterEntityArgOrFilter'],'':0},
965
+ ['my',533],
966
+ {'(':[531,535],'[':'(','':531},
965
967
  'fromArgumentsAndFilter',
966
- {'(':['c',534],'':538},
967
- {Id:535},
968
- {Id:[536,540],'':537},
968
+ {'(':['c',536],'':540},
969
+ {Id:537},
970
+ {Id:[538,542],'':539},
969
971
  {
970
- ',':['c',535],
971
- ')':537,
972
+ ',':['c',537],
973
+ ')':539,
972
974
  },
973
- ['m',538,')'],
974
- {'[':[0,544],'':0},
975
+ ['m',540,')'],
976
+ {'[':[0,546],'':0},
975
977
  'fromNamedArgument',
976
- ['mi',541],
977
- ['m',542,':'],
978
- [0,653],
978
+ ['mi',543],
979
+ ['m',544,':'],
980
+ [0,655],
979
981
  'cardinalityAndFilter',
980
- ['m',545,'['],
981
- {Number:['c',546,,'beforeColon'],'':547},
982
- ['m',547,':'],
982
+ ['m',547,'['],
983
+ {Number:['c',548,,'beforeColon'],'':549},
984
+ ['m',549,':'],
983
985
  {
984
- group:['g',549,[]],limit:'group',order:'group',having:'group',
985
- where:['ck',548],
986
+ group:['g',551,[]],limit:'group',order:'group',having:'group',
987
+ where:['ck',550],
986
988
  ']':['c',0],
987
- '':548
989
+ '':550
988
990
  },
989
- [549,651],
990
- {group:['g',550,,'hide_'],'':551},
991
- [551,625],
992
- {having:['ck',552,,'hide_'],'':553},
993
- [553,651],
994
- {Id:['g',554,,'hide_'],'':555},
995
- [555,631],
991
+ [551,653],
992
+ {group:['g',552,,'hide_'],'':553},
993
+ [553,627],
994
+ {having:['ck',554,,'hide_'],'':555},
995
+ [555,653],
996
+ {Id:['g',556,,'hide_'],'':557},
997
+ [557,633],
996
998
  ['m',0,']'],
997
999
  'excludingClause',
998
- ['mk',558,'excluding'],
999
- ['m',559,'{'],
1000
- {Id:560},
1001
- {Id:['cy',561],'':562},
1000
+ ['mk',560,'excluding'],
1001
+ ['m',561,'{'],
1002
+ {Id:562},
1003
+ {Id:['cy',563],'':564},
1002
1004
  {
1003
- ',':['c',560],
1004
- '}':562,
1005
+ ',':['c',562],
1006
+ '}':564,
1005
1007
  },
1006
1008
  ['m',0,'}',,,'afterBrace'],
1007
1009
  'selectItemsList',
1008
- ['m',565,'{',,'top','inSelectItem'],
1010
+ ['m',567,'{',,'top','inSelectItem'],
1009
1011
  {
1010
- '*':['c',566],
1011
- Id:[566,574],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1012
- '':567
1012
+ '*':['c',568],
1013
+ Id:[568,576],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1014
+ '':569
1013
1015
  },
1014
1016
  {
1015
- ',':['c',565],
1016
- '}':567,
1017
+ ',':['c',567],
1018
+ '}':569,
1017
1019
  },
1018
1020
  ['m',0,'}',,,'afterBrace'],
1019
1021
  'nestedSelectItemsList',
1020
- ['m',570,'{',,,'inSelectItem'],
1022
+ ['m',572,'{',,,'inSelectItem'],
1021
1023
  {
1022
- '*':['c',571],
1023
- Id:[571,574],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1024
- '':572
1024
+ '*':['c',573],
1025
+ Id:[573,576],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id','@':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1026
+ '':574
1025
1027
  },
1026
1028
  {
1027
- ',':['c',570],
1028
- '}':572,
1029
+ ',':['c',572],
1030
+ '}':574,
1029
1031
  },
1030
1032
  ['m',0,'}',,,'afterBrace'],
1031
1033
  'selectItemDef',
1032
- {'@':[574,785],'':575},
1033
- {virtual:['ck',576,['Id','#','(','+','-',':','?','{','key','not','case','cast','null','true','false','Number','String','exists','QuotedLiteral'],'modifierRestriction'],'':576},
1034
- ['g',577,,,'key','columnExpr'],
1035
- {key:['ck',578,,'modifierRestriction'],'':578},
1034
+ {'@':[576,787],'':577},
1035
+ {virtual:['ck',578,['Id','#','(','+','-',':','?','{','key','not','case','cast','null','true','false','Number','String','exists','QuotedLiteral'],'modifierRestriction'],'':578},
1036
+ ['g',579,,,'key','columnExpr'],
1037
+ {key:['ck',580,,'modifierRestriction'],'':580},
1036
1038
  {
1037
- '#':[579,653,[]],'(':'#','+':'#','-':'#',':':'#','?':'#',new:'#',not:'#',case:'#',cast:'#',null:'#',true:'#',false:'#',Number:'#',String:'#',exists:'#',QuotedLiteral:'#',
1038
- Id:[581,681],
1039
- '{':[592,569],
1039
+ '#':[581,655,[]],'(':'#','+':'#','-':'#',':':'#','?':'#',new:'#',not:'#',case:'#',cast:'#',null:'#',true:'#',false:'#',Number:'#',String:'#',exists:'#',QuotedLiteral:'#',
1040
+ Id:[583,683],
1041
+ '{':[594,571],
1040
1042
  },
1041
1043
  {
1042
- as:['ck',580],
1043
- Id:['ci',589,,'hide_'],
1044
- '':589,from:''
1044
+ as:['ck',582],
1045
+ Id:['ci',591,,'hide_'],
1046
+ '':591,from:''
1045
1047
  },
1046
- ['mi',589],
1048
+ ['mi',591],
1047
1049
  {
1048
- over:['ck',582],
1049
- '*':[584,664],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
1050
- as:['ck',586],
1051
- Id:['ci',589,,'hide_',,'nestedExpand'],
1052
- '.':['c',587],
1053
- '':['g',589,,,,'nestedExpand'],from:''
1050
+ over:['ck',584],
1051
+ '*':[586,666],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
1052
+ as:['ck',588],
1053
+ Id:['ci',591,,'hide_',,'nestedExpand'],
1054
+ '.':['c',589],
1055
+ '':['g',591,,,,'nestedExpand'],from:''
1054
1056
  },
1055
- [583,743],
1056
- {'*':[584,664],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*','':584},
1057
+ [585,745],
1058
+ {'*':[586,666],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*','':586},
1057
1059
  {
1058
- as:['ck',585],
1059
- Id:['ci',589,,'hide_'],
1060
- '':589,from:''
1060
+ as:['ck',587],
1061
+ Id:['ci',591,,'hide_'],
1062
+ '':591,from:''
1061
1063
  },
1062
- ['mi',589],
1063
- ['mi',589,,,,'nestedExpand'],
1064
+ ['mi',591],
1065
+ ['mi',591,,,,'nestedExpand'],
1064
1066
  {
1065
- '{':[588,569],
1067
+ '{':[590,571],
1066
1068
  '*':['c',0],
1067
1069
  },
1068
- {excluding:[0,557],'':0},
1069
- {'{':['g',590,,'nestedExpand'],'':595},
1070
- [591,569],
1071
- {excluding:[595,557],'':595},
1072
- {excluding:[593,557],'':593},
1073
- ['mk',594,'as'],
1074
- ['mi',595],
1075
- ['g',596,,,,'columnExpr'],
1076
- {'@':[596,788],'':597},
1077
- {':':['c',598],'':0},
1070
+ {excluding:[0,559],'':0},
1071
+ {'{':['g',592,,'nestedExpand'],'':597},
1072
+ [593,571],
1073
+ {excluding:[597,559],'':597},
1074
+ {excluding:[595,559],'':595},
1075
+ ['mk',596,'as'],
1076
+ ['mi',597],
1077
+ ['g',598,,,,'columnExpr'],
1078
+ {'@':[598,790],'':599},
1079
+ {':':['c',600],'':0},
1078
1080
  {
1079
- Id:[611,367],'{':'Id',
1080
- redirected:['ck',599,['to']],
1081
- association:['ck',603,['[','to'],'columnExpr'],
1082
- composition:['ck',605,['[','of'],'columnExpr'],
1081
+ Id:[613,367],'{':'Id',
1082
+ redirected:['ck',601,['to']],
1083
+ association:['ck',605,['[','to'],'columnExpr'],
1084
+ composition:['ck',607,['[','of'],'columnExpr'],
1083
1085
  },
1084
- ['mk',600,'to'],
1085
- [601,39],
1086
+ ['mk',602,'to'],
1087
+ [603,39],
1086
1088
  {
1087
- on:['ck',602],
1088
- '{':[611,192],
1089
- '':611
1089
+ on:['ck',604],
1090
+ '{':[613,192],
1091
+ '':613
1090
1092
  },
1091
- [611,651],
1092
- {'[':[604,436],'':604},
1093
- ['mk',607,'to'],
1093
+ [613,653],
1094
1094
  {'[':[606,436],'':606},
1095
- ['mk',607,'of'],
1096
- {one:['ck',608,['Id'],'noRepeatedCardinality'],many:'one','':608},
1097
- [609,39],
1098
- ['mk',610,'on'],
1099
- [611,651],
1100
- ['g',612],
1101
- {'@':[612,782],'':0},
1095
+ ['mk',609,'to'],
1096
+ {'[':[608,436],'':608},
1097
+ ['mk',609,'of'],
1098
+ {one:['ck',610,['Id'],'noRepeatedCardinality'],many:'one','':610},
1099
+ [611,39],
1100
+ ['mk',612,'on'],
1101
+ [613,653],
1102
+ ['g',614],
1103
+ {'@':[614,784],'':0},
1102
1104
  'queryClauses',
1103
- {columns:['ck',615],'':616},
1104
- [616,564],
1105
- {group:[617,619],where:'group',having:'group','':617},
1106
- {limit:[0,631],order:'limit','':0},
1105
+ {columns:['ck',617],'':618},
1106
+ [618,566],
1107
+ {group:[619,621],where:'group',having:'group','':619},
1108
+ {limit:[0,633],order:'limit','':0},
1107
1109
  'whereGroupByHaving',
1108
- {where:['ck',620],'':621},
1109
- [621,651],
1110
- {group:[622,625],'':622},
1111
- {having:['ck',623],'':0},
1112
- [0,651],
1110
+ {where:['ck',622],'':623},
1111
+ [623,653],
1112
+ {group:[624,627],'':624},
1113
+ {having:['ck',625],'':0},
1114
+ [0,653],
1113
1115
  'groupByClause',
1114
- ['mk',626,'group'],
1115
- ['mk',627,'by'],
1116
- [628,653],
1117
- {',':['c',629],'':0},
1118
- [628,653],
1116
+ ['mk',628,'group'],
1117
+ ['mk',629,'by'],
1118
+ [630,655],
1119
+ {',':['c',631],'':0},
1120
+ [630,655],
1119
1121
  'orderByLimitOffset',
1120
- {order:[632,637],'':632},
1121
- {limit:['ck',633],'':0},
1122
- [634,653],
1123
- {offset:['ck',635],'':0},
1124
- [0,653],
1122
+ {order:[634,639],'':634},
1123
+ {limit:['ck',635],'':0},
1124
+ [636,655],
1125
+ {offset:['ck',637],'':0},
1126
+ [0,655],
1125
1127
  'orderByClause',
1126
- ['mk',638,'order'],
1127
- ['mk',639,'by'],
1128
- [640,643],
1129
- {',':['c',641],'':0},
1130
- [640,643],
1128
+ ['mk',640,'order'],
1129
+ ['mk',641,'by'],
1130
+ [642,645],
1131
+ {',':['c',643],'':0},
1132
+ [642,645],
1131
1133
  'orderByExpression',
1132
- [644,653],
1133
- {asc:['ck',645],desc:'asc','':645},
1134
- {nulls:['ck',646],'':0},
1134
+ [646,655],
1135
+ {asc:['ck',647],desc:'asc','':647},
1136
+ {nulls:['ck',648],'':0},
1135
1137
  {last:['ck',0],first:'last'},
1136
1138
  'conditionEOF',
1137
- [649,653],
1139
+ [651,655],
1138
1140
  ['m',0,'EOF'],
1139
1141
  'condition',
1140
- [0,653],
1142
+ [0,655],
1141
1143
  'expression',
1142
1144
  {
1143
- '(':[664,687],
1144
- '#':[664,779],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1145
- ':':['c',654],
1146
- '?':['c',664,,'hide_'],
1147
- Id:[656,681],
1148
- new:['ck',659,['Id']],
1149
- exists:['ck',660],
1150
- case:[664,699],
1151
- cast:[664,710],
1152
- '+':['c',663,,'precRight_',30],'-':'+',
1153
- not:['ck',663,,'precRight_',8],
1145
+ '(':[666,689],
1146
+ '#':[666,781],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1147
+ ':':['c',656],
1148
+ '?':['c',666,,'hide_'],
1149
+ Id:[658,683],
1150
+ new:['ck',661,['Id']],
1151
+ exists:['ck',662],
1152
+ case:[666,701],
1153
+ cast:[666,712],
1154
+ '+':['c',665,,'precRight_',30],'-':'+',
1155
+ not:['ck',665,,'precRight_',8],
1154
1156
  },
1155
1157
  {
1156
- Id:['cy',655],
1157
- Number:['c',664,,'hide_'],
1158
+ Id:['cy',657],
1159
+ Number:['c',666,,'hide_'],
1158
1160
  },
1159
- {'.':[664,683],'':664},
1160
- {over:['ck',657],'':658},
1161
- [658,743],
1162
- ['g',664],
1163
- [664,681],
1161
+ {'.':[666,685],'':666},
1162
+ {over:['ck',659],'':660},
1163
+ [660,745],
1164
+ ['g',666],
1165
+ [666,683],
1164
1166
  {
1165
- '(':['c',661],
1166
- Id:[664,681],
1167
- '?':['c',664,,'hide_'],
1167
+ '(':['c',663],
1168
+ Id:[666,683],
1169
+ '?':['c',666,,'hide_'],
1168
1170
  },
1169
- [662,461],
1170
- ['m',664,')'],
1171
- [664,653],
1171
+ [664,461],
1172
+ ['m',666,')'],
1173
+ [666,655],
1172
1174
  {
1173
- '*':['c',668,,'precLeft_',24],'/':'*',
1174
- '+':['c',668,,'precLeft_',22],'-':'+',
1175
- '||':['c',668,,'precLeft_',20],
1176
- and:['ck',668,,'precLeft_',4],
1177
- or:['ck',668,,'precLeft_',2],
1178
- '?':['c',665,,'precRight_',0],
1179
- '<':['c',667,,'precNone_',10],'=':'<','>':'<','!=':'<','<=':'<','<>':'<','>=':'<',
1180
- '==':['c',668,,'precNone_',10],
1181
- is:['ck',669,,'precNone_',10],
1182
- not:['ck',671,,'isNegatedRelation',10],
1183
- in:['g',671,,'precNone_',10],like:'in',between:'in',
1175
+ '*':['c',670,,'precLeft_',24],'/':'*',
1176
+ '+':['c',670,,'precLeft_',22],'-':'+',
1177
+ '||':['c',670,,'precLeft_',20],
1178
+ and:['ck',670,,'precLeft_',4],
1179
+ or:['ck',670,,'precLeft_',2],
1180
+ '?':['c',667,,'precRight_',0],
1181
+ '<':['c',669,,'precNone_',10],'=':'<','>':'<','!=':'<','<=':'<','<>':'<','>=':'<',
1182
+ '==':['c',670,,'precNone_',10],
1183
+ is:['ck',671,,'precNone_',10],
1184
+ not:['ck',673,,'isNegatedRelation',10],
1185
+ in:['g',673,,'precNone_',10],like:'in',between:'in',
1184
1186
  '':0
1185
1187
  },
1186
- [666,653],
1187
- ['m',668,':'],
1188
- {all:['ck',668],any:'all',some:'all','':668},
1189
- [679,653],
1190
- {not:['ck',670],'':670},
1191
- ['mk',679,'null'],
1188
+ [668,655],
1189
+ ['m',670,':'],
1190
+ {all:['ck',670],any:'all',some:'all','':670},
1191
+ [681,655],
1192
+ {not:['ck',672],'':672},
1193
+ ['mk',681,'null'],
1192
1194
  {
1193
- between:['ck',672],
1194
- in:['ck',675],
1195
- like:['ck',676],
1195
+ between:['ck',674],
1196
+ in:['ck',677],
1197
+ like:['ck',678],
1196
1198
  },
1197
- [673,653],
1198
- ['mk',674,'and'],
1199
- [679,653],
1200
- [679,653],
1201
- [677,653],
1202
- {escape:['ck',678],'':679},
1203
- [679,653],
1204
- ['g',664],
1199
+ [675,655],
1200
+ ['mk',676,'and'],
1201
+ [681,655],
1202
+ [681,655],
1203
+ [679,655],
1204
+ {escape:['ck',680],'':681},
1205
+ [681,655],
1206
+ ['g',666],
1205
1207
  'valuePath',
1206
- ['mi',682],
1207
- {'(':[683,717],'[':'(','':683},
1208
- {'.':['c',684,,'isDotForPath'],'':0},
1209
- ['my',685],
1210
- {'(':[683,717],'[':'(','':683},
1208
+ ['mi',684],
1209
+ {'(':[685,719],'[':'(','':685},
1210
+ {'.':['c',686,,'isDotForPath'],'':0},
1211
+ ['my',687],
1212
+ {'(':[685,719],'[':'(','':685},
1211
1213
  'expressionOrQueryParens',
1212
- ['m',688,'(',,,'queryOnLeft'],
1214
+ ['m',690,'(',,,'queryOnLeft'],
1213
1215
  {
1214
- '(':[689,687],
1215
- Id:[691,653,,,'expr','queryOnLeft'],'#':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1216
- select:[692,461],
1216
+ '(':[691,689],
1217
+ Id:[693,655,,,'expr','queryOnLeft'],'#':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id',
1218
+ select:[694,461],
1217
1219
  },
1218
1220
  {
1219
- '*':[690,664,,,'expr','queryOnLeft'],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
1220
- ',':[692,694,,,'expr','queryOnLeft'],
1221
- limit:[692,464,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
1222
- '':692
1221
+ '*':[692,666,,,'expr','queryOnLeft'],'+':'*','-':'*','/':'*','<':'*','=':'*','>':'*','?':'*','!=':'*','<=':'*','<>':'*','==':'*','>=':'*',in:'*',is:'*',or:'*','||':'*',and:'*',not:'*',like:'*',between:'*',
1222
+ ',':[694,696,,,'expr','queryOnLeft'],
1223
+ limit:[694,464,,'queryOnLeft'],minus:'limit',order:'limit',union:'limit',except:'limit',intersect:'limit',
1224
+ '':694
1223
1225
  },
1224
- {',':[692,694],'':692},
1225
- {',':[692,694],'':692},
1226
+ {',':[694,696],'':694},
1227
+ {',':[694,696],'':694},
1226
1228
  ['m',0,')'],
1227
1229
  'continueExpressionslist',
1228
- ['m',695,','],
1229
- {Id:696,'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id'},
1230
- {Id:[697,653],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id','':0},
1231
- {',':['c',696],'':0},
1230
+ ['m',697,','],
1231
+ {Id:698,'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id'},
1232
+ {Id:[699,655],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id','':0},
1233
+ {',':['c',698],'':0},
1232
1234
  'caseExpression',
1233
- ['mk',700,'case'],
1234
- {Id:[701,653],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id','':701,when:''},
1235
- {when:702},
1236
- {when:['ck',703],'':706},
1237
- [704,653],
1238
- ['mk',705,'then'],
1239
- [702,653],
1240
- {else:['ck',707],'':708},
1241
- [708,653],
1235
+ ['mk',702,'case'],
1236
+ {Id:[703,655],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',not:'Id',case:'Id',cast:'Id',null:'Id',true:'Id',false:'Id',Number:'Id',String:'Id',exists:'Id',QuotedLiteral:'Id','':703,when:''},
1237
+ {when:704},
1238
+ {when:['ck',705],'':708},
1239
+ [706,655],
1240
+ ['mk',707,'then'],
1241
+ [704,655],
1242
+ {else:['ck',709],'':710},
1243
+ [710,655],
1242
1244
  ['mk',0,'end'],
1243
1245
  'castFunction',
1244
- ['mk',711,'cast'],
1245
- ['m',712,'('],
1246
- [713,653],
1247
- ['mk',714,'as'],
1248
- [715,413],
1246
+ ['mk',713,'cast'],
1247
+ ['m',714,'('],
1248
+ [715,655],
1249
+ ['mk',716,'as'],
1250
+ [717,413],
1249
1251
  ['m',0,')'],
1250
1252
  'argumentsAndFilter',
1251
- {'(':['c',718,,,,'prepareSpecialFunction'],'':736},
1253
+ {'(':['c',720,,,,'prepareSpecialFunction'],'':738},
1252
1254
  {
1253
- ')':735,
1254
- Id:['cy',719,,'isNamedArg'],
1255
- '':728
1255
+ ')':737,
1256
+ Id:['cy',721,,'isNamedArg'],
1257
+ '':730
1256
1258
  },
1257
1259
  {
1258
- ':':['c',720],
1259
- '=>':['c',724],
1260
+ ':':['c',722],
1261
+ '=>':['c',726],
1260
1262
  },
1261
- [721,653],
1263
+ [723,655],
1262
1264
  {
1263
- ',':['c',722],
1264
- ')':735,
1265
+ ',':['c',724],
1266
+ ')':737,
1265
1267
  },
1266
1268
  {
1267
- Id:['cy',723],
1268
- ')':735,
1269
+ Id:['cy',725],
1270
+ ')':737,
1269
1271
  },
1270
- ['m',720,':'],
1271
- [725,653],
1272
+ ['m',722,':'],
1273
+ [727,655],
1272
1274
  {
1273
- ',':['c',726],
1274
- ')':735,
1275
+ ',':['c',728],
1276
+ ')':737,
1275
1277
  },
1276
1278
  {
1277
- Id:['cy',727],
1278
- ')':735,
1279
+ Id:['cy',729],
1280
+ ')':737,
1279
1281
  },
1280
- ['m',724,'=>'],
1281
- [729,738],
1282
- {',':['c',730,,,,'nextFunctionArgument'],'':732},
1283
- {')':['c',731],'':728},
1284
- {'[':[0,544],'':0},
1285
- {order:['ck',733],'':735},
1286
- ['mk',734,'by'],
1287
- [735,758],
1288
- ['m',736,')'],
1289
- {'[':[0,544],'':0},
1282
+ ['m',726,'=>'],
1283
+ [731,740],
1284
+ {',':['c',732,,,,'nextFunctionArgument'],'':734},
1285
+ {')':['c',733],'':730},
1286
+ {'[':[0,546],'':0},
1287
+ {order:['ck',735],'':737},
1288
+ ['mk',736,'by'],
1289
+ [737,760],
1290
+ ['m',738,')'],
1291
+ {'[':[0,546],'':0},
1290
1292
  'funcExpression',
1291
1293
  {
1292
1294
  ' lookahead':'lGenericIntroOrExpr',
1293
- Id:[740,653],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1294
- GenericExpr:['cx',740],
1295
- GenericIntro:['cx',739],
1295
+ Id:[742,655],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1296
+ GenericExpr:['cx',742],
1297
+ GenericIntro:['cx',741],
1296
1298
  },
1297
- [740,653],
1299
+ [742,655],
1298
1300
  {
1299
1301
  ' lookahead':'lGenericSeparator',
1300
- GenericSeparator:['cx',741],
1302
+ GenericSeparator:['cx',743],
1301
1303
  '':0
1302
1304
  },
1303
1305
  {
1304
1306
  ' lookahead':'lGenericExpr',
1305
- Id:[740,653],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1306
- GenericExpr:['cx',740],
1307
+ Id:[742,655],'#':'Id','(':'Id','+':'Id','-':'Id',':':'Id','?':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1308
+ GenericExpr:['cx',742],
1307
1309
  },
1308
1310
  'overClause',
1309
- ['m',744,'('],
1310
- {partition:['ck',745],'':747},
1311
- ['mk',746,'by'],
1312
- [747,754],
1313
- {order:['ck',748],'':750},
1314
- ['mk',749,'by'],
1315
- [750,758],
1316
- {rows:['ck',751],'':752},
1317
- [752,767],
1311
+ ['m',746,'('],
1312
+ {partition:['ck',747],'':749},
1313
+ ['mk',748,'by'],
1314
+ [749,756],
1315
+ {order:['ck',750],'':752},
1316
+ ['mk',751,'by'],
1317
+ [752,760],
1318
+ {rows:['ck',753],'':754},
1319
+ [754,769],
1318
1320
  ['m',0,')'],
1319
1321
  'expressionsAsXpr',
1320
- [755,653],
1321
- {',':['c',756],'':0},
1322
- [755,653],
1322
+ [757,655],
1323
+ {',':['c',758],'':0},
1324
+ [757,655],
1323
1325
  'orderByClauseAsXpr',
1324
- [759,762],
1325
- {',':['c',760],'':0},
1326
- [759,762],
1326
+ [761,764],
1327
+ {',':['c',762],'':0},
1328
+ [761,764],
1327
1329
  'orderBySpecAsXpr',
1328
- [763,653],
1329
- {asc:['ck',764],desc:'asc','':764},
1330
- {nulls:['ck',765],'':0},
1330
+ [765,655],
1331
+ {asc:['ck',766],desc:'asc','':766},
1332
+ {nulls:['ck',767],'':0},
1331
1333
  {last:['ck',0],first:'last'},
1332
1334
  'windowFrameClause',
1333
1335
  {
1334
- unbounded:['ck',768],
1335
- Number:['c',768],
1336
- current:['ck',769],
1337
- between:['ck',770],
1336
+ unbounded:['ck',770],
1337
+ Number:['c',770],
1338
+ current:['ck',771],
1339
+ between:['ck',772],
1338
1340
  },
1339
1341
  ['mk',0,'preceding'],
1340
1342
  ['mk',0,'row'],
1341
- [771,774],
1342
- ['mk',772,'and'],
1343
- [0,774],
1343
+ [773,776],
1344
+ ['mk',774,'and'],
1345
+ [0,776],
1344
1346
  'windowFrameBoundSpec',
1345
1347
  {
1346
- unbounded:['ck',775],
1347
- Number:['c',775],
1348
- current:['ck',777],
1348
+ unbounded:['ck',777],
1349
+ Number:['c',777],
1350
+ current:['ck',779],
1349
1351
  },
1350
1352
  {
1351
- following:['ck',776],
1352
- preceding:['ck',776],
1353
+ following:['ck',778],
1354
+ preceding:['ck',778],
1353
1355
  },
1354
1356
  ['g',0],
1355
1357
  ['mk',0,'row'],
1356
1358
  'literalValue',
1357
1359
  {
1358
- '#':['c',780],
1360
+ '#':['c',782],
1359
1361
  null:['ck',0],
1360
1362
  true:['ck',0],false:'true',
1361
1363
  Number:['c',0],
@@ -1364,101 +1366,101 @@ QuotedLiteral:['c',0],
1364
1366
  },
1365
1367
  ['my',0],
1366
1368
  'annoAssignStd',
1367
- ['m',783,'@',,,'annoInSameLine'],
1369
+ ['m',785,'@',,,'annoInSameLine'],
1368
1370
  {
1369
- '(':[0,791],
1370
- Id:[0,796],
1371
+ '(':[0,793],
1372
+ Id:[0,798],
1371
1373
  },
1372
1374
  'annoAssignCol',
1373
- ['m',786,'@'],
1375
+ ['m',788,'@'],
1374
1376
  {
1375
- '(':[0,791],
1376
- Id:[0,796],
1377
+ '(':[0,793],
1378
+ Id:[0,798],
1377
1379
  },
1378
1380
  'annoAssignMid',
1379
- ['m',789,'@',,,'annoInSameLine'],
1381
+ ['m',791,'@',,,'annoInSameLine'],
1380
1382
  {
1381
- '(':[0,791],
1382
- Id:[0,800],
1383
+ '(':[0,793],
1384
+ Id:[0,802],
1383
1385
  },
1384
1386
  'annoAssignParen',
1385
- ['m',792,'(',,,'annoInSameLine'],
1386
- {Id:[793,796],'':794},
1387
+ ['m',794,'(',,,'annoInSameLine'],
1388
+ {Id:[795,798],'':796},
1387
1389
  {
1388
- ',':['c',792],
1389
- ')':794,
1390
+ ',':['c',794],
1391
+ ')':796,
1390
1392
  },
1391
1393
  ['m',0,')'],
1392
1394
  'annoAssignBase',
1393
- [797,800],
1394
- {':':['c',798,,'annoInSameLine'],'':0},
1395
- [0,822],
1395
+ [799,802],
1396
+ {':':['c',800,,'annoInSameLine'],'':0},
1397
+ [0,824],
1396
1398
  'annoNamePath',
1397
- ['my',801],
1398
- {'.':['c',802],'':804},
1399
+ ['my',803],
1400
+ {'.':['c',804],'':806},
1399
1401
  {
1400
- Id:['cy',801],
1401
- '@':['c',803],
1402
+ Id:['cy',803],
1403
+ '@':['c',805],
1402
1404
  },
1403
- ['my',801],
1404
- {'#':[0,813,,'annoInSameLine'],'':0},
1405
+ ['my',803],
1406
+ {'#':[0,815,,'annoInSameLine'],'':0},
1405
1407
  'annoPath',
1406
1408
  {
1407
- Id:['cy',808],
1408
- '@':['c',807],
1409
+ Id:['cy',810],
1410
+ '@':['c',809],
1409
1411
  },
1410
- ['my',808],
1411
- {'.':['c',809],'':811},
1412
+ ['my',810],
1413
+ {'.':['c',811],'':813},
1412
1414
  {
1413
- Id:['cy',808],
1414
- '@':['c',810],
1415
+ Id:['cy',810],
1416
+ '@':['c',812],
1415
1417
  },
1416
- ['my',808],
1417
- {'#':[0,813],'':0},
1418
+ ['my',810],
1419
+ {'#':[0,815],'':0},
1418
1420
  'annoPathVariant',
1419
- ['m',814,'#'],
1420
- ['my',815],
1421
- {'.':['c',816],'':0},
1422
- ['my',815],
1421
+ ['m',816,'#'],
1422
+ ['my',817],
1423
+ {'.':['c',818],'':0},
1424
+ ['my',817],
1423
1425
  'annoStructValue',
1424
- [819,806],
1425
- {':':['c',820],'':0},
1426
- [0,822],
1426
+ [821,808],
1427
+ {':':['c',822],'':0},
1428
+ [0,824],
1427
1429
  'annoValue',
1428
1430
  {
1429
- '#':[0,779],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1430
- '+':['c',823],'-':'+',
1431
- Id:[0,806],'@':'Id',
1432
- '{':['c',824],
1433
- '[':['c',827,,,,'arrayAnno'],
1434
- '(':['c',833],
1431
+ '#':[0,781],null:'#',true:'#',false:'#',Number:'#',String:'#',QuotedLiteral:'#',
1432
+ '+':['c',825],'-':'+',
1433
+ Id:[0,808],'@':'Id',
1434
+ '{':['c',826],
1435
+ '[':['c',829,,,,'arrayAnno'],
1436
+ '(':['c',835],
1435
1437
  },
1436
1438
  ['m',0,'Number'],
1437
- {Id:[825,818],'@':'Id','':826},
1439
+ {Id:[827,820],'@':'Id','':828},
1438
1440
  {
1439
- ',':['c',824],
1440
- '}':826,
1441
- Id:['g',824,,'fail'],'@':'Id',
1441
+ ',':['c',826],
1442
+ '}':828,
1443
+ Id:['g',826,,'fail'],'@':'Id',
1442
1444
  },
1443
1445
  {'}':['c',0,,'arrayAnno','orNotEmpty']},
1444
1446
  {
1445
- Id:[831,822],'#':'Id','(':'Id','+':'Id','-':'Id','@':'Id','[':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1446
- '...':['c',828,,'arrayAnno','ellipsis'],
1447
- '':832
1447
+ Id:[833,824],'#':'Id','(':'Id','+':'Id','-':'Id','@':'Id','[':'Id','{':'Id',Number:'Id',String:'Id',QuotedLiteral:'Id',
1448
+ '...':['c',830,,'arrayAnno','ellipsis'],
1449
+ '':834
1448
1450
  },
1449
1451
  {
1450
- up:['ck',829],
1451
- ',':831,']':',',
1452
+ up:['ck',831],
1453
+ ',':833,']':',',
1452
1454
  },
1453
- ['mk',830,'to'],
1454
- [831,822],
1455
+ ['mk',832,'to'],
1456
+ [833,824],
1455
1457
  {
1456
- ',':['c',827],
1457
- ']':832,
1458
+ ',':['c',829],
1459
+ ']':834,
1458
1460
  },
1459
1461
  {']':['c',0,,'arrayAnno','bracket']},
1460
- {')':['c',0,,'fail'],'':834},
1461
- [835,651],
1462
+ {')':['c',0,,'fail'],'':836},
1463
+ [837,653],
1462
1464
  ['m',0,')'],
1463
1465
  ]
1464
1466
  class CdlParser extends AstBuildingParser{
@@ -3254,8 +3256,8 @@ for(;;)switch(this.s){
3254
3256
  case 470:if(this.mk(471,'select')){ $.query = { op: this.valueWithLocation( 'SELECT' ) }; }continue
3255
3257
  case 471:switch(this.l()){
3256
3258
  case'from':this.ck(472);continue
3257
- case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'@':case'{':case'key':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':this.s=482;continue
3258
- case'all':case'distinct':if(this.ck(482)){ $.query.quantifier = this.valueWithLocation(); }continue
3259
+ case'Id':case'#':case'(':case'*':case'+':case'-':case':':case'?':case'@':case'{':case'all':case'key':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'distinct':case'QuotedLiteral':this.s=483;continue
3260
+ case'one':if(this.ck(483)){ this.csnParseOnly( 'syntax-unexpected-sql-clause', -1, { '#': 'one', code: 'select one' } ); $.query.one = this.valueWithLocation( true ); }continue
3259
3261
  default:this.e();continue
3260
3262
  }
3261
3263
  case 472:this.querySource({query:$.query},473);continue
@@ -3280,32 +3282,40 @@ case 479:switch(this.lk()){
3280
3282
  case'all':case'distinct':if(this.ck(480)){ $.query.quantifier = this.valueWithLocation(); }continue
3281
3283
  default:this.s=480;continue
3282
3284
  }
3283
- case 480:switch(this.lt()){
3284
- case'{':this.selectItemsList({query:$.query,start:undefined},481);continue
3285
+ case 480:switch(this.lk()){
3286
+ case'one':if(this.ck(481)){ this.csnParseOnly( 'syntax-unexpected-sql-clause', -1, { '#': 'one', code: 'select one' } ); $.query.one = this.valueWithLocation( true ); }continue
3285
3287
  default:this.s=481;continue
3286
3288
  }
3287
- case 481:switch(this.lk()){
3288
- case'excluding':this.excludingClause({query:$.query},488);continue
3289
- default:this.s=488;continue
3289
+ case 481:switch(this.lt()){
3290
+ case'{':this.selectItemsList({query:$.query,start:undefined},482);continue
3291
+ default:this.s=482;continue
3290
3292
  }
3291
- case 482:this.s=483;{this.inSelectItem('sqlStyle')}continue;
3292
- case 483:switch(this.lt()){
3293
- case'*':if(this.c(484)){ $.query.columns = [ this.valueWithLocation() ]; }continue
3294
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:($.query.columns = []),sqlStyle:true},484);continue
3295
- default:this.e();continue
3293
+ case 482:switch(this.lk()){
3294
+ case'excluding':this.excludingClause({query:$.query},490);continue
3295
+ default:this.s=490;continue
3296
3296
  }
3297
- case 484:switch(this.lt()){
3298
- case',':this.c(485);continue
3299
- default:this.s=486;continue
3297
+ case 483:switch(this.l()){
3298
+ case'all':case'distinct':if(this.ck(484)){ $.query.quantifier = this.valueWithLocation(); }continue
3299
+ default:this.s=484;continue
3300
3300
  }
3301
+ case 484:this.s=485;{this.inSelectItem('sqlStyle')}continue;
3301
3302
  case 485:switch(this.lt()){
3302
- case'*':if(this.c(484)){ $.query.columns.push( this.valueWithLocation() ); }continue
3303
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns,sqlStyle:true},484);continue
3303
+ case'*':if(this.c(486)){ $.query.columns = [ this.valueWithLocation() ]; }continue
3304
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:($.query.columns = []),sqlStyle:true},486);continue
3304
3305
  default:this.e();continue
3305
3306
  }
3306
- case 486:this.mk(487,'from');continue
3307
- case 487:this.querySource({query:$.query},488);continue
3308
- case 488:switch(this.lk()){
3307
+ case 486:switch(this.lt()){
3308
+ case',':this.c(487);continue
3309
+ default:this.s=488;continue
3310
+ }
3311
+ case 487:switch(this.lt()){
3312
+ case'*':if(this.c(486)){ $.query.columns.push( this.valueWithLocation() ); }continue
3313
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns,sqlStyle:true},486);continue
3314
+ default:this.e();continue
3315
+ }
3316
+ case 488:this.mk(489,'from');continue
3317
+ case 489:this.querySource({query:$.query},490);continue
3318
+ case 490:switch(this.lk()){
3309
3319
  case'group':case'where':case'having':this.whereGroupByHaving({query:$.query},0);continue
3310
3320
  default:this.gr(['limit','minus','order','union','except','intersect']);continue
3311
3321
  }
@@ -3316,19 +3326,19 @@ return this.exit_()
3316
3326
  }
3317
3327
  querySource($,$next){
3318
3328
  let tab;let _
3319
- this.rule_(490,$next)
3329
+ this.rule_(492,$next)
3320
3330
  for(;;)switch(this.s){
3321
- case 490:if(this.tableExpression(_={},491)){tab=_.expr; $.query.from = tab; }continue
3322
- case 491:switch(this.lt()){
3323
- case',':this.s=492;{ const { location } = this.la();
3331
+ case 492:if(this.tableExpression(_={},493)){tab=_.expr; $.query.from = tab; }continue
3332
+ case 493:switch(this.lt()){
3333
+ case',':this.s=494;{ const { location } = this.la();
3324
3334
  $.query.from = { op: { val: 'join', location }, join: { val: 'cross', location }, args: [tab] }; }continue
3325
3335
  default:this.gr(['group','limit','minus','order','union','where','except','having','intersect']);continue
3326
3336
  }
3327
- case 492:switch(this.lt()){
3328
- case',':this.c(493);continue
3337
+ case 494:switch(this.lt()){
3338
+ case',':this.c(495);continue
3329
3339
  default:this.gr(['group','limit','minus','order','union','where','except','having','intersect']);continue
3330
3340
  }
3331
- case 493:if(this.tableExpression(_={},492)){tab=_.expr; $.query.from.args.push( tab ); }continue
3341
+ case 495:if(this.tableExpression(_={},494)){tab=_.expr; $.query.from.args.push( tab ); }continue
3332
3342
  default:
3333
3343
  this.attachLocation($.query.from)
3334
3344
  return this.exit_()
@@ -3337,90 +3347,90 @@ return this.exit_()
3337
3347
  tableExpression($,$next,$startState){
3338
3348
  $.expr??={}
3339
3349
  let join;let tab;let card;let cond;let _
3340
- this.rule_($startState??495,$next)
3350
+ this.rule_($startState??497,$next)
3341
3351
  for(;;)switch(this.s){
3342
- case 495:switch(this.lt()){
3343
- case'(':if(this.tableOrQueryParens($,496)){ $.expr = this.taggedIfQuery( $.expr ); }continue
3344
- case'Id':this.fromRefWithOptAlias($,496);continue
3352
+ case 497:switch(this.lt()){
3353
+ case'(':if(this.tableOrQueryParens($,498)){ $.expr = this.taggedIfQuery( $.expr ); }continue
3354
+ case'Id':this.fromRefWithOptAlias($,498);continue
3345
3355
  default:this.e();continue
3346
3356
  }
3347
- case 496:switch(this.lk()){
3348
- case'cross':if(this.ck(497))join=this.lb();continue
3349
- case'inner':if(this.ck(500))join=this.lb();continue
3350
- case'full':case'left':case'right':if(this.ck(499))join=this.lb();continue
3351
- case'join':if(this.ck(502)){ join = undefined; }continue
3357
+ case 498:switch(this.lk()){
3358
+ case'cross':if(this.ck(499))join=this.lb();continue
3359
+ case'inner':if(this.ck(502))join=this.lb();continue
3360
+ case'full':case'left':case'right':if(this.ck(501))join=this.lb();continue
3361
+ case'join':if(this.ck(504)){ join = undefined; }continue
3352
3362
  default:this.gr();continue
3353
3363
  }
3354
- case 497:if(this.mk(498,'join')){ if ($.expr?.join?.val !== 'cross' || $.expr.$parens) $.expr = { op: this.valueWithLocation(), join: this.valueWithLocation( undefined, join ), args: [ $.expr ] }; }continue
3355
- case 498:switch(this.lt()){
3356
- case'(':if(this.tableOrQueryParens(_={},496)){tab=_.expr; const r = this.taggedIfQuery( tab ); if (r) $.expr.args.push( r );
3364
+ case 499:if(this.mk(500,'join')){ if ($.expr?.join?.val !== 'cross' || $.expr.$parens) $.expr = { op: this.valueWithLocation(), join: this.valueWithLocation( undefined, join ), args: [ $.expr ] }; }continue
3365
+ case 500:switch(this.lt()){
3366
+ case'(':if(this.tableOrQueryParens(_={},498)){tab=_.expr; const r = this.taggedIfQuery( tab ); if (r) $.expr.args.push( r );
3357
3367
  this.attachLocation( $.expr ); }continue
3358
- case'Id':if(this.fromRefWithOptAlias(_={},496)){tab=_.expr; if (tab) $.expr.args.push( tab );
3368
+ case'Id':if(this.fromRefWithOptAlias(_={},498)){tab=_.expr; if (tab) $.expr.args.push( tab );
3359
3369
  this.attachLocation( $.expr ); }continue
3360
3370
  default:this.e();continue
3361
3371
  }
3362
- case 499:switch(this.lk()){
3363
- case'outer':this.ck(500);continue
3364
- default:this.s=500;continue
3372
+ case 501:switch(this.lk()){
3373
+ case'outer':this.ck(502);continue
3374
+ default:this.s=502;continue
3365
3375
  }
3366
- case 500:switch(this.lk()){
3367
- case'one':case'many':case'exact':this.joinCardinality(card={},501);continue
3368
- default:this.s=501;continue
3376
+ case 502:switch(this.lk()){
3377
+ case'one':case'many':case'exact':this.joinCardinality(card={},503);continue
3378
+ default:this.s=503;continue
3369
3379
  }
3370
- case 501:this.mk(502,'join');continue
3371
- case 502:this.s=503;{ $.expr = { op: this.valueWithLocation(), join: this.valueWithLocation( join?.keyword || 'inner', join ), args: [ $.expr ] }; if (card) $.expr.cardinality = card; card = undefined; }continue
3372
- case 503:if(this.tableExpression(_={},504)){tab=_.expr; $.expr.args.push( tab ); this.attachLocation( $.expr ); }continue
3373
- case 504:this.mk(505,'on');continue
3374
- case 505:if(this.condition(_={},496)){cond=_.expr; $.expr.on = cond;
3380
+ case 503:this.mk(504,'join');continue
3381
+ case 504:this.s=505;{ $.expr = { op: this.valueWithLocation(), join: this.valueWithLocation( join?.keyword || 'inner', join ), args: [ $.expr ] }; if (card) $.expr.cardinality = card; card = undefined; }continue
3382
+ case 505:if(this.tableExpression(_={},506)){tab=_.expr; $.expr.args.push( tab ); this.attachLocation( $.expr ); }continue
3383
+ case 506:this.mk(507,'on');continue
3384
+ case 507:if(this.condition(_={},498)){cond=_.expr; $.expr.on = cond;
3375
3385
  this.attachLocation( $.expr ); }continue
3376
3386
  default:return this.exit_()
3377
3387
  }
3378
3388
  }
3379
3389
  tableOrQueryParens($,$next){
3380
3390
  $.expr??=undefined
3381
- this.rule_(507,$next)
3391
+ this.rule_(509,$next)
3382
3392
  for(;;)switch(this.s){
3383
- case 507:if(this.m(508,'(')){this.queryOnLeft()}continue;
3384
- case 508:switch(this.l()){
3385
- case'(':this.tableOrQueryParens($,509);continue
3386
- case'Id':if(this.tableExpression($,510)){this.queryOnLeft('table')}continue;
3387
- case'select':this.queryExpression($,510);continue
3393
+ case 509:if(this.m(510,'(')){this.queryOnLeft()}continue;
3394
+ case 510:switch(this.l()){
3395
+ case'(':this.tableOrQueryParens($,511);continue
3396
+ case'Id':if(this.tableExpression($,512)){this.queryOnLeft('table')}continue;
3397
+ case'select':this.queryExpression($,512);continue
3388
3398
  default:this.e();continue
3389
3399
  }
3390
- case 509:switch(this.l()){
3391
- case'full':case'join':case'left':case'cross':case'inner':case'right':if(this.tableExpression(( $.expr = this.taggedIfQuery( $.expr ), $ ),510,496)){this.queryOnLeft('table')}continue;
3392
- case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.queryExpression($,510,464);continue
3393
- default:this.s=510;continue
3394
- }
3395
- case 510:if(this.m(511,')')){ this.surroundByParens( $.expr ); }continue
3396
3400
  case 511:switch(this.l()){
3397
- case'as':this.ck(512);continue
3401
+ case'full':case'join':case'left':case'cross':case'inner':case'right':if(this.tableExpression(( $.expr = this.taggedIfQuery( $.expr ), $ ),512,498)){this.queryOnLeft('table')}continue;
3402
+ case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.queryExpression($,512,464);continue
3403
+ default:this.s=512;continue
3404
+ }
3405
+ case 512:if(this.m(513,')')){ this.surroundByParens( $.expr ); }continue
3406
+ case 513:switch(this.l()){
3407
+ case'as':this.ck(514);continue
3398
3408
  case'Id':if(this.ci(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.fragileAlias(); }continue
3399
3409
  default:this.gr(['full','join','left','cross','inner','right']);continue
3400
3410
  }
3401
- case 512:if(this.mi(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.identAst(); }continue
3411
+ case 514:if(this.mi(0,'FromAlias')){ $.expr = this.taggedIfQuery( $.expr ); $.expr.name = this.identAst(); }continue
3402
3412
  default:return this.exit_()
3403
3413
  }
3404
3414
  }
3405
3415
  joinCardinality($,$next){
3406
3416
  $.sourceMax??=undefined;$.targetMax??=undefined
3407
- this.rule_(514,$next)
3417
+ this.rule_(516,$next)
3408
3418
  for(;;)switch(this.s){
3409
- case 514:switch(this.lk()){
3410
- case'one':this.s=515;continue
3411
- case'exact':if(this.ck(515)){ $.sourceMin = this.valueWithLocation( 1 ); }continue
3412
- case'many':if(this.ck(516)){ $.sourceMax = this.valueWithLocation( '*' ); }continue
3419
+ case 516:switch(this.lk()){
3420
+ case'one':this.s=517;continue
3421
+ case'exact':if(this.ck(517)){ $.sourceMin = this.valueWithLocation( 1 ); }continue
3422
+ case'many':if(this.ck(518)){ $.sourceMax = this.valueWithLocation( '*' ); }continue
3413
3423
  default:this.e();continue
3414
3424
  }
3415
- case 515:if(this.mk(516,'one')){ $.sourceMax = this.valueWithLocation( 1 ); }continue
3416
- case 516:this.mk(517,'to');continue
3417
- case 517:switch(this.lk()){
3418
- case'one':this.s=518;continue
3419
- case'exact':if(this.ck(518)){ $.targetMin = this.valueWithLocation( 1 ); }continue
3425
+ case 517:if(this.mk(518,'one')){ $.sourceMax = this.valueWithLocation( 1 ); }continue
3426
+ case 518:this.mk(519,'to');continue
3427
+ case 519:switch(this.lk()){
3428
+ case'one':this.s=520;continue
3429
+ case'exact':if(this.ck(520)){ $.targetMin = this.valueWithLocation( 1 ); }continue
3420
3430
  case'many':if(this.ck(0)){ $.targetMax = this.valueWithLocation( '*' ); }continue
3421
3431
  default:this.e();continue
3422
3432
  }
3423
- case 518:if(this.mk(0,'one')){ $.targetMax = this.valueWithLocation( 1 ); }continue
3433
+ case 520:if(this.mk(0,'one')){ $.targetMax = this.valueWithLocation( 1 ); }continue
3424
3434
  default:
3425
3435
  this.attachLocation( $ )
3426
3436
  return this.exit_()
@@ -3428,25 +3438,25 @@ return this.exit_()
3428
3438
  }
3429
3439
  fromRefWithOptAlias($,$next){
3430
3440
  $.expr??={}
3431
- this.rule_(520,$next)
3441
+ this.rule_(522,$next)
3432
3442
  { $.expr.path = []; }
3433
3443
  for(;;)switch(this.s){
3434
- case 520:this.fromPath({table:$.expr,category:'artref'},521);continue
3435
- case 521:switch(this.lt()){
3436
- case':':if(this.c(522)){ if (!$.expr.scope) $.expr.scope = $.expr.path.length; else {
3444
+ case 522:this.fromPath({table:$.expr,category:'artref'},523);continue
3445
+ case 523:switch(this.lt()){
3446
+ case':':if(this.c(524)){ if (!$.expr.scope) $.expr.scope = $.expr.path.length; else {
3437
3447
  this.warning( 'syntax-invalid-path-separator', this.lb(),
3438
3448
  { '#': 'colon', code: ':', newcode: '.' } );
3439
3449
  } }continue
3440
- default:this.s=523;continue
3450
+ default:this.s=525;continue
3441
3451
  }
3442
- case 522:this.fromPath({table:$.expr,category:'ref'},523);continue
3443
- case 523:switch(this.l()){
3444
- case'as':this.ck(524);continue
3452
+ case 524:this.fromPath({table:$.expr,category:'ref'},525);continue
3453
+ case 525:switch(this.l()){
3454
+ case'as':this.ck(526);continue
3445
3455
  case'Id':if(this.ci(0,'FromAlias')){ $.expr.name = this.fragileAlias(); }continue
3446
- default:this.s=525;continue
3456
+ default:this.s=527;continue
3447
3457
  }
3448
- case 524:if(this.mi(0,'FromAlias')){ $.expr.name = this.identAst(); }continue
3449
- case 525:if(this.gr()){ this.classifyImplicitName( $.expr.scope ? 'FromElemImplicit' : 'FromImplicit', $.expr ); }continue
3458
+ case 526:if(this.mi(0,'FromAlias')){ $.expr.name = this.identAst(); }continue
3459
+ case 527:if(this.gr()){ this.classifyImplicitName( $.expr.scope ? 'FromElemImplicit' : 'FromImplicit', $.expr ); }continue
3450
3460
  default:
3451
3461
  this.attachLocation( $.expr )
3452
3462
  return this.exit_()
@@ -3454,25 +3464,25 @@ return this.exit_()
3454
3464
  }
3455
3465
  fromPath($,$next){
3456
3466
  let pathItem
3457
- this.rule_(527,$next)
3467
+ this.rule_(529,$next)
3458
3468
  for(;;)switch(this.s){
3459
- case 527:if(this.mi(528,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
3460
- case 528:switch(this.lt()){
3461
- case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},529)){ pathItem = null; }continue
3462
- default:this.s=529;continue
3469
+ case 529:if(this.mi(530,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
3470
+ case 530:switch(this.lt()){
3471
+ case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},531)){ pathItem = null; }continue
3472
+ default:this.s=531;continue
3463
3473
  }
3464
- case 529:switch(this.l()){
3465
- case'.':if(this.c(530)){ if (!pathItem && !$.table.scope) {
3474
+ case 531:switch(this.l()){
3475
+ case'.':if(this.c(532)){ if (!pathItem && !$.table.scope) {
3466
3476
  $.table.scope = $.table.path.length; $.category = 'ref';
3467
3477
  this.warning( 'syntax-invalid-path-separator', this.lb(),
3468
3478
  { '#': 'dot', code: '.', newcode: ':' } );
3469
3479
  } }continue
3470
3480
  default:this.gr(['Id','as']);continue
3471
3481
  }
3472
- case 530:if(this.my(531,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
3473
- case 531:switch(this.lt()){
3474
- case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},529)){ pathItem = null; }continue
3475
- default:this.s=529;continue
3482
+ case 532:if(this.my(533,$.category)){ $.table.path.push( pathItem = this.identAst() ); }continue
3483
+ case 533:switch(this.lt()){
3484
+ case'(':case'[':if(this.fromArgumentsAndFilter({pathStep:pathItem},531)){ pathItem = null; }continue
3485
+ default:this.s=531;continue
3476
3486
  }
3477
3487
  default:
3478
3488
  this.attachLocation( $.table.path )
@@ -3480,27 +3490,27 @@ return this.exit_()
3480
3490
  }
3481
3491
  }
3482
3492
  fromArgumentsAndFilter($,$next){
3483
- this.rule_(533,$next)
3493
+ this.rule_(535,$next)
3484
3494
  for(;;)switch(this.s){
3485
- case 533:switch(this.lt()){
3486
- case'(':if(this.c(534)){ $.pathStep.args = this.createDict(); $.pathStep.$syntax = ':'; }continue
3487
- default:this.s=538;continue
3495
+ case 535:switch(this.lt()){
3496
+ case'(':if(this.c(536)){ $.pathStep.args = this.createDict(); $.pathStep.$syntax = ':'; }continue
3497
+ default:this.s=540;continue
3488
3498
  }
3489
- case 534:switch(this.l()){
3490
- case'Id':this.s=535;continue
3499
+ case 536:switch(this.l()){
3500
+ case'Id':this.s=537;continue
3491
3501
  default:this.e();continue
3492
3502
  }
3493
- case 535:switch(this.lt()){
3494
- case'Id':this.fromNamedArgument($,536);continue
3495
- default:this.s=537;continue
3503
+ case 537:switch(this.lt()){
3504
+ case'Id':this.fromNamedArgument($,538);continue
3505
+ default:this.s=539;continue
3496
3506
  }
3497
- case 536:switch(this.lt()){
3498
- case',':this.c(535);continue
3499
- case')':this.s=537;continue
3507
+ case 538:switch(this.lt()){
3508
+ case',':this.c(537);continue
3509
+ case')':this.s=539;continue
3500
3510
  default:this.e();continue
3501
3511
  }
3502
- case 537:this.m(538,')');continue
3503
- case 538:switch(this.lt()){
3512
+ case 539:this.m(540,')');continue
3513
+ case 540:switch(this.lt()){
3504
3514
  case'[':this.cardinalityAndFilter($,0);continue
3505
3515
  default:this.gr(['Id','.','as']);continue
3506
3516
  }
@@ -3509,229 +3519,229 @@ default:return this.exit_()
3509
3519
  }
3510
3520
  fromNamedArgument($,$next){
3511
3521
  let name;let expr;let _
3512
- this.rule_(540,$next)
3522
+ this.rule_(542,$next)
3513
3523
  for(;;)switch(this.s){
3514
- case 540:if(this.mi(541,'paramname'))name=this.lb();continue
3515
- case 541:this.m(542,':');continue
3516
- case 542:if(this.expression(_={},0)){expr=_.expr; this.addDef( expr, $.pathStep, 'args', 0, this.identAst( name ) ); }continue
3524
+ case 542:if(this.mi(543,'paramname'))name=this.lb();continue
3525
+ case 543:this.m(544,':');continue
3526
+ case 544:if(this.expression(_={},0)){expr=_.expr; this.addDef( expr, $.pathStep, 'args', 0, this.identAst( name ) ); }continue
3517
3527
  default:return this.exit_()
3518
3528
  }
3519
3529
  }
3520
3530
  cardinalityAndFilter($,$next){
3521
3531
  let cond;let _
3522
- this.rule_(544,$next)
3532
+ this.rule_(546,$next)
3523
3533
  for(;;)switch(this.s){
3524
- case 544:this.m(545,'[');continue
3525
- case 545:switch(this.l()){
3526
- case'Number':if(this.c(546)){ $.pathStep.cardinality = { targetMax: this.unsignedIntegerLiteral(), location: this.lb().location }; }continue
3527
- default:this.s=547;continue
3528
- }
3529
- case 546:this.m(547,':');continue
3534
+ case 546:this.m(547,'[');continue
3530
3535
  case 547:switch(this.l()){
3531
- case'group':case'limit':case'order':case'having':this.s=549;continue
3532
- case'where':this.ck(548);continue
3533
- case']':if(this.c(0)){ $.pathStep.where ??= { args: [] }; }continue
3534
- default:this.s=548;continue
3536
+ case'Number':if(this.c(548)){ $.pathStep.cardinality = { targetMax: this.unsignedIntegerLiteral(), location: this.lb().location }; }continue
3537
+ default:this.s=549;continue
3535
3538
  }
3536
- case 548:if(this.condition(_={},549)){cond=_.expr; $.pathStep.where = cond; }continue
3537
- case 549:switch(this.lk()){
3538
- case'group':this.s=550;{ this.csnParseOnly('syntax-unexpected-sql-clause', 1, { keyword: 'group by' }); }continue
3539
- default:this.s=551;continue
3539
+ case 548:this.m(549,':');continue
3540
+ case 549:switch(this.l()){
3541
+ case'group':case'limit':case'order':case'having':this.s=551;continue
3542
+ case'where':this.ck(550);continue
3543
+ case']':if(this.c(0)){ $.pathStep.where ??= { args: [] }; }continue
3544
+ default:this.s=550;continue
3540
3545
  }
3541
- case 550:this.groupByClause({query:$.pathStep},551);continue
3546
+ case 550:if(this.condition(_={},551)){cond=_.expr; $.pathStep.where = cond; }continue
3542
3547
  case 551:switch(this.lk()){
3543
- case'having':if(this.ck(552)){ this.csnParseOnly('syntax-unexpected-sql-clause', -1, { keyword: 'having' }); }continue
3548
+ case'group':this.s=552;{ this.csnParseOnly('syntax-unexpected-sql-clause', 1, { keyword: 'group by' }); }continue
3544
3549
  default:this.s=553;continue
3545
3550
  }
3546
- case 552:if(this.condition(_={},553)){cond=_.expr; $.pathStep.having = cond; }continue
3547
- case 553:switch(this.lt()){
3548
- case'Id':this.s=554;{ if (this.la().keyword === 'limit') this.csnParseOnly('syntax-unexpected-sql-clause', 0, { keyword: 'limit' } ); else this.csnParseOnly('syntax-unexpected-sql-clause', 1, { keyword: 'order by' } ); }continue
3551
+ case 552:this.groupByClause({query:$.pathStep},553);continue
3552
+ case 553:switch(this.lk()){
3553
+ case'having':if(this.ck(554)){ this.csnParseOnly('syntax-unexpected-sql-clause', -1, { keyword: 'having' }); }continue
3549
3554
  default:this.s=555;continue
3550
3555
  }
3551
- case 554:this.orderByLimitOffset({query:$.pathStep},555);continue
3552
- case 555:this.m(0,']');continue
3556
+ case 554:if(this.condition(_={},555)){cond=_.expr; $.pathStep.having = cond; }continue
3557
+ case 555:switch(this.lt()){
3558
+ case'Id':this.s=556;{ if (this.la().keyword === 'limit') this.csnParseOnly('syntax-unexpected-sql-clause', 0, { keyword: 'limit' } ); else this.csnParseOnly('syntax-unexpected-sql-clause', 1, { keyword: 'order by' } ); }continue
3559
+ default:this.s=557;continue
3560
+ }
3561
+ case 556:this.orderByLimitOffset({query:$.pathStep},557);continue
3562
+ case 557:this.m(0,']');continue
3553
3563
  default:return this.exit_()
3554
3564
  }
3555
3565
  }
3556
3566
  excludingClause($,$next){
3557
- this.rule_(557,$next)
3567
+ this.rule_(559,$next)
3558
3568
  for(;;)switch(this.s){
3559
- case 557:if(this.mk(558,'excluding')){ $.query.excludingDict = this.createDict(); }continue
3560
- case 558:this.m(559,'{');continue
3561
- case 559:switch(this.lt()){
3562
- case'Id':this.s=560;continue
3569
+ case 559:if(this.mk(560,'excluding')){ $.query.excludingDict = this.createDict(); }continue
3570
+ case 560:this.m(561,'{');continue
3571
+ case 561:switch(this.lt()){
3572
+ case'Id':this.s=562;continue
3563
3573
  default:this.e();continue
3564
3574
  }
3565
- case 560:switch(this.lt()){
3566
- case'Id':if(this.cy(561,'ref')){ this.addDef( { location: this.lb().location }, $.query, 'excludingDict', '', this.identAst() ); }continue
3567
- default:this.s=562;continue
3575
+ case 562:switch(this.lt()){
3576
+ case'Id':if(this.cy(563,'ref')){ this.addDef( { location: this.lb().location }, $.query, 'excludingDict', '', this.identAst() ); }continue
3577
+ default:this.s=564;continue
3568
3578
  }
3569
- case 561:switch(this.lt()){
3570
- case',':this.c(560);continue
3571
- case'}':this.s=562;continue
3579
+ case 563:switch(this.lt()){
3580
+ case',':this.c(562);continue
3581
+ case'}':this.s=564;continue
3572
3582
  default:this.e();continue
3573
3583
  }
3574
- case 562:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.excludingDict ); }continue
3584
+ case 564:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.excludingDict ); }continue
3575
3585
  default:return this.exit_()
3576
3586
  }
3577
3587
  }
3578
3588
  selectItemsList($,$next){
3579
- this.rule_(564,$next)
3589
+ this.rule_(566,$next)
3580
3590
  for(;;)switch(this.s){
3581
- case 564:if(this.m(565,'{')){this.inSelectItem('top'); $.query.columns = this.createArray( $.start ); }continue
3582
- case 565:switch(this.lt()){
3583
- case'*':if(this.c(566)){ $.query.columns.push( this.valueWithLocation() ); }continue
3584
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns,sqlStyle:false},566);continue
3585
- default:this.s=567;continue
3586
- }
3587
- case 566:switch(this.lt()){
3588
- case',':this.c(565);continue
3589
- case'}':this.s=567;continue
3591
+ case 566:if(this.m(567,'{')){this.inSelectItem('top'); $.query.columns = this.createArray( $.start ); }continue
3592
+ case 567:switch(this.lt()){
3593
+ case'*':if(this.c(568)){ $.query.columns.push( this.valueWithLocation() ); }continue
3594
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query.columns,sqlStyle:false},568);continue
3595
+ default:this.s=569;continue
3596
+ }
3597
+ case 568:switch(this.lt()){
3598
+ case',':this.c(567);continue
3599
+ case'}':this.s=569;continue
3590
3600
  default:this.e();continue
3591
3601
  }
3592
- case 567:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.columns ); }continue
3602
+ case 569:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query.columns ); }continue
3593
3603
  default:return this.exit_()
3594
3604
  }
3595
3605
  }
3596
3606
  nestedSelectItemsList($,$next){
3597
- this.rule_(569,$next)
3607
+ this.rule_(571,$next)
3598
3608
  for(;;)switch(this.s){
3599
- case 569:if(this.m(570,'{')){this.inSelectItem(); $.query[$.clause] = this.createArray(); }continue
3600
- case 570:switch(this.lt()){
3601
- case'*':if(this.c(571)){ $.query[$.clause].push( this.valueWithLocation() ); }continue
3602
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query[$.clause],sqlStyle:false},571);continue
3603
- default:this.s=572;continue
3604
- }
3605
- case 571:switch(this.lt()){
3606
- case',':this.c(570);continue
3607
- case'}':this.s=572;continue
3609
+ case 571:if(this.m(572,'{')){this.inSelectItem(); $.query[$.clause] = this.createArray(); }continue
3610
+ case 572:switch(this.lt()){
3611
+ case'*':if(this.c(573)){ $.query[$.clause].push( this.valueWithLocation() ); }continue
3612
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'@':case'{':case'Number':case'String':case'QuotedLiteral':this.selectItemDef({columns:$.query[$.clause],sqlStyle:false},573);continue
3613
+ default:this.s=574;continue
3614
+ }
3615
+ case 573:switch(this.lt()){
3616
+ case',':this.c(572);continue
3617
+ case'}':this.s=574;continue
3608
3618
  default:this.e();continue
3609
3619
  }
3610
- case 572:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query[$.clause] ); }continue
3620
+ case 574:if(this.m(0,'}')){this.afterBrace(); this.finalizeDictOrArray( $.query[$.clause] ); }continue
3611
3621
  default:return this.exit_()
3612
3622
  }
3613
3623
  }
3614
3624
  selectItemDef($,$next){
3615
3625
  let art=new XsnArtifact()
3616
3626
  let expr;let e;let target;let cond;let assoc;let card;let _
3617
- this.rule_(574,$next)
3627
+ this.rule_(576,$next)
3618
3628
  { $.columns.push( art );
3619
3629
  this.docComment( art ); }
3620
3630
  for(;;)switch(this.s){
3621
- case 574:switch(this.lt()){
3622
- case'@':this.annoAssignCol({art},574);continue
3623
- default:this.s=575;continue
3624
- }
3625
- case 575:switch(this.l()){
3626
- case'virtual':if(this.ck(576)){ art.virtual = this.valueWithLocation( true ); }continue
3627
- default:this.s=576;continue
3631
+ case 576:switch(this.lt()){
3632
+ case'@':this.annoAssignCol({art},576);continue
3633
+ default:this.s=577;continue
3628
3634
  }
3629
- case 576:this.s=577;{this.columnExpr('key')}continue;
3630
3635
  case 577:switch(this.l()){
3631
- case'key':if(this.ck(578)){ art.key = this.valueWithLocation( true ); }continue
3636
+ case'virtual':if(this.ck(578)){ art.virtual = this.valueWithLocation( true ); }continue
3632
3637
  default:this.s=578;continue
3633
3638
  }
3634
- case 578:switch(this.l()){
3635
- case'#':case'(':case'+':case'-':case':':case'?':case'new':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},579)){expr=_.expr; art.value = expr; }continue
3636
- case'Id':if(this.valuePath(_={},581)){expr=_.expr; expr = this.valuePathAst( expr ); art.value = expr; }continue
3637
- case'{':this.nestedSelectItemsList({query:art,clause:'expand'},592);continue
3638
- default:this.e();continue
3639
- }
3639
+ case 578:this.s=579;{this.columnExpr('key')}continue;
3640
3640
  case 579:switch(this.l()){
3641
- case'as':this.ck(580);continue
3642
- case'Id':if(this.ci(589,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3643
- default:this.s=589;continue
3641
+ case'key':if(this.ck(580)){ art.key = this.valueWithLocation( true ); }continue
3642
+ default:this.s=580;continue
3643
+ }
3644
+ case 580:switch(this.l()){
3645
+ case'#':case'(':case'+':case'-':case':':case'?':case'new':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},581)){expr=_.expr; art.value = expr; }continue
3646
+ case'Id':if(this.valuePath(_={},583)){expr=_.expr; expr = this.valuePathAst( expr ); art.value = expr; }continue
3647
+ case'{':this.nestedSelectItemsList({query:art,clause:'expand'},594);continue
3648
+ default:this.e();continue
3644
3649
  }
3645
- case 580:if(this.mi(589,'ItemAlias')){ art.name = this.identAst(); }continue
3646
3650
  case 581:switch(this.l()){
3647
- case'over':if(this.ck(582)){ this.pushXprToken( expr.suffix = [] ); }continue
3648
- case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(_={ expr: expr },584,664)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
3649
- case'as':this.ck(586);continue
3650
- case'Id':if(this.ci(589,'ItemAlias')){this.nestedExpand(); art.name = this.fragileAlias( true ); }continue
3651
- case'.':if(this.c(587)){ this.reportUnexpectedSpace( this.lb(), this.la().location, true );
3651
+ case'as':this.ck(582);continue
3652
+ case'Id':if(this.ci(591,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3653
+ default:this.s=591;continue
3654
+ }
3655
+ case 582:if(this.mi(591,'ItemAlias')){ art.name = this.identAst(); }continue
3656
+ case 583:switch(this.l()){
3657
+ case'over':if(this.ck(584)){ this.pushXprToken( expr.suffix = [] ); }continue
3658
+ case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(_={ expr: expr },586,666)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
3659
+ case'as':this.ck(588);continue
3660
+ case'Id':if(this.ci(591,'ItemAlias')){this.nestedExpand(); art.name = this.fragileAlias( true ); }continue
3661
+ case'.':if(this.c(589)){ this.reportUnexpectedSpace( this.lb(), this.la().location, true );
3652
3662
  this.reportExpandInline( art, $.sqlStyle, true ); }continue
3653
- default:this.s=589;{this.nestedExpand(); this.virtualOrImplicit( art ); }continue
3654
- }
3655
- case 582:this.overClause({outer:expr.suffix},583);continue
3656
- case 583:switch(this.lk()){
3657
- case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(_={ expr: expr },584,664)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
3658
- default:this.s=584;continue
3659
- }
3660
- case 584:switch(this.l()){
3661
- case'as':this.ck(585);continue
3662
- case'Id':if(this.ci(589,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3663
- default:this.s=589;continue
3664
- }
3665
- case 585:if(this.mi(589,'ItemAlias')){ art.name = this.identAst(); }continue
3666
- case 586:if(this.mi(589,'ItemAlias')){this.nestedExpand(); art.name = this.identAst(); }continue
3667
- case 587:switch(this.lt()){
3668
- case'{':this.nestedSelectItemsList({query:art,clause:'inline'},588);continue
3663
+ default:this.s=591;{this.nestedExpand(); this.virtualOrImplicit( art ); }continue
3664
+ }
3665
+ case 584:this.overClause({outer:expr.suffix},585);continue
3666
+ case 585:switch(this.lk()){
3667
+ case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(_={ expr: expr },586,666)){e=_.expr; Object.assign( e.location || {}, expr.location ); art.value = this.attachLocation( e ) }continue
3668
+ default:this.s=586;continue
3669
+ }
3670
+ case 586:switch(this.l()){
3671
+ case'as':this.ck(587);continue
3672
+ case'Id':if(this.ci(591,'ItemAlias')){ art.name = this.fragileAlias( true ); }continue
3673
+ default:this.s=591;continue
3674
+ }
3675
+ case 587:if(this.mi(591,'ItemAlias')){ art.name = this.identAst(); }continue
3676
+ case 588:if(this.mi(591,'ItemAlias')){this.nestedExpand(); art.name = this.identAst(); }continue
3677
+ case 589:switch(this.lt()){
3678
+ case'{':this.nestedSelectItemsList({query:art,clause:'inline'},590);continue
3669
3679
  case'*':if(this.c(0)){ art.inline = [ this.valueWithLocation() ]; }continue
3670
3680
  default:this.e();continue
3671
3681
  }
3672
- case 588:switch(this.lk()){
3682
+ case 590:switch(this.lk()){
3673
3683
  case'excluding':this.excludingClause({query:art},0);continue
3674
3684
  default:this.gr([',']);continue
3675
3685
  }
3676
- case 589:switch(this.l()){
3677
- case'{':this.s=590;{ if (!this.nestedExpand(0,true)) this.reportExpandInline( art, $.sqlStyle, false ); }continue
3678
- default:this.s=595;continue
3686
+ case 591:switch(this.l()){
3687
+ case'{':this.s=592;{ if (!this.nestedExpand(0,true)) this.reportExpandInline( art, $.sqlStyle, false ); }continue
3688
+ default:this.s=597;continue
3689
+ }
3690
+ case 592:this.nestedSelectItemsList({query:art,clause:'expand'},593);continue
3691
+ case 593:switch(this.lk()){
3692
+ case'excluding':this.excludingClause({query:art},597);continue
3693
+ default:this.s=597;continue
3679
3694
  }
3680
- case 590:this.nestedSelectItemsList({query:art,clause:'expand'},591);continue
3681
- case 591:switch(this.lk()){
3695
+ case 594:switch(this.lk()){
3682
3696
  case'excluding':this.excludingClause({query:art},595);continue
3683
3697
  default:this.s=595;continue
3684
3698
  }
3685
- case 592:switch(this.lk()){
3686
- case'excluding':this.excludingClause({query:art},593);continue
3687
- default:this.s=593;continue
3699
+ case 595:this.mk(596,'as');continue
3700
+ case 596:if(this.mi(597,'ItemAlias')){ art.name = this.identAst(); }continue
3701
+ case 597:this.s=598;{this.columnExpr(); this.docComment( art ); }continue
3702
+ case 598:switch(this.lt()){
3703
+ case'@':this.annoAssignMid({art},598);continue
3704
+ default:this.s=599;continue
3688
3705
  }
3689
- case 593:this.mk(594,'as');continue
3690
- case 594:if(this.mi(595,'ItemAlias')){ art.name = this.identAst(); }continue
3691
- case 595:this.s=596;{this.columnExpr(); this.docComment( art ); }continue
3692
- case 596:switch(this.lt()){
3693
- case'@':this.annoAssignMid({art},596);continue
3694
- default:this.s=597;continue
3695
- }
3696
- case 597:switch(this.lt()){
3697
- case':':this.c(598);continue
3706
+ case 599:switch(this.lt()){
3707
+ case':':this.c(600);continue
3698
3708
  default:this.gr([',']);continue
3699
3709
  }
3700
- case 598:switch(this.l()){
3701
- case'Id':case'{':this.typeExpression({art},611);continue
3702
- case'redirected':this.ck(599);continue
3703
- case'association':if(this.ck(603)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3704
- case'composition':if(this.ck(605)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3710
+ case 600:switch(this.l()){
3711
+ case'Id':case'{':this.typeExpression({art},613);continue
3712
+ case'redirected':this.ck(601);continue
3713
+ case'association':if(this.ck(605)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3714
+ case'composition':if(this.ck(607)){assoc=this.lb(); this.associationInSelectItem( art ); }continue
3705
3715
  default:this.e();continue
3706
3716
  }
3707
- case 599:this.mk(600,'to');continue
3708
- case 600:if(this.simplePath(_={category:'artref'},601)){target=_.ref; art.target = target; }continue
3709
- case 601:switch(this.lk()){
3710
- case'on':this.ck(602);continue
3711
- case'{':this.foreignKeysBlock({art},611);continue
3712
- default:this.s=611;continue
3713
- }
3714
- case 602:if(this.condition(_={},611)){cond=_.expr; art.on = cond; }continue
3715
- case 603:switch(this.lt()){
3716
- case'[':this.cardinality({art},604);continue
3717
- default:this.s=604;continue
3717
+ case 601:this.mk(602,'to');continue
3718
+ case 602:if(this.simplePath(_={category:'artref'},603)){target=_.ref; art.target = target; }continue
3719
+ case 603:switch(this.lk()){
3720
+ case'on':this.ck(604);continue
3721
+ case'{':this.foreignKeysBlock({art},613);continue
3722
+ default:this.s=613;continue
3718
3723
  }
3719
- case 604:this.mk(607,'to');continue
3724
+ case 604:if(this.condition(_={},613)){cond=_.expr; art.on = cond; }continue
3720
3725
  case 605:switch(this.lt()){
3721
3726
  case'[':this.cardinality({art},606);continue
3722
3727
  default:this.s=606;continue
3723
3728
  }
3724
- case 606:this.mk(607,'of');continue
3725
- case 607:switch(this.l()){
3726
- case'one':case'many':if(this.ck(608))card=this.lb();continue
3729
+ case 606:this.mk(609,'to');continue
3730
+ case 607:switch(this.lt()){
3731
+ case'[':this.cardinality({art},608);continue
3727
3732
  default:this.s=608;continue
3728
3733
  }
3729
- case 608:if(this.simplePath(_={category:'artref'},609)){target=_.ref; this.setAssocAndComposition( art, assoc, card, target ); }continue
3730
- case 609:this.mk(610,'on');continue
3731
- case 610:if(this.condition(_={},611)){expr=_.expr; art.on = expr; }continue
3732
- case 611:this.s=612;{ this.docComment( art ); }continue
3733
- case 612:switch(this.lt()){
3734
- case'@':this.annoAssignStd({art},612);continue
3734
+ case 608:this.mk(609,'of');continue
3735
+ case 609:switch(this.l()){
3736
+ case'one':case'many':if(this.ck(610))card=this.lb();continue
3737
+ default:this.s=610;continue
3738
+ }
3739
+ case 610:if(this.simplePath(_={category:'artref'},611)){target=_.ref; this.setAssocAndComposition( art, assoc, card, target ); }continue
3740
+ case 611:this.mk(612,'on');continue
3741
+ case 612:if(this.condition(_={},613)){expr=_.expr; art.on = expr; }continue
3742
+ case 613:this.s=614;{ this.docComment( art ); }continue
3743
+ case 614:switch(this.lt()){
3744
+ case'@':this.annoAssignStd({art},614);continue
3735
3745
  default:this.gr([',']);continue
3736
3746
  }
3737
3747
  default:
@@ -3740,18 +3750,18 @@ return this.exit_()
3740
3750
  }
3741
3751
  }
3742
3752
  queryClauses($,$next){
3743
- this.rule_(614,$next)
3753
+ this.rule_(616,$next)
3744
3754
  for(;;)switch(this.s){
3745
- case 614:switch(this.lk()){
3746
- case'columns':this.ck(615);continue
3747
- default:this.s=616;continue
3748
- }
3749
- case 615:this.selectItemsList({query:$.query,start:this.lb()},616);continue
3750
3755
  case 616:switch(this.lk()){
3751
- case'group':case'where':case'having':this.whereGroupByHaving($,617);continue
3752
- default:this.s=617;continue
3756
+ case'columns':this.ck(617);continue
3757
+ default:this.s=618;continue
3753
3758
  }
3754
- case 617:switch(this.lk()){
3759
+ case 617:this.selectItemsList({query:$.query,start:this.lb()},618);continue
3760
+ case 618:switch(this.lk()){
3761
+ case'group':case'where':case'having':this.whereGroupByHaving($,619);continue
3762
+ default:this.s=619;continue
3763
+ }
3764
+ case 619:switch(this.lk()){
3755
3765
  case'limit':case'order':this.orderByLimitOffset($,0);continue
3756
3766
  default:this.gr([';']);continue
3757
3767
  }
@@ -3760,90 +3770,90 @@ default:return this.exit_()
3760
3770
  }
3761
3771
  whereGroupByHaving($,$next){
3762
3772
  let cond;let _
3763
- this.rule_(619,$next)
3773
+ this.rule_(621,$next)
3764
3774
  for(;;)switch(this.s){
3765
- case 619:switch(this.lk()){
3766
- case'where':this.ck(620);continue
3767
- default:this.s=621;continue
3768
- }
3769
- case 620:if(this.condition(_={},621)){cond=_.expr; $.query.where = cond; }continue
3770
3775
  case 621:switch(this.lk()){
3771
- case'group':this.groupByClause($,622);continue
3772
- default:this.s=622;continue
3776
+ case'where':this.ck(622);continue
3777
+ default:this.s=623;continue
3773
3778
  }
3774
- case 622:switch(this.lk()){
3775
- case'having':this.ck(623);continue
3779
+ case 622:if(this.condition(_={},623)){cond=_.expr; $.query.where = cond; }continue
3780
+ case 623:switch(this.lk()){
3781
+ case'group':this.groupByClause($,624);continue
3782
+ default:this.s=624;continue
3783
+ }
3784
+ case 624:switch(this.lk()){
3785
+ case'having':this.ck(625);continue
3776
3786
  default:this.gr(['limit','order']);continue
3777
3787
  }
3778
- case 623:if(this.condition(_={},0)){cond=_.expr; $.query.having = cond; }continue
3788
+ case 625:if(this.condition(_={},0)){cond=_.expr; $.query.having = cond; }continue
3779
3789
  default:return this.exit_()
3780
3790
  }
3781
3791
  }
3782
3792
  groupByClause($,$next){
3783
3793
  let expr;let _
3784
- this.rule_(625,$next)
3794
+ this.rule_(627,$next)
3785
3795
  for(;;)switch(this.s){
3786
- case 625:this.mk(626,'group');continue
3787
- case 626:this.mk(627,'by');continue
3788
- case 627:if(this.expression(_={},628)){expr=_.expr; $.query.groupBy = [ expr ]; }continue
3789
- case 628:switch(this.lt()){
3790
- case',':this.c(629);continue
3796
+ case 627:this.mk(628,'group');continue
3797
+ case 628:this.mk(629,'by');continue
3798
+ case 629:if(this.expression(_={},630)){expr=_.expr; $.query.groupBy = [ expr ]; }continue
3799
+ case 630:switch(this.lt()){
3800
+ case',':this.c(631);continue
3791
3801
  default:this.gr(['limit','order','having']);continue
3792
3802
  }
3793
- case 629:if(this.expression(_={},628)){expr=_.expr; $.query.groupBy.push( expr ); }continue
3803
+ case 631:if(this.expression(_={},630)){expr=_.expr; $.query.groupBy.push( expr ); }continue
3794
3804
  default:return this.exit_()
3795
3805
  }
3796
3806
  }
3797
3807
  orderByLimitOffset($,$next){
3798
3808
  let expr;let _
3799
- this.rule_(631,$next)
3809
+ this.rule_(633,$next)
3800
3810
  for(;;)switch(this.s){
3801
- case 631:switch(this.lk()){
3802
- case'order':this.orderByClause($,632);continue
3803
- default:this.s=632;continue
3811
+ case 633:switch(this.lk()){
3812
+ case'order':this.orderByClause($,634);continue
3813
+ default:this.s=634;continue
3804
3814
  }
3805
- case 632:switch(this.lk()){
3806
- case'limit':this.ck(633);continue
3815
+ case 634:switch(this.lk()){
3816
+ case'limit':this.ck(635);continue
3807
3817
  default:this.gr();continue
3808
3818
  }
3809
- case 633:if(this.expression(_={},634)){expr=_.expr; $.query.limit = { rows: expr }; }continue
3810
- case 634:switch(this.lk()){
3811
- case'offset':this.ck(635);continue
3819
+ case 635:if(this.expression(_={},636)){expr=_.expr; $.query.limit = { rows: expr }; }continue
3820
+ case 636:switch(this.lk()){
3821
+ case'offset':this.ck(637);continue
3812
3822
  default:this.gr();continue
3813
3823
  }
3814
- case 635:if(this.expression(_={},0)){expr=_.expr; $.query.limit.offset = expr; }continue
3824
+ case 637:if(this.expression(_={},0)){expr=_.expr; $.query.limit.offset = expr; }continue
3815
3825
  default:return this.exit_()
3816
3826
  }
3817
3827
  }
3818
3828
  orderByClause($,$next){
3819
3829
  let expr;let _
3820
- this.rule_(637,$next)
3830
+ this.rule_(639,$next)
3821
3831
  for(;;)switch(this.s){
3822
- case 637:this.mk(638,'order');continue
3823
- case 638:this.mk(639,'by');continue
3824
- case 639:if(this.orderByExpression(_={},640)){expr=_.expr; $.query.orderBy = [ expr ]; }continue
3825
- case 640:switch(this.lt()){
3826
- case',':this.c(641);continue
3832
+ case 639:this.mk(640,'order');continue
3833
+ case 640:this.mk(641,'by');continue
3834
+ case 641:if(this.orderByExpression(_={},642)){expr=_.expr; $.query.orderBy = [ expr ]; }continue
3835
+ case 642:switch(this.lt()){
3836
+ case',':this.c(643);continue
3827
3837
  default:this.gr(['limit']);continue
3828
3838
  }
3829
- case 641:if(this.orderByExpression(_={},640)){expr=_.expr; $.query.orderBy.push( expr ); }continue
3839
+ case 643:if(this.orderByExpression(_={},642)){expr=_.expr; $.query.orderBy.push( expr ); }continue
3830
3840
  default:return this.exit_()
3831
3841
  }
3832
3842
  }
3833
3843
  orderByExpression($,$next){
3834
3844
  $.expr??=undefined
3835
- this.rule_(643,$next)
3845
+ this.rule_(645,$next)
3836
3846
  for(;;)switch(this.s){
3837
- case 643:this.expression($,644);continue
3838
- case 644:switch(this.lk()){
3839
- case'asc':case'desc':if(this.ck(645)){ $.expr.sort = this.valueWithLocation(); }continue
3840
- default:this.s=645;continue
3847
+ case 645:this.expression($,646);continue
3848
+ case 646:switch(this.lk()){
3849
+ case'asc':case'desc':if(this.ck(647)){ $.expr.sort = this.valueWithLocation(); }continue
3850
+ default:this.s=647;continue
3841
3851
  }
3842
- case 645:switch(this.lk()){
3843
- case'nulls':this.ck(646);continue
3852
+ case 647:switch(this.lk()){
3853
+ case'nulls':this.ck(648);continue
3844
3854
  default:this.gr([',','limit']);continue
3845
3855
  }
3846
- case 646:switch(this.lk()){
3856
+ case 648:switch(this.lk()){
3847
3857
  case'last':case'first':if(this.ck(0)){ $.expr.nulls = this.valueWithLocation(); }continue
3848
3858
  default:this.e();continue
3849
3859
  }
@@ -3853,113 +3863,113 @@ default:return this.exit_()
3853
3863
  conditionEOF($,$next){
3854
3864
  $.cond??=undefined
3855
3865
  let _
3856
- this.rule_(648,$next)
3866
+ this.rule_(650,$next)
3857
3867
  for(;;)switch(this.s){
3858
- case 648:if(this.expression(_={},649))$.cond=_.expr;continue
3859
- case 649:this.m(0,'EOF');continue
3868
+ case 650:if(this.expression(_={},651))$.cond=_.expr;continue
3869
+ case 651:this.m(0,'EOF');continue
3860
3870
  default:return this.exit_()
3861
3871
  }
3862
3872
  }
3863
3873
  condition($,$next){
3864
3874
  $.expr??=undefined
3865
- this.rule_(651,$next)
3875
+ this.rule_(653,$next)
3866
3876
  for(;;)switch(this.s){
3867
- case 651:this.expression($,0);continue
3877
+ case 653:this.expression($,0);continue
3868
3878
  default:return this.exit_()
3869
3879
  }
3870
3880
  }
3871
3881
  expression($,$next,$startState){
3872
3882
  $.expr??={}
3873
3883
  let e;let open;let _
3874
- this.rule_($startState??653,$next)
3884
+ this.rule_($startState??655,$next)
3875
3885
  for(;;)switch(this.s){
3876
- case 653:switch(this.l()){
3877
- case'(':if(this.expressionOrQueryParens($,664)){ $.expr = this.taggedIfQuery( $.expr ); }continue
3878
- case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,664);continue
3879
- case':':if(this.c(654)){ this.reportUnexpectedSpace(); }continue
3880
- case'?':if(this.c(664)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3886
+ case 655:switch(this.l()){
3887
+ case'(':if(this.expressionOrQueryParens($,666)){ $.expr = this.taggedIfQuery( $.expr ); }continue
3888
+ case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':this.literalValue($,666);continue
3889
+ case':':if(this.c(656)){ this.reportUnexpectedSpace(); }continue
3890
+ case'?':if(this.c(666)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3881
3891
  $.expr = this.attachLocation({ param: this.valueWithLocation(), scope: 'param' }); }continue
3882
- case'Id':if(this.valuePath(_={},656)){e=_.expr; $.expr = this.valuePathAst( e ); }continue
3883
- case'new':if(this.ck(659)){ $.expr = this.applyOpToken(); }continue
3884
- case'exists':if(this.ck(660)){ $.expr = this.applyOpToken(); }continue
3885
- case'case':this.caseExpression($,664);continue
3886
- case'cast':this.castFunction($,664);continue
3887
- case'+':case'-':if(this.c(663)){ $.expr = this.applyOpToken(); }continue
3888
- case'not':if(this.ck(663)){ $.expr = this.applyOpToken(); }continue
3892
+ case'Id':if(this.valuePath(_={},658)){e=_.expr; $.expr = this.valuePathAst( e ); }continue
3893
+ case'new':if(this.ck(661)){ $.expr = this.applyOpToken(); }continue
3894
+ case'exists':if(this.ck(662)){ $.expr = this.applyOpToken(); }continue
3895
+ case'case':this.caseExpression($,666);continue
3896
+ case'cast':this.castFunction($,666);continue
3897
+ case'+':case'-':if(this.c(665)){ $.expr = this.applyOpToken(); }continue
3898
+ case'not':if(this.ck(665)){ $.expr = this.applyOpToken(); }continue
3889
3899
  default:this.e();continue
3890
3900
  }
3891
- case 654:switch(this.lt()){
3892
- case'Id':if(this.cy(655,'paramref')){ $.expr = { path: [ this.identAst() ], location: this.startLocation(), scope: 'param' }; }continue
3893
- case'Number':if(this.c(664)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'positional', code: ':' + this.lb().text } );
3901
+ case 656:switch(this.lt()){
3902
+ case'Id':if(this.cy(657,'paramref')){ $.expr = { path: [ this.identAst() ], location: this.startLocation(), scope: 'param' }; }continue
3903
+ case'Number':if(this.c(666)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'positional', code: ':' + this.lb().text } );
3894
3904
  $.expr = this.attachLocation({ param: this.unsignedIntegerLiteral(), scope: 'param' }); }continue
3895
3905
  default:this.e();continue
3896
3906
  }
3897
- case 655:switch(this.lt()){
3898
- case'.':if(this.valuePath($,664,683)){ $.expr = this.valuePathAst( $.expr ); }continue
3899
- default:this.s=664;{ this.attachLocation( $.expr ); }continue
3907
+ case 657:switch(this.lt()){
3908
+ case'.':if(this.valuePath($,666,685)){ $.expr = this.valuePathAst( $.expr ); }continue
3909
+ default:this.s=666;{ this.attachLocation( $.expr ); }continue
3900
3910
  }
3901
- case 656:switch(this.lk()){
3902
- case'over':if(this.ck(657)){ this.pushXprToken( $.expr.suffix = [] ); }continue
3903
- default:this.s=658;continue
3911
+ case 658:switch(this.lk()){
3912
+ case'over':if(this.ck(659)){ this.pushXprToken( $.expr.suffix = [] ); }continue
3913
+ default:this.s=660;continue
3904
3914
  }
3905
- case 657:this.overClause(e={outer:$.expr.suffix},658);continue
3906
- case 658:this.s=664;{ this.attachLocation( $.expr ); }continue
3907
- case 659:if(this.valuePath(_={},664)){e=_.expr; this.valuePathAstWithNew( $.expr, e ); }continue
3908
- case 660:switch(this.lt()){
3909
- case'(':if(this.c(661))open=this.lb();continue
3910
- case'Id':if(this.valuePath(_={},664)){e=_.expr; e = this.valuePathAst( e ); e.$syntax = 'after-exists';
3915
+ case 659:this.overClause(e={outer:$.expr.suffix},660);continue
3916
+ case 660:this.s=666;{ this.attachLocation( $.expr ); }continue
3917
+ case 661:if(this.valuePath(_={},666)){e=_.expr; this.valuePathAstWithNew( $.expr, e ); }continue
3918
+ case 662:switch(this.lt()){
3919
+ case'(':if(this.c(663))open=this.lb();continue
3920
+ case'Id':if(this.valuePath(_={},666)){e=_.expr; e = this.valuePathAst( e ); e.$syntax = 'after-exists';
3911
3921
  $.expr.args.push( e ); this.attachLocation( $.expr ); }continue
3912
- case'?':if(this.c(664)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3922
+ case'?':if(this.c(666)){ this.csnParseOnly( 'syntax-unsupported-param', -1, { '#': 'dynamic', code: '?' } );
3913
3923
  $.expr.args.push( { param: this.valueWithLocation(), scope: 'param' } ); this.attachLocation( $.expr ); }continue
3914
3924
  default:this.e();continue
3915
3925
  }
3916
- case 661:if(this.queryExpression(_={},662))e=_.expr;continue
3917
- case 662:if(this.m(664,')')){ $.expr.args.push( this.taggedIfQuery( this.surroundByParens( e, open ) ) );
3926
+ case 663:if(this.queryExpression(_={},664))e=_.expr;continue
3927
+ case 664:if(this.m(666,')')){ $.expr.args.push( this.taggedIfQuery( this.surroundByParens( e, open ) ) );
3918
3928
  this.attachLocation( $.expr ); }continue
3919
- case 663:if(this.expression(_={},664)){e=_.expr; $.expr = this.signedExpression( $.expr, e ); }continue
3920
- case 664:switch(this.l()){
3921
- case'*':case'/':if(this.c(668)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3922
- case'+':case'-':if(this.c(668)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3923
- case'||':if(this.c(668)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3924
- case'and':if(this.ck(668)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3925
- case'or':if(this.ck(668)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3926
- case'?':if(this.c(665)){ $.expr = this.applyOpToken( $.expr, '?:' ); }continue
3927
- case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.c(667)){ $.expr = this.applyOpToken( $.expr ); }continue
3928
- case'==':if(this.c(668)){ $.expr = this.applyOpToken( $.expr ); }continue
3929
- case'is':if(this.ck(669)){ $.expr = this.applyOpToken( $.expr ); }continue
3930
- case'not':if(this.ck(671)){ $.expr = this.applyOpToken( $.expr ); }continue
3931
- case'in':case'like':case'between':this.s=671;{ $.expr = { op: { val: 'ixpr', location: this.la().location }, args: [ $.expr ] }; }continue
3929
+ case 665:if(this.expression(_={},666)){e=_.expr; $.expr = this.signedExpression( $.expr, e ); }continue
3930
+ case 666:switch(this.l()){
3931
+ case'*':case'/':if(this.c(670)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3932
+ case'+':case'-':if(this.c(670)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3933
+ case'||':if(this.c(670)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3934
+ case'and':if(this.ck(670)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3935
+ case'or':if(this.ck(670)){ $.expr = this.applyOpToken( $.expr, 'nary' ); }continue
3936
+ case'?':if(this.c(667)){ $.expr = this.applyOpToken( $.expr, '?:' ); }continue
3937
+ case'<':case'=':case'>':case'!=':case'<=':case'<>':case'>=':if(this.c(669)){ $.expr = this.applyOpToken( $.expr ); }continue
3938
+ case'==':if(this.c(670)){ $.expr = this.applyOpToken( $.expr ); }continue
3939
+ case'is':if(this.ck(671)){ $.expr = this.applyOpToken( $.expr ); }continue
3940
+ case'not':if(this.ck(673)){ $.expr = this.applyOpToken( $.expr ); }continue
3941
+ case'in':case'like':case'between':this.s=673;{ $.expr = { op: { val: 'ixpr', location: this.la().location }, args: [ $.expr ] }; }continue
3932
3942
  default:this.gr();continue
3933
3943
  }
3934
- case 665:if(this.expression(_={},666)){e=_.expr; $.expr.args.push( e ); }continue
3935
- case 666:if(this.m(668,':')){ this.pushXprToken( $.expr ); }continue
3936
- case 667:switch(this.l()){
3937
- case'all':case'any':case'some':if(this.ck(668)){ this.pushXprToken( $.expr ); }continue
3938
- default:this.s=668;continue
3939
- }
3940
- case 668:if(this.expression(_={},679)){e=_.expr; $.expr.args.push( e ); }continue
3941
- case 669:switch(this.lk()){
3942
- case'not':if(this.ck(670)){ this.pushXprToken( $.expr ); }continue
3944
+ case 667:if(this.expression(_={},668)){e=_.expr; $.expr.args.push( e ); }continue
3945
+ case 668:if(this.m(670,':')){ this.pushXprToken( $.expr ); }continue
3946
+ case 669:switch(this.l()){
3947
+ case'all':case'any':case'some':if(this.ck(670)){ this.pushXprToken( $.expr ); }continue
3943
3948
  default:this.s=670;continue
3944
3949
  }
3945
- case 670:if(this.mk(679,'null')){ this.pushXprToken( $.expr ); }continue
3950
+ case 670:if(this.expression(_={},681)){e=_.expr; $.expr.args.push( e ); }continue
3946
3951
  case 671:switch(this.lk()){
3947
- case'between':if(this.ck(672)){ this.pushXprToken( $.expr ); }continue
3948
- case'in':if(this.ck(675)){ this.pushXprToken( $.expr ); }continue
3949
- case'like':if(this.ck(676)){ this.pushXprToken( $.expr ); }continue
3952
+ case'not':if(this.ck(672)){ this.pushXprToken( $.expr ); }continue
3953
+ default:this.s=672;continue
3954
+ }
3955
+ case 672:if(this.mk(681,'null')){ this.pushXprToken( $.expr ); }continue
3956
+ case 673:switch(this.lk()){
3957
+ case'between':if(this.ck(674)){ this.pushXprToken( $.expr ); }continue
3958
+ case'in':if(this.ck(677)){ this.pushXprToken( $.expr ); }continue
3959
+ case'like':if(this.ck(678)){ this.pushXprToken( $.expr ); }continue
3950
3960
  default:this.e();continue
3951
3961
  }
3952
- case 672:if(this.expression(_={},673)){e=_.expr; $.expr.args?.push( e ); }continue
3953
- case 673:if(this.mk(674,'and')){ this.pushXprToken( $.expr ); }continue
3954
- case 674:if(this.expression(_={},679)){e=_.expr; $.expr.args?.push( e ); }continue
3955
- case 675:if(this.expression(_={},679)){e=_.expr; $.expr.args?.push( this.secureParens( e ) ); }continue
3956
- case 676:if(this.expression(_={},677)){e=_.expr; $.expr.args?.push( e ); }continue
3957
- case 677:switch(this.lk()){
3958
- case'escape':if(this.ck(678)){ this.pushXprToken( $.expr ); }continue
3959
- default:this.s=679;continue
3960
- }
3962
+ case 674:if(this.expression(_={},675)){e=_.expr; $.expr.args?.push( e ); }continue
3963
+ case 675:if(this.mk(676,'and')){ this.pushXprToken( $.expr ); }continue
3964
+ case 676:if(this.expression(_={},681)){e=_.expr; $.expr.args?.push( e ); }continue
3965
+ case 677:if(this.expression(_={},681)){e=_.expr; $.expr.args?.push( this.secureParens( e ) ); }continue
3961
3966
  case 678:if(this.expression(_={},679)){e=_.expr; $.expr.args?.push( e ); }continue
3962
- case 679:this.s=664;{ this.attachLocation( $.expr ); }continue
3967
+ case 679:switch(this.lk()){
3968
+ case'escape':if(this.ck(680)){ this.pushXprToken( $.expr ); }continue
3969
+ default:this.s=681;continue
3970
+ }
3971
+ case 680:if(this.expression(_={},681)){e=_.expr; $.expr.args?.push( e ); }continue
3972
+ case 681:this.s=666;{ this.attachLocation( $.expr ); }continue
3963
3973
  default:
3964
3974
  if (this.s == null) this.attachLocation( $.expr )
3965
3975
  return this.exit_()
@@ -3968,21 +3978,21 @@ return this.exit_()
3968
3978
  valuePath($,$next,$startState){
3969
3979
  $.expr??={ path: [] }
3970
3980
  let pathItem
3971
- this.rule_($startState??681,$next)
3981
+ this.rule_($startState??683,$next)
3972
3982
  for(;;)switch(this.s){
3973
- case 681:if(this.mi(682,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3974
- case 682:switch(this.lt()){
3975
- case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},683);continue
3976
- default:this.s=683;continue
3983
+ case 683:if(this.mi(684,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3984
+ case 684:switch(this.lt()){
3985
+ case'(':case'[':this.argumentsAndFilter({pathStep:pathItem},685);continue
3986
+ default:this.s=685;continue
3977
3987
  }
3978
- case 683:switch(this.l()){
3979
- case'.':this.c(684);continue
3988
+ case 685:switch(this.l()){
3989
+ case'.':this.c(686);continue
3980
3990
  default:this.gr(['*','+','-','/','<','=','>','?','!=','<=','<>','==','>=','in','is','or','||','and','not','like','between']);continue
3981
3991
  }
3982
- case 684:if(this.my(685,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3983
- case 685:switch(this.lt()){
3984
- case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},683)){ pathItem = null; }continue
3985
- default:this.s=683;continue
3992
+ case 686:if(this.my(687,'ref')){ $.expr.path.push( pathItem = this.identAst() ); }continue
3993
+ case 687:switch(this.lt()){
3994
+ case'(':case'[':if(this.argumentsAndFilter({pathStep:pathItem},685)){ pathItem = null; }continue
3995
+ default:this.s=685;continue
3986
3996
  }
3987
3997
  default:
3988
3998
  this.attachLocation( $.expr )
@@ -3991,48 +4001,48 @@ return this.exit_()
3991
4001
  }
3992
4002
  expressionOrQueryParens($,$next){
3993
4003
  $.expr??=undefined
3994
- this.rule_(687,$next)
4004
+ this.rule_(689,$next)
3995
4005
  for(;;)switch(this.s){
3996
- case 687:if(this.m(688,'(')){this.queryOnLeft()}continue;
3997
- case 688:switch(this.l()){
3998
- case'(':this.expressionOrQueryParens($,689);continue
3999
- case'Id':case'#':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression($,691)){this.queryOnLeft('expr')}continue;
4000
- case'select':this.queryExpression($,692);continue
4006
+ case 689:if(this.m(690,'(')){this.queryOnLeft()}continue;
4007
+ case 690:switch(this.l()){
4008
+ case'(':this.expressionOrQueryParens($,691);continue
4009
+ case'Id':case'#':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression($,693)){this.queryOnLeft('expr')}continue;
4010
+ case'select':this.queryExpression($,694);continue
4001
4011
  default:this.e();continue
4002
4012
  }
4003
- case 689:switch(this.l()){
4004
- case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(( $.expr = this.taggedIfQuery( $.expr ), $ ),690,664)){this.queryOnLeft('expr')}continue;
4005
- case',':if(this.continueExpressionslist($,692)){this.queryOnLeft('expr')}continue;
4006
- case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.queryExpression($,692,464);continue
4007
- default:this.s=692;continue
4013
+ case 691:switch(this.l()){
4014
+ case'*':case'+':case'-':case'/':case'<':case'=':case'>':case'?':case'!=':case'<=':case'<>':case'==':case'>=':case'in':case'is':case'or':case'||':case'and':case'not':case'like':case'between':if(this.expression(( $.expr = this.taggedIfQuery( $.expr ), $ ),692,666)){this.queryOnLeft('expr')}continue;
4015
+ case',':if(this.continueExpressionslist($,694)){this.queryOnLeft('expr')}continue;
4016
+ case'limit':case'minus':case'order':case'union':case'except':case'intersect':this.queryExpression($,694,464);continue
4017
+ default:this.s=694;continue
4008
4018
  }
4009
- case 690:switch(this.lt()){
4010
- case',':this.continueExpressionslist($,692);continue
4011
- default:this.s=692;continue
4019
+ case 692:switch(this.lt()){
4020
+ case',':this.continueExpressionslist($,694);continue
4021
+ default:this.s=694;continue
4012
4022
  }
4013
- case 691:switch(this.lt()){
4014
- case',':this.continueExpressionslist($,692);continue
4015
- default:this.s=692;continue
4023
+ case 693:switch(this.lt()){
4024
+ case',':this.continueExpressionslist($,694);continue
4025
+ default:this.s=694;continue
4016
4026
  }
4017
- case 692:if(this.m(0,')')){ if ($.expr.op?.val !== 'list' || $.expr.location) this.surroundByParens( $.expr ); else this.attachLocation( $.expr ); }continue
4027
+ case 694:if(this.m(0,')')){ if ($.expr.op?.val !== 'list' || $.expr.location) this.surroundByParens( $.expr ); else this.attachLocation( $.expr ); }continue
4018
4028
  default:return this.exit_()
4019
4029
  }
4020
4030
  }
4021
4031
  continueExpressionslist($,$next){
4022
4032
  let e;let _
4023
- this.rule_(694,$next)
4033
+ this.rule_(696,$next)
4024
4034
  for(;;)switch(this.s){
4025
- case 694:if(this.m(695,',')){ $.expr = { op: this.valueWithLocation( 'list' ), args: [ $.expr ], location: null }; }continue
4026
- case 695:switch(this.l()){
4027
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':this.s=696;continue
4035
+ case 696:if(this.m(697,',')){ $.expr = { op: this.valueWithLocation( 'list' ), args: [ $.expr ], location: null }; }continue
4036
+ case 697:switch(this.l()){
4037
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':this.s=698;continue
4028
4038
  default:this.e();continue
4029
4039
  }
4030
- case 696:switch(this.lt()){
4031
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},697)){e=_.expr; $.expr.args.push( e ); }continue
4040
+ case 698:switch(this.lt()){
4041
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},699)){e=_.expr; $.expr.args.push( e ); }continue
4032
4042
  default:this.gr([')']);continue
4033
4043
  }
4034
- case 697:switch(this.lt()){
4035
- case',':this.c(696);continue
4044
+ case 699:switch(this.lt()){
4045
+ case',':this.c(698);continue
4036
4046
  default:this.gr([')']);continue
4037
4047
  }
4038
4048
  default:return this.exit_()
@@ -4041,30 +4051,30 @@ default:return this.exit_()
4041
4051
  caseExpression($,$next){
4042
4052
  $.expr??=undefined
4043
4053
  let e;let _
4044
- this.rule_(699,$next)
4054
+ this.rule_(701,$next)
4045
4055
  for(;;)switch(this.s){
4046
- case 699:if(this.mk(700,'case')){ $.expr.op = { val: 'ixpr', location: this.lb().location }; $.expr.args = []; this.pushXprToken( $.expr ); }continue
4047
- case 700:switch(this.l()){
4048
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},701)){e=_.expr; $.expr.args.push( e ); }continue
4049
- default:this.s=701;continue
4056
+ case 701:if(this.mk(702,'case')){ $.expr.op = { val: 'ixpr', location: this.lb().location }; $.expr.args = []; this.pushXprToken( $.expr ); }continue
4057
+ case 702:switch(this.l()){
4058
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'not':case'case':case'cast':case'null':case'true':case'false':case'Number':case'String':case'exists':case'QuotedLiteral':if(this.expression(_={},703)){e=_.expr; $.expr.args.push( e ); }continue
4059
+ default:this.s=703;continue
4050
4060
  }
4051
- case 701:switch(this.lk()){
4052
- case'when':this.s=702;continue
4061
+ case 703:switch(this.lk()){
4062
+ case'when':this.s=704;continue
4053
4063
  default:this.e();continue
4054
4064
  }
4055
- case 702:switch(this.lk()){
4056
- case'when':if(this.ck(703)){ this.pushXprToken( $.expr ); }continue
4057
- default:this.s=706;continue
4058
- }
4059
- case 703:if(this.expression(_={},704)){e=_.expr; $.expr.args.push( e ); }continue
4060
- case 704:if(this.mk(705,'then')){ this.pushXprToken( $.expr ); }continue
4061
- case 705:if(this.expression(_={},702)){e=_.expr; $.expr.args.push( e ); }continue
4062
- case 706:switch(this.lk()){
4063
- case'else':if(this.ck(707)){ this.pushXprToken( $.expr ); }continue
4065
+ case 704:switch(this.lk()){
4066
+ case'when':if(this.ck(705)){ this.pushXprToken( $.expr ); }continue
4064
4067
  default:this.s=708;continue
4065
4068
  }
4066
- case 707:if(this.expression(_={},708)){e=_.expr; $.expr.args.push( e ); }continue
4067
- case 708:if(this.mk(0,'end')){ this.pushXprToken( $.expr ); }continue
4069
+ case 705:if(this.expression(_={},706)){e=_.expr; $.expr.args.push( e ); }continue
4070
+ case 706:if(this.mk(707,'then')){ this.pushXprToken( $.expr ); }continue
4071
+ case 707:if(this.expression(_={},704)){e=_.expr; $.expr.args.push( e ); }continue
4072
+ case 708:switch(this.lk()){
4073
+ case'else':if(this.ck(709)){ this.pushXprToken( $.expr ); }continue
4074
+ default:this.s=710;continue
4075
+ }
4076
+ case 709:if(this.expression(_={},710)){e=_.expr; $.expr.args.push( e ); }continue
4077
+ case 710:if(this.mk(0,'end')){ this.pushXprToken( $.expr ); }continue
4068
4078
  default:
4069
4079
  this.attachLocation( $.expr )
4070
4080
  return this.exit_()
@@ -4073,14 +4083,14 @@ return this.exit_()
4073
4083
  castFunction($,$next){
4074
4084
  $.expr??=undefined
4075
4085
  let arg;let _
4076
- this.rule_(710,$next)
4086
+ this.rule_(712,$next)
4077
4087
  for(;;)switch(this.s){
4078
- case 710:if(this.mk(711,'cast')){ $.expr.op = this.valueWithLocation(); }continue
4079
- case 711:if(this.m(712,'(')){ $.expr.args = this.createArray(); }continue
4080
- case 712:if(this.expression(_={},713)){arg=_.expr; $.expr.args?.push( arg ); }continue
4081
- case 713:this.mk(714,'as');continue
4082
- case 714:this.typeRefOptArgs({art:$.expr},715);continue
4083
- case 715:if(this.m(0,')')){ this.finalizeDictOrArray( $.expr.args ); }continue
4088
+ case 712:if(this.mk(713,'cast')){ $.expr.op = this.valueWithLocation(); }continue
4089
+ case 713:if(this.m(714,'(')){ $.expr.args = this.createArray(); }continue
4090
+ case 714:if(this.expression(_={},715)){arg=_.expr; $.expr.args?.push( arg ); }continue
4091
+ case 715:this.mk(716,'as');continue
4092
+ case 716:this.typeRefOptArgs({art:$.expr},717);continue
4093
+ case 717:if(this.m(0,')')){ this.finalizeDictOrArray( $.expr.args ); }continue
4084
4094
  default:
4085
4095
  this.attachLocation( $.expr )
4086
4096
  return this.exit_()
@@ -4088,67 +4098,67 @@ return this.exit_()
4088
4098
  }
4089
4099
  argumentsAndFilter($,$next){
4090
4100
  let open;let id;let expr;let _
4091
- this.rule_(717,$next)
4101
+ this.rule_(719,$next)
4092
4102
  for(;;)switch(this.s){
4093
- case 717:switch(this.lt()){
4094
- case'(':if(this.c(718)){open=this.lb();this.prepareSpecialFunction(); $.pathStep.args = this.createArray(); }continue
4095
- default:this.s=736;continue
4103
+ case 719:switch(this.lt()){
4104
+ case'(':if(this.c(720)){open=this.lb();this.prepareSpecialFunction(); $.pathStep.args = this.createArray(); }continue
4105
+ default:this.s=738;continue
4096
4106
  }
4097
- case 718:switch(this.l()){
4098
- case')':this.s=735;continue
4099
- case'Id':if(this.cy(719,'paramname'))id=this.lb();continue
4100
- default:this.s=728;continue
4107
+ case 720:switch(this.l()){
4108
+ case')':this.s=737;continue
4109
+ case'Id':if(this.cy(721,'paramname'))id=this.lb();continue
4110
+ default:this.s=730;continue
4101
4111
  }
4102
- case 719:switch(this.lt()){
4103
- case':':if(this.c(720)){ $.pathStep.args = this.createDict( open ); $.pathStep.$syntax = ':'; }continue
4104
- case'=>':if(this.c(724)){ $.pathStep.args = this.createDict(); }continue
4112
+ case 721:switch(this.lt()){
4113
+ case':':if(this.c(722)){ $.pathStep.args = this.createDict( open ); $.pathStep.$syntax = ':'; }continue
4114
+ case'=>':if(this.c(726)){ $.pathStep.args = this.createDict(); }continue
4105
4115
  default:this.e();continue
4106
4116
  }
4107
- case 720:if(this.expression(_={},721)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4108
- case 721:switch(this.lt()){
4109
- case',':this.c(722);continue
4110
- case')':this.s=735;continue
4117
+ case 722:if(this.expression(_={},723)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4118
+ case 723:switch(this.lt()){
4119
+ case',':this.c(724);continue
4120
+ case')':this.s=737;continue
4111
4121
  default:this.e();continue
4112
4122
  }
4113
- case 722:switch(this.lt()){
4114
- case'Id':if(this.cy(723,'paramname'))id=this.lb();continue
4115
- case')':this.s=735;continue
4123
+ case 724:switch(this.lt()){
4124
+ case'Id':if(this.cy(725,'paramname'))id=this.lb();continue
4125
+ case')':this.s=737;continue
4116
4126
  default:this.e();continue
4117
4127
  }
4118
- case 723:this.m(720,':');continue
4119
- case 724:if(this.expression(_={},725)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4120
- case 725:switch(this.lt()){
4121
- case',':this.c(726);continue
4122
- case')':this.s=735;continue
4128
+ case 725:this.m(722,':');continue
4129
+ case 726:if(this.expression(_={},727)){expr=_.expr; this.addNamedArg( $.pathStep, id, expr ); }continue
4130
+ case 727:switch(this.lt()){
4131
+ case',':this.c(728);continue
4132
+ case')':this.s=737;continue
4123
4133
  default:this.e();continue
4124
4134
  }
4125
- case 726:switch(this.lt()){
4126
- case'Id':if(this.cy(727,'paramname'))id=this.lb();continue
4127
- case')':this.s=735;continue
4135
+ case 728:switch(this.lt()){
4136
+ case'Id':if(this.cy(729,'paramname'))id=this.lb();continue
4137
+ case')':this.s=737;continue
4128
4138
  default:this.e();continue
4129
4139
  }
4130
- case 727:this.m(724,'=>');continue
4131
- case 728:if(this.funcExpression(_={},729)){expr=_.expr; $.pathStep.args.push( expr ); }continue
4132
- case 729:switch(this.lt()){
4133
- case',':if(this.c(730)){this.nextFunctionArgument()}continue;
4134
- default:this.s=732;continue
4140
+ case 729:this.m(726,'=>');continue
4141
+ case 730:if(this.funcExpression(_={},731)){expr=_.expr; $.pathStep.args.push( expr ); }continue
4142
+ case 731:switch(this.lt()){
4143
+ case',':if(this.c(732)){this.nextFunctionArgument()}continue;
4144
+ default:this.s=734;continue
4135
4145
  }
4136
- case 730:switch(this.lt()){
4137
- case')':this.c(731);continue
4138
- default:this.s=728;continue
4146
+ case 732:switch(this.lt()){
4147
+ case')':this.c(733);continue
4148
+ default:this.s=730;continue
4139
4149
  }
4140
- case 731:switch(this.lt()){
4150
+ case 733:switch(this.lt()){
4141
4151
  case'[':this.cardinalityAndFilter($,0);continue
4142
4152
  default:this.gr(['*','+','-','.','/','<','=','>','?','!=','<=','<>','==','>=','in','is','or','||','and','not','like','between']);continue
4143
4153
  }
4144
- case 732:switch(this.lk()){
4145
- case'order':if(this.ck(733)){ expr = $.pathStep.args[$.pathStep.args.length - 1] = this.applyOpToken( expr ); }continue
4146
- default:this.s=735;continue
4154
+ case 734:switch(this.lk()){
4155
+ case'order':if(this.ck(735)){ expr = $.pathStep.args[$.pathStep.args.length - 1] = this.applyOpToken( expr ); }continue
4156
+ default:this.s=737;continue
4147
4157
  }
4148
- case 733:if(this.mk(734,'by')){ this.pushXprToken( expr ); }continue
4149
- case 734:if(this.orderByClauseAsXpr({outer:expr.args},735)){ this.attachLocation( expr ); }continue
4150
- case 735:if(this.m(736,')')){ this.finalizeDictOrArray( $.pathStep.args ); }continue
4151
- case 736:switch(this.lt()){
4158
+ case 735:if(this.mk(736,'by')){ this.pushXprToken( expr ); }continue
4159
+ case 736:if(this.orderByClauseAsXpr({outer:expr.args},737)){ this.attachLocation( expr ); }continue
4160
+ case 737:if(this.m(738,')')){ this.finalizeDictOrArray( $.pathStep.args ); }continue
4161
+ case 738:switch(this.lt()){
4152
4162
  case'[':this.cardinalityAndFilter($,0);continue
4153
4163
  default:this.gr(['*','+','-','.','/','<','=','>','?','!=','<=','<>','==','>=','in','is','or','||','and','not','like','between']);continue
4154
4164
  }
@@ -4159,22 +4169,22 @@ funcExpression($,$next){
4159
4169
  $.expr??=undefined
4160
4170
  let args
4161
4171
  let tok;let e;let _
4162
- this.rule_(738,$next)
4172
+ this.rule_(740,$next)
4163
4173
  for(;;)switch(this.s){
4164
- case 738:switch(this.lGenericIntroOrExpr()){
4165
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},740))$.expr=_.expr;continue
4166
- case'GenericExpr':if(this.cx(740)){tok=this.lb(); $.expr = { val: tok.keyword ?? tok.type, location: tok.location, literal: 'token' }; }continue
4167
- case'GenericIntro':if(this.cx(739)){ $.expr = this.applyOpToken(); args = $.expr.args; }continue
4174
+ case 740:switch(this.lGenericIntroOrExpr()){
4175
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},742))$.expr=_.expr;continue
4176
+ case'GenericExpr':if(this.cx(742)){tok=this.lb(); $.expr = { val: tok.keyword ?? tok.type, location: tok.location, literal: 'token' }; }continue
4177
+ case'GenericIntro':if(this.cx(741)){ $.expr = this.applyOpToken(); args = $.expr.args; }continue
4168
4178
  default:this.e();continue
4169
4179
  }
4170
- case 739:if(this.expression(_={},740)){e=_.expr; $.expr.args.push( e ); }continue
4171
- case 740:switch(this.lGenericSeparator()){
4172
- case'GenericSeparator':if(this.cx(741)){ if (args) this.pushXprToken( args ); else { $.expr= this.applyOpToken( $.expr ); args = $.expr.args; } }continue
4180
+ case 741:if(this.expression(_={},742)){e=_.expr; $.expr.args.push( e ); }continue
4181
+ case 742:switch(this.lGenericSeparator()){
4182
+ case'GenericSeparator':if(this.cx(743)){ if (args) this.pushXprToken( args ); else { $.expr= this.applyOpToken( $.expr ); args = $.expr.args; } }continue
4173
4183
  default:this.gr([')',',','order']);continue
4174
4184
  }
4175
- case 741:switch(this.lGenericExpr()){
4176
- case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},740)){e=_.expr; args.push( e ); }continue
4177
- case'GenericExpr':if(this.cx(740)){ this.pushXprToken( args ); }continue
4185
+ case 743:switch(this.lGenericExpr()){
4186
+ case'Id':case'#':case'(':case'+':case'-':case':':case'?':case'Number':case'String':case'QuotedLiteral':if(this.expression(_={},742)){e=_.expr; args.push( e ); }continue
4187
+ case'GenericExpr':if(this.cx(742)){ this.pushXprToken( args ); }continue
4178
4188
  default:this.e();continue
4179
4189
  }
4180
4190
  default:
@@ -4184,27 +4194,27 @@ return this.exit_()
4184
4194
  }
4185
4195
  overClause($,$next){
4186
4196
  let over=[]
4187
- this.rule_(743,$next)
4197
+ this.rule_(745,$next)
4188
4198
  for(;;)switch(this.s){
4189
- case 743:this.m(744,'(');continue
4190
- case 744:switch(this.lk()){
4191
- case'partition':if(this.ck(745)){ this.pushXprToken( over ); }continue
4192
- default:this.s=747;continue
4193
- }
4194
- case 745:if(this.mk(746,'by')){ this.pushXprToken( over ); }continue
4195
- case 746:this.expressionsAsXpr({outer:over},747);continue
4196
- case 747:switch(this.lk()){
4197
- case'order':if(this.ck(748)){ this.pushXprToken( over ); }continue
4198
- default:this.s=750;continue
4199
- }
4200
- case 748:if(this.mk(749,'by')){ this.pushXprToken( over ); }continue
4201
- case 749:this.orderByClauseAsXpr({outer:over},750);continue
4202
- case 750:switch(this.lk()){
4203
- case'rows':if(this.ck(751)){ this.pushXprToken( over ); }continue
4199
+ case 745:this.m(746,'(');continue
4200
+ case 746:switch(this.lk()){
4201
+ case'partition':if(this.ck(747)){ this.pushXprToken( over ); }continue
4202
+ default:this.s=749;continue
4203
+ }
4204
+ case 747:if(this.mk(748,'by')){ this.pushXprToken( over ); }continue
4205
+ case 748:this.expressionsAsXpr({outer:over},749);continue
4206
+ case 749:switch(this.lk()){
4207
+ case'order':if(this.ck(750)){ this.pushXprToken( over ); }continue
4204
4208
  default:this.s=752;continue
4205
4209
  }
4206
- case 751:this.windowFrameClause({outer:over},752);continue
4207
- case 752:this.m(0,')');continue
4210
+ case 750:if(this.mk(751,'by')){ this.pushXprToken( over ); }continue
4211
+ case 751:this.orderByClauseAsXpr({outer:over},752);continue
4212
+ case 752:switch(this.lk()){
4213
+ case'rows':if(this.ck(753)){ this.pushXprToken( over ); }continue
4214
+ default:this.s=754;continue
4215
+ }
4216
+ case 753:this.windowFrameClause({outer:over},754);continue
4217
+ case 754:this.m(0,')');continue
4208
4218
  default:
4209
4219
  $.outer.push( this.surroundByParens( this.ixprAst( over ) ) )
4210
4220
  return this.exit_()
@@ -4213,14 +4223,14 @@ return this.exit_()
4213
4223
  expressionsAsXpr($,$next){
4214
4224
  let args=[]
4215
4225
  let expr;let _
4216
- this.rule_(754,$next)
4226
+ this.rule_(756,$next)
4217
4227
  for(;;)switch(this.s){
4218
- case 754:if(this.expression(_={},755)){expr=_.expr; args.push( expr ); }continue
4219
- case 755:switch(this.lt()){
4220
- case',':if(this.c(756)){ this.pushXprToken( args ); }continue
4228
+ case 756:if(this.expression(_={},757)){expr=_.expr; args.push( expr ); }continue
4229
+ case 757:switch(this.lt()){
4230
+ case',':if(this.c(758)){ this.pushXprToken( args ); }continue
4221
4231
  default:this.gr([')','rows','order']);continue
4222
4232
  }
4223
- case 756:if(this.expression(_={},755)){expr=_.expr; args.push( expr ); }continue
4233
+ case 758:if(this.expression(_={},757)){expr=_.expr; args.push( expr ); }continue
4224
4234
  default:
4225
4235
  $.outer.push( this.ixprAst( args ) )
4226
4236
  return this.exit_()
@@ -4228,14 +4238,14 @@ return this.exit_()
4228
4238
  }
4229
4239
  orderByClauseAsXpr($,$next){
4230
4240
  let args=[]
4231
- this.rule_(758,$next)
4241
+ this.rule_(760,$next)
4232
4242
  for(;;)switch(this.s){
4233
- case 758:this.orderBySpecAsXpr({args},759);continue
4234
- case 759:switch(this.lt()){
4235
- case',':if(this.c(760)){ this.pushXprToken( args ); }continue
4243
+ case 760:this.orderBySpecAsXpr({args},761);continue
4244
+ case 761:switch(this.lt()){
4245
+ case',':if(this.c(762)){ this.pushXprToken( args ); }continue
4236
4246
  default:this.gr([')']);continue
4237
4247
  }
4238
- case 760:this.orderBySpecAsXpr({args},759);continue
4248
+ case 762:this.orderBySpecAsXpr({args},761);continue
4239
4249
  default:
4240
4250
  $.outer.push( this.ixprAst( args ) )
4241
4251
  return this.exit_()
@@ -4243,18 +4253,18 @@ return this.exit_()
4243
4253
  }
4244
4254
  orderBySpecAsXpr($,$next){
4245
4255
  let expr;let _
4246
- this.rule_(762,$next)
4256
+ this.rule_(764,$next)
4247
4257
  for(;;)switch(this.s){
4248
- case 762:if(this.expression(_={},763)){expr=_.expr; $.args.push( expr ); }continue
4249
- case 763:switch(this.lk()){
4250
- case'asc':case'desc':if(this.ck(764)){ this.pushXprToken( $.args ); }continue
4251
- default:this.s=764;continue
4258
+ case 764:if(this.expression(_={},765)){expr=_.expr; $.args.push( expr ); }continue
4259
+ case 765:switch(this.lk()){
4260
+ case'asc':case'desc':if(this.ck(766)){ this.pushXprToken( $.args ); }continue
4261
+ default:this.s=766;continue
4252
4262
  }
4253
- case 764:switch(this.lk()){
4254
- case'nulls':if(this.ck(765)){ this.pushXprToken( $.args ); }continue
4263
+ case 766:switch(this.lk()){
4264
+ case'nulls':if(this.ck(767)){ this.pushXprToken( $.args ); }continue
4255
4265
  default:this.gr([')',',']);continue
4256
4266
  }
4257
- case 765:switch(this.lk()){
4267
+ case 767:switch(this.lk()){
4258
4268
  case'last':case'first':if(this.ck(0)){ this.pushXprToken( $.args ); }continue
4259
4269
  default:this.e();continue
4260
4270
  }
@@ -4263,50 +4273,50 @@ default:return this.exit_()
4263
4273
  }
4264
4274
  windowFrameClause($,$next){
4265
4275
  let args=[]
4266
- this.rule_(767,$next)
4276
+ this.rule_(769,$next)
4267
4277
  for(;;)switch(this.s){
4268
- case 767:switch(this.lk()){
4269
- case'unbounded':if(this.ck(768)){ this.pushXprToken( args ); }continue
4270
- case'Number':if(this.c(768)){ args.push( this.unsignedIntegerLiteral() ); }continue
4271
- case'current':if(this.ck(769)){ this.pushXprToken( args ); }continue
4272
- case'between':if(this.ck(770)){ this.pushXprToken( args ); }continue
4278
+ case 769:switch(this.lk()){
4279
+ case'unbounded':if(this.ck(770)){ this.pushXprToken( args ); }continue
4280
+ case'Number':if(this.c(770)){ args.push( this.unsignedIntegerLiteral() ); }continue
4281
+ case'current':if(this.ck(771)){ this.pushXprToken( args ); }continue
4282
+ case'between':if(this.ck(772)){ this.pushXprToken( args ); }continue
4273
4283
  default:this.e();continue
4274
4284
  }
4275
- case 768:if(this.mk(0,'preceding')){ this.pushXprToken( args ); }continue
4276
- case 769:if(this.mk(0,'row')){ this.pushXprToken( args ); }continue
4277
- case 770:this.windowFrameBoundSpec({args},771);continue
4278
- case 771:if(this.mk(772,'and')){ this.pushXprToken( args ); }continue
4279
- case 772:this.windowFrameBoundSpec({args},0);continue
4285
+ case 770:if(this.mk(0,'preceding')){ this.pushXprToken( args ); }continue
4286
+ case 771:if(this.mk(0,'row')){ this.pushXprToken( args ); }continue
4287
+ case 772:this.windowFrameBoundSpec({args},773);continue
4288
+ case 773:if(this.mk(774,'and')){ this.pushXprToken( args ); }continue
4289
+ case 774:this.windowFrameBoundSpec({args},0);continue
4280
4290
  default:
4281
4291
  $.outer.push( this.ixprAst( args ) )
4282
4292
  return this.exit_()
4283
4293
  }
4284
4294
  }
4285
4295
  windowFrameBoundSpec($,$next){
4286
- this.rule_(774,$next)
4296
+ this.rule_(776,$next)
4287
4297
  for(;;)switch(this.s){
4288
- case 774:switch(this.lk()){
4289
- case'unbounded':if(this.ck(775)){ this.pushXprToken( $.args ); }continue
4290
- case'Number':if(this.c(775)){ $.args.push( this.unsignedIntegerLiteral() ); }continue
4291
- case'current':if(this.ck(777)){ this.pushXprToken( $.args ); }continue
4298
+ case 776:switch(this.lk()){
4299
+ case'unbounded':if(this.ck(777)){ this.pushXprToken( $.args ); }continue
4300
+ case'Number':if(this.c(777)){ $.args.push( this.unsignedIntegerLiteral() ); }continue
4301
+ case'current':if(this.ck(779)){ this.pushXprToken( $.args ); }continue
4292
4302
  default:this.e();continue
4293
4303
  }
4294
- case 775:switch(this.lk()){
4295
- case'following':this.ck(776);continue
4296
- case'preceding':this.ck(776);continue
4304
+ case 777:switch(this.lk()){
4305
+ case'following':this.ck(778);continue
4306
+ case'preceding':this.ck(778);continue
4297
4307
  default:this.e();continue
4298
4308
  }
4299
- case 776:if(this.gr()){ this.pushXprToken( $.args ); }continue
4300
- case 777:if(this.mk(0,'row')){ this.pushXprToken( $.args ); }continue
4309
+ case 778:if(this.gr()){ this.pushXprToken( $.args ); }continue
4310
+ case 779:if(this.mk(0,'row')){ this.pushXprToken( $.args ); }continue
4301
4311
  default:return this.exit_()
4302
4312
  }
4303
4313
  }
4304
4314
  literalValue($,$next){
4305
4315
  $.expr??={}
4306
- this.rule_(779,$next)
4316
+ this.rule_(781,$next)
4307
4317
  for(;;)switch(this.s){
4308
- case 779:switch(this.lk()){
4309
- case'#':if(this.c(780)){ this.reportUnexpectedSpace(); }continue
4318
+ case 781:switch(this.lk()){
4319
+ case'#':if(this.c(782)){ this.reportUnexpectedSpace(); }continue
4310
4320
  case'null':if(this.ck(0)){ $.expr = { literal: 'null', val: null }; }continue
4311
4321
  case'true':case'false':if(this.ck(0)){ $.expr = { literal: 'boolean', val: this.lb().keyword === 'true' }; }continue
4312
4322
  case'Number':if(this.c(0)){ $.expr = this.numberLiteral(); }continue
@@ -4314,17 +4324,17 @@ case'String':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
4314
4324
  case'QuotedLiteral':if(this.c(0)){ $.expr = this.quotedLiteral(); }continue
4315
4325
  default:this.e();continue
4316
4326
  }
4317
- case 780:if(this.my(0,'enumref')){ $.expr = { literal: 'enum', sym: this.identAst() } }continue
4327
+ case 782:if(this.my(0,'enumref')){ $.expr = { literal: 'enum', sym: this.identAst() } }continue
4318
4328
  default:
4319
4329
  this.attachLocation( $.expr )
4320
4330
  return this.exit_()
4321
4331
  }
4322
4332
  }
4323
4333
  annoAssignStd($,$next){
4324
- this.rule_(782,$next)
4334
+ this.rule_(784,$next)
4325
4335
  for(;;)switch(this.s){
4326
- case 782:if(this.m(783,'@')){this.annoInSameLine(); this.reportDubiousAnnoSpacing(); }continue
4327
- case 783:switch(this.lt()){
4336
+ case 784:if(this.m(785,'@')){this.annoInSameLine(); this.reportDubiousAnnoSpacing(); }continue
4337
+ case 785:switch(this.lt()){
4328
4338
  case'(':this.annoAssignParen($,0);continue
4329
4339
  case'Id':this.annoAssignBase($,0);continue
4330
4340
  default:this.e();continue
@@ -4335,10 +4345,10 @@ return this.exit_()
4335
4345
  }
4336
4346
  }
4337
4347
  annoAssignCol($,$next){
4338
- this.rule_(785,$next)
4348
+ this.rule_(787,$next)
4339
4349
  for(;;)switch(this.s){
4340
- case 785:if(this.m(786,'@')){ this.reportDubiousAnnoSpacing(); }continue
4341
- case 786:switch(this.lt()){
4350
+ case 787:if(this.m(788,'@')){ this.reportDubiousAnnoSpacing(); }continue
4351
+ case 788:switch(this.lt()){
4342
4352
  case'(':this.annoAssignParen($,0);continue
4343
4353
  case'Id':this.annoAssignBase($,0);continue
4344
4354
  default:this.e();continue
@@ -4350,10 +4360,10 @@ return this.exit_()
4350
4360
  }
4351
4361
  annoAssignMid($,$next){
4352
4362
  let name;let _
4353
- this.rule_(788,$next)
4363
+ this.rule_(790,$next)
4354
4364
  for(;;)switch(this.s){
4355
- case 788:if(this.m(789,'@')){this.annoInSameLine(); this.reportDubiousAnnoSpacing(); }continue
4356
- case 789:switch(this.lt()){
4365
+ case 790:if(this.m(791,'@')){this.annoInSameLine(); this.reportDubiousAnnoSpacing(); }continue
4366
+ case 791:switch(this.lt()){
4357
4367
  case'(':this.annoAssignParen($,0);continue
4358
4368
  case'Id':if(this.annoNamePath(_={category:'anno'},0)){name=_.name; this.assignAnnotation( $.art, {}, name ); this.warnIfColonFollows( name ); }continue
4359
4369
  default:this.e();continue
@@ -4364,33 +4374,33 @@ return this.exit_()
4364
4374
  }
4365
4375
  }
4366
4376
  annoAssignParen($,$next){
4367
- this.rule_(791,$next)
4377
+ this.rule_(793,$next)
4368
4378
  for(;;)switch(this.s){
4369
- case 791:if(this.m(792,'(')){this.annoInSameLine()}continue;
4370
- case 792:switch(this.lt()){
4371
- case'Id':this.annoAssignBase({art:$.art},793);continue
4372
- default:this.s=794;continue
4373
- }
4374
- case 793:switch(this.lt()){
4375
- case',':this.c(792);continue
4376
- case')':this.s=794;continue
4379
+ case 793:if(this.m(794,'(')){this.annoInSameLine()}continue;
4380
+ case 794:switch(this.lt()){
4381
+ case'Id':this.annoAssignBase({art:$.art},795);continue
4382
+ default:this.s=796;continue
4383
+ }
4384
+ case 795:switch(this.lt()){
4385
+ case',':this.c(794);continue
4386
+ case')':this.s=796;continue
4377
4387
  default:this.e();continue
4378
4388
  }
4379
- case 794:this.m(0,')');continue
4389
+ case 796:this.m(0,')');continue
4380
4390
  default:return this.exit_()
4381
4391
  }
4382
4392
  }
4383
4393
  annoAssignBase($,$next){
4384
4394
  let value={}
4385
4395
  let name;let _
4386
- this.rule_(796,$next)
4396
+ this.rule_(798,$next)
4387
4397
  for(;;)switch(this.s){
4388
- case 796:if(this.annoNamePath(_={category:'anno'},797))name=_.name;continue
4389
- case 797:switch(this.l()){
4390
- case':':this.c(798);continue
4398
+ case 798:if(this.annoNamePath(_={category:'anno'},799))name=_.name;continue
4399
+ case 799:switch(this.l()){
4400
+ case':':this.c(800);continue
4391
4401
  default:this.gr();continue
4392
4402
  }
4393
- case 798:if(this.annoValue(_={},0))value=_.value;continue
4403
+ case 800:if(this.annoValue(_={},0))value=_.value;continue
4394
4404
  default:
4395
4405
  this.assignAnnotation( $.art, value, name || {} )
4396
4406
  return this.exit_()
@@ -4399,20 +4409,20 @@ return this.exit_()
4399
4409
  annoNamePath($,$next){
4400
4410
  $.name??=new XsnName()
4401
4411
  let at
4402
- this.rule_(800,$next)
4412
+ this.rule_(802,$next)
4403
4413
  for(;;)switch(this.s){
4404
- case 800:if(this.my(801,$.category)){ $.name.path = [ this.identAst() ]; }continue
4405
- case 801:switch(this.lt()){
4406
- case'.':this.c(802);continue
4407
- default:this.s=804;continue
4408
- }
4409
- case 802:switch(this.lt()){
4410
- case'Id':if(this.cy(801,$.category)){ $.name.path.push( this.identAst() ); }continue
4411
- case'@':if(this.c(803))at=this.lb();continue
4414
+ case 802:if(this.my(803,$.category)){ $.name.path = [ this.identAst() ]; }continue
4415
+ case 803:switch(this.lt()){
4416
+ case'.':this.c(804);continue
4417
+ default:this.s=806;continue
4418
+ }
4419
+ case 804:switch(this.lt()){
4420
+ case'Id':if(this.cy(803,$.category)){ $.name.path.push( this.identAst() ); }continue
4421
+ case'@':if(this.c(805))at=this.lb();continue
4412
4422
  default:this.e();continue
4413
4423
  }
4414
- case 803:if(this.my(801,$.category)){ $.name.path.push( this.identAstWithPrefix( at ) ); }continue
4415
- case 804:switch(this.l()){
4424
+ case 805:if(this.my(803,$.category)){ $.name.path.push( this.identAstWithPrefix( at ) ); }continue
4425
+ case 806:switch(this.l()){
4416
4426
  case'#':this.annoPathVariant({nameOrRef:$.name},0);continue
4417
4427
  default:this.gr();continue
4418
4428
  }
@@ -4423,25 +4433,25 @@ return this.exit_()
4423
4433
  }
4424
4434
  annoPath($,$next){
4425
4435
  let at
4426
- this.rule_(806,$next)
4436
+ this.rule_(808,$next)
4427
4437
  for(;;)switch(this.s){
4428
- case 806:switch(this.lt()){
4429
- case'Id':if(this.cy(808,$.category)){ $.nameOrRef.path = [ this.identAst() ]; }continue
4430
- case'@':if(this.c(807))at=this.lb();continue
4438
+ case 808:switch(this.lt()){
4439
+ case'Id':if(this.cy(810,$.category)){ $.nameOrRef.path = [ this.identAst() ]; }continue
4440
+ case'@':if(this.c(809))at=this.lb();continue
4431
4441
  default:this.e();continue
4432
4442
  }
4433
- case 807:if(this.my(808,$.category)){ $.nameOrRef.path = [ this.identAstWithPrefix( at ) ]; }continue
4434
- case 808:switch(this.lt()){
4435
- case'.':this.c(809);continue
4436
- default:this.s=811;continue
4443
+ case 809:if(this.my(810,$.category)){ $.nameOrRef.path = [ this.identAstWithPrefix( at ) ]; }continue
4444
+ case 810:switch(this.lt()){
4445
+ case'.':this.c(811);continue
4446
+ default:this.s=813;continue
4437
4447
  }
4438
- case 809:switch(this.lt()){
4439
- case'Id':if(this.cy(808,$.category)){ $.nameOrRef.path.push( this.identAst() ); }continue
4440
- case'@':if(this.c(810))at=this.lb();continue
4448
+ case 811:switch(this.lt()){
4449
+ case'Id':if(this.cy(810,$.category)){ $.nameOrRef.path.push( this.identAst() ); }continue
4450
+ case'@':if(this.c(812))at=this.lb();continue
4441
4451
  default:this.e();continue
4442
4452
  }
4443
- case 810:if(this.my(808,$.category)){ $.nameOrRef.path.push( this.identAstWithPrefix( at ) ); }continue
4444
- case 811:switch(this.lt()){
4453
+ case 812:if(this.my(810,$.category)){ $.nameOrRef.path.push( this.identAstWithPrefix( at ) ); }continue
4454
+ case 813:switch(this.lt()){
4445
4455
  case'#':this.annoPathVariant({nameOrRef:$.nameOrRef},0);continue
4446
4456
  default:this.gr();continue
4447
4457
  }
@@ -4451,15 +4461,15 @@ return this.exit_()
4451
4461
  }
4452
4462
  }
4453
4463
  annoPathVariant($,$next){
4454
- this.rule_(813,$next)
4464
+ this.rule_(815,$next)
4455
4465
  for(;;)switch(this.s){
4456
- case 813:if(this.m(814,'#')){ this.reportUnexpectedSpace(); }continue
4457
- case 814:if(this.my(815,'variant')){ $.nameOrRef.variant = { path: [ this.identAst() ] }; }continue
4458
- case 815:switch(this.lt()){
4459
- case'.':this.c(816);continue
4466
+ case 815:if(this.m(816,'#')){ this.reportUnexpectedSpace(); }continue
4467
+ case 816:if(this.my(817,'variant')){ $.nameOrRef.variant = { path: [ this.identAst() ] }; }continue
4468
+ case 817:switch(this.lt()){
4469
+ case'.':this.c(818);continue
4460
4470
  default:this.gr();continue
4461
4471
  }
4462
- case 816:if(this.my(815,'variant')){ $.nameOrRef.variant.path.push( this.identAst() ); }continue
4472
+ case 818:if(this.my(817,'variant')){ $.nameOrRef.variant.path.push( this.identAst() ); }continue
4463
4473
  default:
4464
4474
  this.attachLocation( $.nameOrRef.variant )
4465
4475
  return this.exit_()
@@ -4469,14 +4479,14 @@ annoStructValue($,$next){
4469
4479
  $.value??={}
4470
4480
  let name=new XsnName()
4471
4481
  let _
4472
- this.rule_(818,$next)
4482
+ this.rule_(820,$next)
4473
4483
  for(;;)switch(this.s){
4474
- case 818:if(this.annoPath({nameOrRef:name,category:'name'},819)){ this.attachLocation( name ); }continue
4475
- case 819:switch(this.lt()){
4476
- case':':this.c(820);continue
4484
+ case 820:if(this.annoPath({nameOrRef:name,category:'name'},821)){ this.attachLocation( name ); }continue
4485
+ case 821:switch(this.lt()){
4486
+ case':':this.c(822);continue
4477
4487
  default:if(this.gr(['Id',',','@','}'])){ this.attachLocation( $.value ); }continue
4478
4488
  }
4479
- case 820:if(this.annoValue(_={},0))$.value=_.value;continue
4489
+ case 822:if(this.annoValue(_={},0))$.value=_.value;continue
4480
4490
  default:
4481
4491
  $.value.name = name
4482
4492
  return this.exit_()
@@ -4485,61 +4495,61 @@ return this.exit_()
4485
4495
  annoValue($,$next){
4486
4496
  $.value??={}
4487
4497
  let sign;let sub;let ellipsis;let upTo;let _
4488
- this.rule_(822,$next)
4498
+ this.rule_(824,$next)
4489
4499
  for(;;)switch(this.s){
4490
- case 822:switch(this.l()){
4500
+ case 824:switch(this.l()){
4491
4501
  case'#':case'null':case'true':case'false':case'Number':case'String':case'QuotedLiteral':if(this.literalValue(_={},0)){$.value=_.expr; this.adjustAnnoNumber( $.value ); }continue
4492
- case'+':case'-':if(this.c(823))sign=this.lb();continue
4502
+ case'+':case'-':if(this.c(825))sign=this.lb();continue
4493
4503
  case'Id':case'@':this.annoPath({nameOrRef:$.value,category:'annoref'},0);continue
4494
- case'{':if(this.c(824)){ if (!this.dynamic_.arrayAnno) $.value.$flatten = [];
4504
+ case'{':if(this.c(826)){ if (!this.dynamic_.arrayAnno) $.value.$flatten = [];
4495
4505
  else { $.value.struct = Object.create(null); $.value.literal = 'struct'; } }continue
4496
- case'[':if(this.c(827)){this.arrayAnno(); $.value.val = []; $.value.literal = 'array' }continue
4497
- case'(':this.c(833);continue
4506
+ case'[':if(this.c(829)){this.arrayAnno(); $.value.val = []; $.value.literal = 'array' }continue
4507
+ case'(':this.c(835);continue
4498
4508
  default:this.e();continue
4499
4509
  }
4500
- case 823:if(this.m(0,'Number')){ this.adjustAnnoNumber( $.value = this.numberLiteral( sign ) ); }continue
4501
- case 824:switch(this.lt()){
4502
- case'Id':case'@':if(this.annoStructValue(_={},825)){sub=_.value; if ($.value.$flatten) $.value.$flatten.push( sub );
4510
+ case 825:if(this.m(0,'Number')){ this.adjustAnnoNumber( $.value = this.numberLiteral( sign ) ); }continue
4511
+ case 826:switch(this.lt()){
4512
+ case'Id':case'@':if(this.annoStructValue(_={},827)){sub=_.value; if ($.value.$flatten) $.value.$flatten.push( sub );
4503
4513
  else this.addDef( sub, $.value, 'struct', null, sub.name ); }continue
4504
- default:this.s=826;continue
4514
+ default:this.s=828;continue
4505
4515
  }
4506
- case 825:switch(this.l()){
4507
- case',':this.c(824);continue
4508
- case'}':this.s=826;continue
4509
- case'Id':case'@':this.s=824;continue
4516
+ case 827:switch(this.l()){
4517
+ case',':this.c(826);continue
4518
+ case'}':this.s=828;continue
4519
+ case'Id':case'@':this.s=826;continue
4510
4520
  default:this.e();continue
4511
4521
  }
4512
- case 826:switch(this.l()){
4522
+ case 828:switch(this.l()){
4513
4523
  case'}':if(this.c(0)){ if ($.value.struct) this.checkStructProps( $.value.struct ); }continue
4514
4524
  default:this.e();continue
4515
4525
  }
4516
- case 827:switch(this.l()){
4517
- case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},831)){sub=_.value; $.value.val.push( sub ) }continue
4518
- case'...':if(this.c(828))ellipsis=this.lb();continue
4519
- default:this.s=832;continue
4526
+ case 829:switch(this.l()){
4527
+ case'Id':case'#':case'(':case'+':case'-':case'@':case'[':case'{':case'Number':case'String':case'QuotedLiteral':if(this.annoValue(_={},833)){sub=_.value; $.value.val.push( sub ) }continue
4528
+ case'...':if(this.c(830))ellipsis=this.lb();continue
4529
+ default:this.s=834;continue
4520
4530
  }
4521
- case 828:switch(this.lk()){
4522
- case'up':this.ck(829);continue
4523
- case',':case']':this.s=831;{ $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location } ); }continue
4531
+ case 830:switch(this.lk()){
4532
+ case'up':this.ck(831);continue
4533
+ case',':case']':this.s=833;{ $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location } ); }continue
4524
4534
  default:this.e();continue
4525
4535
  }
4526
- case 829:this.mk(830,'to');continue
4527
- case 830:if(this.annoValue(_={},831)){upTo=_.value; $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location, upTo: upTo } ); }continue
4528
- case 831:switch(this.lt()){
4529
- case',':this.c(827);continue
4530
- case']':this.s=832;continue
4536
+ case 831:this.mk(832,'to');continue
4537
+ case 832:if(this.annoValue(_={},833)){upTo=_.value; $.value.val.push( { literal: 'token', val: '...', location: ellipsis.location, upTo: upTo } ); }continue
4538
+ case 833:switch(this.lt()){
4539
+ case',':this.c(829);continue
4540
+ case']':this.s=834;continue
4531
4541
  default:this.e();continue
4532
4542
  }
4533
- case 832:switch(this.l()){
4543
+ case 834:switch(this.l()){
4534
4544
  case']':this.c(0);continue
4535
4545
  default:this.e();continue
4536
4546
  }
4537
- case 833:switch(this.l()){
4547
+ case 835:switch(this.l()){
4538
4548
  case')':this.c(0);continue
4539
- default:this.s=834;continue
4549
+ default:this.s=836;continue
4540
4550
  }
4541
- case 834:if(this.condition(_={},835)){$.value=_.expr; $.value.$tokenTexts = true; }continue
4542
- case 835:this.m(0,')');continue
4551
+ case 836:if(this.condition(_={},837)){$.value=_.expr; $.value.$tokenTexts = true; }continue
4552
+ case 837:this.m(0,')');continue
4543
4553
  default:
4544
4554
  this.attachLocation( $.value )
4545
4555
  return this.exit_()