@untangle-code/parser-registry 0.0.0-stage → 0.1.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 +661 -0
- package/NOTICE +90 -0
- package/README.md +352 -2
- package/THIRD_PARTY_LICENSES.md +91 -0
- package/dist/boundaries/expression.d.ts +10 -0
- package/dist/boundaries/expression.d.ts.map +1 -0
- package/dist/boundaries/expression.js +95 -0
- package/dist/boundaries/expression.js.map +1 -0
- package/dist/boundaries/extract.d.ts +12 -0
- package/dist/boundaries/extract.d.ts.map +1 -0
- package/dist/boundaries/extract.js +259 -0
- package/dist/boundaries/extract.js.map +1 -0
- package/dist/boundaries/python.d.ts +6 -0
- package/dist/boundaries/python.d.ts.map +1 -0
- package/dist/boundaries/python.js +154 -0
- package/dist/boundaries/python.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/languages/astgrep-backend/adapter.d.ts +101 -0
- package/dist/languages/astgrep-backend/adapter.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/adapter.js +130 -0
- package/dist/languages/astgrep-backend/adapter.js.map +1 -0
- package/dist/languages/astgrep-backend/index.d.ts +29 -0
- package/dist/languages/astgrep-backend/index.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/index.js +28 -0
- package/dist/languages/astgrep-backend/index.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/bash.d.ts +38 -0
- package/dist/languages/astgrep-backend/lang/bash.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/bash.js +42 -0
- package/dist/languages/astgrep-backend/lang/bash.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/c.d.ts +33 -0
- package/dist/languages/astgrep-backend/lang/c.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/c.js +85 -0
- package/dist/languages/astgrep-backend/lang/c.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/cpp.d.ts +27 -0
- package/dist/languages/astgrep-backend/lang/cpp.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/cpp.js +38 -0
- package/dist/languages/astgrep-backend/lang/cpp.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/csharp.d.ts +24 -0
- package/dist/languages/astgrep-backend/lang/csharp.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/csharp.js +102 -0
- package/dist/languages/astgrep-backend/lang/csharp.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/index.d.ts +29 -0
- package/dist/languages/astgrep-backend/lang/index.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/index.js +22 -0
- package/dist/languages/astgrep-backend/lang/index.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/java.d.ts +26 -0
- package/dist/languages/astgrep-backend/lang/java.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/java.js +89 -0
- package/dist/languages/astgrep-backend/lang/java.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/kotlin.d.ts +44 -0
- package/dist/languages/astgrep-backend/lang/kotlin.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/kotlin.js +94 -0
- package/dist/languages/astgrep-backend/lang/kotlin.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/php.d.ts +23 -0
- package/dist/languages/astgrep-backend/lang/php.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/php.js +80 -0
- package/dist/languages/astgrep-backend/lang/php.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/ruby.d.ts +37 -0
- package/dist/languages/astgrep-backend/lang/ruby.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/ruby.js +70 -0
- package/dist/languages/astgrep-backend/lang/ruby.js.map +1 -0
- package/dist/languages/astgrep-backend/lang/swift.d.ts +34 -0
- package/dist/languages/astgrep-backend/lang/swift.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/lang/swift.js +86 -0
- package/dist/languages/astgrep-backend/lang/swift.js.map +1 -0
- package/dist/languages/astgrep-backend/languages.d.ts +55 -0
- package/dist/languages/astgrep-backend/languages.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/languages.js +214 -0
- package/dist/languages/astgrep-backend/languages.js.map +1 -0
- package/dist/languages/astgrep-backend/napi.d.ts +71 -0
- package/dist/languages/astgrep-backend/napi.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/napi.js +176 -0
- package/dist/languages/astgrep-backend/napi.js.map +1 -0
- package/dist/languages/astgrep-backend/syntax.d.ts +88 -0
- package/dist/languages/astgrep-backend/syntax.d.ts.map +1 -0
- package/dist/languages/astgrep-backend/syntax.js +180 -0
- package/dist/languages/astgrep-backend/syntax.js.map +1 -0
- package/dist/languages/index.d.ts +14 -0
- package/dist/languages/index.d.ts.map +1 -0
- package/dist/languages/index.js +37 -0
- package/dist/languages/index.js.map +1 -0
- package/dist/languages/javascript/index.d.ts +4 -0
- package/dist/languages/javascript/index.d.ts.map +1 -0
- package/dist/languages/javascript/index.js +7 -0
- package/dist/languages/javascript/index.js.map +1 -0
- package/dist/languages/jsx/index.d.ts +4 -0
- package/dist/languages/jsx/index.d.ts.map +1 -0
- package/dist/languages/jsx/index.js +7 -0
- package/dist/languages/jsx/index.js.map +1 -0
- package/dist/languages/prose/index.d.ts +53 -0
- package/dist/languages/prose/index.d.ts.map +1 -0
- package/dist/languages/prose/index.js +172 -0
- package/dist/languages/prose/index.js.map +1 -0
- package/dist/languages/prose/line-bytes.d.ts +31 -0
- package/dist/languages/prose/line-bytes.d.ts.map +1 -0
- package/dist/languages/prose/line-bytes.js +39 -0
- package/dist/languages/prose/line-bytes.js.map +1 -0
- package/dist/languages/python/create-adapter.d.ts +20 -0
- package/dist/languages/python/create-adapter.d.ts.map +1 -0
- package/dist/languages/python/create-adapter.js +9 -0
- package/dist/languages/python/create-adapter.js.map +1 -0
- package/dist/languages/python/index.d.ts +4 -0
- package/dist/languages/python/index.d.ts.map +1 -0
- package/dist/languages/python/index.js +6 -0
- package/dist/languages/python/index.js.map +1 -0
- package/dist/languages/python/profile.d.ts +36 -0
- package/dist/languages/python/profile.d.ts.map +1 -0
- package/dist/languages/python/profile.js +282 -0
- package/dist/languages/python/profile.js.map +1 -0
- package/dist/languages/python/signature.d.ts +53 -0
- package/dist/languages/python/signature.d.ts.map +1 -0
- package/dist/languages/python/signature.js +188 -0
- package/dist/languages/python/signature.js.map +1 -0
- package/dist/languages/python/table.d.ts +46 -0
- package/dist/languages/python/table.d.ts.map +1 -0
- package/dist/languages/python/table.js +88 -0
- package/dist/languages/python/table.js.map +1 -0
- package/dist/languages/shared/call-detection.d.ts +17 -0
- package/dist/languages/shared/call-detection.d.ts.map +1 -0
- package/dist/languages/shared/call-detection.js +86 -0
- package/dist/languages/shared/call-detection.js.map +1 -0
- package/dist/languages/shared/chunks.d.ts +28 -0
- package/dist/languages/shared/chunks.d.ts.map +1 -0
- package/dist/languages/shared/chunks.js +181 -0
- package/dist/languages/shared/chunks.js.map +1 -0
- package/dist/languages/shared/create-adapter.d.ts +11 -0
- package/dist/languages/shared/create-adapter.d.ts.map +1 -0
- package/dist/languages/shared/create-adapter.js +90 -0
- package/dist/languages/shared/create-adapter.js.map +1 -0
- package/dist/languages/shared/decisions.d.ts +45 -0
- package/dist/languages/shared/decisions.d.ts.map +1 -0
- package/dist/languages/shared/decisions.js +141 -0
- package/dist/languages/shared/decisions.js.map +1 -0
- package/dist/languages/shared/dialect.d.ts +18 -0
- package/dist/languages/shared/dialect.d.ts.map +1 -0
- package/dist/languages/shared/dialect.js +37 -0
- package/dist/languages/shared/dialect.js.map +1 -0
- package/dist/languages/shared/doc-binding.d.ts +26 -0
- package/dist/languages/shared/doc-binding.d.ts.map +1 -0
- package/dist/languages/shared/doc-binding.js +50 -0
- package/dist/languages/shared/doc-binding.js.map +1 -0
- package/dist/languages/shared/engine.d.ts +49 -0
- package/dist/languages/shared/engine.d.ts.map +1 -0
- package/dist/languages/shared/engine.js +317 -0
- package/dist/languages/shared/engine.js.map +1 -0
- package/dist/languages/shared/extract-symbols.d.ts +5 -0
- package/dist/languages/shared/extract-symbols.d.ts.map +1 -0
- package/dist/languages/shared/extract-symbols.js +31 -0
- package/dist/languages/shared/extract-symbols.js.map +1 -0
- package/dist/languages/shared/fingerprint.d.ts +7 -0
- package/dist/languages/shared/fingerprint.d.ts.map +1 -0
- package/dist/languages/shared/fingerprint.js +95 -0
- package/dist/languages/shared/fingerprint.js.map +1 -0
- package/dist/languages/shared/grammar-loader.d.ts +15 -0
- package/dist/languages/shared/grammar-loader.d.ts.map +1 -0
- package/dist/languages/shared/grammar-loader.js +48 -0
- package/dist/languages/shared/grammar-loader.js.map +1 -0
- package/dist/languages/shared/import-detection.d.ts +24 -0
- package/dist/languages/shared/import-detection.d.ts.map +1 -0
- package/dist/languages/shared/import-detection.js +138 -0
- package/dist/languages/shared/import-detection.js.map +1 -0
- package/dist/languages/shared/js-family-profile.d.ts +5 -0
- package/dist/languages/shared/js-family-profile.d.ts.map +1 -0
- package/dist/languages/shared/js-family-profile.js +179 -0
- package/dist/languages/shared/js-family-profile.js.map +1 -0
- package/dist/languages/shared/node-kinds.d.ts +78 -0
- package/dist/languages/shared/node-kinds.d.ts.map +1 -0
- package/dist/languages/shared/node-kinds.js +141 -0
- package/dist/languages/shared/node-kinds.js.map +1 -0
- package/dist/languages/shared/node-utils.d.ts +31 -0
- package/dist/languages/shared/node-utils.d.ts.map +1 -0
- package/dist/languages/shared/node-utils.js +89 -0
- package/dist/languages/shared/node-utils.js.map +1 -0
- package/dist/languages/shared/parse-diagnostics.d.ts +44 -0
- package/dist/languages/shared/parse-diagnostics.d.ts.map +1 -0
- package/dist/languages/shared/parse-diagnostics.js +64 -0
- package/dist/languages/shared/parse-diagnostics.js.map +1 -0
- package/dist/languages/shared/parse-limits.d.ts +24 -0
- package/dist/languages/shared/parse-limits.d.ts.map +1 -0
- package/dist/languages/shared/parse-limits.js +134 -0
- package/dist/languages/shared/parse-limits.js.map +1 -0
- package/dist/languages/shared/profile.d.ts +149 -0
- package/dist/languages/shared/profile.d.ts.map +1 -0
- package/dist/languages/shared/profile.js +9 -0
- package/dist/languages/shared/profile.js.map +1 -0
- package/dist/languages/shared/scope-model.d.ts +32 -0
- package/dist/languages/shared/scope-model.d.ts.map +1 -0
- package/dist/languages/shared/scope-model.js +2 -0
- package/dist/languages/shared/scope-model.js.map +1 -0
- package/dist/languages/shared/scope-naming.d.ts +20 -0
- package/dist/languages/shared/scope-naming.d.ts.map +1 -0
- package/dist/languages/shared/scope-naming.js +118 -0
- package/dist/languages/shared/scope-naming.js.map +1 -0
- package/dist/languages/shared/scope-signature.d.ts +14 -0
- package/dist/languages/shared/scope-signature.d.ts.map +1 -0
- package/dist/languages/shared/scope-signature.js +82 -0
- package/dist/languages/shared/scope-signature.js.map +1 -0
- package/dist/languages/shared/signature.d.ts +55 -0
- package/dist/languages/shared/signature.d.ts.map +1 -0
- package/dist/languages/shared/signature.js +147 -0
- package/dist/languages/shared/signature.js.map +1 -0
- package/dist/languages/shared/syntax.d.ts +115 -0
- package/dist/languages/shared/syntax.d.ts.map +1 -0
- package/dist/languages/shared/syntax.js +2 -0
- package/dist/languages/shared/syntax.js.map +1 -0
- package/dist/languages/shared/table-profile-decisions.d.ts +54 -0
- package/dist/languages/shared/table-profile-decisions.d.ts.map +1 -0
- package/dist/languages/shared/table-profile-decisions.js +245 -0
- package/dist/languages/shared/table-profile-decisions.js.map +1 -0
- package/dist/languages/shared/table-profile-module-facts.d.ts +29 -0
- package/dist/languages/shared/table-profile-module-facts.d.ts.map +1 -0
- package/dist/languages/shared/table-profile-module-facts.js +139 -0
- package/dist/languages/shared/table-profile-module-facts.js.map +1 -0
- package/dist/languages/shared/table-profile-queries.d.ts +27 -0
- package/dist/languages/shared/table-profile-queries.d.ts.map +1 -0
- package/dist/languages/shared/table-profile-queries.js +70 -0
- package/dist/languages/shared/table-profile-queries.js.map +1 -0
- package/dist/languages/shared/table-profile-scopes.d.ts +46 -0
- package/dist/languages/shared/table-profile-scopes.d.ts.map +1 -0
- package/dist/languages/shared/table-profile-scopes.js +180 -0
- package/dist/languages/shared/table-profile-scopes.js.map +1 -0
- package/dist/languages/shared/table-profile.d.ts +302 -0
- package/dist/languages/shared/table-profile.d.ts.map +1 -0
- package/dist/languages/shared/table-profile.js +125 -0
- package/dist/languages/shared/table-profile.js.map +1 -0
- package/dist/languages/shared/tree-sitter-types.d.ts +44 -0
- package/dist/languages/shared/tree-sitter-types.d.ts.map +1 -0
- package/dist/languages/shared/tree-sitter-types.js +2 -0
- package/dist/languages/shared/tree-sitter-types.js.map +1 -0
- package/dist/languages/structured-text/index.d.ts +48 -0
- package/dist/languages/structured-text/index.d.ts.map +1 -0
- package/dist/languages/structured-text/index.js +120 -0
- package/dist/languages/structured-text/index.js.map +1 -0
- package/dist/languages/tsx/index.d.ts +4 -0
- package/dist/languages/tsx/index.d.ts.map +1 -0
- package/dist/languages/tsx/index.js +7 -0
- package/dist/languages/tsx/index.js.map +1 -0
- package/dist/languages/typescript/index.d.ts +4 -0
- package/dist/languages/typescript/index.d.ts.map +1 -0
- package/dist/languages/typescript/index.js +7 -0
- package/dist/languages/typescript/index.js.map +1 -0
- package/dist/languages/vue/index.d.ts +21 -0
- package/dist/languages/vue/index.d.ts.map +1 -0
- package/dist/languages/vue/index.js +234 -0
- package/dist/languages/vue/index.js.map +1 -0
- package/dist/languages/vue/mapping.d.ts +11 -0
- package/dist/languages/vue/mapping.d.ts.map +1 -0
- package/dist/languages/vue/mapping.js +77 -0
- package/dist/languages/vue/mapping.js.map +1 -0
- package/dist/registry.d.ts +24 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +42 -0
- package/dist/registry.js.map +1 -0
- package/dist/text/byte-offset-table.d.ts +27 -0
- package/dist/text/byte-offset-table.d.ts.map +1 -0
- package/dist/text/byte-offset-table.js +39 -0
- package/dist/text/byte-offset-table.js.map +1 -0
- package/package.json +125 -3
- package/src/boundaries/expression.ts +95 -0
- package/src/boundaries/extract.ts +307 -0
- package/src/boundaries/python.ts +181 -0
- package/src/index.ts +51 -0
- package/src/languages/__golden__/javascript-basic.json +32 -0
- package/src/languages/__golden__/tsx-basic.json +19 -0
- package/src/languages/__golden__/typescript-basic.json +37 -0
- package/src/languages/astgrep-backend/GRAMMARS.md +86 -0
- package/src/languages/astgrep-backend/README.md +112 -0
- package/src/languages/astgrep-backend/__golden__/bash-basic.sh +53 -0
- package/src/languages/astgrep-backend/__golden__/c-basic.c +64 -0
- package/src/languages/astgrep-backend/__golden__/cpp-basic.cpp +65 -0
- package/src/languages/astgrep-backend/__golden__/csharp-basic.cs +73 -0
- package/src/languages/astgrep-backend/__golden__/go-basic.go +93 -0
- package/src/languages/astgrep-backend/__golden__/java-basic.java +62 -0
- package/src/languages/astgrep-backend/__golden__/kotlin-basic.kt +58 -0
- package/src/languages/astgrep-backend/__golden__/php-basic.php +72 -0
- package/src/languages/astgrep-backend/__golden__/ruby-basic.rb +62 -0
- package/src/languages/astgrep-backend/__golden__/rust-basic.rs +82 -0
- package/src/languages/astgrep-backend/__golden__/swift-basic.swift +73 -0
- package/src/languages/astgrep-backend/adapter.ts +240 -0
- package/src/languages/astgrep-backend/index.ts +44 -0
- package/src/languages/astgrep-backend/lang/README.md +115 -0
- package/src/languages/astgrep-backend/lang/bash.ts +78 -0
- package/src/languages/astgrep-backend/lang/c.ts +119 -0
- package/src/languages/astgrep-backend/lang/cpp.ts +65 -0
- package/src/languages/astgrep-backend/lang/csharp.ts +125 -0
- package/src/languages/astgrep-backend/lang/index.ts +61 -0
- package/src/languages/astgrep-backend/lang/java.ts +115 -0
- package/src/languages/astgrep-backend/lang/kotlin.ts +136 -0
- package/src/languages/astgrep-backend/lang/php.ts +105 -0
- package/src/languages/astgrep-backend/lang/ruby.ts +105 -0
- package/src/languages/astgrep-backend/lang/swift.ts +118 -0
- package/src/languages/astgrep-backend/languages.ts +238 -0
- package/src/languages/astgrep-backend/napi.ts +261 -0
- package/src/languages/astgrep-backend/syntax.ts +242 -0
- package/src/languages/index.ts +53 -0
- package/src/languages/javascript/index.ts +9 -0
- package/src/languages/jsx/index.ts +9 -0
- package/src/languages/prose/index.ts +270 -0
- package/src/languages/prose/line-bytes.ts +52 -0
- package/src/languages/python/README.md +246 -0
- package/src/languages/python/__golden__/python-basic.json +44 -0
- package/src/languages/python/create-adapter.ts +29 -0
- package/src/languages/python/index.ts +8 -0
- package/src/languages/python/profile.ts +341 -0
- package/src/languages/python/signature.ts +183 -0
- package/src/languages/python/table.ts +135 -0
- package/src/languages/shared/__fixtures__/large-over-32kib.ts.txt +1207 -0
- package/src/languages/shared/call-detection.ts +112 -0
- package/src/languages/shared/chunks.ts +255 -0
- package/src/languages/shared/create-adapter.ts +136 -0
- package/src/languages/shared/decisions.ts +204 -0
- package/src/languages/shared/dialect.ts +55 -0
- package/src/languages/shared/doc-binding.ts +78 -0
- package/src/languages/shared/engine.ts +461 -0
- package/src/languages/shared/extract-symbols.ts +35 -0
- package/src/languages/shared/fingerprint.ts +99 -0
- package/src/languages/shared/grammar-loader.ts +67 -0
- package/src/languages/shared/import-detection.ts +154 -0
- package/src/languages/shared/js-family-profile.ts +246 -0
- package/src/languages/shared/node-kinds.ts +153 -0
- package/src/languages/shared/node-utils.ts +120 -0
- package/src/languages/shared/parse-diagnostics.ts +125 -0
- package/src/languages/shared/parse-limits.ts +147 -0
- package/src/languages/shared/profile.ts +184 -0
- package/src/languages/shared/scope-model.ts +43 -0
- package/src/languages/shared/scope-naming.ts +124 -0
- package/src/languages/shared/scope-signature.ts +108 -0
- package/src/languages/shared/signature.ts +149 -0
- package/src/languages/shared/syntax.ts +116 -0
- package/src/languages/shared/table-profile-decisions.ts +251 -0
- package/src/languages/shared/table-profile-module-facts.ts +177 -0
- package/src/languages/shared/table-profile-queries.ts +85 -0
- package/src/languages/shared/table-profile-scopes.ts +198 -0
- package/src/languages/shared/table-profile.ts +427 -0
- package/src/languages/shared/tree-sitter-types.ts +46 -0
- package/src/languages/structured-text/index.ts +192 -0
- package/src/languages/tsx/index.ts +9 -0
- package/src/languages/typescript/index.ts +9 -0
- package/src/languages/vue/index.ts +312 -0
- package/src/languages/vue/mapping.ts +93 -0
- package/src/registry.ts +61 -0
- package/src/text/byte-offset-table.ts +63 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export const RUBY_SOURCE = {
|
|
2
|
+
languageName: "ruby",
|
|
3
|
+
moduleName: "@ast-grep/lang-ruby",
|
|
4
|
+
};
|
|
5
|
+
export const RUBY_TABLE = {
|
|
6
|
+
languageId: "ruby",
|
|
7
|
+
extensions: [".rb", ".rake", ".gemspec"],
|
|
8
|
+
supportLevel: "deep",
|
|
9
|
+
commentKinds: ["comment"],
|
|
10
|
+
stringContainerKinds: ["string", "string_array", "symbol_array", "regex", "heredoc_body"],
|
|
11
|
+
identifierLeafKinds: [
|
|
12
|
+
"identifier",
|
|
13
|
+
"constant",
|
|
14
|
+
"instance_variable",
|
|
15
|
+
"class_variable",
|
|
16
|
+
"global_variable",
|
|
17
|
+
"simple_symbol",
|
|
18
|
+
"hash_key_symbol",
|
|
19
|
+
"self",
|
|
20
|
+
],
|
|
21
|
+
numberLeafKinds: ["integer", "float"],
|
|
22
|
+
booleanLeafKinds: ["true", "false"],
|
|
23
|
+
nullLeafKinds: ["nil"],
|
|
24
|
+
scopes: [
|
|
25
|
+
{ kinds: ["module"], scopeKind: "namespace" },
|
|
26
|
+
{ kinds: ["class", "singleton_class"], scopeKind: "class" },
|
|
27
|
+
{
|
|
28
|
+
kinds: ["method", "singleton_method"],
|
|
29
|
+
scopeKind: "method",
|
|
30
|
+
constructorNames: ["initialize"],
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
decisions: {
|
|
34
|
+
ifKinds: ["if", "unless", "if_modifier", "unless_modifier"],
|
|
35
|
+
elseIfKinds: ["elsif"],
|
|
36
|
+
loopKinds: ["while", "until", "while_modifier", "until_modifier", "for"],
|
|
37
|
+
catchKinds: ["rescue", "rescue_modifier"],
|
|
38
|
+
ternaryKinds: ["ternary"],
|
|
39
|
+
switchKinds: ["case", "case_match"],
|
|
40
|
+
caseKinds: ["when", "in_clause"],
|
|
41
|
+
binaryKinds: ["binary"],
|
|
42
|
+
operatorField: "operator",
|
|
43
|
+
logicalAndOperators: ["&&", "and"],
|
|
44
|
+
logicalOrOperators: ["||", "or"],
|
|
45
|
+
jumpKinds: ["return", "break", "next", "redo", "retry"],
|
|
46
|
+
blockKinds: ["then", "body_statement"],
|
|
47
|
+
consequenceField: "consequence",
|
|
48
|
+
alternativeField: "alternative",
|
|
49
|
+
},
|
|
50
|
+
// Ruby hat keine Importanweisung — siehe Modulkopf.
|
|
51
|
+
imports: { kinds: [] },
|
|
52
|
+
calls: {
|
|
53
|
+
kinds: ["call"],
|
|
54
|
+
functionField: "method",
|
|
55
|
+
receiverField: "receiver",
|
|
56
|
+
argumentsField: "arguments",
|
|
57
|
+
},
|
|
58
|
+
declarationParentKinds: [
|
|
59
|
+
"method",
|
|
60
|
+
"singleton_method",
|
|
61
|
+
"class",
|
|
62
|
+
"module",
|
|
63
|
+
"optional_parameter",
|
|
64
|
+
"keyword_parameter",
|
|
65
|
+
"block_parameter",
|
|
66
|
+
],
|
|
67
|
+
bodyField: "body",
|
|
68
|
+
fieldNames: ["name"],
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=ruby.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ruby.js","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/ruby.ts"],"names":[],"mappings":"AAmCA,MAAM,CAAC,MAAM,WAAW,GAA0B;IAChD,YAAY,EAAE,MAAM;IACpB,UAAU,EAAE,qBAAqB;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAsB;IAC3C,UAAU,EAAE,MAAM;IAClB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;IACxC,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,CAAC,SAAS,CAAC;IACzB,oBAAoB,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC;IACzF,mBAAmB,EAAE;QACnB,YAAY;QACZ,UAAU;QACV,mBAAmB;QACnB,gBAAgB;QAChB,iBAAiB;QACjB,eAAe;QACf,iBAAiB;QACjB,MAAM;KACP;IACD,eAAe,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;IACrC,gBAAgB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACnC,aAAa,EAAE,CAAC,KAAK,CAAC;IACtB,MAAM,EAAE;QACN,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;QAC7C,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE;QAC3D;YACE,KAAK,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC;YACrC,SAAS,EAAE,QAAQ;YACnB,gBAAgB,EAAE,CAAC,YAAY,CAAC;SACjC;KACF;IACD,SAAS,EAAE;QACT,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,CAAC;QAC3D,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,CAAC;QACxE,UAAU,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC;QACzC,YAAY,EAAE,CAAC,SAAS,CAAC;QACzB,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC;QACnC,SAAS,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC;QAChC,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,aAAa,EAAE,UAAU;QACzB,mBAAmB,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QAClC,kBAAkB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QAChC,SAAS,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;QACvD,UAAU,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACtC,gBAAgB,EAAE,aAAa;QAC/B,gBAAgB,EAAE,aAAa;KAChC;IACD,oDAAoD;IACpD,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IACtB,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,MAAM,CAAC;QACf,aAAa,EAAE,QAAQ;QACvB,aAAa,EAAE,UAAU;QACzB,cAAc,EAAE,WAAW;KAC5B;IACD,sBAAsB,EAAE;QACtB,QAAQ;QACR,kBAAkB;QAClB,OAAO;QACP,QAAQ;QACR,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;KAClB;IACD,SAAS,EAAE,MAAM;IACjB,UAAU,EAAE,CAAC,MAAM,CAAC;CACrB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Swift (WP-86).
|
|
3
|
+
*
|
|
4
|
+
* WIE KOTLIN OHNE FELDNAMEN — mit denselben zwei Folgen (Signatur = erste
|
|
5
|
+
* Zeile, `IdentifierFact.role` immer `reference`); die Begruendung steht im
|
|
6
|
+
* Kopf von `kotlin.ts` und wird hier nicht wiederholt.
|
|
7
|
+
*
|
|
8
|
+
* ABBILDUNGEN: `class_declaration` traegt in Swift AUCH `struct`, `enum`,
|
|
9
|
+
* `actor` und `extension` — unterschieden ueber das Schluesselwortkind.
|
|
10
|
+
* `extension` -> `namespace`: eine Erweiterung ist kein neuer Typ, sondern ein
|
|
11
|
+
* benannter Ort fuer weitere Mitglieder eines bestehenden.
|
|
12
|
+
* `protocol_declaration` -> `interface`.
|
|
13
|
+
*
|
|
14
|
+
* ENTSCHEIDUNGSPUNKTE (spec.md §16.2/§16.3):
|
|
15
|
+
* - `guard_statement` zaehlt als `guard` — es IST die vorzeitige Rueckkehr,
|
|
16
|
+
* fuer die die Art gedacht ist (`guardKinds`).
|
|
17
|
+
* - `switch_entry` ist ein `case`; der `default`-Arm zaehlt nicht
|
|
18
|
+
* (`caseExcludeChildKinds: ["default_keyword"]`).
|
|
19
|
+
* - `catch_block` zaehlt als `catch`.
|
|
20
|
+
* - `??` zaehlt als `short_circuit`, nur erweitert.
|
|
21
|
+
* - `try?`/`try!` zaehlen NICHT: anders als Rusts `?` kehren sie nicht
|
|
22
|
+
* zurueck, sondern liefern `nil` beziehungsweise brechen ab. Der Zweig
|
|
23
|
+
* entsteht am `catch_block`, und der wird gezaehlt.
|
|
24
|
+
*
|
|
25
|
+
* EINE MESSGRENZE, AUSDRUECKLICH: `@ast-grep/lang-swift` steht bei Version
|
|
26
|
+
* 0.0.8. Geprueft ist die Grammatik an der Golden-Datei dieses Pakets
|
|
27
|
+
* (0 Fehlerknoten); an grossen echten Swift-Projekten ist sie hier NICHT
|
|
28
|
+
* erprobt.
|
|
29
|
+
*/
|
|
30
|
+
import type { LanguageKindTable } from "../../shared/table-profile.js";
|
|
31
|
+
import type { AstGrepLanguageSource } from "../adapter.js";
|
|
32
|
+
export declare const SWIFT_SOURCE: AstGrepLanguageSource;
|
|
33
|
+
export declare const SWIFT_TABLE: LanguageKindTable;
|
|
34
|
+
//# sourceMappingURL=swift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/swift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,YAAY,EAAE,qBAG1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,iBAgFzB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export const SWIFT_SOURCE = {
|
|
2
|
+
languageName: "swift",
|
|
3
|
+
moduleName: "@ast-grep/lang-swift",
|
|
4
|
+
};
|
|
5
|
+
export const SWIFT_TABLE = {
|
|
6
|
+
languageId: "swift",
|
|
7
|
+
extensions: [".swift"],
|
|
8
|
+
supportLevel: "deep",
|
|
9
|
+
commentKinds: ["comment", "multiline_comment"],
|
|
10
|
+
stringContainerKinds: ["line_string_literal", "multi_line_string_literal", "raw_string_literal"],
|
|
11
|
+
identifierLeafKinds: ["simple_identifier", "type_identifier", "self_expression"],
|
|
12
|
+
numberLeafKinds: ["integer_literal", "hex_literal", "oct_literal", "bin_literal", "real_literal"],
|
|
13
|
+
booleanLeafKinds: ["boolean_literal"],
|
|
14
|
+
nullLeafKinds: ["nil"],
|
|
15
|
+
scopes: [
|
|
16
|
+
{
|
|
17
|
+
kinds: ["class_declaration"],
|
|
18
|
+
scopeKind: "class",
|
|
19
|
+
nameKinds: ["type_identifier", "user_type"],
|
|
20
|
+
refine: [
|
|
21
|
+
{ childKinds: ["enum"], scopeKind: "enum" },
|
|
22
|
+
{ childKinds: ["extension"], scopeKind: "namespace" },
|
|
23
|
+
],
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
kinds: ["protocol_declaration"],
|
|
27
|
+
scopeKind: "interface",
|
|
28
|
+
nameKinds: ["type_identifier"],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
kinds: ["function_declaration", "protocol_function_declaration"],
|
|
32
|
+
scopeKind: "function",
|
|
33
|
+
nameKinds: ["simple_identifier"],
|
|
34
|
+
},
|
|
35
|
+
{ kinds: ["init_declaration"], scopeKind: "constructor", nameKinds: ["init"] },
|
|
36
|
+
{
|
|
37
|
+
kinds: ["property_declaration"],
|
|
38
|
+
scopeKind: "property",
|
|
39
|
+
nameKindPath: ["pattern"],
|
|
40
|
+
nameKinds: ["simple_identifier"],
|
|
41
|
+
// Wie in Kotlin: `var i = 0` in einem Funktionsrumpf ist kein Symbol.
|
|
42
|
+
parentKinds: ["class_body", "protocol_body", "enum_class_body", "source_file"],
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
decisions: {
|
|
46
|
+
ifKinds: ["if_statement"],
|
|
47
|
+
elseIfParentKinds: ["if_statement"],
|
|
48
|
+
guardKinds: ["guard_statement"],
|
|
49
|
+
loopKinds: ["for_statement", "while_statement", "repeat_while_statement"],
|
|
50
|
+
catchKinds: ["catch_block"],
|
|
51
|
+
ternaryKinds: ["ternary_expression"],
|
|
52
|
+
switchKinds: ["switch_statement"],
|
|
53
|
+
caseKinds: ["switch_entry"],
|
|
54
|
+
caseExcludeChildKinds: ["default_keyword"],
|
|
55
|
+
anonymousOperatorKinds: [
|
|
56
|
+
"conjunction_expression",
|
|
57
|
+
"disjunction_expression",
|
|
58
|
+
"nil_coalescing_expression",
|
|
59
|
+
],
|
|
60
|
+
logicalAndOperators: ["&&"],
|
|
61
|
+
logicalOrOperators: ["||"],
|
|
62
|
+
shortCircuitOperators: ["??"],
|
|
63
|
+
jumpKinds: ["control_transfer_statement"],
|
|
64
|
+
blockKinds: ["statements"],
|
|
65
|
+
},
|
|
66
|
+
imports: {
|
|
67
|
+
kinds: ["import_declaration"],
|
|
68
|
+
pathKinds: ["identifier"],
|
|
69
|
+
},
|
|
70
|
+
calls: {
|
|
71
|
+
kinds: ["call_expression"],
|
|
72
|
+
memberKinds: ["navigation_expression"],
|
|
73
|
+
// Swift benutzt `call_expression` AUCH fuer Indexzugriffe: `items["a"]`
|
|
74
|
+
// waere sonst ein Aufruf von `items`. Nur ein Anhang, der mit `(` beginnt,
|
|
75
|
+
// ist ein Aufruf.
|
|
76
|
+
acceptCall: (node) => {
|
|
77
|
+
const last = node.children[node.children.length - 1];
|
|
78
|
+
return last !== undefined && last.text.trimStart().startsWith("(");
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
declarationParentKinds: [],
|
|
82
|
+
visibilityKinds: ["modifiers"],
|
|
83
|
+
visibilityWords: ["public", "internal", "fileprivate", "private", "open"],
|
|
84
|
+
fieldNames: ["name"],
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=swift.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/swift.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Die Sprachtabellen des ast-grep-Backends.
|
|
3
|
+
*
|
|
4
|
+
* Jede Sprache ist EINE Tabelle (`shared/table-profile.ts`) plus die Angabe,
|
|
5
|
+
* aus welchem npm-Paket ihre Grammatik kommt. Kein Motor, keine
|
|
6
|
+
* Fallunterscheidung, keine zweite Traversierung. Wer eine Sprache
|
|
7
|
+
* hinzufuegt, schreibt eine Tabelle wie die beiden hier und eine
|
|
8
|
+
* Registrierungszeile in `languages/index.ts` — sonst nichts.
|
|
9
|
+
*
|
|
10
|
+
* DIE KNOTENARTEN SIND NACHGESEHEN, NICHT GERATEN: jede Zeichenkette hier
|
|
11
|
+
* stammt aus einem echten Baum, den `adapter.test.ts` mit demselben Quelltext
|
|
12
|
+
* wieder erzeugt. Wer eine Art aendert, ohne den Test zu bewegen, sieht es
|
|
13
|
+
* sofort.
|
|
14
|
+
*
|
|
15
|
+
* SPRACHPAKETE WERDEN EINZELN AUFGENOMMEN. Die 22 Sprachpakete von ast-grep
|
|
16
|
+
* belegen zusammen 450 MB; eine Sammelabhaengigkeit waere respektlos gegen
|
|
17
|
+
* jeden, der nur Go analysieren will.
|
|
18
|
+
*/
|
|
19
|
+
import type { LanguageKindTable } from "../shared/table-profile.js";
|
|
20
|
+
import type { AstGrepLanguageSource } from "./adapter.js";
|
|
21
|
+
/** Sprachpakete, wie ast-grep sie kennt (Name) und npm sie liefert (Paket). */
|
|
22
|
+
export declare const GO_SOURCE: AstGrepLanguageSource;
|
|
23
|
+
export declare const RUST_SOURCE: AstGrepLanguageSource;
|
|
24
|
+
/**
|
|
25
|
+
* Go.
|
|
26
|
+
*
|
|
27
|
+
* Zwei Eigenheiten stehen in der Tabelle statt in einer Sonderbehandlung:
|
|
28
|
+
* - `else if` ist in Go ein `if_statement` DIREKT unter einem `if_statement`
|
|
29
|
+
* (kein `else_clause` wie in JS/Rust) — `elseIfParentKinds` sagt das.
|
|
30
|
+
* - Ein Rumpf ist `block > statement_list`; die Guard-Clause-Erkennung muss
|
|
31
|
+
* durch BEIDE Huellen hindurch (`blockKinds`).
|
|
32
|
+
* - Sichtbarkeit steht nicht im Baum, sondern im Namen: Go exportiert, was
|
|
33
|
+
* mit einem Grossbuchstaben beginnt.
|
|
34
|
+
*/
|
|
35
|
+
export declare const GO_TABLE: LanguageKindTable;
|
|
36
|
+
/**
|
|
37
|
+
* Rust.
|
|
38
|
+
*
|
|
39
|
+
* Auch hier stehen die Eigenheiten in der Tabelle:
|
|
40
|
+
* - Sichtbarkeit ist ein Knoten (`visibility_modifier`), kein Namensmuster.
|
|
41
|
+
* - `use a::b as c` und `use a::{b, c}` werden ausgepackt, sonst stuende der
|
|
42
|
+
* ganze Ausdruck als "Pfad" im Ergebnis.
|
|
43
|
+
* - `impl Counter { ... }` oeffnet einen Scope der Art `class`, damit
|
|
44
|
+
* Methoden `Counter.bump` heissen statt bloss `bump`. Dass eine Datei
|
|
45
|
+
* dadurch `Counter` zweimal fuehren kann (einmal `struct_item`, einmal
|
|
46
|
+
* `impl_item`), ist gewollt: es sind zwei Quelltextstellen, und die
|
|
47
|
+
* Scope-Kennungen unterscheiden sich ueber die Ordnungszahl.
|
|
48
|
+
*
|
|
49
|
+
* BEKANNTE GRENZE: eine `fn` in einem `impl`-Block wird als `function`
|
|
50
|
+
* gefuehrt, nicht als `method` — die Knotenart ist in beiden Faellen
|
|
51
|
+
* `function_item`, und die Tabelle entscheidet nach Knotenart. Das ist eine
|
|
52
|
+
* Ungenauigkeit in der Symbolart, keine im Bereich oder in der Metrik.
|
|
53
|
+
*/
|
|
54
|
+
export declare const RUST_TABLE: LanguageKindTable;
|
|
55
|
+
//# sourceMappingURL=languages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../../src/languages/astgrep-backend/languages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,+EAA+E;AAC/E,eAAO,MAAM,SAAS,EAAE,qBAGvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,qBAGzB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,EAAE,iBAiFtB,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,UAAU,EAAE,iBA4FxB,CAAC"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/** Sprachpakete, wie ast-grep sie kennt (Name) und npm sie liefert (Paket). */
|
|
2
|
+
export const GO_SOURCE = {
|
|
3
|
+
languageName: "go",
|
|
4
|
+
moduleName: "@ast-grep/lang-go",
|
|
5
|
+
};
|
|
6
|
+
export const RUST_SOURCE = {
|
|
7
|
+
languageName: "rust",
|
|
8
|
+
moduleName: "@ast-grep/lang-rust",
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Go.
|
|
12
|
+
*
|
|
13
|
+
* Zwei Eigenheiten stehen in der Tabelle statt in einer Sonderbehandlung:
|
|
14
|
+
* - `else if` ist in Go ein `if_statement` DIREKT unter einem `if_statement`
|
|
15
|
+
* (kein `else_clause` wie in JS/Rust) — `elseIfParentKinds` sagt das.
|
|
16
|
+
* - Ein Rumpf ist `block > statement_list`; die Guard-Clause-Erkennung muss
|
|
17
|
+
* durch BEIDE Huellen hindurch (`blockKinds`).
|
|
18
|
+
* - Sichtbarkeit steht nicht im Baum, sondern im Namen: Go exportiert, was
|
|
19
|
+
* mit einem Grossbuchstaben beginnt.
|
|
20
|
+
*/
|
|
21
|
+
export const GO_TABLE = {
|
|
22
|
+
languageId: "go",
|
|
23
|
+
extensions: [".go"],
|
|
24
|
+
supportLevel: "deep",
|
|
25
|
+
commentKinds: ["comment"],
|
|
26
|
+
stringContainerKinds: ["interpreted_string_literal", "raw_string_literal", "rune_literal"],
|
|
27
|
+
identifierLeafKinds: [
|
|
28
|
+
"identifier",
|
|
29
|
+
"field_identifier",
|
|
30
|
+
"package_identifier",
|
|
31
|
+
"type_identifier",
|
|
32
|
+
"label_name",
|
|
33
|
+
],
|
|
34
|
+
numberLeafKinds: ["int_literal", "float_literal", "imaginary_literal"],
|
|
35
|
+
booleanLeafKinds: ["true", "false"],
|
|
36
|
+
nullLeafKinds: ["nil"],
|
|
37
|
+
scopes: [
|
|
38
|
+
{ kinds: ["function_declaration"], scopeKind: "function" },
|
|
39
|
+
{
|
|
40
|
+
kinds: ["method_declaration"],
|
|
41
|
+
scopeKind: "method",
|
|
42
|
+
qualifierField: "receiver",
|
|
43
|
+
qualifierNameKinds: ["type_identifier"],
|
|
44
|
+
},
|
|
45
|
+
{ kinds: ["method_elem"], scopeKind: "method" },
|
|
46
|
+
{
|
|
47
|
+
kinds: ["type_spec"],
|
|
48
|
+
scopeKind: "type",
|
|
49
|
+
refine: [
|
|
50
|
+
{ childKinds: ["struct_type"], scopeKind: "class" },
|
|
51
|
+
{ childKinds: ["interface_type"], scopeKind: "interface" },
|
|
52
|
+
],
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
decisions: {
|
|
56
|
+
ifKinds: ["if_statement"],
|
|
57
|
+
elseIfParentKinds: ["if_statement"],
|
|
58
|
+
loopKinds: ["for_statement"],
|
|
59
|
+
switchKinds: ["expression_switch_statement", "type_switch_statement", "select_statement"],
|
|
60
|
+
// WP-86: `default_case` steht hier NICHT mehr. Gos `select` ist zwar kein
|
|
61
|
+
// C-`switch` — jeder `communication_case` ist ein echter, zur Laufzeit
|
|
62
|
+
// gewaehlter Zweig und zaehlt deshalb —, aber der `default`-Zweig ist in
|
|
63
|
+
// beiden Formen der Fall, der uebrig bleibt. Er eroeffnet keinen
|
|
64
|
+
// zusaetzlichen unabhaengigen Pfad: ein `switch` mit drei `case` und einem
|
|
65
|
+
// `default` hat DREI Entscheidungen, nicht vier. Vorher zaehlte er mit und
|
|
66
|
+
// jede Go-Datei mit `default` bekam eine zyklomatische Zahl zu viel.
|
|
67
|
+
caseKinds: ["expression_case", "type_case", "communication_case"],
|
|
68
|
+
binaryKinds: ["binary_expression"],
|
|
69
|
+
operatorField: "operator",
|
|
70
|
+
logicalAndOperators: ["&&"],
|
|
71
|
+
logicalOrOperators: ["||"],
|
|
72
|
+
jumpKinds: ["return_statement", "break_statement", "continue_statement", "goto_statement"],
|
|
73
|
+
blockKinds: ["block", "statement_list"],
|
|
74
|
+
consequenceField: "consequence",
|
|
75
|
+
alternativeField: "alternative",
|
|
76
|
+
},
|
|
77
|
+
imports: {
|
|
78
|
+
kinds: ["import_declaration"],
|
|
79
|
+
specKinds: ["import_spec"],
|
|
80
|
+
pathField: "path",
|
|
81
|
+
aliasField: "name",
|
|
82
|
+
},
|
|
83
|
+
calls: {
|
|
84
|
+
kinds: ["call_expression"],
|
|
85
|
+
functionField: "function",
|
|
86
|
+
argumentsField: "arguments",
|
|
87
|
+
memberKinds: ["selector_expression"],
|
|
88
|
+
},
|
|
89
|
+
declarationParentKinds: [
|
|
90
|
+
"function_declaration",
|
|
91
|
+
"method_declaration",
|
|
92
|
+
"method_elem",
|
|
93
|
+
"type_spec",
|
|
94
|
+
"const_spec",
|
|
95
|
+
"var_spec",
|
|
96
|
+
"import_spec",
|
|
97
|
+
"field_declaration",
|
|
98
|
+
],
|
|
99
|
+
bodyField: "body",
|
|
100
|
+
isExported: (name) => /^\p{Lu}/u.test(name),
|
|
101
|
+
fieldNames: ["name"],
|
|
102
|
+
};
|
|
103
|
+
/**
|
|
104
|
+
* Rust.
|
|
105
|
+
*
|
|
106
|
+
* Auch hier stehen die Eigenheiten in der Tabelle:
|
|
107
|
+
* - Sichtbarkeit ist ein Knoten (`visibility_modifier`), kein Namensmuster.
|
|
108
|
+
* - `use a::b as c` und `use a::{b, c}` werden ausgepackt, sonst stuende der
|
|
109
|
+
* ganze Ausdruck als "Pfad" im Ergebnis.
|
|
110
|
+
* - `impl Counter { ... }` oeffnet einen Scope der Art `class`, damit
|
|
111
|
+
* Methoden `Counter.bump` heissen statt bloss `bump`. Dass eine Datei
|
|
112
|
+
* dadurch `Counter` zweimal fuehren kann (einmal `struct_item`, einmal
|
|
113
|
+
* `impl_item`), ist gewollt: es sind zwei Quelltextstellen, und die
|
|
114
|
+
* Scope-Kennungen unterscheiden sich ueber die Ordnungszahl.
|
|
115
|
+
*
|
|
116
|
+
* BEKANNTE GRENZE: eine `fn` in einem `impl`-Block wird als `function`
|
|
117
|
+
* gefuehrt, nicht als `method` — die Knotenart ist in beiden Faellen
|
|
118
|
+
* `function_item`, und die Tabelle entscheidet nach Knotenart. Das ist eine
|
|
119
|
+
* Ungenauigkeit in der Symbolart, keine im Bereich oder in der Metrik.
|
|
120
|
+
*/
|
|
121
|
+
export const RUST_TABLE = {
|
|
122
|
+
languageId: "rust",
|
|
123
|
+
extensions: [".rs"],
|
|
124
|
+
supportLevel: "deep",
|
|
125
|
+
commentKinds: ["line_comment", "block_comment"],
|
|
126
|
+
stringContainerKinds: ["string_literal", "raw_string_literal", "char_literal"],
|
|
127
|
+
identifierLeafKinds: [
|
|
128
|
+
"identifier",
|
|
129
|
+
"type_identifier",
|
|
130
|
+
"field_identifier",
|
|
131
|
+
"primitive_type",
|
|
132
|
+
"self",
|
|
133
|
+
"shorthand_field_identifier",
|
|
134
|
+
],
|
|
135
|
+
numberLeafKinds: ["integer_literal", "float_literal"],
|
|
136
|
+
booleanLeafKinds: ["true", "false"],
|
|
137
|
+
scopes: [
|
|
138
|
+
{ kinds: ["function_item"], scopeKind: "function" },
|
|
139
|
+
{
|
|
140
|
+
kinds: ["function_signature_item"],
|
|
141
|
+
scopeKind: "method",
|
|
142
|
+
ancestorKinds: ["trait_item"],
|
|
143
|
+
},
|
|
144
|
+
{ kinds: ["struct_item", "union_item"], scopeKind: "class" },
|
|
145
|
+
{ kinds: ["impl_item"], scopeKind: "class", nameField: "type" },
|
|
146
|
+
{ kinds: ["trait_item"], scopeKind: "interface" },
|
|
147
|
+
{ kinds: ["enum_item"], scopeKind: "enum" },
|
|
148
|
+
{ kinds: ["type_item"], scopeKind: "type" },
|
|
149
|
+
{ kinds: ["mod_item"], scopeKind: "namespace" },
|
|
150
|
+
],
|
|
151
|
+
decisions: {
|
|
152
|
+
ifKinds: ["if_expression"],
|
|
153
|
+
elseIfParentKinds: ["else_clause"],
|
|
154
|
+
loopKinds: ["for_expression", "while_expression", "loop_expression"],
|
|
155
|
+
switchKinds: ["match_expression"],
|
|
156
|
+
// WP-86: gezaehlt wird das MUSTER, nicht der Arm — nur so ist der
|
|
157
|
+
// Auffangarm `_ => ...` zu erkennen (sein `match_pattern` besteht genau
|
|
158
|
+
// aus dem `_`). Er ist Rusts `default` und zaehlt nicht;
|
|
159
|
+
// `Some(_) => ...` zaehlt dagegen, weil es wirklich nur EINEN Fall abdeckt.
|
|
160
|
+
caseKinds: ["match_pattern"],
|
|
161
|
+
caseExcludeFirstChildText: "_",
|
|
162
|
+
// `Some(1) | Some(2)` ist eine Musteralternative — `DecisionKind`
|
|
163
|
+
// `pattern_alternative` existiert genau dafuer.
|
|
164
|
+
patternAlternativeKinds: ["or_pattern"],
|
|
165
|
+
// WP-86: der `?`-OPERATOR IST KONTROLLFLUSS — er kehrt bei `Err` sofort
|
|
166
|
+
// zurueck. Gezaehlt wird er KONSERVATIV als `short_circuit`, also nur
|
|
167
|
+
// ERWEITERT (spec.md §16.3), nicht klassisch (§16.2): `?` ist in
|
|
168
|
+
// idiomatischem Rust so haeufig wie ein Semikolon, und klassisch
|
|
169
|
+
// mitgezaehlt bekaeme jede Funktion, die drei Aufrufe weiterreicht,
|
|
170
|
+
// dieselbe Zahl wie eine mit drei `if`. Verschwiegen wird er nicht — die
|
|
171
|
+
// erweiterte Zahl zeigt ihn.
|
|
172
|
+
shortCircuitKinds: ["try_expression"],
|
|
173
|
+
binaryKinds: ["binary_expression"],
|
|
174
|
+
operatorField: "operator",
|
|
175
|
+
logicalAndOperators: ["&&"],
|
|
176
|
+
logicalOrOperators: ["||"],
|
|
177
|
+
jumpKinds: ["return_expression", "break_expression", "continue_expression"],
|
|
178
|
+
blockKinds: ["block"],
|
|
179
|
+
consequenceField: "consequence",
|
|
180
|
+
alternativeField: "alternative",
|
|
181
|
+
},
|
|
182
|
+
imports: {
|
|
183
|
+
kinds: ["use_declaration"],
|
|
184
|
+
pathField: "argument",
|
|
185
|
+
unwrap: [
|
|
186
|
+
{ kinds: ["use_as_clause"], pathField: "path", aliasField: "alias" },
|
|
187
|
+
{ kinds: ["scoped_use_list"], pathField: "path", namesField: "list" },
|
|
188
|
+
],
|
|
189
|
+
},
|
|
190
|
+
calls: {
|
|
191
|
+
kinds: ["call_expression", "macro_invocation"],
|
|
192
|
+
functionField: "function",
|
|
193
|
+
argumentsField: "arguments",
|
|
194
|
+
memberKinds: ["field_expression", "scoped_identifier"],
|
|
195
|
+
},
|
|
196
|
+
declarationParentKinds: [
|
|
197
|
+
"function_item",
|
|
198
|
+
"function_signature_item",
|
|
199
|
+
"struct_item",
|
|
200
|
+
"enum_item",
|
|
201
|
+
"trait_item",
|
|
202
|
+
"mod_item",
|
|
203
|
+
"type_item",
|
|
204
|
+
"const_item",
|
|
205
|
+
"static_item",
|
|
206
|
+
"field_declaration",
|
|
207
|
+
"parameter",
|
|
208
|
+
],
|
|
209
|
+
visibilityKinds: ["visibility_modifier"],
|
|
210
|
+
bodyField: "body",
|
|
211
|
+
isExported: (_name, node) => node.children.some((child) => child.type === "visibility_modifier"),
|
|
212
|
+
fieldNames: ["name", "type"],
|
|
213
|
+
};
|
|
214
|
+
//# sourceMappingURL=languages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../src/languages/astgrep-backend/languages.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/** Die Knotenform von ast-grep, auf die Teilmenge reduziert, die wir benutzen. */
|
|
2
|
+
export interface SgNode {
|
|
3
|
+
id(): number;
|
|
4
|
+
kind(): string;
|
|
5
|
+
text(): string;
|
|
6
|
+
range(): {
|
|
7
|
+
start: SgPos;
|
|
8
|
+
end: SgPos;
|
|
9
|
+
};
|
|
10
|
+
isLeaf(): boolean;
|
|
11
|
+
isNamed(): boolean;
|
|
12
|
+
children(): SgNode[];
|
|
13
|
+
namedChildren(): SgNode[];
|
|
14
|
+
parent(): SgNode | null;
|
|
15
|
+
prev(): SgNode | null;
|
|
16
|
+
field(name: string): SgNode | null;
|
|
17
|
+
}
|
|
18
|
+
export interface SgPos {
|
|
19
|
+
/** 0-basierte Zeile. */
|
|
20
|
+
line: number;
|
|
21
|
+
/** 0-basierte Spalte, in UTF-16-Einheiten. */
|
|
22
|
+
column: number;
|
|
23
|
+
/**
|
|
24
|
+
* ENTGEGEN der Typdefinition von ast-grep ("byte offset") ein
|
|
25
|
+
* UTF-16-Offset — nachgemessen an Umlauten und Emoji. Die Umrechnung in
|
|
26
|
+
* Bytes macht ausschliesslich die `ByteOffsetTable`.
|
|
27
|
+
*/
|
|
28
|
+
index: number;
|
|
29
|
+
}
|
|
30
|
+
export interface SgRoot {
|
|
31
|
+
root(): SgNode;
|
|
32
|
+
}
|
|
33
|
+
/** Wie es einer angemeldeten Sprache ergangen ist. */
|
|
34
|
+
export type AstGrepLanguageStatus = {
|
|
35
|
+
readonly state: "pending";
|
|
36
|
+
} | {
|
|
37
|
+
readonly state: "available";
|
|
38
|
+
} | {
|
|
39
|
+
readonly state: "unavailable";
|
|
40
|
+
readonly reason: string;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Meldet eine Sprache fuer die EINE spaetere Registrierung an. Kostet nichts:
|
|
44
|
+
* kein `require`, kein Laden einer Grammatik — genau wie die traege
|
|
45
|
+
* Registrierung der tree-sitter-Adapter (`registry.ts`).
|
|
46
|
+
*/
|
|
47
|
+
export declare function registerAstGrepLanguage(languageName: string, moduleName: string): void;
|
|
48
|
+
/**
|
|
49
|
+
* Zustand einer angemeldeten Sprache — fuer `doctor` und fuer Tests. Loest die
|
|
50
|
+
* Registrierung NICHT aus: wer nur fragt, soll keine Grammatik laden.
|
|
51
|
+
*/
|
|
52
|
+
export declare function astGrepLanguageStatus(languageName: string): AstGrepLanguageStatus | null;
|
|
53
|
+
/** Alle angemeldeten Sprachen mit ihrem Zustand (Reihenfolge der Anmeldung). */
|
|
54
|
+
export declare function astGrepLanguageStates(): {
|
|
55
|
+
languageName: string;
|
|
56
|
+
status: AstGrepLanguageStatus;
|
|
57
|
+
}[];
|
|
58
|
+
/**
|
|
59
|
+
* Parst Quelltext mit ast-grep. Loest beim ERSTEN Aufruf die einmalige
|
|
60
|
+
* Registrierung aus (siehe Modulkopf) und wirft einen benannten
|
|
61
|
+
* `AdapterParseError`, wenn genau diese Sprache nicht verfuegbar ist.
|
|
62
|
+
*/
|
|
63
|
+
export declare function astGrepParse(languageName: string, source: string): SgNode;
|
|
64
|
+
/**
|
|
65
|
+
* Nur fuer Tests: setzt Anmeldungen und Registrierungszustand zurueck. Der
|
|
66
|
+
* NATIVE Zustand laesst sich damit NICHT zuruecksetzen — `registerDynamicLanguage`
|
|
67
|
+
* bleibt im Prozess wirksam. Ein Test, der eine zweite, andere Registrierung
|
|
68
|
+
* erzwingen will, braucht einen eigenen Prozess.
|
|
69
|
+
*/
|
|
70
|
+
export declare function resetAstGrepRegistrationForTests(): void;
|
|
71
|
+
//# sourceMappingURL=napi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"napi.d.ts","sourceRoot":"","sources":["../../../src/languages/astgrep-backend/napi.ts"],"names":[],"mappings":"AAyCA,kFAAkF;AAClF,MAAM,WAAW,MAAM;IACrB,EAAE,IAAI,MAAM,CAAC;IACb,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,MAAM,CAAC;IACf,KAAK,IAAI;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,KAAK,CAAA;KAAE,CAAC;IACtC,MAAM,IAAI,OAAO,CAAC;IAClB,OAAO,IAAI,OAAO,CAAC;IACnB,QAAQ,IAAI,MAAM,EAAE,CAAC;IACrB,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACpC;AAED,MAAM,WAAW,KAAK;IACpB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,IAAI,MAAM,CAAC;CAChB;AAeD,sDAAsD;AACtD,MAAM,MAAM,qBAAqB,GAC7B;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAc/D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAwBtF;AA2DD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAExF;AAED,gFAAgF;AAChF,wBAAgB,qBAAqB,IAAI;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,qBAAqB,CAAA;CAAE,EAAE,CAKjG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAmCzE;AAED;;;;;GAKG;AACH,wBAAgB,gCAAgC,IAAI,IAAI,CAIvD"}
|