parol_runtime 4.3.0

Runtime library for parsers generated by the 'parol' parser generator.
Documentation
/*!

This crate provides the runtime library used by parsers that have been generated by the `parol`
parser generator.

In most cases you don't need to understand the inner details of this crate because `parol` generates
all necessary scaffolding and plumping for the typical user automatically.

The most likely used parts are those returned to the user including the error types defined in the
module [errors].
 */

///
/// Module that provides types for lexical analysis.
///
pub mod lexer;
pub use lexer::{
    FormatToken, Location, LocationBuilder, Span, TerminalIndex, ToSpan, Token, TokenIter,
    TokenNumber, TokenStream,
};

pub mod parser_common;
pub use parser_common::ParseTreeStack;

///
/// Module that provides types for syntactical analysis.
///
pub mod parser;
pub use parser::{
    LLKParser, LookaheadDFA, NonTerminalIndex, ParseStack, ParseTree, ParseTreeType, ParseType,
    Production, ProductionIndex, ScannerIndex, StateIndex, Trans, UserActionsTrait,
};

///
/// Module that provides types for the LR parser.
///
pub mod lr_parser;
pub use lr_parser::{LR1State, LRAction, LRParseTable, LRParseTree, LRParser, LRProduction};

///
/// Module with error types reported from this crate.
///
pub mod errors;
pub use errors::{
    FileSource, LexerError, ParolError, ParserError, Report, Result, SyntaxError, TokenVec,
    UnexpectedToken,
};

// re-export
#[cfg(feature = "reporting")]
pub use codespan_reporting;
pub use derive_builder;
pub use function_name;
pub use log;
pub use once_cell;
pub use parol_macros;
pub use syntree;
pub use syntree_layout;