llmcc-python 0.2.50

llmcc: llm context compiler
Documentation
mod bind;
mod collect;
pub mod descriptor;
pub mod token;

pub use crate::bind::{bind_symbols, BindingResult};
pub use crate::collect::{
    apply_symbol_batch, collect_symbols, collect_symbols_batch, CollectedSymbols, CollectionResult,
    SymbolBatch,
};
pub use crate::descriptor::{
    CallArgument, CallDescriptor, CallTarget, ClassField, FunctionParameter, ImportDescriptor,
    ImportKind, PythonClassDescriptor, PythonFunctionDescriptor, VariableDescriptor, VariableKind,
    VariableScope,
};
pub use llmcc_core::{
    build_llmcc_graph, build_llmcc_ir, print_llmcc_graph, print_llmcc_ir, CompileCtxt,
    ProjectGraph, ProjectQuery,
};
pub use token::LangPython;

use llmcc_core::context::CompileUnit;
use llmcc_core::lang_def::ParallelSymbolCollect;
use llmcc_core::symbol::Scope;

impl ParallelSymbolCollect for LangPython {
    const PARALLEL_SYMBOL_COLLECTION: bool = true;
    type SymbolBatch = crate::collect::SymbolBatch;

    fn collect_symbol_batch<'tcx>(unit: CompileUnit<'tcx>) -> Self::SymbolBatch {
        collect_symbols_batch(unit)
    }

    fn apply_symbol_batch<'tcx>(
        unit: CompileUnit<'tcx>,
        globals: &'tcx Scope<'tcx>,
        batch: Self::SymbolBatch,
    ) {
        let _ = apply_symbol_batch(unit, globals, batch);
    }
}