gruel_parser/
lib.rs

1//! Parser and AST for the Gruel programming language.
2//!
3//! Uses chumsky for parser combinators with Pratt parsing for expressions.
4
5pub mod ast;
6mod chumsky_parser;
7
8pub use ast::{
9    ArgMode,
10    ArrayLitExpr,
11    AssignStatement,
12    AssignTarget,
13    Ast,
14    BinaryExpr,
15    BinaryOp,
16    BlockExpr,
17    CallArg,
18    CallExpr,
19    Directive,
20    DirectiveArg,
21    EnumDecl,
22    EnumVariant,
23    Expr,
24    FieldDecl,
25    FieldExpr,
26    FieldInit,
27    Function,
28    Ident,
29    IndexExpr,
30    IntLit,
31    IntrinsicArg,
32    IntrinsicCallExpr,
33    Item,
34    LetPattern,
35    LetStatement,
36    MatchArm,
37    MatchExpr,
38    Method,
39    MethodCallExpr,
40    NULL_NODE,
41    // SOA AST types (Phase 1)
42    NodeData,
43    NodeIndex,
44    NodeTag,
45    Param,
46    ParamMode,
47    ParenExpr,
48    PathExpr,
49    PathPattern,
50    Pattern,
51    ReturnExpr,
52    SelfParam,
53    SoaAst,
54    Statement,
55    StructDecl,
56    StructLitExpr,
57    TypeExpr,
58    TypeLitExpr,
59    UnaryExpr,
60    UnaryOp,
61    WhileExpr,
62};
63pub use chumsky_parser::ChumskyParser as Parser;