Skip to content

The codeanalyzer backends

Source parsing, symbol resolution, and call-graph construction are performed by standalone language analyzers, one per language, collectively the codeanalyzer-* backends. Each backend emits typed JSON, and the SDK deserializes it into queryable models.

flowchart LR
    SDK["CLDK Python SDK<br/>(analysis API)"] -->|invokes| CAJ["codeanalyzer-java<br/>(JVM · WALA)"]
    SDK -->|invokes| CAP["codeanalyzer-python<br/>(Jedi · CodeQL)"]
    SDK -->|invokes| CAT["codeanalyzer-ts<br/>(TS compiler)"]
    CAJ -->|canonical JSON| SDK
    CAP -->|canonical JSON| SDK
    CAT -->|canonical JSON| SDK

This separation lets a single analysis API span languages. The SDK does not parse code itself; it invokes the appropriate backend, then maps the backend JSON onto typed models (JApplication, PyModule, and others). A backend that emits the canonical JSON makes its language available to the SDK with only binding work required. See Add a language backend.

This is the backend layer. For the SDKs that consume it, see the SDKs overview.

Mature production-ready  ·  Beta stable core, gaps remain  ·  Medium usable, gaps remain  ·  Help wanted contributors wanted  ·  Stub not started

The codeanalyzer-* tools parse a language and serialize the canonical symbol-table and call-graph schema that every frontend reads.

LanguageAnalyzerMaturity
Javacodeanalyzer-javaMature
Pythoncodeanalyzer-pythonMature
TypeScriptcodeanalyzer-tsBeta
JavaScriptvia codeanalyzer-tsMedium
GoNot startedHelp wanted Stub
RustNot startedHelp wanted Stub
CNot startedHelp wanted Stub
C++Not startedHelp wanted Stub
C#Not startedHelp wanted Stub