oxillama_runtime/sampling/grammar/mod.rs
1//! GBNF grammar-constrained sampling.
2//!
3//! This module provides:
4//! - [`Grammar`] — a parsed GBNF grammar.
5//! - [`GrammarState`] — stateful parse position, advanced token-by-token.
6//! - [`GrammarError`] — error type for parse and state-machine failures.
7//! - [`apply_grammar_mask`] — zero out logits for tokens disallowed by the
8//! current grammar state.
9//! - [`JsonSchemaCompiler`] — compile a JSON Schema (subset) to a [`Grammar`].
10
11pub mod error;
12pub mod json_schema;
13pub mod machine;
14pub mod parser;
15
16pub use error::{GrammarError, GrammarResult};
17pub use json_schema::JsonSchemaCompiler;
18pub use machine::{apply_grammar_mask, GrammarState};
19pub use parser::{CharRange, Grammar, GrammarNode};
20
21impl Grammar {
22 /// Create the initial parse state for this grammar.
23 pub fn initial_state(&self) -> GrammarState {
24 GrammarState::new(self.clone())
25 }
26}