rexlang-parser 3.9.1

Rex: A strongly-typed, pure, implicitly parallel functional programming language
Documentation

Rex Parser (rexlang-parser)

This crate parses token streams into the Rex AST (rex-ast), producing a Program { decls, expr } or a list of parse errors with spans.

Usage

use rex_lexer::Token;
use rex_parser::Parser;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let tokens = Token::tokenize("1 + 2")?;
    let mut parser = Parser::new(tokens);
    let program = parser.parse_program(&mut GasMeter::default()).map_err(|errs| {
        std::io::Error::new(std::io::ErrorKind::InvalidData, format!("parse error: {errs:?}"))
    })?;
    let _ = program;
    Ok(())
}

Limits and metering

  • ParserLimits: controls syntactic nesting limits
  • parse_program: optional gas metering via rexlang-util