@mpeggroup/mpeg-sdl-parser 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +337 -0
- package/bun.lock +65 -0
- package/dist/index.js +11829 -0
- package/grammar/sdl.ebnf.grammar +399 -0
- package/grammar/sdl.lezer.grammar +629 -0
- package/index.ts +83 -0
- package/package.json +61 -0
- package/src/analyser/checks/check-array-definition.ts +90 -0
- package/src/analyser/checks/check-array-element-access.ts +31 -0
- package/src/analyser/checks/check-class-declaration.ts +417 -0
- package/src/analyser/checks/check-computed-array-definition.ts +44 -0
- package/src/analyser/checks/check-computed-elementary-type-definition.ts +45 -0
- package/src/analyser/checks/check-elementary-type-definition.ts +167 -0
- package/src/analyser/checks/check-expression-binary.ts +242 -0
- package/src/analyser/checks/check-expression-lengthof.ts +34 -0
- package/src/analyser/checks/check-expression-unary.ts +166 -0
- package/src/analyser/checks/check-identifier.ts +71 -0
- package/src/analyser/checks/check-if-statement.ts +164 -0
- package/src/analyser/checks/check-map-declaration.ts +180 -0
- package/src/analyser/checks/check-map-definition.ts +118 -0
- package/src/analyser/checks/check-number-literal-float.ts +28 -0
- package/src/analyser/checks/check-parameter-list.ts +42 -0
- package/src/analyser/checks/check-specification.ts +53 -0
- package/src/analyser/checks/check-switch-statement.ts +206 -0
- package/src/analyser/checks/check.ts +20 -0
- package/src/analyser/create-sdl-analyser.ts +85 -0
- package/src/analyser/node-handler/abstract-analysis-node-handler.ts +626 -0
- package/src/analyser/node-handler/build-symbol-table-node-handler.ts +649 -0
- package/src/analyser/node-handler/specific-check-node-handler.ts +46 -0
- package/src/analyser/node-handler/validate-scope-node-handler.ts +290 -0
- package/src/analyser/node-handler/validate-type-node-handler.ts +497 -0
- package/src/analyser/sdl-analyser.ts +119 -0
- package/src/analyser/symbol-table.ts +388 -0
- package/src/analyser/util/symbol-table-utils.ts +458 -0
- package/src/analyser/util/type-utils.ts +238 -0
- package/src/ast/build/consume/consume-abstract-node.ts +199 -0
- package/src/ast/build/consume/consume-ast-node.ts +400 -0
- package/src/ast/build/consume/consume-primitive.ts +59 -0
- package/src/ast/build/consume/consume-trivia.ts +96 -0
- package/src/ast/build/consume/consume-white-space-and-missing-errors.ts +27 -0
- package/src/ast/build/node/build-aggregate-output-value.ts +57 -0
- package/src/ast/build/node/build-aligned-modifier.ts +99 -0
- package/src/ast/build/node/build-array-definition.ts +131 -0
- package/src/ast/build/node/build-array-element-access.ts +45 -0
- package/src/ast/build/node/build-base64-string-literal.ts +41 -0
- package/src/ast/build/node/build-binary-expression.ts +113 -0
- package/src/ast/build/node/build-binary-literal.ts +37 -0
- package/src/ast/build/node/build-bit-modifier.ts +86 -0
- package/src/ast/build/node/build-case-clause.ts +101 -0
- package/src/ast/build/node/build-class-declaration.ts +124 -0
- package/src/ast/build/node/build-class-definition.ts +56 -0
- package/src/ast/build/node/build-class-id-range.ts +32 -0
- package/src/ast/build/node/build-class-id.ts +19 -0
- package/src/ast/build/node/build-class-member-access.ts +27 -0
- package/src/ast/build/node/build-compound-statement.ts +33 -0
- package/src/ast/build/node/build-computed-array-definition.ts +53 -0
- package/src/ast/build/node/build-computed-elementary-type-definition.ts +100 -0
- package/src/ast/build/node/build-decimal-literal.ts +15 -0
- package/src/ast/build/node/build-default-clause.ts +76 -0
- package/src/ast/build/node/build-do-statement.ts +71 -0
- package/src/ast/build/node/build-elementary-type-definition.ts +164 -0
- package/src/ast/build/node/build-elementary-type-output-value.ts +25 -0
- package/src/ast/build/node/build-elementary-type.ts +36 -0
- package/src/ast/build/node/build-expandable-modifier.ts +68 -0
- package/src/ast/build/node/build-explicit-array-dimension.ts +37 -0
- package/src/ast/build/node/build-expression-statement.ts +31 -0
- package/src/ast/build/node/build-extended-class-id-range.ts +27 -0
- package/src/ast/build/node/build-extends-modifier.ts +41 -0
- package/src/ast/build/node/build-floating-point-literal.ts +15 -0
- package/src/ast/build/node/build-for-statement.ts +117 -0
- package/src/ast/build/node/build-hexadecimal-literal.ts +38 -0
- package/src/ast/build/node/build-identifier.ts +8 -0
- package/src/ast/build/node/build-if-statement.ts +82 -0
- package/src/ast/build/node/build-implicit-array-dimension.ts +78 -0
- package/src/ast/build/node/build-integer-literal.ts +15 -0
- package/src/ast/build/node/build-length-attribute.ts +48 -0
- package/src/ast/build/node/build-lengthof-expression.ts +45 -0
- package/src/ast/build/node/build-map-declaration.ts +110 -0
- package/src/ast/build/node/build-map-definition.ts +103 -0
- package/src/ast/build/node/build-map-entry.ts +33 -0
- package/src/ast/build/node/build-missing-error.ts +10 -0
- package/src/ast/build/node/build-multiple-character-literal.ts +65 -0
- package/src/ast/build/node/build-parameter-list.ts +50 -0
- package/src/ast/build/node/build-parameter-value-list.ts +54 -0
- package/src/ast/build/node/build-parameter.ts +47 -0
- package/src/ast/build/node/build-partial-array-dimension.ts +55 -0
- package/src/ast/build/node/build-specification.ts +24 -0
- package/src/ast/build/node/build-string-definition.ts +106 -0
- package/src/ast/build/node/build-switch-statement.ts +84 -0
- package/src/ast/build/node/build-token.ts +26 -0
- package/src/ast/build/node/build-unary-expression.ts +109 -0
- package/src/ast/build/node/build-unexpected-error.ts +14 -0
- package/src/ast/build/node/build-utf-string-literal.ts +110 -0
- package/src/ast/build/node/build-while-statement.ts +55 -0
- package/src/ast/build/util/array-dimension-kind-by-token-type-id-map.ts +167 -0
- package/src/ast/build/util/binary-operator-kind-by-token-type-id-map.ts +152 -0
- package/src/ast/build/util/build-context.ts +36 -0
- package/src/ast/build/util/class-id-kind-by-token-type-id-map.ts +160 -0
- package/src/ast/build/util/expression-kind-by-token-type-id-map.ts +168 -0
- package/src/ast/build/util/fetch-node.ts +433 -0
- package/src/ast/build/util/node-kind-by-token-type-id-map.ts +202 -0
- package/src/ast/build/util/statement-kind-by-token-type-id-map.ts +210 -0
- package/src/ast/build/util/string-literal-kind-by-token-type-id-map.ts +162 -0
- package/src/ast/build/util/token-kind-by-token-type-id-map.ts +337 -0
- package/src/ast/build-ast.ts +114 -0
- package/src/ast/node/abstract-array-definition.ts +17 -0
- package/src/ast/node/abstract-array-dimension.ts +20 -0
- package/src/ast/node/abstract-class-id.ts +13 -0
- package/src/ast/node/abstract-composite-node.ts +58 -0
- package/src/ast/node/abstract-elementary-type-definition.ts +29 -0
- package/src/ast/node/abstract-expression.ts +13 -0
- package/src/ast/node/abstract-leaf-node.ts +10 -0
- package/src/ast/node/abstract-node.ts +16 -0
- package/src/ast/node/abstract-statement.ts +13 -0
- package/src/ast/node/aggregate-output-value.ts +28 -0
- package/src/ast/node/aligned-modifier.ts +21 -0
- package/src/ast/node/array-definition.ts +44 -0
- package/src/ast/node/array-element-access.ts +24 -0
- package/src/ast/node/binary-expression.ts +28 -0
- package/src/ast/node/bit-modifier.ts +24 -0
- package/src/ast/node/case-clause.ts +30 -0
- package/src/ast/node/class-declaration.ts +39 -0
- package/src/ast/node/class-definition.ts +23 -0
- package/src/ast/node/class-id-range.ts +17 -0
- package/src/ast/node/class-id.ts +14 -0
- package/src/ast/node/class-member-access.ts +19 -0
- package/src/ast/node/compound-statement.ts +19 -0
- package/src/ast/node/computed-array-definition.ts +26 -0
- package/src/ast/node/computed-elementary-type-definition.ts +34 -0
- package/src/ast/node/default-clause.ts +26 -0
- package/src/ast/node/do-statement.ts +28 -0
- package/src/ast/node/elementary-type-definition.ts +49 -0
- package/src/ast/node/elementary-type-output-value.ts +19 -0
- package/src/ast/node/elementary-type.ts +18 -0
- package/src/ast/node/enum/array-dimension-kind.ts +11 -0
- package/src/ast/node/enum/binary-operator-kind.ts +41 -0
- package/src/ast/node/enum/class-id-kind.ts +12 -0
- package/src/ast/node/enum/elementary-type-kind.ts +13 -0
- package/src/ast/node/enum/expression-kind.ts +11 -0
- package/src/ast/node/enum/node-kind.ts +57 -0
- package/src/ast/node/enum/number-literal-kind.ts +17 -0
- package/src/ast/node/enum/statement-kind.ts +37 -0
- package/src/ast/node/enum/string-literal-kind.ts +13 -0
- package/src/ast/node/enum/string-variable-kind.ts +25 -0
- package/src/ast/node/enum/token-kind.ts +87 -0
- package/src/ast/node/expandable-modifier.ts +21 -0
- package/src/ast/node/explicit-array-dimension.ts +26 -0
- package/src/ast/node/expression-statement.ts +23 -0
- package/src/ast/node/extended-class-id-range.ts +20 -0
- package/src/ast/node/extends-modifier.ts +21 -0
- package/src/ast/node/for-statement.ts +29 -0
- package/src/ast/node/identifier.ts +12 -0
- package/src/ast/node/if-statement.ts +28 -0
- package/src/ast/node/implicit-array-dimension.ts +34 -0
- package/src/ast/node/length-attribute.ts +24 -0
- package/src/ast/node/length-of-expression.ts +21 -0
- package/src/ast/node/map-declaration.ts +34 -0
- package/src/ast/node/map-definition.ts +27 -0
- package/src/ast/node/map-entry.ts +18 -0
- package/src/ast/node/missing-error.ts +9 -0
- package/src/ast/node/number-literal.ts +18 -0
- package/src/ast/node/parameter-list.ts +25 -0
- package/src/ast/node/parameter-value-list.ts +29 -0
- package/src/ast/node/parameter.ts +20 -0
- package/src/ast/node/partial-array-dimension.ts +28 -0
- package/src/ast/node/specification.ts +21 -0
- package/src/ast/node/string-definition.ts +28 -0
- package/src/ast/node/string-literal.ts +21 -0
- package/src/ast/node/switch-statement.ts +32 -0
- package/src/ast/node/token.ts +20 -0
- package/src/ast/node/trivia.ts +13 -0
- package/src/ast/node/unary-expression.ts +31 -0
- package/src/ast/node/unexpected-error.ts +12 -0
- package/src/ast/node/while-statement.ts +26 -0
- package/src/ast/util/types.ts +138 -0
- package/src/ast/visitor/node-handler.ts +15 -0
- package/src/ast/visitor/node-visitor.ts +13 -0
- package/src/ast/visitor/traversing-visitor.ts +69 -0
- package/src/completion/completion-rules.ts +447 -0
- package/src/completion/get-potential-syntactic-tokens.ts +54 -0
- package/src/completion/get-potential-token-type-ids.ts +116 -0
- package/src/completion/hierarchical-map.ts +43 -0
- package/src/completion/rules/abstract-types.ts +174 -0
- package/src/completion/rules/aggregate-output-value-rules.ts +48 -0
- package/src/completion/rules/aligned-modifier-rules.ts +45 -0
- package/src/completion/rules/array-definition-rules.ts +87 -0
- package/src/completion/rules/array-element-access-rules.ts +22 -0
- package/src/completion/rules/assignment-expression-rules.ts +19 -0
- package/src/completion/rules/binary-expression-rules.ts +23 -0
- package/src/completion/rules/bit-modifier-rules.ts +25 -0
- package/src/completion/rules/case-clause-rules.ts +39 -0
- package/src/completion/rules/class-declaration-rules.ts +81 -0
- package/src/completion/rules/class-definition-rules.ts +28 -0
- package/src/completion/rules/class-id-range-rules.ts +17 -0
- package/src/completion/rules/class-id-rules.ts +9 -0
- package/src/completion/rules/class-member-access-rules.ts +7 -0
- package/src/completion/rules/compound-statement-rules.ts +25 -0
- package/src/completion/rules/computed-array-definition-rules.ts +25 -0
- package/src/completion/rules/computed-elementary-type-rules.ts +44 -0
- package/src/completion/rules/default-clause-rules.ts +23 -0
- package/src/completion/rules/do-statement-rules.ts +38 -0
- package/src/completion/rules/elementary-type-definition-rules.ts +62 -0
- package/src/completion/rules/elementary-type-output-value-rules.ts +13 -0
- package/src/completion/rules/elementary-type-rules.ts +18 -0
- package/src/completion/rules/expandable-modifier-rules.ts +21 -0
- package/src/completion/rules/explicit-array-dimension-rules.ts +22 -0
- package/src/completion/rules/expression-statement-rules.ts +22 -0
- package/src/completion/rules/extended-class-id-range-rules.ts +17 -0
- package/src/completion/rules/extends-modifier-rules.ts +17 -0
- package/src/completion/rules/for-statement-rules.ts +51 -0
- package/src/completion/rules/if-statement-rules.ts +42 -0
- package/src/completion/rules/implicit-array-dimension-rules.ts +21 -0
- package/src/completion/rules/length-attribute-rules.ts +19 -0
- package/src/completion/rules/lengthof-expression-rules.ts +23 -0
- package/src/completion/rules/map-declaration-rules.ts +45 -0
- package/src/completion/rules/map-definition-rules.ts +46 -0
- package/src/completion/rules/map-entry-rules.ts +17 -0
- package/src/completion/rules/parameter-list-rules.ts +21 -0
- package/src/completion/rules/parameter-rules.ts +17 -0
- package/src/completion/rules/parameter-value-list-rules.ts +27 -0
- package/src/completion/rules/partial-array-dimension-rules.ts +33 -0
- package/src/completion/rules/specification-rules.ts +37 -0
- package/src/completion/rules/string-definition-rules.ts +103 -0
- package/src/completion/rules/switch-statement-rules.ts +50 -0
- package/src/completion/rules/unary-expression-rules.ts +41 -0
- package/src/completion/rules/utf-string-literal-rules.ts +17 -0
- package/src/completion/rules/while-statement-rules.ts +38 -0
- package/src/lezer/context-tracker.ts +45 -0
- package/src/lezer/create-sdl-parser.ts +88 -0
- package/src/lezer/create-syntax-error-from-text-and-cursor.ts +110 -0
- package/src/lezer/create-syntax-error-from-text-and-position.ts +36 -0
- package/src/lezer/parser.terms.ts +129 -0
- package/src/lezer/parser.ts +63 -0
- package/src/lezer/props/fold-node-prop-source.ts +27 -0
- package/src/lezer/props/primitive-node-prop-source.ts +19 -0
- package/src/lezer/props/style-tags-node-prop-source.ts +188 -0
- package/src/lezer/props/syntactic-token-node-prop-source.ts +298 -0
- package/src/lezer/sdl-string-input.ts +46 -0
- package/src/location.ts +13 -0
- package/src/parse-helper.ts +93 -0
- package/src/prettier/prettier-plugin-sdl.ts +89 -0
- package/src/prettier/print-abstract-array-dimension.ts +84 -0
- package/src/prettier/print-abstract-class-id.ts +53 -0
- package/src/prettier/print-abstract-expression.ts +168 -0
- package/src/prettier/print-abstract-node.ts +224 -0
- package/src/prettier/print-abstract-statement.ts +124 -0
- package/src/prettier/print-aggregate-output-value.ts +35 -0
- package/src/prettier/print-aligned-modifier.ts +50 -0
- package/src/prettier/print-array-definition.ts +95 -0
- package/src/prettier/print-array-element-access.ts +14 -0
- package/src/prettier/print-bit-modifier.ts +48 -0
- package/src/prettier/print-case-clause.ts +58 -0
- package/src/prettier/print-class-declaration.ts +99 -0
- package/src/prettier/print-class-definition.ts +44 -0
- package/src/prettier/print-class-member-access.ts +13 -0
- package/src/prettier/print-computed-array-definition.ts +33 -0
- package/src/prettier/print-computed-elementary-type-definition.ts +60 -0
- package/src/prettier/print-default-clause.ts +39 -0
- package/src/prettier/print-do-statement.ts +31 -0
- package/src/prettier/print-elementary-type-definition.ts +108 -0
- package/src/prettier/print-elementary-type-output-value.ts +13 -0
- package/src/prettier/print-elementary-type.ts +28 -0
- package/src/prettier/print-expandable-modifier.ts +41 -0
- package/src/prettier/print-extends-modifier.ts +29 -0
- package/src/prettier/print-for-statement.ts +64 -0
- package/src/prettier/print-identifier.ts +10 -0
- package/src/prettier/print-if-statement.ts +76 -0
- package/src/prettier/print-length-attribute.ts +14 -0
- package/src/prettier/print-map-declaration.ts +75 -0
- package/src/prettier/print-map-definition.ts +67 -0
- package/src/prettier/print-map-entry.ts +22 -0
- package/src/prettier/print-number-literal.ts +84 -0
- package/src/prettier/print-parameter-list.ts +20 -0
- package/src/prettier/print-parameter-value-list.ts +20 -0
- package/src/prettier/print-parameter.ts +34 -0
- package/src/prettier/print-specification.ts +51 -0
- package/src/prettier/print-string-definition.ts +114 -0
- package/src/prettier/print-string-literal.ts +57 -0
- package/src/prettier/print-switch-statement.ts +46 -0
- package/src/prettier/print-token.ts +7 -0
- package/src/prettier/print-unexpected-error.ts +10 -0
- package/src/prettier/print-while-statement.ts +26 -0
- package/src/prettier/util/print-utils.ts +607 -0
- package/src/prettier/util/types.ts +40 -0
- package/src/scanner-error.ts +65 -0
- package/src/util/location-utils.ts +16 -0
- package/src/util/logger.ts +165 -0
- package/tests/analyser/create-sdl-analyser.test.ts +54 -0
- package/tests/analyser/get-sdl-analyser-test-scenarios.ts +80 -0
- package/tests/analyser/sdl-analyser-scenarios.test.ts +67 -0
- package/tests/analyser/semantic-error-scenarios.test.ts +40 -0
- package/tests/analyser/symbol-table.test.ts +188 -0
- package/tests/analyser/test-cases/array_definition.txt +50 -0
- package/tests/analyser/test-cases/class_declaration.txt +112 -0
- package/tests/analyser/test-cases/class_definition.txt +60 -0
- package/tests/analyser/test-cases/compound_statement.txt +63 -0
- package/tests/analyser/test-cases/computed_array_definition.txt +12 -0
- package/tests/analyser/test-cases/computed_elementary_type_definition.txt +39 -0
- package/tests/analyser/test-cases/do_statement.txt +16 -0
- package/tests/analyser/test-cases/elementary_type_definition.txt +58 -0
- package/tests/analyser/test-cases/expression.txt +159 -0
- package/tests/analyser/test-cases/for_statement.txt +55 -0
- package/tests/analyser/test-cases/if_statement.txt +57 -0
- package/tests/analyser/test-cases/map_declaration.txt +89 -0
- package/tests/analyser/test-cases/map_definition.txt +35 -0
- package/tests/analyser/test-cases/number_literal.txt +31 -0
- package/tests/analyser/test-cases/parameter_list.txt +16 -0
- package/tests/analyser/test-cases/scopes.txt +239 -0
- package/tests/analyser/test-cases/specification.txt +28 -0
- package/tests/analyser/test-cases/string_definition.txt +40 -0
- package/tests/analyser/test-cases/switch_statement.txt +96 -0
- package/tests/analyser/test-cases/while_statement.txt +16 -0
- package/tests/analyser/util/symbol-table-utils.test.ts +65 -0
- package/tests/ast/__snapshots__/build-ast.test.ts.snap +38897 -0
- package/tests/ast/build-ast.test.ts +463 -0
- package/tests/ast/visitor/traversing-visitor.test.ts +36 -0
- package/tests/completion/get-potential-syntactic-tokens.test.ts +89 -0
- package/tests/completion/get-potential-token-type-ids.test.ts +76 -0
- package/tests/completion/test-potential-syntactic-tokens-scenario.ts +24 -0
- package/tests/completion/test-potential-token-type-ids-scenario.ts +33 -0
- package/tests/fixtures/history-recording-node-handler.ts +232 -0
- package/tests/lezer/create-parse-error-from-text-and-position.test.ts +129 -0
- package/tests/lezer/create-sdl-parser.test.ts +15 -0
- package/tests/lezer/sdl-parser-scenarios.test.ts +24 -0
- package/tests/lezer/sdl-string-input.test.ts +12 -0
- package/tests/lezer/syntax-error-scenarios.test.ts +114 -0
- package/tests/lezer/test-cases/array_definition.txt +109 -0
- package/tests/lezer/test-cases/class_declaration.txt +141 -0
- package/tests/lezer/test-cases/class_definition.txt +89 -0
- package/tests/lezer/test-cases/comment.txt +335 -0
- package/tests/lezer/test-cases/compound_statement.txt +109 -0
- package/tests/lezer/test-cases/computed_array_definition.txt +33 -0
- package/tests/lezer/test-cases/computed_elementary_type_definition.txt +59 -0
- package/tests/lezer/test-cases/do_statement.txt +48 -0
- package/tests/lezer/test-cases/elementary_type_definition.txt +158 -0
- package/tests/lezer/test-cases/expression.txt +1203 -0
- package/tests/lezer/test-cases/for_statement.txt +183 -0
- package/tests/lezer/test-cases/if_statement.txt +183 -0
- package/tests/lezer/test-cases/invalid.txt +97 -0
- package/tests/lezer/test-cases/map_declaration.txt +152 -0
- package/tests/lezer/test-cases/map_definition.txt +59 -0
- package/tests/lezer/test-cases/number_literal.txt +273 -0
- package/tests/lezer/test-cases/specification.txt +38 -0
- package/tests/lezer/test-cases/string_definition.txt +263 -0
- package/tests/lezer/test-cases/string_literal.txt +303 -0
- package/tests/lezer/test-cases/switch_statement.txt +407 -0
- package/tests/lezer/test-cases/while_statement.txt +45 -0
- package/tests/parse-helper.test.ts +361 -0
- package/tests/prettier/__snapshots__/prettier-plugin-sdl.test.ts.snap +127 -0
- package/tests/prettier/prettier-plugin-sdl.test.ts +58 -0
- package/tests/prettier/print-array.test.ts +29 -0
- package/tests/prettier/print-class.test.ts +15 -0
- package/tests/prettier/print-do.test.ts +25 -0
- package/tests/prettier/print-elementary-type.test.ts +62 -0
- package/tests/prettier/print-error.test.ts +40 -0
- package/tests/prettier/print-expression.test.ts +17 -0
- package/tests/prettier/print-for.test.ts +23 -0
- package/tests/prettier/print-if.test.ts +71 -0
- package/tests/prettier/print-number-literal.test.ts +28 -0
- package/tests/prettier/print-specification.test.ts +54 -0
- package/tests/prettier/print-string.test.ts +36 -0
- package/tests/prettier/print-switch.test.ts +69 -0
- package/tests/prettier/print-while.test.ts +23 -0
- package/tests/prettier/test-prettier-scenario.ts +41 -0
- package/tests/prettier/util/print-utils.test.ts +665 -0
- package/tests/prettier/util/types.test.ts +38 -0
- package/tests/sample-specifications/invalid.sdl +24 -0
- package/tests/sample-specifications/prettified-invalid.sdl +28 -0
- package/tests/sample-specifications/prettified-various-elements-narrow.sdl +97 -0
- package/tests/sample-specifications/prettified-various-elements.sdl +90 -0
- package/tests/sample-specifications/sample.sdl +24 -0
- package/tests/sample-specifications/various-elements.sdl +88 -0
- package/tests/util/logger.test.ts +36 -0
- package/tsconfig.json +29 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// This file was generated by lezer-generator. You probably shouldn't edit it.
|
|
2
|
+
import { LRParser } from "@lezer/lr";
|
|
3
|
+
import { defaultContextTracker } from "./context-tracker.ts";
|
|
4
|
+
const spec_Identifier = {
|
|
5
|
+
__proto__: null,
|
|
6
|
+
aligned: 16,
|
|
7
|
+
expandable: 34,
|
|
8
|
+
abstract: 38,
|
|
9
|
+
class: 40,
|
|
10
|
+
int: 48,
|
|
11
|
+
unsigned: 50,
|
|
12
|
+
float: 52,
|
|
13
|
+
bit: 54,
|
|
14
|
+
extends: 60,
|
|
15
|
+
lengthof: 122,
|
|
16
|
+
if: 158,
|
|
17
|
+
else: 160,
|
|
18
|
+
switch: 164,
|
|
19
|
+
case: 168,
|
|
20
|
+
break: 170,
|
|
21
|
+
default: 176,
|
|
22
|
+
for: 180,
|
|
23
|
+
computed: 186,
|
|
24
|
+
const: 188,
|
|
25
|
+
do: 192,
|
|
26
|
+
while: 194,
|
|
27
|
+
reserved: 202,
|
|
28
|
+
legacy: 204,
|
|
29
|
+
base64string: 216,
|
|
30
|
+
utf16string: 224,
|
|
31
|
+
utf8string: 232,
|
|
32
|
+
utf8list: 234,
|
|
33
|
+
utfstring: 236,
|
|
34
|
+
map: 250,
|
|
35
|
+
};
|
|
36
|
+
export const parser = LRParser.deserialize({
|
|
37
|
+
version: 14,
|
|
38
|
+
states:
|
|
39
|
+
"!.fQYQPOOOOQO'#FR'#FRQYQPOOOnQPO'#CbO!lQPO'#ClO!wQPO'#E[O#YQPO'#CaO#_QPO'#CaO#dQPO'#CaO#lQPO'#CaO#wQPO'#E|OOQO-E9P-E9PO#|QQO,58|O$_QPO,59WOOQO'#Cs'#CsO$dQPO'#CsO$iQPO,5:vO$nQPO,5:vO$|QPO,58{O%[QPO,58{O%aQPO,58{O%fQPO,58{O%nQPO,5;hOOQO'#Fe'#FeO%sQPO1G.hO%xQPO1G.rOOQO,59_,59_O%}QPO1G0bO&VQPO1G0bO&[QPO'#CqO&mQPO'#CyO&rQPO'#DsO(zQPO1G.gO)RQPO1G.gO)WQPO1G.gO)`QPO1G.gO)kQPO1G.gO)yQPO1G.gO*OQPO1G.gO*TQPO1G1SOOQO7+$S7+$SOOQO7+$^7+$^OOQO7+%|7+%|O*fQPO7+%|O+ZQPO7+%|O+cQPO'#CrO+hQPO'#FfO+pQPO,59]O+uQPO,59eO,QQPO,5:_O-mQQO'#EcOOQO'#Fq'#FqO-tQSO'#FTO-|QQO'#DnOOQO'#Fr'#FrO*fQPO'#D`OOQO'#D`'#D`O/vQWO'#D`O*fQPO'#D`OOQO'#Fh'#FhO1dQPO'#D{O1kQPO'#EcO1pQPO'#EdO2gQPO'#EkOOQO'#Fv'#FvO2nQPO'#EkOOQO'#Fu'#FuOOQO'#FX'#FXO2sQPO7+$RO2zQPO'#DjO3PQPO'#D|O3UQPO'#EPO!wQPO'#E[O3ZQPO'#EXO3`QPO'#E_O3eQPO'#EbO3jQPO'#EkO3qQPO'#EkO4OQPO'#EkO4]QPO'#FwO4bQPO'#FzO4gQPO'#F}O4lQPO'#GOOOQO7+$R7+$RO2sQPO7+$RO4qQPO7+$RO4vQPO7+$RO5OQPO7+$RO5ZQPO7+$RO5iQPO7+$RO5nQPO7+&nO7WQQO<<IhOOQO<<Ih<<IhO*fQPO<<IhOOQO,59^,59^O&[QPO'#FSO7_QPO,5<QOOQO1G.w1G.wO*fQPO'#C{OOQO1G/P1G/PO7gQPO1G/yOOQO'#Fi'#FiOOQO'#Fj'#FjOOQO'#Fk'#FkOOQO'#Fl'#FlOOQO'#Fm'#FmOOQO'#Fn'#FnOOQO'#Fo'#FoO*fQPO,59hO*fQPO,59hO*fQPO,59hO*fQPO,59hO*fQPO,59hO*fQPO,59hO*fQPO,59hO*fQPO'#DcO7lQPO'#DdOOQO'#Fp'#FpOOQO,59z,59zO*fQPO,5:uOOQO,5:},5:}OOQO'#FU'#FUO7qQSO'#DpO7yQPO,5;oOOQO-E9R-E9RO8OQQO,59zO9uQPO,5;TO9zQPO,5;UO:VQQO,59zOOQO,5:g,5:gO:^QPO,5:gO*fQPO'#EgO:eQPO,5;OO:mQPO,5;OO:rQPO,5;VO:wQPO,5;cOOQO,5;V,5;VOOQO-E9V-E9VOOQO<<Gm<<GmO*fQPO,5:UO*fQPO,5:hO*fQPO,5:kO:|QPO,5:vO;RQPO,5:sO;]QPO,5:yO*fQPO,5:|O:mQPO,5;OO1xQPO,5;VO;bQPO,5;OO;jQPO,5;VO3jQPO,5;VO;qQPO,5;cO;yQPO,5;UO<RQPO,5<cO<ZQPO,5<fO<cQPO,5<iO<kQPO,5<jO<sQPO<<GmO<sQPO<<GmO<zQPO<<GmO=PQPO<<GmO=XQPO<<GmO=dQPO<<GmO=rQPO<<JYOOQOAN?SAN?SO=wQQOAN?SOOQO,5;n,5;nOOQO-E9Q-E9QO>OQQO'#FgO>YQPO,59gO>_QPO7+%eO@QQQO1G/SO@_QQO1G/SOB]QQO1G/SOBgQQO1G/SODbQQO1G/SODlQQO1G/SOFTQQO1G/SOFqQQO,59}OOQO,5:O,5:OOFxQQO1G0aOOQO-E9S-E9SOOQO1G1Z1G1ZOGSQPO1G0oOOQO1G0p1G0pOGXQPO1G0pOHRQPO'#ExOOQO'#F_'#F_OH]QPO1G0}OH`QPO1G0}OOQO1G/f1G/fOOQO1G0R1G0ROHeQQO,5;ROHlQPO1G0jOHwQPO1G0jOH|QPO1G0jOOQO1G0q1G0qOIUQPO1G0}OIZQQO1G/pOIbQQO1G0SOIiQQO1G0VOIpQPO1G0bO,VQQO'#EZOI{QPO1G0_OJQQPO1G0_OJXQPO1G0eOJ^QQO1G0hOJeQPO1G0jO:mQPO1G0jOJmQPO1G0qOJrQPO1G0oO:mQPO1G0jOJwQPO1G0}O1xQPO1G0qOJ|QPO1G0pOKXQPO1G1}OK^QQO1G2QOK^QQO1G2TOK^QQO1G2UOOQOAN=XAN=XOKcQPOAN=XOKcQPOAN=XOKjQPOAN=XOKoQPOAN=XOKwQPOAN=XOLSQPOAN?tOOQOG24nG24nO*fQPO'#FVOLXQPO,5<ROOQO1G/R1G/ROLaQPO<<IPOOQO1G/i1G/iOLiQPO7+&ZOOQO7+&[7+&[OLnQQO,5;eOLuQQO,5;dOOQO,5;d,5;dO*fQPO,5;fON`QPO'#EyOOQO-E9]-E9]OOQO7+&i7+&iOOQO1G0m1G0mOOQO7+&U7+&UO*fQPO7+&UONgQPO7+&iONjQPO7+&iONoQPO7+&UONwQPO7+&UO! SQPO7+&UOOQO7+%[7+%[O&wQPO7+%nO! XQPO7+%qO*fQPO'#EyOOQO'#F`'#F`O! ^QPO7+&mO! fQPO7+%yO! mQQO7+%yO! tQPO7+%yO*fQPO7+&PO&wQPO7+&SO! {QPO7+&UOOQO7+&]7+&]O!!TQPO7+&ZO!!YQPO7+&UOIUQPO7+&iO:mQPO7+&UO!!bQPO7+&]O!!gQPO7+&[O!!lQ`O'#FZO!!wQPO'#EmOOQO7+'i7+'iO!#PQPO'#F]O!#UQQO'#EqOOQO7+'l7+'lOOQO7+'o7+'oOOQO7+'p7+'pOOQOG22sG22sO!#^QPOG22sO!#^QPOG22sO!#eQPOG22sO!#jQPOG22sO!#rQPO'#FOO!#wQPO'#GPO!$PQPOG25`O!$UQQO,5;qOOQO-E9T-E9TOOQO'#Dw'#DwO!$`QPO'#FtO!$kQPO'#FtOOQO'#Dv'#DvOOQOAN>kAN>kO!$sQPOAN>kO!$xQPO<<IuOOQO1G1P1G1PO!$}QPO1G1OO!%SQQO1G1QO!%ZQQO<<IpOOQO<<JT<<JTOOQO<<Ip<<IpO*fQPO<<IpO!%eQPO<<JTO!%hQPO<<JTO!%mQPO<<IpO!%uQPO<<IYO!(XQPO<<I]OOQO-E9^-E9^OOQO<<JX<<JXO!(dQQO<<IeO!(kQPO<<IeO!(rQQO<<IeO&wQPO<<IeO!(yQPO<<IeO!)OQQO<<IkOOQO<<In<<InO!)VQPO<<IpO!)[QPO<<IuO!)aQPO<<IpO!)lQPO<<IpOOQO<<Iw<<IwOOQO<<Iv<<IvOOQO'#F['#F[O!)tQ`O'#EoO!*PQ`O'#EoO!*XQPO,5;uOOQO-E9X-E9XO!*^QpO,5;wOOQO-E9Z-E9ZOOQOLD(_LD(_O!*iQPOLD(_O!*iQPOLD(_O!*pQPOLD(_O!*uQPO,5;jOLSQPO'#FbO!*zQPO,5<kOOQOLD*zLD*zOLdQPO,5:dOLdQPO'#FWO!+SQPO,5<`OLdQPOG24VOOQOAN?aAN?aO!+[QPO7+&jO!+aQPO7+&lOOQOAN?[AN?[O*fQPOAN?[O!+fQQOAN?[OOQOAN?oAN?oO*fQPOAN?[O&wQPOAN>tOOQO'#FY'#FYO!+pQPOAN>wO!+{QPO'#ERO!,aQPO'#EVOOQOAN>wAN>wO!,fQPOAN>wO!,kQPOAN?PO!,rQQOAN?PO&wQPOAN?PO!,yQPOAN?POOQOAN?PAN?PO!-OQPOAN?VO!-TQPOAN?[O!-]QPOAN?aO!-bQPOAN?oO!-eQPOAN?oO!-jQPOAN?[OOQO-E9Y-E9YO!-oQ`O,5;ZOOQO,5;Z,5;ZOOQO1G1a1G1aOOQO'#F^'#F^O!-wQpO'#EsO!.SQPO1G1cOOQO!$'Ky!$'KyO!.XQPO!$'KyO!.XQPO!$'KyO!.`QPO'#FPOOQO1G1U1G1UOOQO,5;|,5;|OOQO-E9`-E9`OOQO1G0O1G0OO!.sQPO,5;rOOQO,5;r,5;rOOQO-E9U-E9UOOQOLD)qLD)qOOQO<<JU<<JUOOQO<<JW<<JWO!/OQQOG24vOOQOG24vG24vO*fQPOG24vO!/VQQOG24vOOQOG24`G24`OOQO-E9W-E9WOOQOG24cG24cO!/aQPOG24cO!/fQPO'#DnO!/tQPO,5:mO!/yQPO,5:qO!0QQQOG24kO&wQPOG24kO!0XQPOG24kOOQOG24kG24kOOQOG24qG24qO*fQPOG24vOOQOG24{G24{OOQOG25ZG25ZO!0^QPOG24vOOQO1G0u1G0uOOQO-E9[-E9[OOQO7+&}7+&}OOQO!)9Ae!)9AeO!0fQPO!)9AeO:mQPO'#FQOOQO'#GR'#GRO!0mQPO'#GQO!0uQPO,5;kOOQOLD*bLD*bO!0zQQOLD*bO*fQPOLD*bOOQOLD)}LD)}O!1RQPO1G0XO!2wQPO1G0]O&wQPOLD*VOOQOLD*VLD*VO!3OQQOLD*bO*fQPOLD*bOOQO!.K7P!.K7POOQO,5;l,5;lO!.`QPO'#FaO!3YQPO,5<lOOQO1G1V1G1VOOQO!$'M|!$'M|O!3bQQO!$'M|O!3iQPO7+%sO!3sQPO7+%sO!4TQPO7+%sOOQO!$'Mq!$'MqO*fQPO!$'M|O!4YQQO!$'M|OOQO,5;{,5;{OOQO-E9_-E9_OOQO!)9Ch!)9ChO!4dQPO<<I_O!4nQPO<<I_O!4sQPO<<I_OOQO<<I_<<I_O!4xQQO!)9ChO*fQPO!)9ChO!5PQPOAN>yO!5UQPOAN>yOOQOAN>yAN>yOOQO!.K9S!.K9SO!5ZQQO!.K9SO!5bQPOG24eOOQOG24eG24eOOQO!4/.n!4/.nOOQOLD*PLD*P",
|
|
40
|
+
stateData:
|
|
41
|
+
"!5u~OPOSQOS~OWROaSOcVOdUO#PTO#qYO~OX[OaUXcUXdUXVUXhUXiUXjUXkUX#`UX#dUX#hUX#iUX#jUX~OX]Oc`Xd`X~Oh^Oi_Oj^Ok^O#QaO~OVbO~OdcO~OcdOdcO~OaSOcdOdcO~OVfO~OYgOZgO[gO]gO^gO~ObiO~OhjO~OVkO~Oh^Oi_Oj^Ok^O~OXmOnnO!hoO!npO~OVtO~OduO~OcvOduO~OXwO~O_xO~O_yO~O!i{O!xzO~OV|O~OV}Oh^Oi_Oj^Ok^O~OV!QO~Ok!RO~OV!ZOWROX![Ob!WOh^Oi_Oj^Ok^O![!TO!]!TO!_!gO!`!WO!a!WO!c!UO!e!WO!f!WO!n!^O!q!hO!t!iO!|!kO#P!jO#Q!nO#S!lO#T!mO#X!oO#Y!pO#`!qO#d!rO#h!sO#i!sO#j!tO~OS!uO~P&wO!n!vO~O!hoO!n!vO~OnnO!hoO!n!vO~OXmOnnO!hoO!n!vO~OV!zO~Od!{O~OV!|Oh^Oi_Oj^Ok^O~OV!YOX![Ob!WO![!TO!]!TO!_!gO!`!WO!a!WO!c!UO!e!WO!f!WO~O!i#PO!x#OO~OV#QO~Ol#RO_$YX~O_#TO~OX#UO!hma!nma~OX#WO~Oq#XOr#XOs#XOt#YOu#YOv#ZOw#ZOx#[Oy#[Oz#[O{#[O|#]O}#]O!O#^O!P#^O!Q#_O!R#_O!U#gO!X#hO!Y#iO!Z#iO!i#kO~O!x#lO~P,VO$g#mO!c!dP~O!c!UOq!bXr!bXs!bXt!bXu!bXv!bXw!bXx!bXy!bXz!bX{!bX|!bX}!bX!O!bX!P!bX!Q!bX!R!bX!U!bX!X!bX!Y!bX!Z!bX!i!bX!x!bX_!bXl!bX!T!bX!m!bX~OV#sOq!SXr!SXs!SXt!SXu!SXv!SXw!SXx!SXy!SXz!SX{!SX|!SX}!SX!O!SX!P!SX!Q!SX!R!SX!U!SX!X!SX!Y!SX!Z!SX!i!SX!x!SX~OS#uO~P&wO!x#lO~OX#wOx#rO~Oh^Oi_Oj^Ok^O#`!qO#d!rO#h!sO#i!sO#j!tO~OV#{O~P1xO!x#|O~OS$OO~P&wOX$PO~OX$QO~OX$RO~OX$TO~O!n!^O~OX$VO~OWRO~P1xOV$]OWRO#Q$[O~P1xOV$^OWRO#Q$[O~P1xOV$_O~OV$`O~OV$aO~OV$bO~O!n$dO~O!hoO!n$dO~OnnO!hoO!n$dO~OXmOnnO!hoO!n$dO~OV$hO~O_$iO~Oq#XOr#XOs#XOt#YOu#YOv#ZOw#ZOx#[Oy#[Oz#[O{#[O|#]O}#]O!O#^O!P#^O!Q#_O!R#_O!U#gO!X#hO!Y#iO!Z#iO~O!x$jO~P5sOl#RO_$Ya~Ob$pO~OV$yO~O$g#mO!c!dX~O!c$|O~O!U#gO!X#hO!Y#iO!Z#iOq!Sar!Sas!Sat!Sau!Sav!Saw!Sax!Say!Saz!Sa{!Sa|!Sa}!Sa!O!Sa!P!Sa!Q!Sa!R!Sa!i!Sa!x!Sa_!Sal!Sa!T!Sa!m!Sa~OV$}O~OX#UO!U%QO!x%OO~O_%UO~P5sOS%VO~P&wOV%XO#[%YO~OX#wO~O!x%[O~OV%]O~OV%aO~O!x%dO#PTO~P*fO#T%eO~OX#wOx%jO~OV%lO~P1xOV%]Ox%jO~OV%nOx%jO~O!i%oO!x$ka~O!i%pO!x$na~O!i%qO!x$qa~O!i%rO!x$ra~OS%sO~P&wO!n%uO~O!hoO!n%uO~OnnO!hoO!n%uO~OXmOnnO!hoO!n%uO~O!n%yO~O!x%zO~P5sOl%{O_$ZX~P5sO_%}O~O_&OO~O!U#gO!X#hO!Y#iO!Z#iOtpiupivpiwpixpiypizpi{pi|pi}pi!Opi!Ppi!Qpi!Rpi!ipi!xpi_pilpi!Tpi!mpi~Oqpirpispi~P>dOq#XOr#XOs#XO~P>dOq#XOr#XOs#XOt#YOu#YO!U#gO!X#hO!Y#iO!Z#iOxpiypizpi{pi|pi}pi!Opi!Ppi!Qpi!Rpi!ipi!xpi_pilpi!Tpi!mpi~Ovpiwpi~P@lOv#ZOw#ZO~P@lOq#XOr#XOs#XOt#YOu#YOv#ZOw#ZOx#[Oy#[Oz#[O{#[O!U#gO!X#hO!Y#iO!Z#iO!Opi!Ppi!Qpi!Rpi!ipi!xpi_pilpi!Tpi!mpi~O|pi}pi~PBqO|#]O}#]O~PBqOq#XOr#XOs#XOt#YOu#YOv#ZOw#ZOx#[Oy#[Oz#[O{#[O|#]O}#]O!O#^O!P#^O!U#gO!X#hO!Y#iO!Z#iO~O!Qpi!Rpi!ipi!xpi_pilpi!Tpi!mpi~PDvO!T&PO~P5sO!x!}i_!}i~P5sOz&QO~O!x&RO~OV!YOX![O!U&VO![!TO!]!TO!_!gO!`!WO!a!WO!c!UO!e!WO!f!WO~Ob&TO!T&UO~PG^O!U&WO!x&YO~O_&ZO~P5sO!U%QO!i&]O!x&[O~OV&`O~OV&aO#[&bO~O!U%QO~O_&cO~P5sO_&dO~P5sO_&eO~P5sO!U&fO!i{O!xzO~O!x&iO~O!x&kO~P*fOX&lO~O_&mO~P5sOV&`O#[&bO~O!x&oO~OV&pO~OV&rO~OX#UO!U%QO!x&RO~O#b&vO~O#f&yO~OS'OO~P&wO!n'QO~O!hoO!n'QO~OnnO!hoO!n'QO~O!`'TO~Ol%{O_$Za~OV'_Ob'YO~OV'`O~O!T'aO~P5sO!m'bOq$fXr$fXs$fXt$fXu$fXv$fXw$fXx$fXy$fXz$fX{$fX|$fX}$fX!O$fX!P$fX!Q$fX!R$fX!T$fX!U$fX!X$fX!Y$fX!Z$fX~O!U&VO~P*fO!U&WO!x'eO~O!i'gO!x'fO~O!U%QO!i'gO!x'fO~OV'jO~O!n'lO~O!U&fO!x'nO~O!x'pO~P*fO!x'pO~P5sO_'rO~P*fOV'jO#['vO~Oz'wO~OV'xO#['vO~O!x'zO~O!x'{O~O$l'|O$m(OO#b#cP~O#b&vO!x#aX~O#b(RO~O#f&yO!x#eX~OS(TO~P&wO!n(VO~O!hoO!n(VO~Ol(XO~Ol(YOS$sX~OS([O~O_#yal#ya~P5sOl(^O!m(]O!n$hX~Ol(^O!n$hX~O!i(`O~O!x(aO~Ob(bO~O!T(cO~P5sO!m(eO!x(dO~P5sO!U&WO!x(gO~O!i(hO!x(dO~O!r(iOS!pyV!pyW!pyX!pyb!pyh!pyi!pyj!pyk!py![!py!]!py!_!py!`!py!a!py!c!py!e!py!f!py!n!py!q!py!t!py!|!py#P!py#Q!py#S!py#T!py#X!py#Y!py#`!py#d!py#h!py#i!py#j!py!v!py!w!py!z!py~OS(nO!v(lO!z(mO~O!x(pO~P5sO_(rO~P*fO_(rO~P,VO_(rO~O_(uO~P5sOV(vO~OV(wO~O!U%QO!i(hO!x(dO~OV(vO#[(zO~O$l'|O$m(|O#b#cX~O$m(}O#b#cX~O#b)OO~O$o)PO$p)PO#b#gP~OS)SO~P&wO!n)UO~O!n)VO~Ol(YOS$sa~Ol(^O!n$ha~O!T)`O~O!T)aO~O!m)dO!x)cO~P5sOS)hO!v(lO!z(mO~Ob!WO!`!WO!a!WO!c!UO!e!WO!f!WO~O!h)lO~OS)hO~O_)nO~P*fO_)nO~P,VO_)nO~O!x)qO~O!i)rO!x)cO~O!x)sO~O!U&WO!x)tO~OV)uO~O$m)vO#b#ca~O$o)PO$p)PO#b#gX~O#b)xO~OS)yO~P&wOh^Oi_Oj^Ok^O!n)VO~P!+{O!m(]Ol#za!n#za~O!x*PO~P5sO!m*RO!x*PO~P5sOS*SO~O!c!UO!h!bXS!bXl!bX~O!h*TO~OS!ya~P&wO_*VO~P,VO_*VO~O!i*YO!x*PO~OS*ZO~P&wOl*]OS$tX~OS*_O~O!x*`O~P5sOV!ZOWROX![Ob!WO![!TO!]!TO!_!gO!`!WO!a!WO!c!UO!e!WO!f!WO!n*bO!q!hO!t!iO!w*dO!|!kO#P!jO#Q!nO#S!lO#T!mO#X!oO#Y!pOS!ui!v!ui!z!ui~P1xOS!yi~P&wO!m*fO!x*`O~P5sOl*]OS$ta~O!x*jO~P5sOS#uO!w*lO~P&wO!w*mOS!uq!v!uq!z!uq~P&wO!x*nO~O!m*pO!x*jO~P5sOS%VO!w*qO~P&wO!x*rO~O!x*sO~O!x*tO~P5sO!x*vO~OS*wO~O!x*xO~P5sOS*yO~O$o$g$lQrP!`!a!f!ebV!`~",
|
|
42
|
+
goto:
|
|
43
|
+
"Ib$vPPPPP$w${PPPPPPPPP%zPPPP&R&_&ePPPPP(OP(b(kPPPPPPPPPPPPPPPPP(kPP*V*VPPPPP+RPPP,mP.[PP._PP.x/O/YPP/a0TPP0TP0tPPP0xP0TP1O1{PP0TPP0T0T0TPP2sP0T0T0TP3ZP3^P3aP3jPPP0T3m3|4_0T$wP4l4r4u4y5P5V6z7Q7W7_8_8e8k8q8y9P9f9l9rPP9x9{:O:R=_>X?Q?x@oAeBY*VB|DhPFZF_G^H]PPH]PPH]H]IUIXI[TPOQSXOQ![!ap!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kQ$X!nS$Z!o!pR%m$[SWOQReXQsbQ!ytQ$g!zR%x$hQ!OmR$l#RQ`TQlaS}m#R![!`p!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kQ!|wQ#y!aQ$S!jQ$W!nS$Y!o!pS%h$X$[Q%k$ZQ&s%mT){)V*]QrbS!xstS$f!y!zS%w$g$hR'S%xQ#V!QQ%P#sR&u%n$R!]p{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%d%t%u%{&V&W&]&d&f&i&k&l&m'P'Q'g'p'r(U(V(e(h(i(p(r)T)U)d)l)n)r)z*R*T*U*V*Y*b*c*f*k*p!s#j!S!}#q#t$k$n$q$r$s$t$u$v$w$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u$R!Yp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%d%t%u%{&V&W&]&d&f&i&k&l&m'P'Q'g'p'r(U(V(e(h(i(p(r)T)U)d)l)n)r)z*R*T*U*V*Y*b*c*f*k*p$X!Wp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%d%t%u%{&V&W&]&d&f&i&k&l&m'P'Q'g'p'r(U(V(e(h(i(l(p(r)T)U)V)d)l)n)r)z*R*T*U*V*Y*]*b*c*f*k*pR#o!UQqbU!wrstU$e!x!y!zU%v$f$g$hS'R%w%xR(W'SQ'^&OR)_(`S'Z&O(`Q)Z(]R)[(^S'[&O(`R)](^![!dp!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kR$U!l!]!dp!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kT(j'l(kQ(o'lR)i(k![!_p!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kQ%c$TQ's&kQ(s'pR)o(pSPOQ![!dp!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kR%d$TQ#x!`S%Z#y$YQ%g$WQ&n%hQ&q%kQ'y&sR*[){R&x%oR(P&vQ&{%pQ&|%qR&}%rR)R(RQ%T#sU&_%X%]%nS'i&a&rR(y'xf%R#s%S%X%]%n&^&a&r'h'x(xT&g%a&hg%R#s%S%X%]%n&^&a&r'h'x(xQ'U%yR)X(YQ)W(XT)|)V*]QQORZQQ#S!OR$m#S$Q!Vp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%d%t%u%{&V&W&]&d&f&i&k&l&m'P'Q'g'p'r(U(V(e(h(i(p(r)T)U)d)l)n)r)z*R*T*U*V*Y*b*c*f*k*pS#p!V)jV)j(l)V*]Q#n!UR${#nQ%|$nR'X%|S(_'Z'[R)^(_Q!fpQ#v!^f#}!f#v$c%t'P(U)T)z*U*c*kQ$c!vQ%t$dQ'P%uQ(U'QQ)T(VQ)z)UQ*U)lQ*c*TR*k*bQ(k'lR)g(kQ&w%oR(Q&wQ'}&vR({'}U&z%p%q%rR(S&zQ)Q(RR)w)QQ%S#sW&X%S&^'h(xU&^%X%]%nS'h&a&rR(x'xQ&h%aR'm&hQ*^)}R*i*^Q(Z'UR)Y(ZRh[R!PmR$o#U![!Sp!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kQ!}{Q#q!XQ#t![Q$k#PQ$n#UQ$q#`Q$r#aQ$s#bQ$t#cQ$u#dQ$v#eQ$w#fQ$x#gQ$z#kQ%W#wQ%^$PQ%_$QQ%`$RQ%b$TQ%f$VU&S%Q&W&fQ&j%dQ'W%{Q'c&VQ'd&]Q'o&iQ'q&kQ't&lQ(f'gQ(q'pQ)b(eQ)e(hQ)m(pQ*Q)dQ*X)rQ*a*RQ*g*YQ*o*fR*u*p!o#`!S!}#t$k$n$r$s$t$u$v$w$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u!m#a!S!}#t$k$n$s$t$u$v$w$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u!k#b!S!}#t$k$n$t$u$v$w$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u!i#c!S!}#t$k$n$u$v$w$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u!g#d!S!}#t$k$n$v$w$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u!e#e!S!}#t$k$n$w$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u!c#f!S!}#t$k$n$x$z%W%^%_%`%b%f&S&j'W'c'd'o'q't(f(q)b)e)m*Q*X*a*g*o*u$R!Xp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%d%t%u%{&V&W&]&d&f&i&k&l&m'P'Q'g'p'r(U(V(e(h(i(p(r)T)U)d)l)n)r)z*R*T*U*V*Y*b*c*f*k*p$Q!Yp{!X![!^!f!v#P#U#`#a#b#c#d#e#f#g#k#v#w$P$Q$R$T$V$c$d%Q%d%t%u%{&V&W&]&d&f&i&k&l&m'P'Q'g'p'r(U(V(e(h(i(p(r)T)U)d)l)n)r)z*R*T*U*V*Y*b*c*f*k*pQ)k(lT)|)V*]T']&O(`|!ep!^!f!v#v$c$d%t%u'P'Q(U(V)T)U)l)z*T*U*b*c*kQ'k&dQ'u&mQ(t'rQ)f(iQ)p(rQ*W)nR*e*V![!cp!^!f!v#v$c$d%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kW#z!a!n!o!pU%i$X$Z$[R&t%m!m!bp!^!a!f!n!o!p!v#v$X$Z$[$c$d%m%t%u&d&m'P'Q'r(U(V(i(r)T)U)l)n)z*T*U*V*b*c*kR'V%yR*O)VQ)})VR*h*]",
|
|
44
|
+
nodeNames:
|
|
45
|
+
"⚠ Whitespace Comment Specification CloseBrace ClassDeclaration AlignedModifier Identifier aligned OpenParenthesis AlignmentBitCount8 AlignmentBitCount16 AlignmentBitCount32 AlignmentBitCount64 AlignmentBitCount128 CloseParenthesis ExpandableModifier expandable IntegerLiteral abstract class ParameterList Parameter ElementaryType int unsigned float bit Comma ExtendsModifier extends ParameterValueList BinaryExpression Multiplication Division Modulus Addition Subtraction BitwiseShiftLeft BitwiseShiftRight RelationalLessThan RelationalLessThanOrEqual RelationalGreaterThan RelationalGreaterThanOrEqual RelationalEqual RelationalNotEqual BitwiseAnd BitwiseOr LogicalAnd LogicalOr UnaryExpression CloseBracket OpenBracket ArrayElementAccess ClassMemberAccess Period PostfixIncrement PostfixDecrement UnaryPlus UnaryNegation LengthofExpression lengthof BinaryLiteral HexadecimalLiteral MultipleCharacterLiteral SingleQuote MultipleCharacterLiteralCharacters DecimalLiteral FloatingPointLiteral BitModifier Colon Assignment ExtendedClassIdRange ClassId ClassIdRange RangeOperator OpenBrace CompoundStatement IfStatement if else SwitchStatement switch CaseClause case break Semicolon DefaultClause default ForStatement for AssignmentExpression ComputedElementaryTypeDefinition computed const DoStatement do while WhileStatement ExpressionStatement ElementaryTypeDefinition reserved legacy LengthAttribute LookAhead MapDefinition ClassDefinition StringDefinition base64string Base64StringLiteral DoubleQuote Base64StringLiteralCharacters utf16string UtfStringLiteral UtfPrefix UtfStringLiteralCharacters utf8string utf8list utfstring ArrayDefinition ImplicitArrayDimension ExplicitArrayDimension PartialArrayDimension ComputedArrayDefinition MapDeclaration map MapEntry AggregateOutputValue ElementaryTypeOutputValue",
|
|
46
|
+
maxTerm: 175,
|
|
47
|
+
context: defaultContextTracker,
|
|
48
|
+
nodeProps: [
|
|
49
|
+
["openedBy", 4, "OpenBrace", 15, "OpenParenthesis", 51, "OpenBracket"],
|
|
50
|
+
["closedBy", 9, "CloseParenthesis", 52, "CloseBracket", 76, "CloseBrace"],
|
|
51
|
+
],
|
|
52
|
+
skippedNodes: [0, 1, 2],
|
|
53
|
+
repeatNodeCount: 16,
|
|
54
|
+
tokenData:
|
|
55
|
+
"N_~R!dX^%apq&Uqr&}rs'^su'euv'lvw'uwx(Wxy(_yz(hz{(q{|(||})c}!O)l!O!P*P!P!Q*b!Q!R-q!R!S;Y!S!T>}!T!U?r!U!W>}!W!XA^!X!Y>}!Y!ZBx!Z![>}![!]Co!]!^Cx!^!_DR!_!`Dl!`!aEP!a!c'e!c!wEj!w!xFU!x!}Ej!}#OJr#O#PJ{#P#QKc#Q#R'e#R#SKl#S#T'e#T#iEj#i#jLS#j#oEj#o#pLs#p#qL|#q#rM_#r#s'e#s#yKX#y#z%a#z$fKX$f$gMh$g#BYKX#BY#BZMh#BZ$ISKX$IS$I_Mh$I_$I|KX$I|$JO%a$JO$JTKX$JT$JUMh$JU$KVKX$KV$KWMh$KW&FUKX&FU&FVMh&FV;'SKX<%l?HTKX?HUOKX~%fYP~X^%apq%a#y#z%a$f$g%a#BY#BZ%a$IS$I_%a$I|$JO%a$JT$JU%a$KV$KW%a&FU&FV%a~&_Y$op$gSP~X^%apq%a#y#z%a$f$g%a#BY#BZ%a$IS$I_%a$I|$JO%a$JT$JU%a$KV$KW%a&FU&FV%a!O'UP$op$gS!_!`'XY'^O}Y!V'eO#b!R$gSt'lO$op$gS!O'uOsY$op$gS!O(OP!OY$op$gSvw(RY(WO!QYw(_O!cV$opu(hOXP$op$gSw(qO_R$op$gS!P(|O#[PqY$op$gS!a)ZPtY![P$op$gS$l`{|)^Y)cO!YYw)lOlR$op$gS!P)wPuY!]P$op$gS}!O)zY*PO!ZY!P*YP!XY$op$gS!O!P*]R*bO!mR~*mP$op$gS$l`r~!P!Q*p~*uUQ~OY*pZ#O*p#O#P+X#P;'S*p;'S;=`-k<%lO*p~+^UQ~OY*pZ#O*p#O#P+p#P;'S*p;'S;=`-k<%lO*p~+uYQ~OY*pZ#O*p#O#P+p#P#b*p#b#c*p#c#f*p#f#g,e#g;'S*p;'S;=`-k<%lO*p~,jUQ~OY*pZ#O*p#O#P,|#P;'S*p;'S;=`-k<%lO*p~-RWQ~OY*pZ#O*p#O#P+p#P#b*p#b#c*p#c;'S*p;'S;=`-k<%lO*p~-nP;=`<%l*p!_-|[$op$gS$l`bP!O!P.r!Q!R0Q!R![0Q!c!}0d#R#S0Q#T#U0d#U#V0x#V#X0d#X#Y5]#Y#l0d#l#m6u#m#o0dP.uQ!Q!R.{!R![.{P/QR!eP!Q!R.{!R![.{#X#Y/ZP/^S{|/j}!O/j!Q!R/{!R![/pP/mP!R![/pP/uQ!fP!Q!R/p!R![/pP0QO!fPX0TT!Q!R0Q!R![0Q!c!}0d#R#S0Q#T#o0dX0iTVX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0dX1PU!`PVX!Q!R1c!R!S1c!S![0d!c!}0d#R#S0d#T#o0dX1jU!`PVX!Q!R1|!R!S1|!S![0d!c!}0d#R#S0d#T#o0dX2TU!`PVX!Q!R2g!R!S2g!S![0d!c!}0d#R#S0d#T#o0dX2nU!`PVX!Q!R3Q!R!S3Q!S![0d!c!}0d#R#S0d#T#o0dX3XV!`PVX!O!P3n!Q!R4r!R!S4r!S![0d!c!}0d#R#S0d#T#o0dP3qQ!Q!R3w!R!S3wP3|Q!`P!Q!R4S!R!S4SP4XQ!`P!Q!R4_!R!S4_P4dQ!`P!Q!R4j!R!S4jP4oP!`P!O!P3nX4yU!`PVX!Q!R4r!R!S4r!S![0d!c!}0d#R#S0d#T#o0dX5bVVX{|/j}!O/j!Q!R5w!R![6_!c!}0d#R#S0d#T#o0dX6OT!fPVX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0dX6fT!fPVX!Q!R6_!R![6_!c!}0d#R#S0d#T#o0dX6|U!aPVX!Q!R7`!R![7`!c!i7`!i!}0d#R#S0d#T#o0dX7gU!aPVX!Q!R7y!R![7y!c!i7y!i!}0d#R#S0d#T#o0dX8QU!aPVX!Q!R8d!R![8d!c!i8d!i!}0d#R#S0d#T#o0dX8kU!aPVX!Q!R8}!R![8}!c!i8}!i!}0d#R#S0d#T#o0dX9UV!aPVX!O!P9k!Q!R:o!R![:o!c!i:o!i!}0d#R#S0d#T#o0dP9nQ!Q![9t!c!i9tP9yQ!aP!Q![:P!c!i:PP:UQ!aP!Q![:[!c!i:[P:aQ!aP!Q![:g!c!i:gP:lP!aP!O!P9kX:vU!aPVX!Q!R:o!R![:o!c!i:o!i!}0d#R#S0d#T#o0d!a;e[$op$gS$l`bP!O!P.r!Q!R<Z!R!S<Z!S!T<x!T!W<Z!W!X>^!X![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dX<`WbP!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ<}YbP!O!P.r!Q!R<Z!R!Y<Z!Y!Z=m!Z![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ=tW^QbP!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ>eWZQbP!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!_?YW$op$gS$l`bP!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!a?}Y$op$gS$l`bP!O!P.r!Q!R<Z!R!S<Z!S!T@m!T![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZ@tW[QbP!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!aAiY$op$gS$l`bP!O!P.r!Q!R<Z!R!U<Z!U!VBX!V![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0dZB`W]QbP!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0d!aCVWYQ$op$gS$l`bP!O!P.r!Q!R<Z!R![<Z!c!}0d#R#S0Q#T#X0d#X#Y5]#Y#o0duCxO!hP$op$gS!PDRO!xZ$op$gS!PD[QxZ$op$gS!^!_Db!_!`DgYDgOvYYDlOyY!aDwP$m`!iZ$op$gS!_!`DzYEPO|Y!PEYQzZ$op$gS!_!`E`!`!aEeYEeO{YYEjOwY!_EuT$op$gS$l`VX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0d!_FaU$op$gS$l`VX!Q!RFs!R![Fs!c!iFs!i!}0d#R#S0d#T#o0dyFxUVX!Q!RG[!R![G[!c!iG[!i!}0d#R#S0d#T#o0dyGaUVX!Q!RGs!R![Gs!c!iGs!i!}0d#R#S0d#T#o0dyGxUVX!Q!RH[!R![H[!c!iH[!i!}0d#R#S0d#T#o0dyHaUVX!Q!RHs!R![Hs!c!iHs!i!}0d#R#S0d#T#o0dyHxUVX!Q!RI[!R![I[!c!iI[!i!}0d#R#S0d#T#o0dyIaUVX!Q!RIs!R![Is!c!iIs!i!}0d#R#S0d#T#o0dyIxUVX!Q!RJ[!R![J[!c!iJ[!i!}0d#R#S0d#T#o0dyJcT$ppVX!Q!R0d!R![0d!c!}0d#R#S0d#T#o0d!PJ{O!UZ$op$gStKORrsKXwxK^#O#P'epK^O$opSKcO$gSwKlO!TR$op$gS}KsT$op$gS!Q!R0Q!R![0Q!c!}0d#R#S0Q#T#o0d!aLaU#fQ$op$gS$l`VX!Q!RHs!R![Hs!c!iHs!i!}0d#R#S0d#T#o0duL|O!nP$op$gS!OMVP!PY$op$gS#p#qMYYM_O!RYuMhOSP$op$gS~MoY$opP~X^%apq%a#y#z%a$f$g%a#BY#BZ%a$IS$I_%a$I|$JO%a$JT$JU%a$KV$KW%a&FU&FV%a",
|
|
56
|
+
tokenizers: [0, 1, 2, 3, 4, 5],
|
|
57
|
+
topRules: { "Specification": [0, 3] },
|
|
58
|
+
specialized: [{
|
|
59
|
+
term: 7,
|
|
60
|
+
get: (value: keyof typeof spec_Identifier) => spec_Identifier[value] || -1,
|
|
61
|
+
}],
|
|
62
|
+
tokenPrec: 3059,
|
|
63
|
+
});
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { foldNodeProp } from "@codemirror/language";
|
|
2
|
+
|
|
3
|
+
// Generated by Lezer from the SDL grammar
|
|
4
|
+
import * as TokenTypeId from "../parser.terms.ts";
|
|
5
|
+
|
|
6
|
+
const blockStatementTokenTypeIds = new Set<number>([
|
|
7
|
+
TokenTypeId.ClassDeclaration,
|
|
8
|
+
TokenTypeId.MapDeclaration,
|
|
9
|
+
TokenTypeId.CompoundStatement,
|
|
10
|
+
TokenTypeId.SwitchStatement,
|
|
11
|
+
TokenTypeId.CaseClause,
|
|
12
|
+
TokenTypeId.DefaultClause,
|
|
13
|
+
TokenTypeId.IfStatement,
|
|
14
|
+
TokenTypeId.WhileStatement,
|
|
15
|
+
TokenTypeId.DoStatement,
|
|
16
|
+
TokenTypeId.ForStatement,
|
|
17
|
+
]);
|
|
18
|
+
|
|
19
|
+
export const foldNodePropSource = foldNodeProp.add((type) => {
|
|
20
|
+
if (!blockStatementTokenTypeIds.has(type.id)) {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
return (tree, state) => ({
|
|
24
|
+
from: state.doc.lineAt(tree.from).to,
|
|
25
|
+
to: tree.to,
|
|
26
|
+
});
|
|
27
|
+
});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NodeProp, NodeType } from "@lezer/common";
|
|
2
|
+
|
|
3
|
+
// Generated by Lezer from the SDL grammar
|
|
4
|
+
import * as TokenTypeId from "../parser.terms.ts";
|
|
5
|
+
|
|
6
|
+
const primitiveTokenTypeIds = new Set<number>([
|
|
7
|
+
TokenTypeId.BinaryLiteral,
|
|
8
|
+
TokenTypeId.DecimalLiteral,
|
|
9
|
+
TokenTypeId.FloatingPointLiteral,
|
|
10
|
+
TokenTypeId.HexadecimalLiteral,
|
|
11
|
+
TokenTypeId.Identifier,
|
|
12
|
+
TokenTypeId.IntegerLiteral,
|
|
13
|
+
]);
|
|
14
|
+
|
|
15
|
+
export const primitiveNodeProp = new NodeProp<boolean>();
|
|
16
|
+
|
|
17
|
+
export const primitiveNodePropSource = primitiveNodeProp.add(
|
|
18
|
+
(type: NodeType) => primitiveTokenTypeIds.has(type.id) ? true : undefined,
|
|
19
|
+
);
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { styleTags, Tag, tags as t } from "@lezer/highlight";
|
|
2
|
+
import { InternalScannerError } from "../../scanner-error.ts";
|
|
3
|
+
|
|
4
|
+
// Generated by Lezer from the SDL grammar
|
|
5
|
+
import * as TokenTypeId from "../parser.terms.ts";
|
|
6
|
+
|
|
7
|
+
const tokenIdToStyleTagMapping: { [selector: string]: Tag | readonly Tag[] } =
|
|
8
|
+
{};
|
|
9
|
+
|
|
10
|
+
// iterate over all TokenTypeId properties and map them to style tags
|
|
11
|
+
// to ensure we don't reference any that don't exist
|
|
12
|
+
Object.entries(TokenTypeId).forEach(([key, value]) => {
|
|
13
|
+
switch (value) {
|
|
14
|
+
case TokenTypeId.int:
|
|
15
|
+
case TokenTypeId.unsigned:
|
|
16
|
+
case TokenTypeId.float:
|
|
17
|
+
case TokenTypeId.bit:
|
|
18
|
+
tokenIdToStyleTagMapping[key] = t.typeName;
|
|
19
|
+
break;
|
|
20
|
+
case TokenTypeId.Comment:
|
|
21
|
+
tokenIdToStyleTagMapping[key] = t.comment;
|
|
22
|
+
break;
|
|
23
|
+
case TokenTypeId.Identifier:
|
|
24
|
+
tokenIdToStyleTagMapping[key] = t.variableName;
|
|
25
|
+
break;
|
|
26
|
+
case TokenTypeId.AlignmentBitCount8:
|
|
27
|
+
case TokenTypeId.AlignmentBitCount16:
|
|
28
|
+
case TokenTypeId.AlignmentBitCount32:
|
|
29
|
+
case TokenTypeId.AlignmentBitCount64:
|
|
30
|
+
case TokenTypeId.AlignmentBitCount128:
|
|
31
|
+
case TokenTypeId.BinaryLiteral:
|
|
32
|
+
case TokenTypeId.HexadecimalLiteral:
|
|
33
|
+
case TokenTypeId.MultipleCharacterLiteral:
|
|
34
|
+
case TokenTypeId.MultipleCharacterLiteralCharacters:
|
|
35
|
+
case TokenTypeId.Base64StringLiteralCharacters:
|
|
36
|
+
tokenIdToStyleTagMapping[key] = t.literal;
|
|
37
|
+
break;
|
|
38
|
+
case TokenTypeId.IntegerLiteral:
|
|
39
|
+
case TokenTypeId.DecimalLiteral:
|
|
40
|
+
case TokenTypeId.FloatingPointLiteral:
|
|
41
|
+
tokenIdToStyleTagMapping[key] = t.number;
|
|
42
|
+
break;
|
|
43
|
+
case TokenTypeId.Base64StringLiteral:
|
|
44
|
+
case TokenTypeId.UtfStringLiteral:
|
|
45
|
+
tokenIdToStyleTagMapping[key] = t.string;
|
|
46
|
+
break;
|
|
47
|
+
case TokenTypeId._if:
|
|
48
|
+
case TokenTypeId._else:
|
|
49
|
+
case TokenTypeId._switch:
|
|
50
|
+
case TokenTypeId._case:
|
|
51
|
+
case TokenTypeId._break:
|
|
52
|
+
case TokenTypeId._do:
|
|
53
|
+
case TokenTypeId._while:
|
|
54
|
+
tokenIdToStyleTagMapping[key] = t.controlKeyword;
|
|
55
|
+
break;
|
|
56
|
+
case TokenTypeId._class:
|
|
57
|
+
case TokenTypeId._extends:
|
|
58
|
+
case TokenTypeId._const:
|
|
59
|
+
case TokenTypeId.map:
|
|
60
|
+
case TokenTypeId.utf8string:
|
|
61
|
+
case TokenTypeId.utf8list:
|
|
62
|
+
case TokenTypeId.utfstring:
|
|
63
|
+
case TokenTypeId.utf16string:
|
|
64
|
+
case TokenTypeId.reserved:
|
|
65
|
+
case TokenTypeId.legacy:
|
|
66
|
+
case TokenTypeId.base64string:
|
|
67
|
+
case TokenTypeId.aligned:
|
|
68
|
+
case TokenTypeId.expandable:
|
|
69
|
+
case TokenTypeId.abstract:
|
|
70
|
+
case TokenTypeId.computed:
|
|
71
|
+
case TokenTypeId._default:
|
|
72
|
+
case TokenTypeId._for:
|
|
73
|
+
tokenIdToStyleTagMapping[key] = t.keyword;
|
|
74
|
+
break;
|
|
75
|
+
case TokenTypeId.OpenBrace:
|
|
76
|
+
case TokenTypeId.CloseBrace:
|
|
77
|
+
tokenIdToStyleTagMapping[key] = t.brace;
|
|
78
|
+
break;
|
|
79
|
+
case TokenTypeId.CloseParenthesis:
|
|
80
|
+
case TokenTypeId.OpenParenthesis:
|
|
81
|
+
tokenIdToStyleTagMapping[key] = t.paren;
|
|
82
|
+
break;
|
|
83
|
+
case TokenTypeId.OpenBracket:
|
|
84
|
+
case TokenTypeId.CloseBracket:
|
|
85
|
+
tokenIdToStyleTagMapping[key] = t.squareBracket;
|
|
86
|
+
break;
|
|
87
|
+
case TokenTypeId.PostfixIncrement:
|
|
88
|
+
case TokenTypeId.PostfixDecrement:
|
|
89
|
+
case TokenTypeId.UnaryPlus:
|
|
90
|
+
case TokenTypeId.UnaryNegation:
|
|
91
|
+
case TokenTypeId.Multiplication:
|
|
92
|
+
case TokenTypeId.Division:
|
|
93
|
+
case TokenTypeId.Modulus:
|
|
94
|
+
case TokenTypeId.Addition:
|
|
95
|
+
case TokenTypeId.Subtraction:
|
|
96
|
+
tokenIdToStyleTagMapping[key] = t.arithmeticOperator;
|
|
97
|
+
break;
|
|
98
|
+
case TokenTypeId.RelationalLessThan:
|
|
99
|
+
case TokenTypeId.RelationalLessThanOrEqual:
|
|
100
|
+
case TokenTypeId.RelationalGreaterThan:
|
|
101
|
+
case TokenTypeId.RelationalGreaterThanOrEqual:
|
|
102
|
+
case TokenTypeId.RelationalEqual:
|
|
103
|
+
case TokenTypeId.RelationalNotEqual:
|
|
104
|
+
tokenIdToStyleTagMapping[key] = t.compareOperator;
|
|
105
|
+
break;
|
|
106
|
+
case TokenTypeId.BitwiseShiftLeft:
|
|
107
|
+
case TokenTypeId.BitwiseShiftRight:
|
|
108
|
+
case TokenTypeId.BitwiseAnd:
|
|
109
|
+
case TokenTypeId.BitwiseOr:
|
|
110
|
+
tokenIdToStyleTagMapping[key] = t.bitwiseOperator;
|
|
111
|
+
break;
|
|
112
|
+
case TokenTypeId.LogicalAnd:
|
|
113
|
+
case TokenTypeId.LogicalOr:
|
|
114
|
+
tokenIdToStyleTagMapping[key] = t.logicOperator;
|
|
115
|
+
break;
|
|
116
|
+
case TokenTypeId.lengthof:
|
|
117
|
+
tokenIdToStyleTagMapping[key] = t.operatorKeyword;
|
|
118
|
+
break;
|
|
119
|
+
case TokenTypeId.RangeOperator:
|
|
120
|
+
case TokenTypeId.Assignment:
|
|
121
|
+
case TokenTypeId.LookAhead:
|
|
122
|
+
tokenIdToStyleTagMapping[key] = t.operator;
|
|
123
|
+
break;
|
|
124
|
+
case TokenTypeId.Period:
|
|
125
|
+
case TokenTypeId.UtfPrefix:
|
|
126
|
+
case TokenTypeId.Colon:
|
|
127
|
+
case TokenTypeId.Semicolon:
|
|
128
|
+
case TokenTypeId.Comma:
|
|
129
|
+
case TokenTypeId.SingleQuote:
|
|
130
|
+
case TokenTypeId.DoubleQuote:
|
|
131
|
+
tokenIdToStyleTagMapping[key] = t.punctuation;
|
|
132
|
+
break;
|
|
133
|
+
case TokenTypeId.Whitespace:
|
|
134
|
+
case TokenTypeId.Specification:
|
|
135
|
+
case TokenTypeId.ClassDeclaration:
|
|
136
|
+
case TokenTypeId.CompoundStatement:
|
|
137
|
+
case TokenTypeId.IfStatement:
|
|
138
|
+
case TokenTypeId.SwitchStatement:
|
|
139
|
+
case TokenTypeId.CaseClause:
|
|
140
|
+
case TokenTypeId.DefaultClause:
|
|
141
|
+
case TokenTypeId.WhileStatement:
|
|
142
|
+
case TokenTypeId.MapDeclaration:
|
|
143
|
+
case TokenTypeId.AlignedModifier:
|
|
144
|
+
case TokenTypeId.ExpandableModifier:
|
|
145
|
+
case TokenTypeId.ParameterList:
|
|
146
|
+
case TokenTypeId.Parameter:
|
|
147
|
+
case TokenTypeId.ElementaryType:
|
|
148
|
+
case TokenTypeId.ExtendsModifier:
|
|
149
|
+
case TokenTypeId.ParameterValueList:
|
|
150
|
+
case TokenTypeId.LengthofExpression:
|
|
151
|
+
case TokenTypeId.BitModifier:
|
|
152
|
+
case TokenTypeId.ExtendedClassIdRange:
|
|
153
|
+
case TokenTypeId.ClassId:
|
|
154
|
+
case TokenTypeId.ClassIdRange:
|
|
155
|
+
case TokenTypeId.ForStatement:
|
|
156
|
+
case TokenTypeId.AssignmentExpression:
|
|
157
|
+
case TokenTypeId.ComputedElementaryTypeDefinition:
|
|
158
|
+
case TokenTypeId.DoStatement:
|
|
159
|
+
case TokenTypeId.ExpressionStatement:
|
|
160
|
+
case TokenTypeId.ElementaryTypeDefinition:
|
|
161
|
+
case TokenTypeId.MapDefinition:
|
|
162
|
+
case TokenTypeId.ClassDefinition:
|
|
163
|
+
case TokenTypeId.StringDefinition:
|
|
164
|
+
case TokenTypeId.UtfStringLiteralCharacters:
|
|
165
|
+
case TokenTypeId.ArrayDefinition:
|
|
166
|
+
case TokenTypeId.ImplicitArrayDimension:
|
|
167
|
+
case TokenTypeId.ExplicitArrayDimension:
|
|
168
|
+
case TokenTypeId.PartialArrayDimension:
|
|
169
|
+
case TokenTypeId.ComputedArrayDefinition:
|
|
170
|
+
case TokenTypeId.MapEntry:
|
|
171
|
+
case TokenTypeId.AggregateOutputValue:
|
|
172
|
+
case TokenTypeId.ElementaryTypeOutputValue:
|
|
173
|
+
case TokenTypeId.BinaryExpression:
|
|
174
|
+
case TokenTypeId.UnaryExpression:
|
|
175
|
+
case TokenTypeId.ArrayElementAccess:
|
|
176
|
+
case TokenTypeId.ClassMemberAccess:
|
|
177
|
+
case TokenTypeId.LengthAttribute:
|
|
178
|
+
break;
|
|
179
|
+
default: {
|
|
180
|
+
const exhaustiveCheck: never = value;
|
|
181
|
+
throw new InternalScannerError(
|
|
182
|
+
"Unreachable code reached, tokenTypeId == " + exhaustiveCheck,
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
export const styleTagsNodePropSource = styleTags(tokenIdToStyleTagMapping);
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { NodeProp, NodeType } from "@lezer/common";
|
|
2
|
+
import { InternalScannerError } from "../../scanner-error.ts";
|
|
3
|
+
|
|
4
|
+
// Generated by Lezer from the SDL grammar
|
|
5
|
+
import * as TokenTypeId from "../parser.terms.ts";
|
|
6
|
+
|
|
7
|
+
export const tokenIdToSyntaxStringMapping = new Map<number, string>();
|
|
8
|
+
|
|
9
|
+
// iterate over all TokenTypeId properties and map them to syntax strings
|
|
10
|
+
// to ensure we don't reference any that don't exist
|
|
11
|
+
Object.values(TokenTypeId).forEach((value) => {
|
|
12
|
+
switch (value) {
|
|
13
|
+
case TokenTypeId.CloseBrace:
|
|
14
|
+
tokenIdToSyntaxStringMapping.set(value, "}");
|
|
15
|
+
break;
|
|
16
|
+
case TokenTypeId.aligned:
|
|
17
|
+
tokenIdToSyntaxStringMapping.set(value, "aligned");
|
|
18
|
+
break;
|
|
19
|
+
case TokenTypeId.OpenParenthesis:
|
|
20
|
+
tokenIdToSyntaxStringMapping.set(value, "(");
|
|
21
|
+
break;
|
|
22
|
+
case TokenTypeId.CloseParenthesis:
|
|
23
|
+
tokenIdToSyntaxStringMapping.set(value, ")");
|
|
24
|
+
break;
|
|
25
|
+
case TokenTypeId.expandable:
|
|
26
|
+
tokenIdToSyntaxStringMapping.set(value, "expandable");
|
|
27
|
+
break;
|
|
28
|
+
case TokenTypeId.abstract:
|
|
29
|
+
tokenIdToSyntaxStringMapping.set(value, "abstract");
|
|
30
|
+
break;
|
|
31
|
+
case TokenTypeId._class:
|
|
32
|
+
tokenIdToSyntaxStringMapping.set(value, "class");
|
|
33
|
+
break;
|
|
34
|
+
case TokenTypeId.int:
|
|
35
|
+
tokenIdToSyntaxStringMapping.set(value, "int");
|
|
36
|
+
break;
|
|
37
|
+
case TokenTypeId.unsigned:
|
|
38
|
+
tokenIdToSyntaxStringMapping.set(value, "unsigned");
|
|
39
|
+
break;
|
|
40
|
+
case TokenTypeId.float:
|
|
41
|
+
tokenIdToSyntaxStringMapping.set(value, "float");
|
|
42
|
+
break;
|
|
43
|
+
case TokenTypeId.bit:
|
|
44
|
+
tokenIdToSyntaxStringMapping.set(value, "bit");
|
|
45
|
+
break;
|
|
46
|
+
case TokenTypeId.Comma:
|
|
47
|
+
tokenIdToSyntaxStringMapping.set(value, ",");
|
|
48
|
+
break;
|
|
49
|
+
case TokenTypeId._extends:
|
|
50
|
+
tokenIdToSyntaxStringMapping.set(value, "extends");
|
|
51
|
+
break;
|
|
52
|
+
case TokenTypeId.Multiplication:
|
|
53
|
+
tokenIdToSyntaxStringMapping.set(value, "*");
|
|
54
|
+
break;
|
|
55
|
+
case TokenTypeId.Division:
|
|
56
|
+
tokenIdToSyntaxStringMapping.set(value, "/");
|
|
57
|
+
break;
|
|
58
|
+
case TokenTypeId.Modulus:
|
|
59
|
+
tokenIdToSyntaxStringMapping.set(value, "%");
|
|
60
|
+
break;
|
|
61
|
+
case TokenTypeId.Addition:
|
|
62
|
+
tokenIdToSyntaxStringMapping.set(value, "+");
|
|
63
|
+
break;
|
|
64
|
+
case TokenTypeId.Subtraction:
|
|
65
|
+
tokenIdToSyntaxStringMapping.set(value, "-");
|
|
66
|
+
break;
|
|
67
|
+
case TokenTypeId.BitwiseShiftLeft:
|
|
68
|
+
tokenIdToSyntaxStringMapping.set(value, "<<");
|
|
69
|
+
break;
|
|
70
|
+
case TokenTypeId.BitwiseShiftRight:
|
|
71
|
+
tokenIdToSyntaxStringMapping.set(value, ">>");
|
|
72
|
+
break;
|
|
73
|
+
case TokenTypeId.RelationalLessThan:
|
|
74
|
+
tokenIdToSyntaxStringMapping.set(value, "<");
|
|
75
|
+
break;
|
|
76
|
+
case TokenTypeId.RelationalLessThanOrEqual:
|
|
77
|
+
tokenIdToSyntaxStringMapping.set(value, "<=");
|
|
78
|
+
break;
|
|
79
|
+
case TokenTypeId.RelationalGreaterThan:
|
|
80
|
+
tokenIdToSyntaxStringMapping.set(value, ">");
|
|
81
|
+
break;
|
|
82
|
+
case TokenTypeId.RelationalGreaterThanOrEqual:
|
|
83
|
+
tokenIdToSyntaxStringMapping.set(value, ">=");
|
|
84
|
+
break;
|
|
85
|
+
case TokenTypeId.RelationalEqual:
|
|
86
|
+
tokenIdToSyntaxStringMapping.set(value, "==");
|
|
87
|
+
break;
|
|
88
|
+
case TokenTypeId.RelationalNotEqual:
|
|
89
|
+
tokenIdToSyntaxStringMapping.set(value, "!=");
|
|
90
|
+
break;
|
|
91
|
+
case TokenTypeId.BitwiseAnd:
|
|
92
|
+
tokenIdToSyntaxStringMapping.set(value, "&");
|
|
93
|
+
break;
|
|
94
|
+
case TokenTypeId.BitwiseOr:
|
|
95
|
+
tokenIdToSyntaxStringMapping.set(value, "|");
|
|
96
|
+
break;
|
|
97
|
+
case TokenTypeId.LogicalAnd:
|
|
98
|
+
tokenIdToSyntaxStringMapping.set(value, "&&");
|
|
99
|
+
break;
|
|
100
|
+
case TokenTypeId.LogicalOr:
|
|
101
|
+
tokenIdToSyntaxStringMapping.set(value, "||");
|
|
102
|
+
break;
|
|
103
|
+
case TokenTypeId.CloseBracket:
|
|
104
|
+
tokenIdToSyntaxStringMapping.set(value, "]");
|
|
105
|
+
break;
|
|
106
|
+
case TokenTypeId.OpenBracket:
|
|
107
|
+
tokenIdToSyntaxStringMapping.set(value, "[");
|
|
108
|
+
break;
|
|
109
|
+
case TokenTypeId.ClassMemberAccess:
|
|
110
|
+
tokenIdToSyntaxStringMapping.set(value, ".");
|
|
111
|
+
break;
|
|
112
|
+
case TokenTypeId.Period:
|
|
113
|
+
tokenIdToSyntaxStringMapping.set(value, ".");
|
|
114
|
+
break;
|
|
115
|
+
case TokenTypeId.PostfixIncrement:
|
|
116
|
+
tokenIdToSyntaxStringMapping.set(value, "++");
|
|
117
|
+
break;
|
|
118
|
+
case TokenTypeId.PostfixDecrement:
|
|
119
|
+
tokenIdToSyntaxStringMapping.set(value, "--");
|
|
120
|
+
break;
|
|
121
|
+
case TokenTypeId.UnaryPlus:
|
|
122
|
+
tokenIdToSyntaxStringMapping.set(value, "+");
|
|
123
|
+
break;
|
|
124
|
+
case TokenTypeId.UnaryNegation:
|
|
125
|
+
tokenIdToSyntaxStringMapping.set(value, "-");
|
|
126
|
+
break;
|
|
127
|
+
case TokenTypeId.lengthof:
|
|
128
|
+
tokenIdToSyntaxStringMapping.set(value, "lengthof");
|
|
129
|
+
break;
|
|
130
|
+
case TokenTypeId.SingleQuote:
|
|
131
|
+
tokenIdToSyntaxStringMapping.set(value, "'");
|
|
132
|
+
break;
|
|
133
|
+
case TokenTypeId.Colon:
|
|
134
|
+
tokenIdToSyntaxStringMapping.set(value, ":");
|
|
135
|
+
break;
|
|
136
|
+
case TokenTypeId.Assignment:
|
|
137
|
+
tokenIdToSyntaxStringMapping.set(value, "=");
|
|
138
|
+
break;
|
|
139
|
+
case TokenTypeId.RangeOperator:
|
|
140
|
+
tokenIdToSyntaxStringMapping.set(value, "..");
|
|
141
|
+
break;
|
|
142
|
+
case TokenTypeId.OpenBrace:
|
|
143
|
+
tokenIdToSyntaxStringMapping.set(value, "{");
|
|
144
|
+
break;
|
|
145
|
+
case TokenTypeId._if:
|
|
146
|
+
tokenIdToSyntaxStringMapping.set(value, "if");
|
|
147
|
+
break;
|
|
148
|
+
case TokenTypeId._else:
|
|
149
|
+
tokenIdToSyntaxStringMapping.set(value, "else");
|
|
150
|
+
break;
|
|
151
|
+
case TokenTypeId._switch:
|
|
152
|
+
tokenIdToSyntaxStringMapping.set(value, "switch");
|
|
153
|
+
break;
|
|
154
|
+
case TokenTypeId._case:
|
|
155
|
+
tokenIdToSyntaxStringMapping.set(value, "case");
|
|
156
|
+
break;
|
|
157
|
+
case TokenTypeId._break:
|
|
158
|
+
tokenIdToSyntaxStringMapping.set(value, "break");
|
|
159
|
+
break;
|
|
160
|
+
case TokenTypeId.Semicolon:
|
|
161
|
+
tokenIdToSyntaxStringMapping.set(value, ";");
|
|
162
|
+
break;
|
|
163
|
+
case TokenTypeId._default:
|
|
164
|
+
tokenIdToSyntaxStringMapping.set(value, "default");
|
|
165
|
+
break;
|
|
166
|
+
case TokenTypeId._for:
|
|
167
|
+
tokenIdToSyntaxStringMapping.set(value, "for");
|
|
168
|
+
break;
|
|
169
|
+
case TokenTypeId.computed:
|
|
170
|
+
tokenIdToSyntaxStringMapping.set(value, "computed");
|
|
171
|
+
break;
|
|
172
|
+
case TokenTypeId._const:
|
|
173
|
+
tokenIdToSyntaxStringMapping.set(value, "const");
|
|
174
|
+
break;
|
|
175
|
+
case TokenTypeId._do:
|
|
176
|
+
tokenIdToSyntaxStringMapping.set(value, "do");
|
|
177
|
+
break;
|
|
178
|
+
case TokenTypeId._while:
|
|
179
|
+
tokenIdToSyntaxStringMapping.set(value, "while");
|
|
180
|
+
break;
|
|
181
|
+
case TokenTypeId.reserved:
|
|
182
|
+
tokenIdToSyntaxStringMapping.set(value, "reserved");
|
|
183
|
+
break;
|
|
184
|
+
case TokenTypeId.legacy:
|
|
185
|
+
tokenIdToSyntaxStringMapping.set(value, "legacy");
|
|
186
|
+
break;
|
|
187
|
+
case TokenTypeId.LookAhead:
|
|
188
|
+
tokenIdToSyntaxStringMapping.set(value, "*");
|
|
189
|
+
break;
|
|
190
|
+
case TokenTypeId.base64string:
|
|
191
|
+
tokenIdToSyntaxStringMapping.set(value, "base64string");
|
|
192
|
+
break;
|
|
193
|
+
case TokenTypeId.DoubleQuote:
|
|
194
|
+
tokenIdToSyntaxStringMapping.set(value, '"');
|
|
195
|
+
break;
|
|
196
|
+
case TokenTypeId.utf16string:
|
|
197
|
+
tokenIdToSyntaxStringMapping.set(value, "utf16string");
|
|
198
|
+
break;
|
|
199
|
+
case TokenTypeId.UtfPrefix:
|
|
200
|
+
tokenIdToSyntaxStringMapping.set(value, "u");
|
|
201
|
+
break;
|
|
202
|
+
case TokenTypeId.utf8string:
|
|
203
|
+
tokenIdToSyntaxStringMapping.set(value, "utf8string");
|
|
204
|
+
break;
|
|
205
|
+
case TokenTypeId.utf8list:
|
|
206
|
+
tokenIdToSyntaxStringMapping.set(value, "utf8list");
|
|
207
|
+
break;
|
|
208
|
+
case TokenTypeId.utfstring:
|
|
209
|
+
tokenIdToSyntaxStringMapping.set(value, "utfstring");
|
|
210
|
+
break;
|
|
211
|
+
case TokenTypeId.map:
|
|
212
|
+
tokenIdToSyntaxStringMapping.set(value, "map");
|
|
213
|
+
break;
|
|
214
|
+
case TokenTypeId.AlignmentBitCount8:
|
|
215
|
+
tokenIdToSyntaxStringMapping.set(value, "8");
|
|
216
|
+
break;
|
|
217
|
+
case TokenTypeId.AlignmentBitCount16:
|
|
218
|
+
tokenIdToSyntaxStringMapping.set(value, "16");
|
|
219
|
+
break;
|
|
220
|
+
case TokenTypeId.AlignmentBitCount32:
|
|
221
|
+
tokenIdToSyntaxStringMapping.set(value, "32");
|
|
222
|
+
break;
|
|
223
|
+
case TokenTypeId.AlignmentBitCount64:
|
|
224
|
+
tokenIdToSyntaxStringMapping.set(value, "64");
|
|
225
|
+
break;
|
|
226
|
+
case TokenTypeId.AlignmentBitCount128:
|
|
227
|
+
tokenIdToSyntaxStringMapping.set(value, "128");
|
|
228
|
+
break;
|
|
229
|
+
case TokenTypeId.Whitespace:
|
|
230
|
+
case TokenTypeId.Comment:
|
|
231
|
+
case TokenTypeId.Specification:
|
|
232
|
+
case TokenTypeId.ClassDeclaration:
|
|
233
|
+
case TokenTypeId.CompoundStatement:
|
|
234
|
+
case TokenTypeId.IfStatement:
|
|
235
|
+
case TokenTypeId.SwitchStatement:
|
|
236
|
+
case TokenTypeId.CaseClause:
|
|
237
|
+
case TokenTypeId.DefaultClause:
|
|
238
|
+
case TokenTypeId.WhileStatement:
|
|
239
|
+
case TokenTypeId.MapDeclaration:
|
|
240
|
+
case TokenTypeId.AlignedModifier:
|
|
241
|
+
case TokenTypeId.ExpandableModifier:
|
|
242
|
+
case TokenTypeId.ParameterList:
|
|
243
|
+
case TokenTypeId.Parameter:
|
|
244
|
+
case TokenTypeId.ElementaryType:
|
|
245
|
+
case TokenTypeId.ExtendsModifier:
|
|
246
|
+
case TokenTypeId.ParameterValueList:
|
|
247
|
+
case TokenTypeId.LengthofExpression:
|
|
248
|
+
case TokenTypeId.BitModifier:
|
|
249
|
+
case TokenTypeId.ExtendedClassIdRange:
|
|
250
|
+
case TokenTypeId.ClassId:
|
|
251
|
+
case TokenTypeId.ClassIdRange:
|
|
252
|
+
case TokenTypeId.ForStatement:
|
|
253
|
+
case TokenTypeId.AssignmentExpression:
|
|
254
|
+
case TokenTypeId.ComputedElementaryTypeDefinition:
|
|
255
|
+
case TokenTypeId.DoStatement:
|
|
256
|
+
case TokenTypeId.ExpressionStatement:
|
|
257
|
+
case TokenTypeId.ElementaryTypeDefinition:
|
|
258
|
+
case TokenTypeId.MapDefinition:
|
|
259
|
+
case TokenTypeId.ClassDefinition:
|
|
260
|
+
case TokenTypeId.StringDefinition:
|
|
261
|
+
case TokenTypeId.Base64StringLiteral:
|
|
262
|
+
case TokenTypeId.UtfStringLiteralCharacters:
|
|
263
|
+
case TokenTypeId.ArrayDefinition:
|
|
264
|
+
case TokenTypeId.ImplicitArrayDimension:
|
|
265
|
+
case TokenTypeId.ExplicitArrayDimension:
|
|
266
|
+
case TokenTypeId.PartialArrayDimension:
|
|
267
|
+
case TokenTypeId.ComputedArrayDefinition:
|
|
268
|
+
case TokenTypeId.MapEntry:
|
|
269
|
+
case TokenTypeId.AggregateOutputValue:
|
|
270
|
+
case TokenTypeId.ElementaryTypeOutputValue:
|
|
271
|
+
case TokenTypeId.BinaryExpression:
|
|
272
|
+
case TokenTypeId.UnaryExpression:
|
|
273
|
+
case TokenTypeId.ArrayElementAccess:
|
|
274
|
+
case TokenTypeId.LengthAttribute:
|
|
275
|
+
case TokenTypeId.Identifier:
|
|
276
|
+
case TokenTypeId.IntegerLiteral:
|
|
277
|
+
case TokenTypeId.BinaryLiteral:
|
|
278
|
+
case TokenTypeId.HexadecimalLiteral:
|
|
279
|
+
case TokenTypeId.DecimalLiteral:
|
|
280
|
+
case TokenTypeId.FloatingPointLiteral:
|
|
281
|
+
case TokenTypeId.MultipleCharacterLiteral:
|
|
282
|
+
case TokenTypeId.MultipleCharacterLiteralCharacters:
|
|
283
|
+
case TokenTypeId.Base64StringLiteralCharacters:
|
|
284
|
+
case TokenTypeId.UtfStringLiteral:
|
|
285
|
+
break;
|
|
286
|
+
default: {
|
|
287
|
+
const exhaustiveCheck: never = value;
|
|
288
|
+
throw new InternalScannerError(
|
|
289
|
+
"Unreachable code reached, tokenTypeId == " + exhaustiveCheck,
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
export const syntacticTokenNodeProp = new NodeProp<string>();
|
|
296
|
+
export const syntacticTokenNodePropSource = syntacticTokenNodeProp.add(
|
|
297
|
+
(type: NodeType) => tokenIdToSyntaxStringMapping.get(type.id),
|
|
298
|
+
);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Input } from "@lezer/common";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The `SdlStringInput` class implements the `Input` interface for a string input.
|
|
5
|
+
* It provides methods to read and chunk the input string.
|
|
6
|
+
*/
|
|
7
|
+
export class SdlStringInput implements Input {
|
|
8
|
+
private readonly input: string;
|
|
9
|
+
|
|
10
|
+
constructor(input: string) {
|
|
11
|
+
this.input = input.replace(/\r\n?/g, "\n");
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
The length of the document.
|
|
16
|
+
*/
|
|
17
|
+
get length() {
|
|
18
|
+
return this.input.length;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get the chunk from the given position. The returned string
|
|
23
|
+
* starts at `from` (0-based) and, if that isn't the end of the
|
|
24
|
+
* string, may be of any length greater than zero.
|
|
25
|
+
*
|
|
26
|
+
* @param from - The starting position of the chunk (0-based, inclusive).
|
|
27
|
+
*/
|
|
28
|
+
chunk(from: number): string {
|
|
29
|
+
return this.input.slice(from);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Indicates that the chunks do not already end at line breaks and that
|
|
34
|
+
* client code that wants to work by-line must scanning for line breaks.
|
|
35
|
+
*/
|
|
36
|
+
lineChunks = false;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Read the part of the document between the given positions.
|
|
40
|
+
* @param from - The starting position (0-based, inclusive).
|
|
41
|
+
* @param to - The ending position (0-based, exclusive).
|
|
42
|
+
*/
|
|
43
|
+
read(from: number, to: number): string {
|
|
44
|
+
return this.input.slice(from, to);
|
|
45
|
+
}
|
|
46
|
+
}
|