pub struct ParserAtnBuilder { /* private fields */ }Expand description
Centralized construction API for packed parser ATNs.
States never own transition collections; edges are grouped into contiguous ranges only when the final packed stream is emitted.
Implementations§
Source§impl ParserAtnBuilder
impl ParserAtnBuilder
pub const fn new(max_token_type: i32) -> Self
pub fn add_state( &mut self, kind: AtnStateKind, rule_index: Option<usize>, ) -> Result<AtnStateId, ParserAtnError>
pub fn set_end_state( &mut self, state: usize, end_state: usize, ) -> Result<(), ParserAtnError>
pub fn set_loop_back_state( &mut self, state: usize, loop_back_state: usize, ) -> Result<(), ParserAtnError>
pub fn set_non_greedy(&mut self, state: usize) -> Result<(), ParserAtnError>
pub fn set_left_recursive_rule( &mut self, state: usize, ) -> Result<(), ParserAtnError>
pub fn set_precedence_rule_decision( &mut self, state: usize, ) -> Result<(), ParserAtnError>
pub fn add_interval_set( &mut self, ranges: impl IntoIterator<Item = (i32, i32)>, ) -> Result<ParserIntervalSetId, ParserAtnError>
pub fn add_transition( &mut self, source: usize, transition: ParserTransitionSpec, ) -> Result<TransitionId, ParserAtnError>
pub fn set_rule_to_start_state( &mut self, states: Vec<usize>, ) -> Result<(), ParserAtnError>
pub fn set_rule_to_stop_state( &mut self, states: Vec<usize>, ) -> Result<(), ParserAtnError>
pub fn add_decision_state(&mut self, state: usize) -> Result<(), ParserAtnError>
pub fn state_kind(&self, state: usize) -> Option<AtnStateKind>
pub const fn state_count(&self) -> usize
pub fn state_rule_index(&self, state: usize) -> Option<usize>
pub fn rule_stop_state(&self, rule: usize) -> Option<usize>
pub fn transitions_from( &self, source: usize, ) -> impl DoubleEndedIterator<Item = ParserTransitionSpec> + '_
pub fn finish(self) -> Result<ParserAtn, ParserAtnError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ParserAtnBuilder
impl RefUnwindSafe for ParserAtnBuilder
impl Send for ParserAtnBuilder
impl Sync for ParserAtnBuilder
impl Unpin for ParserAtnBuilder
impl UnsafeUnpin for ParserAtnBuilder
impl UnwindSafe for ParserAtnBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more