feat: establish first-class lexical language parity #2
3 changed files with 24 additions and 15 deletions
commit
e56ea81f9d
11
README.md
11
README.md
|
|
@ -6,10 +6,11 @@ elements, and dependency edges show calls, imports, and inheritance. The same
|
||||||
model is emitted as versioned JSON for other tools, including a future Fold
|
model is emitted as versioned JSON for other tools, including a future Fold
|
||||||
integration.
|
integration.
|
||||||
|
|
||||||
The initial extractor recognizes Rust, Dart, Python, C/C++,
|
The initial extractor provides first-class lexical profiles for Rust, Dart,
|
||||||
JavaScript/TypeScript, and Swift source extensions. Symbol extraction is intentionally conservative and
|
C/C++, and JavaScript/TypeScript, with explicitly secondary Python and Swift
|
||||||
lexical in v0.1; every relationship records its backend, confidence, and source
|
coverage. Symbol extraction is intentionally conservative and lexical in v0.1;
|
||||||
location so consumers can distinguish it from imported symbolic evidence.
|
every relationship records its backend, confidence, and all contributing source
|
||||||
|
locations so consumers can distinguish it from imported symbolic evidence.
|
||||||
See [language support and parity](docs/architecture/language-support.md) for the
|
See [language support and parity](docs/architecture/language-support.md) for the
|
||||||
construct-level coverage matrix and first-class promotion contract.
|
construct-level coverage matrix and first-class promotion contract.
|
||||||
|
|
||||||
|
|
@ -56,6 +57,8 @@ default; an internal or vendored URL can be supplied with --cytoscape-url.
|
||||||
confidence.
|
confidence.
|
||||||
- A focused Rust test suite, quality gate, bounded auto-loop, and artifact-based
|
- A focused Rust test suite, quality gate, bounded auto-loop, and artifact-based
|
||||||
benchmark runner.
|
benchmark runner.
|
||||||
|
- A labeled language-parity corpus with independent gates for every advertised
|
||||||
|
language; Python and Swift remain characterization-only secondary profiles.
|
||||||
|
|
||||||
## Important limits
|
## Important limits
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,9 @@
|
||||||
|
|
||||||
- Versioned graph JSON.
|
- Versioned graph JSON.
|
||||||
- Fast lexical multi-language preview.
|
- Fast lexical multi-language preview.
|
||||||
- Dart classes, functions/methods, imports, inheritance, and local calls.
|
- First-class lexical profiles for Dart, Rust, C/C++, and
|
||||||
|
JavaScript/TypeScript, with labeled parity fixtures and per-language gates.
|
||||||
|
- Characterized secondary Python and Swift coverage.
|
||||||
- Fold SARIF/native finding overlay.
|
- Fold SARIF/native finding overlay.
|
||||||
- Interactive Cytoscape building.
|
- Interactive Cytoscape building.
|
||||||
- Transparent structural indicators and deterministic tests.
|
- Transparent structural indicators and deterministic tests.
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,13 @@ JavaScript/TypeScript, and Swift. Recognition does not imply compiler-level
|
||||||
coverage: the current backend is deliberately lexical, line-oriented, and
|
coverage: the current backend is deliberately lexical, line-oriented, and
|
||||||
evidence-labeled.
|
evidence-labeled.
|
||||||
|
|
||||||
The first-class parity targets are Dart, Rust, C/C++, and
|
The first-class lexical profiles are Dart, Rust, C/C++, and
|
||||||
JavaScript/TypeScript. Python and Swift remain secondary until their extraction
|
JavaScript/TypeScript. Here, parity means each profile has dedicated construct
|
||||||
contracts and fixtures reach the same standard.
|
patterns, relationship evidence, positive and clean-negative fixtures, stable
|
||||||
|
regression assertions, and an independent benchmark gate. It does not mean the
|
||||||
|
languages have identical grammar features or compiler-grade resolution. Python
|
||||||
|
and Swift remain secondary until their extraction contracts and fixtures reach
|
||||||
|
the same standard.
|
||||||
|
|
||||||
Plain `.h` files remain classified as C++ because their language cannot be
|
Plain `.h` files remain classified as C++ because their language cannot be
|
||||||
determined from the extension alone. C projects that require header symbol
|
determined from the extension alone. C projects that require header symbol
|
||||||
|
|
@ -18,12 +22,12 @@ frontend; Brick does not guess that ownership.
|
||||||
|
|
||||||
| Language | Useful current coverage | Important gaps | Tier |
|
| Language | Useful current coverage | Important gaps | Tier |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| Dart | Classes, mixins, enums, extensions, methods, named constructors, accessors, import/export/part directives, `extends`/`with`/`implements`/`on`, and ordinary calls | operators, generic relationship targets, conditional directives, and multiline declarations | first-class target |
|
| Dart | Classes, mixins, enums, extensions, methods, named constructors, accessors, import/export/part directives, `extends`/`with`/`implements`/`on`, and ordinary calls | operators, generic relationship targets, conditional directives, and multiline declarations | first-class lexical |
|
||||||
| Rust | Structs, enums, traits, ordinary/async/const/unsafe/extern functions, simple inherent/trait impl ownership, ordinary/turbofish/macro calls, braced `use` resolution, and raw-string masking | module ownership, unions/type aliases, nested generic impl headers, glob imports, and macro definitions | first-class target |
|
| Rust | Structs, enums, traits, ordinary/async/const/unsafe/extern functions, simple inherent/trait impl ownership, ordinary/turbofish/macro calls, braced `use` resolution, and raw-string masking | module ownership, unions/type aliases, nested generic impl headers, glob imports, and macro definitions | first-class lexical |
|
||||||
| C | Distinct `.c` identity, includes, structs/unions/enums, narrow function forms, and ordinary calls | anonymous typedef aggregates, function pointers, C23 attributes, macros, and multiline declarations | first-class target |
|
| C | Distinct `.c` identity, includes, structs/unions/enums, narrow function forms, and ordinary calls | anonymous typedef aggregates, function pointers, C23 attributes, macros, and multiline declarations | first-class lexical |
|
||||||
| C++ | Classes/structs/unions/enums, `final`, constructors/destructors/operators, override-qualified methods, multiple inheritance, ordinary calls, and local include resolution | namespaces, overload disambiguation, lambdas, concepts/requires, complex template bases, and multiline declarations | first-class target |
|
| C++ | Classes/structs/unions/enums, `final`, constructors/destructors/operators, override-qualified methods, multiple inheritance, ordinary calls, and local include resolution | namespaces, overload disambiguation, lambdas, concepts/requires, complex template bases, and multiline declarations | first-class lexical |
|
||||||
| JavaScript | Default/exported classes, inheritance, owned methods/constructors, named functions, arrows, ES imports/re-exports, CommonJS `require`, dynamic imports, ordinary calls, and multiline template masking | function expressions, computed methods, decorators, JSX structure, package exports, and type-aware member calls | first-class target |
|
| JavaScript | Default/exported classes, inheritance, owned methods/constructors, named functions, arrows, ES imports/re-exports, CommonJS `require`, dynamic imports, ordinary calls, and multiline template masking | function expressions, computed methods, decorators, JSX structure, package exports, and type-aware member calls | first-class lexical |
|
||||||
| TypeScript | JavaScript forms plus interfaces/enums/namespaces, generic and abstract classes/functions/methods, `implements`, type imports/re-exports, and typed arrows | type aliases, overload declarations, decorators, declaration merging, TSX structure, and path mappings | first-class target |
|
| TypeScript | JavaScript forms plus interfaces/enums/namespaces, generic and abstract classes/functions/methods, `implements`, type imports/re-exports, and typed arrows | type aliases, overload declarations, decorators, declaration merging, TSX structure, and path mappings | first-class lexical |
|
||||||
| Python | Characterized fixture coverage for basic classes, functions/async functions, imports, calls, inheritance, and indentation scopes | multiple bases, qualified ownership, decorators, multiline strings, relative/dynamic imports, and complete multi-import handling | secondary |
|
| Python | Characterized fixture coverage for basic classes, functions/async functions, imports, calls, inheritance, and indentation scopes | multiple bases, qualified ownership, decorators, multiline strings, relative/dynamic imports, and complete multi-import handling | secondary |
|
||||||
| Swift | Characterized extension recognition plus incidental simple `class`, `func`, inheritance, ownership, and call matching | no dedicated profile; imports, protocols, actors, enums, extensions, async/generic forms, and Swift-specific signatures are incomplete | secondary |
|
| Swift | Characterized extension recognition plus incidental simple `class`, `func`, inheritance, ownership, and call matching | no dedicated profile; imports, protocols, actors, enums, extensions, async/generic forms, and Swift-specific signatures are incomplete | secondary |
|
||||||
|
|
||||||
|
|
@ -69,7 +73,7 @@ the same corpus. Their assertions are characterization tests, not evidence of
|
||||||
first-class parity. In particular, the Swift fixture preserves the visible gap
|
first-class parity. In particular, the Swift fixture preserves the visible gap
|
||||||
between file/type recognition and Swift-specific relationship extraction.
|
between file/type recognition and Swift-specific relationship extraction.
|
||||||
|
|
||||||
## Delivery order
|
## Delivered foundation order
|
||||||
|
|
||||||
1. Shared resolver and scope foundation.
|
1. Shared resolver and scope foundation.
|
||||||
2. A golden fixture harness and mixed-language collision corpus.
|
2. A golden fixture harness and mixed-language collision corpus.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue