Skip to content

Releases: testingrequired/reqlang-expr

0.8.0

07 Jul 00:01

Choose a tag to compare

  • 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 of Value
  • 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::func to be a function pointer versus accepting closures.
  • Error diagnostics now have what type of error it was (e.g. lexical, compiler, runtime)
  • Add Type::Type to help support first class type
  • Update grammar to support Type identifiers

0.7.0

21 Jun 23:54

Choose a tag to compare

  • Add opcode TYPE which replaces the builtin fn
  • Add bytecode version prefixed as [u8; 4]

Full Changelog: 0.6.0...0.7.0

0.6.0

21 Jun 20:40

Choose a tag to compare

  • Simplify lexing and parsing with a lex and parse function
  • Add Value::Type as a first step towards first class type values
  • Change builtins not and eq to be OP codes instead of functions

Full Changelog: 0.5.0...0.6.0

0.5.0

20 Jun 22:49

Choose a tag to compare

  • 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

17 Jun 04:50

Choose a tag to compare

  • Types
  • Improved error handling
    • Using ExprResult in more places
    • Removing panics
    • Stop eating errors

0.3.0

15 Jun 07:29

Choose a tag to compare

  • Client context values in compile and runtime environments
  • More builtins

0.2.0

14 Jun 20:42

Choose a tag to compare

  • Boolean values
  • Several builtin functions added
    • is_empty
    • not
    • and
    • or
    • cond
    • to_str
    • concat
    • contains
  • Improved disassembling on GET ops
  • Add new op USER_BUILTIN

0.1.1

14 Jun 06:45

Choose a tag to compare

Add more data to cargo manifest

0.1.0

14 Jun 06:33

Choose a tag to compare

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