summaryrefslogtreecommitdiff
path: root/src/eval
AgeCommit message (Collapse)Author
2021-05-31Fix and improveLaurenz
- Set context location to resolved path during module evaluation. - Dump module diagnostics on import - Use same-file for more robustness than fs::canonicalize
2021-05-31Module loading systemLaurenz
Detects cyclic imports and loads each module only once per compilation.
2021-05-31Parse import and include expressionsMartin Haug
Co-Authored-By: Laurenz <laurmaedje@gmail.com>
2021-05-28Refactored loading and cache architectureLaurenz
2021-05-23A few predefined colors for testingLaurenz
2021-05-18Leaner argument parsingLaurenz
2021-05-18Rename _new to new and typify to valueLaurenz
2021-05-18Streamline value comparisonsLaurenz
2021-04-21Make frames serializable ๐Ÿ“šLaurenz
This also makes serialization support non-optional since it's too much feature-management for too little benefit.
2021-03-25Refactor alignments & directions ๐Ÿ“Laurenz
- Adds lang function - Refactors execution context - Adds StackChild and ParChild enums
2021-03-21Syntax functions ๐Ÿš€Laurenz
This adds overridable functions that markup desugars into. Specifically: - \ desugars into linebreak - Two newlines desugar into parbreak - * desugars into strong - _ desugars into emph - = .. desugars into heading - `..` desugars into raw
2021-03-19Scheduled maintenance ๐Ÿ”จLaurenz
- New naming scheme - TextNode instead of NodeText - CallExpr instead of ExprCall - ... - Less glob imports - Removes Value::Args variant - Removes prelude - Renames Layouted to Fragment - Moves font into env - Moves shaping into layout - Moves frame into separate module
2021-03-13Factor out alignment deduplication into separate function โ™ปLaurenz
2021-03-03Documentation fixes โœ”Laurenz
2021-03-03Show name of user-defined functions in representation ๐Ÿฆ‹Laurenz
2021-03-03Closures and function definitions ๐Ÿš€Laurenz
Supports: - Closure syntax: `(x, y) => z` - Shorthand for a single argument: `x => y` - Function syntax: `let f(x) = y` - Capturing of variables from the environment - Error messages for too few / many passed arguments Does not support: - Named arguments - Variadic arguments with `..`
2021-02-24Cleaner control flow in for loop evaluation ๐ŸงผLaurenz
2021-02-24While loops ๐Ÿ”Laurenz
2021-02-24Index + value iteration for arrays ๐ŸฆšLaurenz
2021-02-12Rename any template to func template โœLaurenz
2021-02-12Make templates and strings summable ๐ŸฅชLaurenz
2021-02-12Early quit loop when body returns error ๐Ÿ›‘Laurenz
2021-02-12Cleaning ๐ŸงนLaurenz
2021-02-11Small fixes โ™ปLaurenz
2021-02-11Move span directly into diagnostics ๐ŸššLaurenz
2021-02-11Move all pretty printing into one module and pretty print values ๐Ÿฆ‹Laurenz
2021-02-09Add arguments value ๐Ÿ“Laurenz
2021-02-09Split evaluation and execution ๐Ÿ”ชLaurenz
2021-02-07Remove captured expression ๐Ÿ—‘๏ธLaurenz
2021-02-07Dry-clean visitor with a macro ๐ŸœLaurenz
2021-02-03Tidy up raw blocks ๐ŸงนLaurenz
- Better trimming (only trim at the end if necessary) - Fixed block-level layouting - Improved pretty printing - Flip inline variable to block - Flip inline variable to display for math formulas
2021-01-31Refresh tests ๐Ÿ”„Laurenz
2021-01-30Scoped for loop bindings ๐Ÿ”๏ธLaurenz
Previously for loop bindings were leaked until after the loop.
2021-01-30Capture variable by slot instead of value ๐ŸŽฃLaurenz
2021-01-30New syntax ๐Ÿ’ŽLaurenz
- Everything everywhere! - Blocks with curly braces: {} - Templates with brackets: [] - Function templates with hashtag: `#[f]` - Headings with equals sign: `= Introduction`
2021-01-30Moves captures visitor into separate file ๐ŸššLaurenz
2021-01-27Capture variables in templates ๐Ÿ”Laurenz
2021-01-27Always evaluate for loop to template ๐Ÿ”Laurenz
2021-01-27Scope variables in blocks ๐Ÿ”๏ธLaurenz
2021-01-26For loop patterns ๐ŸฆšLaurenz
2021-01-26For loops ๐Ÿ”Laurenz
(does not support key-value patterns yet)
2021-01-26Multi-expression blocks ๐Ÿ›๏ธLaurenz
2021-01-26Small improvements โ™ปLaurenz
2021-01-22Many more expressions ๐Ÿฅ—Laurenz
Boolean, equality, comparison and assignment expression parsing and evaluation.
2021-01-20Reorder and fix docs โœ”Laurenz
2021-01-20If expressions ๐Ÿ”€Laurenz
2021-01-17Spans for group and block contents ๐Ÿ“Laurenz
2021-01-17Assertions with [eq] + better tests ๐ŸฉบLaurenz
2021-01-16Port remaining parser tests ๐ŸššLaurenz
2021-01-15Split state and scopes, less ref-counting ๐Ÿ”€Laurenz