Top-level units: function_definition (symbol = fn name from declarator's innermost identifier), struct_specifier, enum_specifier, union_specifier (each emits 1 unit with the named identifier as symbol). Preprocessor directives + top-level declarations group into a <top-level> glue chunk. Empty file or zero units → <module> post-pass. C symbol = function name only — no namespace, no class nesting (design §3.4). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
40 lines
1.7 KiB
Rust
40 lines
1.7 KiB
Rust
//! `kebab-parse-code` — language-aware parsing for code corpora.
|
|
//!
|
|
//! Phase 1A-1 ships infrastructure only:
|
|
//!
|
|
//! - [`lang::code_lang_for_path`] — extension → language identifier.
|
|
//! - [`repo::detect_repo`] — `.git/` walk-up → repo / branch / commit metadata.
|
|
//! - [`skip::is_generated_file`] / [`skip::is_oversized`] — pre-ingest skip
|
|
//! helpers consulted by `kebab-source-fs`.
|
|
//! - [`skip::BUILTIN_BLACKLIST`] — 6-entry safety-net pattern list.
|
|
//!
|
|
//! Per-language parser modules (`rust`, `python`, `typescript`, …) land in
|
|
//! later phases (1A-2 onwards). The crate boundary follows other
|
|
//! `kebab-parse-*` crates per design §8: must NOT depend on store / embed
|
|
//! / llm / rag.
|
|
|
|
pub mod c;
|
|
pub mod go;
|
|
pub mod java;
|
|
pub mod javascript;
|
|
pub mod kotlin;
|
|
pub mod lang;
|
|
pub mod python;
|
|
pub mod repo;
|
|
pub mod rust;
|
|
pub(crate) mod scaffold;
|
|
pub mod skip;
|
|
pub mod typescript;
|
|
|
|
pub use c::{PARSER_VERSION as C_PARSER_VERSION, CAstExtractor};
|
|
pub use go::{PARSER_VERSION as GO_PARSER_VERSION, GoAstExtractor};
|
|
pub use java::{PARSER_VERSION as JAVA_PARSER_VERSION, JavaAstExtractor};
|
|
pub use javascript::{PARSER_VERSION as JS_PARSER_VERSION, JavascriptAstExtractor};
|
|
pub use kotlin::{PARSER_VERSION as KOTLIN_PARSER_VERSION, KotlinAstExtractor};
|
|
pub use lang::{code_lang_for_path, module_path_for_python, module_path_for_tsjs};
|
|
pub use python::{PARSER_VERSION as PYTHON_PARSER_VERSION, PythonAstExtractor};
|
|
pub use repo::{RepoMeta, detect_repo};
|
|
pub use rust::{PARSER_VERSION as RUST_PARSER_VERSION, RustAstExtractor};
|
|
pub use skip::{BUILTIN_BLACKLIST, is_generated_file, is_oversized};
|
|
pub use typescript::{PARSER_VERSION as TS_PARSER_VERSION, TypescriptAstExtractor};
|