aboutsummaryrefslogtreecommitdiff
path: root/compiler/src
Commit message (Collapse)AuthorAgeFilesLines
* Implement If expression supportdev-easyTolmachev Igor2026-05-223-3/+346
| | | | I forgor
* Replace generic list AST with typed expression treeTolmachev Igor2026-05-116-156/+1510
| | | | | Each form (fn, let, for, set, do, call) now has its own variant with named fields instead of being a plain list.
* Rename variableTolmachev Igor2026-05-101-1/+1
|
* Remove Float from parserTolmachev Igor2026-05-106-133/+7
| | | | Dropped to make the language simpler.
* Remove Quote from parserTolmachev Igor2026-05-105-213/+2
| | | | Dropped to make the language simpler.
* Make project structure more consistentdevTolmachev Igor2026-05-099-68/+77
|
* Implement fmt::Display for ErrorTolmachev Igor2026-05-093-26/+31
| | | | | Replaces the todo!() stub. InvalidFloatLiteral and InvalidIntegerLiteral now also take the original string.
* Add parser testsTolmachev Igor2026-05-095-7/+767
|
* Add RecursionLimit parser errorTolmachev Igor2026-05-092-0/+12
| | | | | Returns error after 256 levels of nesting to avoid stack overflow. The limit is hardcoded now, but will become a compiler flag later.
* Reserve inf, +inf, -inf, nan as keywordsTolmachev Igor2026-05-091-1/+5
| | | | Needed to represent literals as f64::INFINITY, f64::NEG_INFINITY and f64::NAN.
* Fix lexer processing [+-].\d as symbol instead of numberTolmachev Igor2026-05-092-3/+15
| | | | | | | Extended lookahead in the number branch to 3 chars. Added tests for "-.5", "+.5", "-.0" in test_numbers and for "-.", "+.", ".", "+.a", "-.a" in test_ambiguous.
* Replace todo!() in parser with errorsTolmachev Igor2026-05-092-53/+67
|
* Rename Parser.cursor to Parser.last_token_endTolmachev Igor2026-05-091-9/+11
| | | | `cursor` sounds like the current position, but the field stores the end of the last consumed token.
* Add AST parser skeletonTolmachev Igor2026-05-093-0/+221
|
* Add test for span positions after quote tokenTolmachev Igor2026-05-091-0/+14
|
* Split Spanned<T> from Span and expose fieldsTolmachev Igor2026-05-083-45/+34
| | | | | Spanned<T> wraps a value with a Span. Public fields enable destructuring in pattern matches.
* Fold unclosed string error into Token variantTolmachev Igor2026-05-083-62/+36
| | | | | UnclosedString was the only error variant, making lexer::Error redundant. Also removes Result from the Iterator impl.
* Add lexerTolmachev Igor2026-05-075-0/+617
|
* Initial commitHEADmainTolmachev Igor2026-05-061-0/+3