npm install tree-sitter-pascal als Dependencysrc/types.ts: 'pascal' zum Language Union-Type hinzufügensrc/types.ts: DEFAULT_CONFIG.include um '**/*.pas', '**/*.dpr', '**/*.dpk', '**/*.lpr' erweiternsrc/extraction/grammars.ts: Grammar-Loader pascal: () => require('tree-sitter-pascal')src/extraction/grammars.ts: Extension-Mapping .pas, .dpr, .dpk, .lpr → 'pascal'src/extraction/grammars.ts: Display-Name pascal: 'Pascal / Delphi'src/extraction/tree-sitter.ts: LanguageExtractor für pascal in EXTRACTORS Mapunit / program / library → NodeKind moduledeclClass → NodeKind class (inkl. record, object)declIntf → NodeKind interfacedeclProc (top-level) → NodeKind functiondeclProc (in Klasse) → NodeKind method (inkl. constructor/destructor)declProp → NodeKind propertydeclField → NodeKind fielddeclEnum → NodeKind enumdeclEnumValue → NodeKind enum_memberdeclConst → NodeKind constantdeclType (einfach) → NodeKind type_aliasdeclUses → EdgeKind importsdeclClass.parent[0] → EdgeKind extendsdeclClass.parent[1..] → EdgeKind implementsexprCall → EdgeKind callsexprDot + exprCall → EdgeKind calls (qualifiziert)TClass.Create → EdgeKind instantiatescontainsgetVisibility: declSection → public/private/protectedisStatic: kClass in declProc → truegetSignature: Parameter + Rückgabetyp extrahierenmoduleName → unitName → fileId Mappinguses X; → Unit-Node auflösenuses X in 'path' → Datei direkt auflösen (Phase 2)UAuth.pas, App.dpr, UTypes.pas)with-Statements (Phase 2): Verschleiern den Qualifier bei Aufrufen. Im MVP werden Calls innerhalb von with-Blöcken ohne Qualifier extrahiert..dfm/.fmx Form-Dateien (Zukunft): Enthalten Komponenten-Deklarationen und Event-Verknüpfungen. Aktuell nicht unterstützt..inc Include-Dateien (Optional): Enthalten Code-Fragmente, die per {$I filename} eingebunden werden. Parser liefert möglicherweise keinen vollständigen AST.declHelper-Knoten erweitern existierende Typen. Erfordert spezielle Resolution-Logik.typerefTpl und genericTpl für generische Typen.