Releases: testingrequired/reqlang-expr
Releases · testingrequired/reqlang-expr
0.8.0
- Remove ID, TYPE, NOT op codes. Moving these back to builtins as it solves a lot of issues around directly referencing builtins like
id - Builtins now return
ExprResult<Value>instead ofValue - Improved typechecking
- Using builtins as call args
- As typing to AST
- This happens in two passes. Once in the parser and once in the compiler.
- Changed
BuiltinFn::functo be a function pointer versus accepting closures. - Error diagnostics now have what type of error it was (e.g. lexical, compiler, runtime)
- Add
Type::Typeto help support first class type - Update grammar to support Type identifiers
0.7.0
- Add opcode
TYPEwhich replaces the builtin fn - Add bytecode version prefixed as [u8; 4]
Full Changelog: 0.6.0...0.7.0
0.6.0
- Simplify lexing and parsing with a
lexandparsefunction - Add Value::Type as a first step towards first class type values
- Change builtins
notandeqto be OP codes instead of functions
Full Changelog: 0.5.0...0.6.0
0.5.0
- Implement diagnostic messages for errors
- Improvements in REPL (tab completions, syntax highlighting)
- Improved error handling (recovering from lex errors, mapping lalrpop parse errors to syntax errors)
Full Changelog: 0.4.0...0.5.0
0.4.0
0.3.0
0.2.0
0.1.1
0.1.0
Initial release.
Builtins
All functions are builtins. Current builtins:
id
Returns the string that's passed in.
(id _)
Where _ is an expression that evaluates to a string
noop
Returns the string `noop`
(noop)
Expression Types
- Identifier
- String (using backticks as delimiters)
- Call