1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Purposes + def/ref candidates + enum-member defs, onto native tree-sitter
// behind the grammar seam in parse.rs. This is the AST-purpose and def/ref
// extractor; see offsets.rs for the span translation it depends on.
//
// Scope (purpose composition + graph-fragment extraction, run per file):
// - purpose: a compact one-line signature of a file's namespace-level
// types (class/interface/struct/record/enum), truncated to 200 UTF-16
// code units.
// - defs: namespace-level + nested types (id = dotted namespace, "+"
// joined for nested-type chains) and enum members (id =
// "<EnumFQN>.<Member>"), each with its public method names.
// - usings: using directives, either {alias, target, global} (alias
// form) or {text, global} (plain/static/global form).
// - refs: uses-type / inherits / uses-member / imports candidates with
// line + enclosing-namespace context.
//
// Def/ref extraction NEVER emits a byte offset or a column -- only the
// node's start row + 1 (a 1-based line number). The offset table exists to
// translate UTF-8-byte offsets/columns to UTF-16 code units; rows are
// unaffected by that translation, so nothing here needs OffsetTable -- an
// absence, not a gap.
//
// Split by concern, C# side first: `text` (tree-sitter/text primitives
// shared with the TypeScript-family extraction below), `types` (the C# data
// model -- DefRecord/RefRecord/UsingRecord/Extraction/NameRecord/Fact/
// LambdaSlot), `refs` (building RefRecord candidates plus the type/generic
// descriptor primitives that feed them), `members` (raw per-member fact
// extraction: methods/properties/fields/bases/extension methods/test
// methods), `type_defs` (assembling DefRecord/NameRecord/UsingRecord
// instances from those raw facts), `receivers` (the local/field fact
// tables a member-access qualifier resolves against), `lambdas` (untyped
// lambda-parameter slot typing), `qualifiers` (`Scope` and member-access
// qualifier resolution), `walk` (the top-level recursive-descent AST walk
// and its `extract` entry point), `dump` (the `extract-dump` subcommand).
// `json` holds the hand-rolled JSON serialisation for both the C# and the
// TS-family fragment shapes. `ts_purpose`, `ts_fragment_types` and
// `ts_fragment` hold the TypeScript-family purpose and reference-fact
// extraction.
pub use run_extract_dump;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use extract;