pepl-compiler 0.1.2

PEPL compiler: orchestrates the full compilation pipeline
Documentation

pepl-compiler

PEPL compiler: orchestrates the full compilation pipeline from source text to WASM binary.

Chains together lexing, parsing, type checking, invariant checking, and WASM code generation into a single API. Also provides an LLM reference generator and stdlib table export.

Key Exports

use pepl_compiler::{compile, compile_to_result, type_check, CompileResult};

// Full compilation — source to WASM
let wasm: Result<Vec<u8>, _> = compile(source, "counter.pepl");

// Full compilation with metadata
let result: CompileResult = compile_to_result(source, "counter.pepl");
// result.success, result.wasm, result.errors, result.source_hash, result.wasm_hash, ...

// Type-check only (no WASM generation)
let errors = type_check(source, "counter.pepl");

CompileResult

pub struct CompileResult {
    pub success: bool,
    pub wasm: Option<Vec<u8>>,
    pub errors: CompileErrors,
    pub ast: Option<Program>,
    pub source_hash: String,
    pub wasm_hash: Option<String>,
    pub state_fields: Vec<FieldInfo>,
    pub actions: Vec<ActionInfo>,
    pub views: Vec<String>,
    pub capabilities: Vec<String>,
    pub credentials: Vec<FieldInfo>,
    pub language_version: String,
    pub compiler_version: String,
    pub warnings: Vec<PeplError>,
    pub source_map: Option<SourceMap>,
}

Pipeline

Source → Lexer → Parser → Type Checker → Invariant Checker → Codegen → WASM

Constants

  • PEPL_LANGUAGE_VERSION — the PEPL language version ("0.1.0")
  • PEPL_COMPILER_VERSION — the compiler crate version

Install

cargo add pepl-compiler

License

MIT — see LICENSE