@loopstack/loopstack-studio 0.25.0 → 0.25.2
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.
- package/dist/components/ai-elements/message.js +2 -2
- package/dist/components/ai-elements/reasoning.js +9 -9
- package/dist/loopstack-studio.css +1 -1
- package/dist/node_modules/@chevrotain/gast/lib/src/helpers.js +2 -5
- package/dist/node_modules/@chevrotain/gast/lib/src/model.js +69 -72
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{architecture-7HQA4BMR.js → architecture-YZFGNWBL.js} +2 -2
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{chunk-TQ3KTPDO.js → chunk-2KRD3SAO.js} +1 -1
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{chunk-4F5CHEZ2.js → chunk-67CJDMHE.js} +1 -1
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{chunk-UMXZTB3W.js → chunk-7N4EOEYR.js} +5 -2
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{chunk-PL6DKKU2.js → chunk-AA7GKIK3.js} +1 -1
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-CIAEETIT.js +23 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{chunk-SJTYNZTY.js → chunk-FOC6F5B3.js} +1 -1
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-K5T4RW27.js +1197 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{chunk-FRFDVMJY.js → chunk-KGLVRYIC.js} +1 -1
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{chunk-B2363JML.js → chunk-LIHQZDEY.js} +1 -1
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-ORNJ4GCN.js +29 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/{gitGraph-G5XIXVHT.js → gitGraph-7Q5UKJZL.js} +2 -2
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/info-OMHHGYJF.js +3 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/packet-4T2RLAQJ.js +3 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/pie-ZZUOXDRM.js +3 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/radar-PYXPWWZC.js +3 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/treeView-SZITEDCU.js +3 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/treemap-W4RFUUIX.js +3 -0
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/wardley-RL74JXVD.js +3 -0
- package/dist/node_modules/@mermaid-js/parser/dist/mermaid-parser.core.js +27 -17
- package/dist/node_modules/@upsetjs/venn.js/build/venn.esm.js +903 -0
- package/dist/node_modules/@xyflow/react/dist/esm/index.js +76 -75
- package/dist/node_modules/@xyflow/system/dist/esm/index.js +30 -28
- package/dist/node_modules/chevrotain/lib/src/parse/cst/cst_visitor.js +31 -40
- package/dist/node_modules/chevrotain/lib/src/parse/errors_public.js +23 -26
- package/dist/node_modules/chevrotain/lib/src/parse/exceptions_public.js +12 -13
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/checks.js +181 -205
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/first.js +11 -13
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/follow.js +12 -13
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_resolver_public.js +8 -9
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/interpreter.js +176 -183
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/llk_lookahead.js +17 -19
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/lookahead.js +153 -160
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/resolver.js +10 -12
- package/dist/node_modules/chevrotain/lib/src/parse/grammar/rest.js +36 -38
- package/dist/node_modules/chevrotain/lib/src/parse/parser/parser.js +37 -45
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/error_handler.js +12 -14
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/gast_recorder.js +80 -86
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/lexer_adapter.js +6 -2
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/looksahead.js +39 -41
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/perf_tracer.js +7 -8
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_api.js +69 -70
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_engine.js +215 -205
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/recoverable.js +76 -76
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/tree_builder.js +29 -39
- package/dist/node_modules/chevrotain/lib/src/scan/lexer.js +252 -274
- package/dist/node_modules/chevrotain/lib/src/scan/lexer_public.js +93 -106
- package/dist/node_modules/chevrotain/lib/src/scan/reg_exp.js +61 -61
- package/dist/node_modules/chevrotain/lib/src/scan/tokens.js +31 -41
- package/dist/node_modules/chevrotain/lib/src/scan/tokens_public.js +15 -18
- package/dist/node_modules/chevrotain-allstar/lib/all-star-lookahead.js +226 -226
- package/dist/node_modules/chevrotain-allstar/lib/atn.js +17 -17
- package/dist/node_modules/cytoscape/dist/cytoscape.esm.js +17 -14
- package/dist/node_modules/dagre-d3-es/src/dagre/greedy-fas.js +19 -19
- package/dist/node_modules/dagre-d3-es/src/dagre/layout.js +48 -48
- package/dist/node_modules/dagre-d3-es/src/dagre/nesting-graph.js +9 -9
- package/dist/node_modules/dagre-d3-es/src/dagre/order/cross-count.js +3 -3
- package/dist/node_modules/dagre-d3-es/src/dagre/order/index.js +11 -11
- package/dist/node_modules/dagre-d3-es/src/dagre/order/init-order.js +4 -4
- package/dist/node_modules/dagre-d3-es/src/dagre/order/resolve-conflicts.js +4 -4
- package/dist/node_modules/dagre-d3-es/src/dagre/order/sort-subgraph.js +8 -8
- package/dist/node_modules/dagre-d3-es/src/dagre/order/sort.js +5 -5
- package/dist/node_modules/dagre-d3-es/src/dagre/position/bk.js +61 -61
- package/dist/node_modules/dagre-d3-es/src/dagre/position/index.js +1 -1
- package/dist/node_modules/dagre-d3-es/src/dagre/rank/network-simplex.js +25 -25
- package/dist/node_modules/dagre-d3-es/src/dagre/rank/util.js +8 -8
- package/dist/node_modules/dagre-d3-es/src/dagre/util.js +48 -48
- package/dist/node_modules/dagre-d3-es/src/graphlib/graph.js +109 -109
- package/dist/node_modules/dagre-d3-es/src/graphlib/json.js +17 -17
- package/dist/node_modules/dompurify/dist/purify.es.js +67 -67
- package/dist/node_modules/katex/dist/katex.js +1256 -1209
- package/dist/node_modules/khroma/dist/methods/transparentize.js +3 -0
- package/dist/node_modules/lodash-es/_baseClone.js +2 -2
- package/dist/node_modules/lodash-es/_baseMatchesProperty.js +6 -6
- package/dist/node_modules/lodash-es/_baseToString.js +1 -1
- package/dist/node_modules/lodash-es/_baseUniq.js +1 -1
- package/dist/node_modules/lodash-es/_createSet.js +1 -1
- package/dist/node_modules/lodash-es/_getAllKeys.js +2 -2
- package/dist/node_modules/lodash-es/_getAllKeysIn.js +1 -1
- package/dist/node_modules/lodash-es/findIndex.js +2 -2
- package/dist/node_modules/lodash-es/flatMap.js +1 -1
- package/dist/node_modules/lodash-es/forEach.js +1 -1
- package/dist/node_modules/lodash-es/max.js +1 -1
- package/dist/node_modules/lodash-es/min.js +1 -1
- package/dist/node_modules/lodash-es/minBy.js +1 -1
- package/dist/node_modules/lodash-es/reduce.js +1 -1
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-Q4EWVU46.js +691 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{blockDiagram-VD42YOAC.js → blockDiagram-DXYQGD6D.js} +183 -157
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{c4Diagram-YG6GDRKO.js → c4Diagram-AHTNJAMY.js} +65 -63
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-336JU56O.js +47 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-EXTU4WIE.js → chunk-426QAEUC.js} +1 -1
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-B4BG7PRW.js → chunk-4TB4RGXK.js} +533 -393
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5FUZZQ4R.js +3638 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-S3R3BYOJ.js → chunk-5PVQY5BW.js} +1 -1
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-HN2XXSSU.js → chunk-BSJP7CBP.js} +20 -14
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-QN33PNHL.js → chunk-EDXVE4YY.js} +1 -1
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ENJZ2VHE.js +568 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ICPOFSXX.js +2320 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-DI55MBZ5.js → chunk-OYMX7WX6.js} +35 -21
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-U2HBQHQK.js +272 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-ATLVNIR6.js → chunk-X2U36JSP.js} +1 -1
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-MI3HLSF2.js → chunk-XPW4576I.js} +11 -7
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-YZCP3GAM.js +60 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ZZ45TVLE.js +30 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{classDiagram-2ON5EDUG.js → classDiagram-6PBFFD2Q.js} +12 -11
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{classDiagram-v2-WZHVMYZB.js → classDiagram-v2-HSJHXN6E.js} +12 -11
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{dagre-6UL2VRFP.js → dagre-KV5264BT.js} +8 -8
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-5BDNPKRD.js +99 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-PSM6KHXK.js → diagram-G4DWMVQ6.js} +20 -23
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-MMDJMWI5.js +211 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-S2PKOQOG.js → diagram-TYMM5635.js} +4 -4
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{erDiagram-Q2GNP2WA.js → erDiagram-SMLLAGMA.js} +486 -386
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{flowDiagram-NV44I4VS.js → flowDiagram-DWJPFMVM.js} +915 -898
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{ganttDiagram-JELNMOA3.js → ganttDiagram-T4ZO3ILL.js} +59 -29
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-UUTBAWPF.js +728 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-42DDH7IO.js +17 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/ishikawaDiagram-UXIWVN3A.js +714 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{journeyDiagram-XKPGCS4Q.js → journeyDiagram-VCZTEJTY.js} +32 -32
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{kanban-definition-3W4ZIXB7.js → kanban-definition-6JOO6SKY.js} +13 -9
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{mindmap-definition-VGOIOE7T.js → mindmap-definition-QFDTVHPH.js} +105 -59
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-DEJITSTG.js +117 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{quadrantDiagram-AYHSOK5B.js → quadrantDiagram-34T5L4WZ.js} +1 -1
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{requirementDiagram-UZGBJVZJ.js → requirementDiagram-MS252O5E.js} +49 -19
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{sankeyDiagram-TZEHDZUN.js → sankeyDiagram-XADWPNL6.js} +1 -1
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-FGHM5R23.js +4155 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{stateDiagram-FKZM4ZOC.js → stateDiagram-FHFEXIEX.js} +12 -12
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{stateDiagram-v2-4FDKWEC3.js → stateDiagram-v2-QKLJ7IA2.js} +11 -11
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-GMOUNBTQ.js +1071 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/vennDiagram-DHZGUBPP.js +959 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-NUSXRM2D.js +574 -0
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/{xychartDiagram-PRI3JC2R.js → xychartDiagram-5P7HB3ND.js} +38 -35
- package/dist/node_modules/mermaid/dist/mermaid.core.js +235 -192
- package/dist/node_modules/nanoid/url-alphabet/index.js +1 -1
- package/dist/node_modules/remend/dist/index.js +333 -264
- package/dist/node_modules/streamdown/dist/chunk-BO2N2NFS.js +2498 -0
- package/dist/node_modules/streamdown/dist/highlighted-body-OFNGDK62.js +35 -0
- package/dist/node_modules/streamdown/dist/index.js +1 -1
- package/dist/node_modules/streamdown/dist/mermaid-GHXKKRXX.js +3 -0
- package/dist/node_modules/streamdown/node_modules/marked/lib/marked.esm.js +672 -667
- package/dist/pages/DashboardPage.js +3 -3
- package/package.json +2 -2
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/chunk-TCCFYFTB.js +0 -787
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/info-VBDWY6EO.js +0 -3
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/packet-DYOGHKS2.js +0 -3
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/pie-VRWISCQL.js +0 -3
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/radar-ZZBFDIW7.js +0 -3
- package/dist/node_modules/@mermaid-js/parser/dist/chunks/mermaid-parser.core/treemap-GDKQZRPO.js +0 -3
- package/dist/node_modules/chevrotain/lib/src/parse/parser/traits/context_assist.js +0 -16
- package/dist/node_modules/lodash-es/_arrayAggregator.js +0 -9
- package/dist/node_modules/lodash-es/_arrayEvery.js +0 -6
- package/dist/node_modules/lodash-es/_baseAggregator.js +0 -8
- package/dist/node_modules/lodash-es/_baseDifference.js +0 -22
- package/dist/node_modules/lodash-es/_baseEvery.js +0 -9
- package/dist/node_modules/lodash-es/_baseIsRegExp.js +0 -8
- package/dist/node_modules/lodash-es/_baseSlice.js +0 -8
- package/dist/node_modules/lodash-es/_baseSome.js +0 -9
- package/dist/node_modules/lodash-es/_createAggregator.js +0 -12
- package/dist/node_modules/lodash-es/assign.js +0 -14
- package/dist/node_modules/lodash-es/compact.js +0 -9
- package/dist/node_modules/lodash-es/difference.js +0 -8
- package/dist/node_modules/lodash-es/drop.js +0 -8
- package/dist/node_modules/lodash-es/dropRight.js +0 -8
- package/dist/node_modules/lodash-es/every.js +0 -11
- package/dist/node_modules/lodash-es/groupBy.js +0 -6
- package/dist/node_modules/lodash-es/head.js +0 -5
- package/dist/node_modules/lodash-es/includes.js +0 -13
- package/dist/node_modules/lodash-es/indexOf.js +0 -11
- package/dist/node_modules/lodash-es/isRegExp.js +0 -5
- package/dist/node_modules/lodash-es/negate.js +0 -16
- package/dist/node_modules/lodash-es/pickBy.js +0 -15
- package/dist/node_modules/lodash-es/reject.js +0 -10
- package/dist/node_modules/lodash-es/some.js +0 -11
- package/dist/node_modules/lodash-es/uniq.js +0 -6
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/architectureDiagram-VXUJARFQ.js +0 -673
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ABZYJK2D.js +0 -1547
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-CVBHYZKI.js +0 -10
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-DR5Q36YT.js +0 -135
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JA3XYJ7Z.js +0 -247
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-JZLCHNYA.js +0 -3516
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-N4CR4FBY.js +0 -39
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-QXUST7PY.js +0 -497
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/chunk-TZMSLE5B.js +0 -55
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.js +0 -211
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/gitGraphDiagram-V2S2FVAM.js +0 -621
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/infoDiagram-HS3SLOUP.js +0 -18
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/pieDiagram-ADFJNKIX.js +0 -117
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-WL72ISMW.js +0 -3560
- package/dist/node_modules/mermaid/dist/chunks/mermaid.core/timeline-definition-IT6M3QCI.js +0 -833
- package/dist/node_modules/streamdown/dist/chunk-RLXIAIE6.js +0 -2189
- package/dist/node_modules/streamdown/dist/highlighted-body-B3W2YXNL.js +0 -33
- package/dist/node_modules/streamdown/dist/mermaid-3ZIDBTTL.js +0 -3
|
@@ -1,21 +1,3 @@
|
|
|
1
|
-
import isEmpty_default from "../../../../../lodash-es/isEmpty.js";
|
|
2
|
-
import flatten_default from "../../../../../lodash-es/flatten.js";
|
|
3
|
-
import clone_default from "../../../../../lodash-es/clone.js";
|
|
4
|
-
import compact_default from "../../../../../lodash-es/compact.js";
|
|
5
|
-
import difference_default from "../../../../../lodash-es/difference.js";
|
|
6
|
-
import drop_default from "../../../../../lodash-es/drop.js";
|
|
7
|
-
import dropRight_default from "../../../../../lodash-es/dropRight.js";
|
|
8
|
-
import forEach_default from "../../../../../lodash-es/forEach.js";
|
|
9
|
-
import filter_default from "../../../../../lodash-es/filter.js";
|
|
10
|
-
import head_default from "../../../../../lodash-es/head.js";
|
|
11
|
-
import map_default from "../../../../../lodash-es/map.js";
|
|
12
|
-
import flatMap_default from "../../../../../lodash-es/flatMap.js";
|
|
13
|
-
import groupBy_default from "../../../../../lodash-es/groupBy.js";
|
|
14
|
-
import values_default from "../../../../../lodash-es/values.js";
|
|
15
|
-
import includes_default from "../../../../../lodash-es/includes.js";
|
|
16
|
-
import pickBy_default from "../../../../../lodash-es/pickBy.js";
|
|
17
|
-
import reduce_default from "../../../../../lodash-es/reduce.js";
|
|
18
|
-
import reject_default from "../../../../../lodash-es/reject.js";
|
|
19
1
|
import { Alternation, Alternative, NonTerminal, Option, Repetition, RepetitionMandatory, RepetitionMandatoryWithSeparator, RepetitionWithSeparator, Terminal } from "../../../../../@chevrotain/gast/lib/src/model.js";
|
|
20
2
|
import { GAstVisitor } from "../../../../../@chevrotain/gast/lib/src/visitor.js";
|
|
21
3
|
import { getProductionDslName, isOptionalProd } from "../../../../../@chevrotain/gast/lib/src/helpers.js";
|
|
@@ -23,277 +5,271 @@ import { tokenStructuredMatcher } from "../../scan/tokens.js";
|
|
|
23
5
|
import { nextPossibleTokensAfter } from "./interpreter.js";
|
|
24
6
|
import { containsPath, getLookaheadPathsForOptionalProd, getLookaheadPathsForOr, getProdType, isStrictPrefixOfPath } from "./lookahead.js";
|
|
25
7
|
import { ParserDefinitionErrorType } from "../parser/parser.js";
|
|
26
|
-
function validateLookahead(
|
|
27
|
-
return
|
|
28
|
-
rules:
|
|
29
|
-
tokenTypes:
|
|
30
|
-
grammarName:
|
|
31
|
-
})
|
|
8
|
+
function validateLookahead(a) {
|
|
9
|
+
return a.lookaheadStrategy.validate({
|
|
10
|
+
rules: a.rules,
|
|
11
|
+
tokenTypes: a.tokenTypes,
|
|
12
|
+
grammarName: a.grammarName
|
|
13
|
+
}).map((a) => Object.assign({ type: ParserDefinitionErrorType.CUSTOM_LOOKAHEAD_VALIDATION }, a));
|
|
32
14
|
}
|
|
33
|
-
function validateGrammar(
|
|
34
|
-
let
|
|
35
|
-
return
|
|
15
|
+
function validateGrammar(a, D, O, k) {
|
|
16
|
+
let A = a.flatMap((a) => validateDuplicateProductions(a, O)), j = checkTerminalAndNoneTerminalsNameSpace(a, D, O), M = a.flatMap((a) => validateTooManyAlts(a, O)), N = a.flatMap((D) => validateRuleDoesNotAlreadyExist(D, a, k, O));
|
|
17
|
+
return A.concat(j, M, N);
|
|
36
18
|
}
|
|
37
|
-
function validateDuplicateProductions(
|
|
38
|
-
let
|
|
39
|
-
|
|
40
|
-
let
|
|
41
|
-
return
|
|
42
|
-
let
|
|
43
|
-
message:
|
|
19
|
+
function validateDuplicateProductions(a, D) {
|
|
20
|
+
let O = new OccurrenceValidationCollector();
|
|
21
|
+
a.accept(O);
|
|
22
|
+
let k = O.allProductions, A = Object.groupBy(k, identifyProductionForDuplicates), j = Object.fromEntries(Object.entries(A).filter(([a, D]) => D.length > 1));
|
|
23
|
+
return Object.values(j).map((O) => {
|
|
24
|
+
let k = O[0], A = D.buildDuplicateFoundError(a, O), j = getProductionDslName(k), M = {
|
|
25
|
+
message: A,
|
|
44
26
|
type: ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,
|
|
45
|
-
ruleName:
|
|
46
|
-
dslName:
|
|
47
|
-
occurrence:
|
|
48
|
-
},
|
|
49
|
-
return
|
|
27
|
+
ruleName: a.name,
|
|
28
|
+
dslName: j,
|
|
29
|
+
occurrence: k.idx
|
|
30
|
+
}, N = getExtraProductionArgument(k);
|
|
31
|
+
return N && (M.parameter = N), M;
|
|
50
32
|
});
|
|
51
33
|
}
|
|
52
|
-
function identifyProductionForDuplicates(
|
|
53
|
-
return `${getProductionDslName(
|
|
34
|
+
function identifyProductionForDuplicates(a) {
|
|
35
|
+
return `${getProductionDslName(a)}_#_${a.idx}_#_${getExtraProductionArgument(a)}`;
|
|
54
36
|
}
|
|
55
|
-
function getExtraProductionArgument(
|
|
56
|
-
return
|
|
37
|
+
function getExtraProductionArgument(a) {
|
|
38
|
+
return a instanceof Terminal ? a.terminalType.name : a instanceof NonTerminal ? a.nonTerminalName : "";
|
|
57
39
|
}
|
|
58
40
|
var OccurrenceValidationCollector = class extends GAstVisitor {
|
|
59
41
|
constructor() {
|
|
60
42
|
super(...arguments), this.allProductions = [];
|
|
61
43
|
}
|
|
62
|
-
visitNonTerminal(
|
|
63
|
-
this.allProductions.push(
|
|
44
|
+
visitNonTerminal(a) {
|
|
45
|
+
this.allProductions.push(a);
|
|
64
46
|
}
|
|
65
|
-
visitOption(
|
|
66
|
-
this.allProductions.push(
|
|
47
|
+
visitOption(a) {
|
|
48
|
+
this.allProductions.push(a);
|
|
67
49
|
}
|
|
68
|
-
visitRepetitionWithSeparator(
|
|
69
|
-
this.allProductions.push(
|
|
50
|
+
visitRepetitionWithSeparator(a) {
|
|
51
|
+
this.allProductions.push(a);
|
|
70
52
|
}
|
|
71
|
-
visitRepetitionMandatory(
|
|
72
|
-
this.allProductions.push(
|
|
53
|
+
visitRepetitionMandatory(a) {
|
|
54
|
+
this.allProductions.push(a);
|
|
73
55
|
}
|
|
74
|
-
visitRepetitionMandatoryWithSeparator(
|
|
75
|
-
this.allProductions.push(
|
|
56
|
+
visitRepetitionMandatoryWithSeparator(a) {
|
|
57
|
+
this.allProductions.push(a);
|
|
76
58
|
}
|
|
77
|
-
visitRepetition(
|
|
78
|
-
this.allProductions.push(
|
|
59
|
+
visitRepetition(a) {
|
|
60
|
+
this.allProductions.push(a);
|
|
79
61
|
}
|
|
80
|
-
visitAlternation(
|
|
81
|
-
this.allProductions.push(
|
|
62
|
+
visitAlternation(a) {
|
|
63
|
+
this.allProductions.push(a);
|
|
82
64
|
}
|
|
83
|
-
visitTerminal(
|
|
84
|
-
this.allProductions.push(
|
|
65
|
+
visitTerminal(a) {
|
|
66
|
+
this.allProductions.push(a);
|
|
85
67
|
}
|
|
86
68
|
};
|
|
87
|
-
function validateRuleDoesNotAlreadyExist(
|
|
88
|
-
let
|
|
89
|
-
if (
|
|
90
|
-
let
|
|
91
|
-
topLevelRule:
|
|
92
|
-
grammarName:
|
|
69
|
+
function validateRuleDoesNotAlreadyExist(a, D, O, k) {
|
|
70
|
+
let A = [];
|
|
71
|
+
if (D.reduce((D, O) => O.name === a.name ? D + 1 : D, 0) > 1) {
|
|
72
|
+
let D = k.buildDuplicateRuleNameError({
|
|
73
|
+
topLevelRule: a,
|
|
74
|
+
grammarName: O
|
|
93
75
|
});
|
|
94
|
-
|
|
95
|
-
message:
|
|
76
|
+
A.push({
|
|
77
|
+
message: D,
|
|
96
78
|
type: ParserDefinitionErrorType.DUPLICATE_RULE_NAME,
|
|
97
|
-
ruleName:
|
|
79
|
+
ruleName: a.name
|
|
98
80
|
});
|
|
99
81
|
}
|
|
100
|
-
return
|
|
82
|
+
return A;
|
|
101
83
|
}
|
|
102
|
-
function validateRuleIsOverridden(
|
|
103
|
-
let
|
|
104
|
-
return
|
|
105
|
-
message:
|
|
84
|
+
function validateRuleIsOverridden(a, D, O) {
|
|
85
|
+
let k = [], A;
|
|
86
|
+
return D.includes(a) || (A = `Invalid rule override, rule: ->${a}<- cannot be overridden in the grammar: ->${O}<-as it is not defined in any of the super grammars `, k.push({
|
|
87
|
+
message: A,
|
|
106
88
|
type: ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,
|
|
107
|
-
ruleName:
|
|
108
|
-
})),
|
|
89
|
+
ruleName: a
|
|
90
|
+
})), k;
|
|
109
91
|
}
|
|
110
|
-
function validateNoLeftRecursion(
|
|
111
|
-
let
|
|
112
|
-
if (
|
|
92
|
+
function validateNoLeftRecursion(a, D, O, k = []) {
|
|
93
|
+
let A = [], j = getFirstNoneTerminal(D.definition);
|
|
94
|
+
if (j.length === 0) return [];
|
|
113
95
|
{
|
|
114
|
-
let
|
|
115
|
-
|
|
116
|
-
message:
|
|
117
|
-
topLevelRule:
|
|
118
|
-
leftRecursionPath:
|
|
96
|
+
let D = a.name;
|
|
97
|
+
j.includes(a) && A.push({
|
|
98
|
+
message: O.buildLeftRecursionError({
|
|
99
|
+
topLevelRule: a,
|
|
100
|
+
leftRecursionPath: k
|
|
119
101
|
}),
|
|
120
102
|
type: ParserDefinitionErrorType.LEFT_RECURSION,
|
|
121
|
-
ruleName:
|
|
103
|
+
ruleName: D
|
|
122
104
|
});
|
|
123
|
-
let
|
|
124
|
-
let
|
|
125
|
-
return
|
|
105
|
+
let M = k.concat([a]), N = j.filter((a) => !M.includes(a)).flatMap((D) => {
|
|
106
|
+
let A = [...k];
|
|
107
|
+
return A.push(D), validateNoLeftRecursion(a, D, O, A);
|
|
126
108
|
});
|
|
127
|
-
return
|
|
109
|
+
return A.concat(N);
|
|
128
110
|
}
|
|
129
111
|
}
|
|
130
|
-
function getFirstNoneTerminal(
|
|
131
|
-
let
|
|
132
|
-
if (
|
|
133
|
-
let
|
|
112
|
+
function getFirstNoneTerminal(P) {
|
|
113
|
+
let F = [];
|
|
114
|
+
if (P.length === 0) return F;
|
|
115
|
+
let I = P[0];
|
|
134
116
|
/* istanbul ignore else */
|
|
135
|
-
if (
|
|
136
|
-
else if (
|
|
137
|
-
else if (
|
|
138
|
-
else if (!(
|
|
139
|
-
let
|
|
140
|
-
if (
|
|
141
|
-
let
|
|
142
|
-
return
|
|
143
|
-
} else return
|
|
117
|
+
if (I instanceof NonTerminal) F.push(I.referencedRule);
|
|
118
|
+
else if (I instanceof Alternative || I instanceof Option || I instanceof RepetitionMandatory || I instanceof RepetitionMandatoryWithSeparator || I instanceof RepetitionWithSeparator || I instanceof Repetition) F = F.concat(getFirstNoneTerminal(I.definition));
|
|
119
|
+
else if (I instanceof Alternation) F = I.definition.map((a) => getFirstNoneTerminal(a.definition)).flat();
|
|
120
|
+
else if (!(I instanceof Terminal)) throw Error("non exhaustive match");
|
|
121
|
+
let L = isOptionalProd(I), R = P.length > 1;
|
|
122
|
+
if (L && R) {
|
|
123
|
+
let a = P.slice(1);
|
|
124
|
+
return F.concat(getFirstNoneTerminal(a));
|
|
125
|
+
} else return F;
|
|
144
126
|
}
|
|
145
127
|
var OrCollector = class extends GAstVisitor {
|
|
146
128
|
constructor() {
|
|
147
129
|
super(...arguments), this.alternations = [];
|
|
148
130
|
}
|
|
149
|
-
visitAlternation(
|
|
150
|
-
this.alternations.push(
|
|
131
|
+
visitAlternation(a) {
|
|
132
|
+
this.alternations.push(a);
|
|
151
133
|
}
|
|
152
134
|
};
|
|
153
|
-
function validateEmptyOrAlternative(
|
|
154
|
-
let
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
alternation: K,
|
|
161
|
-
emptyChoiceIdx: J
|
|
135
|
+
function validateEmptyOrAlternative(a, D) {
|
|
136
|
+
let O = new OrCollector();
|
|
137
|
+
return a.accept(O), O.alternations.flatMap((O) => O.definition.slice(0, -1).flatMap((k, A) => nextPossibleTokensAfter([k], [], tokenStructuredMatcher, 1).length === 0 ? [{
|
|
138
|
+
message: D.buildEmptyAlternationError({
|
|
139
|
+
topLevelRule: a,
|
|
140
|
+
alternation: O,
|
|
141
|
+
emptyChoiceIdx: A
|
|
162
142
|
}),
|
|
163
143
|
type: ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,
|
|
164
|
-
ruleName:
|
|
165
|
-
occurrence:
|
|
166
|
-
alternative:
|
|
144
|
+
ruleName: a.name,
|
|
145
|
+
occurrence: O.idx,
|
|
146
|
+
alternative: A + 1
|
|
167
147
|
}] : []));
|
|
168
148
|
}
|
|
169
|
-
function validateAmbiguousAlternationAlternatives(
|
|
170
|
-
let
|
|
171
|
-
|
|
172
|
-
let
|
|
173
|
-
return
|
|
174
|
-
let
|
|
175
|
-
return
|
|
149
|
+
function validateAmbiguousAlternationAlternatives(a, D, O) {
|
|
150
|
+
let k = new OrCollector();
|
|
151
|
+
a.accept(k);
|
|
152
|
+
let A = k.alternations;
|
|
153
|
+
return A = A.filter((a) => a.ignoreAmbiguities !== !0), A.flatMap((k) => {
|
|
154
|
+
let A = k.idx, j = getLookaheadPathsForOr(A, a, k.maxLookahead || D, k), M = checkAlternativesAmbiguities(j, k, a, O), N = checkPrefixAlternativesAmbiguities(j, k, a, O);
|
|
155
|
+
return M.concat(N);
|
|
176
156
|
});
|
|
177
157
|
}
|
|
178
158
|
var RepetitionCollector = class extends GAstVisitor {
|
|
179
159
|
constructor() {
|
|
180
160
|
super(...arguments), this.allProductions = [];
|
|
181
161
|
}
|
|
182
|
-
visitRepetitionWithSeparator(
|
|
183
|
-
this.allProductions.push(
|
|
162
|
+
visitRepetitionWithSeparator(a) {
|
|
163
|
+
this.allProductions.push(a);
|
|
184
164
|
}
|
|
185
|
-
visitRepetitionMandatory(
|
|
186
|
-
this.allProductions.push(
|
|
165
|
+
visitRepetitionMandatory(a) {
|
|
166
|
+
this.allProductions.push(a);
|
|
187
167
|
}
|
|
188
|
-
visitRepetitionMandatoryWithSeparator(
|
|
189
|
-
this.allProductions.push(
|
|
168
|
+
visitRepetitionMandatoryWithSeparator(a) {
|
|
169
|
+
this.allProductions.push(a);
|
|
190
170
|
}
|
|
191
|
-
visitRepetition(
|
|
192
|
-
this.allProductions.push(
|
|
171
|
+
visitRepetition(a) {
|
|
172
|
+
this.allProductions.push(a);
|
|
193
173
|
}
|
|
194
174
|
};
|
|
195
|
-
function validateTooManyAlts(
|
|
196
|
-
let
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
topLevelRule: h,
|
|
202
|
-
alternation: G
|
|
175
|
+
function validateTooManyAlts(a, D) {
|
|
176
|
+
let O = new OrCollector();
|
|
177
|
+
return a.accept(O), O.alternations.flatMap((O) => O.definition.length > 255 ? [{
|
|
178
|
+
message: D.buildTooManyAlternativesError({
|
|
179
|
+
topLevelRule: a,
|
|
180
|
+
alternation: O
|
|
203
181
|
}),
|
|
204
182
|
type: ParserDefinitionErrorType.TOO_MANY_ALTS,
|
|
205
|
-
ruleName:
|
|
206
|
-
occurrence:
|
|
183
|
+
ruleName: a.name,
|
|
184
|
+
occurrence: O.idx
|
|
207
185
|
}] : []);
|
|
208
186
|
}
|
|
209
|
-
function validateSomeNonEmptyLookaheadPath(
|
|
210
|
-
let
|
|
211
|
-
return
|
|
212
|
-
let
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
topLevelRule: G,
|
|
220
|
-
repetition: Y
|
|
187
|
+
function validateSomeNonEmptyLookaheadPath(a, D, O) {
|
|
188
|
+
let k = [];
|
|
189
|
+
return a.forEach((a) => {
|
|
190
|
+
let A = new RepetitionCollector();
|
|
191
|
+
a.accept(A), A.allProductions.forEach((A) => {
|
|
192
|
+
let j = getProdType(A), M = A.maxLookahead || D, N = A.idx;
|
|
193
|
+
if (getLookaheadPathsForOptionalProd(N, a, j, M)[0].flat().length === 0) {
|
|
194
|
+
let D = O.buildEmptyRepetitionError({
|
|
195
|
+
topLevelRule: a,
|
|
196
|
+
repetition: A
|
|
221
197
|
});
|
|
222
|
-
|
|
223
|
-
message:
|
|
198
|
+
k.push({
|
|
199
|
+
message: D,
|
|
224
200
|
type: ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,
|
|
225
|
-
ruleName:
|
|
201
|
+
ruleName: a.name
|
|
226
202
|
});
|
|
227
203
|
}
|
|
228
204
|
});
|
|
229
|
-
}),
|
|
205
|
+
}), k;
|
|
230
206
|
}
|
|
231
|
-
function checkAlternativesAmbiguities(
|
|
232
|
-
let
|
|
233
|
-
return
|
|
234
|
-
let
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}),
|
|
238
|
-
alts:
|
|
239
|
-
path:
|
|
207
|
+
function checkAlternativesAmbiguities(a, D, O, k) {
|
|
208
|
+
let A = [];
|
|
209
|
+
return a.reduce((O, k, j) => (D.definition[j].ignoreAmbiguities === !0 || k.forEach((k) => {
|
|
210
|
+
let M = [j];
|
|
211
|
+
a.forEach((a, O) => {
|
|
212
|
+
j !== O && containsPath(a, k) && D.definition[O].ignoreAmbiguities !== !0 && M.push(O);
|
|
213
|
+
}), M.length > 1 && !containsPath(A, k) && (A.push(k), O.push({
|
|
214
|
+
alts: M,
|
|
215
|
+
path: k
|
|
240
216
|
}));
|
|
241
|
-
}),
|
|
242
|
-
let
|
|
217
|
+
}), O), []).map((a) => {
|
|
218
|
+
let A = a.alts.map((a) => a + 1);
|
|
243
219
|
return {
|
|
244
|
-
message:
|
|
245
|
-
topLevelRule:
|
|
246
|
-
alternation:
|
|
247
|
-
ambiguityIndices:
|
|
248
|
-
prefixPath:
|
|
220
|
+
message: k.buildAlternationAmbiguityError({
|
|
221
|
+
topLevelRule: O,
|
|
222
|
+
alternation: D,
|
|
223
|
+
ambiguityIndices: A,
|
|
224
|
+
prefixPath: a.path
|
|
249
225
|
}),
|
|
250
226
|
type: ParserDefinitionErrorType.AMBIGUOUS_ALTS,
|
|
251
|
-
ruleName:
|
|
252
|
-
occurrence:
|
|
253
|
-
alternatives:
|
|
227
|
+
ruleName: O.name,
|
|
228
|
+
occurrence: D.idx,
|
|
229
|
+
alternatives: a.alts
|
|
254
230
|
};
|
|
255
231
|
});
|
|
256
232
|
}
|
|
257
|
-
function checkPrefixAlternativesAmbiguities(
|
|
258
|
-
let
|
|
259
|
-
let
|
|
260
|
-
idx:
|
|
261
|
-
path:
|
|
233
|
+
function checkPrefixAlternativesAmbiguities(a, D, O, k) {
|
|
234
|
+
let A = a.reduce((a, D, O) => {
|
|
235
|
+
let k = D.map((a) => ({
|
|
236
|
+
idx: O,
|
|
237
|
+
path: a
|
|
262
238
|
}));
|
|
263
|
-
return
|
|
239
|
+
return a.concat(k);
|
|
264
240
|
}, []);
|
|
265
|
-
return
|
|
266
|
-
if (
|
|
267
|
-
let
|
|
268
|
-
return
|
|
269
|
-
let
|
|
241
|
+
return A.flatMap((a) => {
|
|
242
|
+
if (D.definition[a.idx].ignoreAmbiguities === !0) return [];
|
|
243
|
+
let j = a.idx, M = a.path;
|
|
244
|
+
return A.filter((a) => D.definition[a.idx].ignoreAmbiguities !== !0 && a.idx < j && isStrictPrefixOfPath(a.path, M)).map((a) => {
|
|
245
|
+
let A = [a.idx + 1, j + 1], M = D.idx === 0 ? "" : D.idx;
|
|
270
246
|
return {
|
|
271
|
-
message:
|
|
272
|
-
topLevelRule:
|
|
273
|
-
alternation:
|
|
274
|
-
ambiguityIndices:
|
|
275
|
-
prefixPath:
|
|
247
|
+
message: k.buildAlternationPrefixAmbiguityError({
|
|
248
|
+
topLevelRule: O,
|
|
249
|
+
alternation: D,
|
|
250
|
+
ambiguityIndices: A,
|
|
251
|
+
prefixPath: a.path
|
|
276
252
|
}),
|
|
277
253
|
type: ParserDefinitionErrorType.AMBIGUOUS_PREFIX_ALTS,
|
|
278
|
-
ruleName:
|
|
279
|
-
occurrence:
|
|
280
|
-
alternatives:
|
|
254
|
+
ruleName: O.name,
|
|
255
|
+
occurrence: M,
|
|
256
|
+
alternatives: A
|
|
281
257
|
};
|
|
282
258
|
});
|
|
283
|
-
})
|
|
259
|
+
});
|
|
284
260
|
}
|
|
285
|
-
function checkTerminalAndNoneTerminalsNameSpace(
|
|
286
|
-
let
|
|
287
|
-
return
|
|
288
|
-
let
|
|
289
|
-
if (
|
|
290
|
-
let
|
|
291
|
-
|
|
292
|
-
message:
|
|
261
|
+
function checkTerminalAndNoneTerminalsNameSpace(a, D, O) {
|
|
262
|
+
let k = [], A = D.map((a) => a.name);
|
|
263
|
+
return a.forEach((a) => {
|
|
264
|
+
let D = a.name;
|
|
265
|
+
if (A.includes(D)) {
|
|
266
|
+
let A = O.buildNamespaceConflictError(a);
|
|
267
|
+
k.push({
|
|
268
|
+
message: A,
|
|
293
269
|
type: ParserDefinitionErrorType.CONFLICT_TOKENS_RULES_NAMESPACE,
|
|
294
|
-
ruleName:
|
|
270
|
+
ruleName: D
|
|
295
271
|
});
|
|
296
272
|
}
|
|
297
|
-
}),
|
|
273
|
+
}), k;
|
|
298
274
|
}
|
|
299
275
|
export { validateAmbiguousAlternationAlternatives, validateEmptyOrAlternative, validateGrammar, validateLookahead, validateNoLeftRecursion, validateRuleIsOverridden, validateSomeNonEmptyLookaheadPath };
|
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
import flatten_default from "../../../../../lodash-es/flatten.js";
|
|
2
|
-
import map_default from "../../../../../lodash-es/map.js";
|
|
3
|
-
import uniq_default from "../../../../../lodash-es/uniq.js";
|
|
4
1
|
import { NonTerminal, Terminal } from "../../../../../@chevrotain/gast/lib/src/model.js";
|
|
5
2
|
import { isBranchingProd, isOptionalProd, isSequenceProd } from "../../../../../@chevrotain/gast/lib/src/helpers.js";
|
|
6
|
-
function first(
|
|
3
|
+
function first(i) {
|
|
7
4
|
/* istanbul ignore else */
|
|
8
|
-
if (
|
|
9
|
-
if (
|
|
10
|
-
if (isSequenceProd(
|
|
11
|
-
if (isBranchingProd(
|
|
5
|
+
if (i instanceof NonTerminal) return first(i.referencedRule);
|
|
6
|
+
if (i instanceof Terminal) return firstForTerminal(i);
|
|
7
|
+
if (isSequenceProd(i)) return firstForSequence(i);
|
|
8
|
+
if (isBranchingProd(i)) return firstForBranching(i);
|
|
12
9
|
throw Error("non exhaustive match");
|
|
13
10
|
}
|
|
14
11
|
function firstForSequence(e) {
|
|
15
|
-
let
|
|
16
|
-
for (;
|
|
17
|
-
return
|
|
12
|
+
let n = [], r = e.definition, a = 0, o = r.length > a, s, c = !0;
|
|
13
|
+
for (; o && c;) s = r[a], c = isOptionalProd(s), n = n.concat(first(s)), a += 1, o = r.length > a;
|
|
14
|
+
return [...new Set(n)];
|
|
18
15
|
}
|
|
19
|
-
function firstForBranching(
|
|
20
|
-
|
|
16
|
+
function firstForBranching(e) {
|
|
17
|
+
let n = e.definition.map((e) => first(e));
|
|
18
|
+
return [...new Set(n.flat())];
|
|
21
19
|
}
|
|
22
20
|
function firstForTerminal(e) {
|
|
23
21
|
return [e.terminalType];
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import assign_default from "../../../../../lodash-es/assign.js";
|
|
2
|
-
import forEach_default from "../../../../../lodash-es/forEach.js";
|
|
3
1
|
import { Alternative } from "../../../../../@chevrotain/gast/lib/src/model.js";
|
|
4
2
|
import { RestWalker } from "./rest.js";
|
|
5
3
|
import { first } from "./first.js";
|
|
@@ -11,19 +9,20 @@ var ResyncFollowsWalker = class extends RestWalker {
|
|
|
11
9
|
startWalking() {
|
|
12
10
|
return this.walk(this.topProd), this.follows;
|
|
13
11
|
}
|
|
14
|
-
walkTerminal(e,
|
|
15
|
-
walkProdRef(
|
|
16
|
-
let
|
|
17
|
-
this.follows[
|
|
12
|
+
walkTerminal(e, n, r) {}
|
|
13
|
+
walkProdRef(n, i, a) {
|
|
14
|
+
let o = buildBetweenProdsFollowPrefix(n.referencedRule, n.idx) + this.topProd.name, s = first(new Alternative({ definition: i.concat(a) }));
|
|
15
|
+
this.follows[o] = s;
|
|
18
16
|
}
|
|
19
17
|
};
|
|
20
|
-
function computeAllProdsFollows(
|
|
21
|
-
let
|
|
22
|
-
return
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
function computeAllProdsFollows(e) {
|
|
19
|
+
let n = {};
|
|
20
|
+
return e.forEach((e) => {
|
|
21
|
+
let r = new ResyncFollowsWalker(e).startWalking();
|
|
22
|
+
Object.assign(n, r);
|
|
23
|
+
}), n;
|
|
25
24
|
}
|
|
26
|
-
function buildBetweenProdsFollowPrefix(e,
|
|
27
|
-
return e.name +
|
|
25
|
+
function buildBetweenProdsFollowPrefix(e, n) {
|
|
26
|
+
return e.name + n + IN;
|
|
28
27
|
}
|
|
29
28
|
export { computeAllProdsFollows };
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import defaults_default from "../../../../../../lodash-es/defaults.js";
|
|
2
|
-
import forEach_default from "../../../../../../lodash-es/forEach.js";
|
|
3
1
|
import { defaultGrammarResolverErrorProvider, defaultGrammarValidatorErrorProvider } from "../../errors_public.js";
|
|
4
2
|
import { resolveGrammar } from "../resolver.js";
|
|
5
3
|
import { validateGrammar } from "../checks.js";
|
|
6
|
-
function resolveGrammar$1(
|
|
7
|
-
let
|
|
8
|
-
return
|
|
9
|
-
|
|
10
|
-
}), resolveGrammar(
|
|
4
|
+
function resolveGrammar$1(n) {
|
|
5
|
+
let i = Object.assign({ errMsgProvider: defaultGrammarResolverErrorProvider }, n), a = {};
|
|
6
|
+
return n.rules.forEach((e) => {
|
|
7
|
+
a[e.name] = e;
|
|
8
|
+
}), resolveGrammar(a, i.errMsgProvider);
|
|
11
9
|
}
|
|
12
|
-
function validateGrammar$1(
|
|
13
|
-
|
|
10
|
+
function validateGrammar$1(e) {
|
|
11
|
+
let r = e.errMsgProvider ?? defaultGrammarValidatorErrorProvider;
|
|
12
|
+
return validateGrammar(e.rules, e.tokenTypes, r, e.grammarName);
|
|
14
13
|
}
|
|
15
14
|
export { resolveGrammar$1 as resolveGrammar, validateGrammar$1 as validateGrammar };
|