1
0
Fork 0
mirror of https://github.com/Reuh/anselme.git synced 2025-10-27 16:49:31 +00:00

Changed a few things

- Bumped to 0.15.0
- Add boot script
- Change variable definition syntax, using a = to distinguish more cleary between identifier and value
- Variables initial values are evaluated on first use instead of at parsing time
- Error on variable redefinition. Means you should make sure to load saves after your scripts.
- Improve string parsing, support for escape codes
- Remove support for number literals with empty decimal part (42. for 42.0) as there's no distinction in Anselme and it conflicts with .function call suffix
- Changed priority of : pair operator
- Add type type, and type annotations to variables and function parameters
- Change Lua function system to use regular Anselme functions
  - Defining a function from Lua is now way simpler and require providing a full Anselme function signature
- Change Anselme function system
  - Dynamic dispatch, based on arity, type annotation and parameter names. Will select the most specific function at runtime.
  - Define way to overload most operators
  - Allow custom type to text formatters
  - Allow assignment to custom functions
  - Index operator ( renamed to ()
  - Functions with parameters each have their own private namespace (scoping ersatz)
  - Internal: "custom"-mode operators now have their own expression AST type instead of cluttering the function system
- Remove static type checker as it is barely useful with new function system. May or may not rewrite one in the future.
- Improve error messages here and there
- Internal: cleaning
This commit is contained in:
Étienne Fildadut 2021-06-03 15:29:25 +02:00
parent 4b139019c9
commit 64bc85741a
86 changed files with 2096 additions and 1012 deletions

View file

@ -17,24 +17,24 @@ _[49]={}
_[48]={}
_[47]={}
_[46]={}
_[45]={tags=_[63],data="c"}
_[44]={tags=_[62],data="a"}
_[43]={tags=_[61],data="Force p checkpoint:"}
_[42]={tags=_[60],data="d"}
_[41]={tags=_[59],data="c"}
_[40]={tags=_[58],data="b"}
_[39]={tags=_[57],data="From q checkpoint again:"}
_[38]={tags=_[56],data="d"}
_[37]={tags=_[55],data="c"}
_[36]={tags=_[54],data="b"}
_[35]={tags=_[53],data="From q checkpoint:"}
_[34]={tags=_[52],data="d"}
_[33]={tags=_[51],data="c"}
_[32]={tags=_[50],data="a"}
_[31]={tags=_[49],data="From p checkpoint:"}
_[30]={tags=_[48],data="d"}
_[29]={tags=_[47],data="x"}
_[28]={tags=_[46],data="From start:"}
_[45]={data="c",tags=_[63]}
_[44]={data="a",tags=_[62]}
_[43]={data="Force p checkpoint:",tags=_[61]}
_[42]={data="d",tags=_[60]}
_[41]={data="c",tags=_[59]}
_[40]={data="b",tags=_[58]}
_[39]={data="From q checkpoint again:",tags=_[57]}
_[38]={data="d",tags=_[56]}
_[37]={data="c",tags=_[55]}
_[36]={data="b",tags=_[54]}
_[35]={data="From q checkpoint:",tags=_[53]}
_[34]={data="d",tags=_[52]}
_[33]={data="c",tags=_[51]}
_[32]={data="a",tags=_[50]}
_[31]={data="From p checkpoint:",tags=_[49]}
_[30]={data="d",tags=_[48]}
_[29]={data="x",tags=_[47]}
_[28]={data="From start:",tags=_[46]}
_[27]={_[45]}
_[26]={_[43],_[44]}
_[25]={_[42]}