sigil_parser/
lib.rs

1//! Sigil Parser Library
2//!
3//! A polysynthetic programming language with evidentiality types.
4//!
5//! This crate provides:
6//! - Lexer and parser for Sigil source code
7//! - Tree-walking interpreter for development/debugging
8//! - JIT compiler using Cranelift for native performance
9//! - Comprehensive optimization passes (O0-O3)
10//! - Rich diagnostic reporting with colored output
11//! - AI-facing IR for tooling and agent integration
12
13pub mod lexer;
14pub mod ast;
15pub mod parser;
16pub mod span;
17pub mod interpreter;
18pub mod typeck;
19pub mod stdlib;
20pub mod optimize;
21pub mod diagnostic;
22pub mod ffi;
23pub mod ir;
24pub mod lower;
25
26#[cfg(feature = "jit")]
27pub mod codegen;
28
29#[cfg(feature = "llvm")]
30pub mod llvm_codegen;
31
32#[cfg(feature = "protocol-core")]
33pub mod protocol;
34
35pub use lexer::{Token, Lexer};
36pub use ast::*;
37pub use parser::Parser;
38pub use span::Span;
39pub use interpreter::{Interpreter, Value, Evidence, RuntimeError, Function};
40pub use typeck::{TypeChecker, Type, TypeError, EvidenceLevel};
41pub use stdlib::register_stdlib;
42pub use optimize::{Optimizer, OptLevel, OptStats, optimize};
43pub use diagnostic::{Diagnostic, DiagnosticBuilder, Diagnostics, Severity, FixSuggestion};
44pub use ir::{IrModule, IrFunction, IrOperation, IrType, IrEvidence, IrDumpOptions};
45pub use lower::lower_source_file;
46
47#[cfg(feature = "jit")]
48pub use codegen::JitCompiler;
49
50#[cfg(feature = "llvm")]
51pub use llvm_codegen::llvm::{LlvmCompiler, CompileMode};