pepl-parser 0.1.2

PEPL parser: token stream to AST
Documentation

pepl-parser

PEPL parser: transforms a token stream into a typed AST.

Second stage of the PEPL compilation pipeline. Implements a recursive-descent parser for the full PEPL grammar — spaces, state declarations, action blocks, view blocks, expressions, UI components, and sum types.

Key Exports

use pepl_parser::{Parser, ParseResult};
use pepl_lexer::Lexer;

let tokens = Lexer::new(source, "example.pepl").lex();
let ast: ParseResult = Parser::new(tokens.tokens, "example.pepl").parse();

Grammar Coverage

  • Space declarations with state, action, view
  • Expressions: arithmetic, comparison, logical, nil-coalescing (??), match, if/else, string interpolation
  • Statements: let bindings, set mutations, for loops, return, assert
  • Type annotations: primitives, List<T>, Record, Result<T,E>, sum types, nullable (T | nil)
  • UI components: Column, Row, Scroll, Text, ProgressBar, Button, TextInput, ScrollList, Modal, Toast

Install

cargo add pepl-parser

License

MIT — see LICENSE