Commit Graph

5 Commits

Author SHA1 Message Date
2be73d2660 doughlang: symbol interning and AST reparameterization
- intern: Add interners from cl-intern

- ast:
- Break AST into ternimals (AstTypes) and nonterminals (Expr, Pat, Bind, Make, Use)
- Make AST generic over terminals (except operators, for now)
2026-01-06 04:57:15 -05:00
e4c008bd4b doughlang: Expressions in patterns
ast:
- Document operators
- Parameterize Pat with Annotation
- Consolidate Path and Lit into "Value" (Expr)
- Consolidate NamedRecord/Namedtuple into PatOp::TypePrefixed
- Allow Pat<Pat,*> patterns
- Additional helper functions on Expr and Pat

lexer:
- Support inner-doc comment syntax `//!`
  - Cleans up `///` or `//!` prefix

parser:
- Make Parse::Prec `Default`
- Allow expression elision after `..`/`..=`
- Fix Parser::consume not updating elide_do state
- Add token splitting, to make `&&Expr` and `&&Pat` easier
- error: Embed Pat precedence in ParseError
2026-01-05 15:17:22 -05:00
a836de32c7 Use: add alias use foo as bar form 2025-12-20 06:09:31 -05:00
f551e3aef3 ast: Break compatibility
- Turned `static` and `const` into scoped modifiers (like `pub`
- Added anonymous record patterns
2025-12-20 05:22:14 -05:00
64ce18d576 examples: add silly to-lisp converter that doesn't produce any actual lisp 2025-12-16 04:18:30 -05:00