summaryrefslogtreecommitdiff
path: root/src/eval/scope.rs
AgeCommit message (Collapse)Author
2023-06-06Improve value casting infrastructureLaurenz
2023-04-24hint for unknown variable containing dash (#924)Marmare314
2023-04-19Fix argument sinksLaurenz
Fixes #886.
2023-04-19Give more specific error messages (#881)Leedehai
2023-03-19Renaming and refactoringLaurenz
2023-03-18Rename formula to equationLaurenz
2023-03-10New #[func] macroLaurenz
2023-03-01Split up `model` moduleLaurenz
2022-10-17Merge some modulesLaurenz
2022-09-20Refactor error handlingLaurenz
2022-09-20A New WorldLaurenz
2022-06-14Many fixesLaurenz
2022-05-26Pure functions!Laurenz
2022-05-25Move route from context to VMLaurenz
2022-03-18MethodsLaurenz
2022-03-12Remove classes and improve namingLaurenz
2022-02-23Rework the core contextLaurenz
2022-02-17Merge eval and layout contexts into `Vm`Laurenz
2022-02-17Make values syncLaurenz
2022-02-17Make values hashableLaurenz
2022-02-01Better function representationLaurenz
2022-01-31Switch from `Rc` to `Arc`Laurenz
2021-12-15Set Rules Episode VII: The Set AwakensLaurenz
2021-12-09Set Rules Episode III: Revenge of the packerLaurenz
2021-11-08Fine-grained capturingLaurenz
2021-09-10Rename `Arguments` to `Args`Laurenz
2021-08-21Prune derivesLaurenz
2021-08-14Separate type for string valuesLaurenz
2021-07-30Fatal errorsLaurenz
- Makes errors fatal, so that a phase is only reached when all previous phases were error-free - Parsing still recovers and can produce multiple errors - Evaluation fails fast and can thus produce only a single error (except for parse errors due to an import) - The single error that could occur during execution is removed for now - Removes Value::Error variant
2021-07-29Change derive orderLaurenz
2021-07-11Simpler castingLaurenz
2021-07-10Reference-count complex valuesLaurenz
Rename some nodes types
2021-07-10Eco string 🌱Laurenz
2021-06-09Lists with indent-based parsingLaurenz
- Unordered lists with indent-based parsing and basic layout using stacks - Headings are now also indent based - Removes syntax functions since they will be superseded by select & transform
2021-06-01Refactor path handlingLaurenz
2021-05-31Module loading systemLaurenz
Detects cyclic imports and loads each module only once per compilation.
2021-05-23A few predefined colors for testingLaurenz
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-03Documentation fixes ✔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-09Split evaluation and execution 🔪Laurenz
2021-02-07Remove captured expression 🗑️Laurenz
2021-01-30Capture variable by slot instead of value 🎣Laurenz
2021-01-27Capture variables in templates 🔍Laurenz
2021-01-27Scope variables in blocks 🏔️Laurenz
2021-01-22Many more expressions 🥗Laurenz
Boolean, equality, comparison and assignment expression parsing and evaluation.
2021-01-20If expressions 🔀Laurenz
2021-01-15Split state and scopes, less ref-counting 🔀Laurenz
2021-01-03Move and rename many things 🚛Laurenz
2021-01-02Dynamic values, Types, Arrays, and Dictionaries 🚀Laurenz
- Identifiers are now evaluated as variables instead of being plain values - Constants like `left` or `bold` are stored as dynamic values containing the respective rust types - We now distinguish between arrays and dictionaries to make things more intuitive (at the cost of a bit more complex parsing) - Spans were removed from collections (arrays, dictionaries), function arguments still have spans for the top-level values to enable good diagnostics