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

106 commits

Author SHA1 Message Date
c54fa4344f [stdlib] add optional default value for table and struct call 2024-01-16 14:34:18 +01:00
78f3c6448e [language] allow multiline expression between (), [] and {} 2024-01-15 20:03:55 +01:00
1ea06c63eb [internal] do block parsing at the same time as expression parsing 2024-01-15 17:21:47 +01:00
b6473de4d2 [language] Add multiple assignments, assignment and definitions are now function calls 2024-01-11 01:36:47 +01:00
87afa51baa [language] Remove _|>_ operator, replace with *_ 2024-01-09 18:05:45 +01:00
5d000e2fec Rename type check to value check 2024-01-09 16:57:43 +01:00
c027c87dc4 Reuse a global state with standard library already loaded in tests, and associated branch handling fixes 2024-01-08 22:23:50 +01:00
bd93dc43dc Add file loading functions to stdlib 2024-01-08 19:28:14 +01:00
8562e8f18b Allow function call with tuple and struct without parentheses 2024-01-08 16:41:44 +01:00
51ad18c5a4 LuaFunction cleanup: replace by LuaCall 2024-01-07 20:31:28 +01:00
f198286870 Serialize function scope 2024-01-06 16:24:49 +01:00
b004946266 Error reporting improvements for functions & overloads 2024-01-06 15:14:32 +01:00
7f71569e07 Prefix type checkers with "is", stdlib cleanup 2024-01-06 15:00:08 +01:00
98917c2ca4 Update doc 2024-01-05 01:52:21 +01:00
efb99a9ed7 Add for loops 2024-01-05 01:36:37 +01:00
a212dd7fd1 stdlib cleanup 2024-01-04 20:45:23 +01:00
dac5b74fa6 Add stdlib functions from anselme v1 2024-01-04 20:22:18 +01:00
9a38dfa34f Persist LuaFunctions & add tests 2024-01-03 19:47:28 +01:00
82b68e09a3 Update tests 2024-01-03 16:46:12 +01:00
93dadb3b5d Add interactive mode for test runner 2024-01-03 13:49:51 +01:00
68a109391f Hide internal nodes from stack trace 2024-01-02 15:06:24 +01:00
15f29e3bce Undefine _ in attached block 2024-01-02 14:35:18 +01:00
a85e7ab0af Update tests 2024-01-02 00:36:10 +01:00
7635261a3f Reset randomseed before each test 2024-01-02 00:32:08 +01:00
18dd3ad6bd Remove -> operator 2024-01-01 17:51:33 +01:00
861877503a Comments: switch from (( to /* delimiters
Double parentheses turned out to conflict too often with normal code. I guess sometimes I shouldn't try to make my own syntax up.
2023-12-31 19:54:54 +01:00
43a745a7a9 Final test batch and associated fixes 2023-12-31 19:41:14 +01:00
050c84921c Add identifier wrap for aliases 2023-12-31 14:55:28 +01:00
409a2e7095 Firth test batch and associated fixes 2023-12-31 14:30:14 +01:00
aa8dfbd498 Fix interleaved text and choices 2023-12-31 14:25:37 +01:00
0a835a65d8 Fourth test batch 2023-12-30 23:45:30 +01:00
b7761311fe Aliases: add wrap > operator 2023-12-30 23:44:42 +01:00
2cd910389b Exported variables: no longer add export scope to every function, allow freely access and modifiy variable in function scope
Too many issues with predefining exported variables, and this is more flexible.
2023-12-30 23:43:05 +01:00
0eea4b80a6 Third test batch 2023-12-30 23:39:10 +01:00
3edf65dc2a Exported variables predefinition: replace prepare system with generic resume system 2023-12-30 15:31:00 +01:00
db8ae03927 Add test for constant aliases and text trailing space removal 2023-12-30 02:02:11 +01:00
07cb44256c Change format_priority to a method 2023-12-30 01:35:58 +01:00
d42b900388 Text litteral: strip leading and closing space if present 2023-12-29 19:19:15 +01:00
5dd971ff8f Move anselme code into its own directory 2023-12-29 18:47:36 +01:00
404e7dd56e Replace AttachBlock with more generic PartialScope 2023-12-29 17:56:01 +01:00
9b7d1e436e Second test batch and associated fixes 2023-12-29 17:15:43 +01:00
7abb116876 Ignore defaults values in parameter type check 2023-12-28 18:51:40 +01:00
82ce53be83 First test batch and associated fixes
The test runner is also nicer to use.
2023-12-28 17:03:54 +01:00
53c1c764ba Add testing framework
More tests will arrive shortly...
2023-12-28 13:03:56 +01:00
fe351b5ca4 Anselme v2.0.0-alpha rewrite
Woke up and felt like changing a couple things. It's actually been worked on for a while, little at a time...

The goal was to make the language and implementation much simpler. Well I don't know if it really ended up being simpler but it sure is more robust.

Main changes:
* proper first class functions and closures supports! proper scoping rules! no more namespace shenanigans!
* everything is an expression, no more statements! make the implementation both simpler and more complex, but it's much more consistent now! the syntax has massively changed as a result though.
* much more organized and easy to modify codebase: one file for each AST node, no more random fields or behavior set by some random node exceptionally, everything should now follow the same API defined in ast.abstract.Node

Every foundational feature should be implemented right now. The vast majority of things that were possible in v2 are possible now; some things aren't, but that's usually because v2 is a bit more sane.
The main missing things before a proper release are tests and documentation. There's a few other things that might be implemented later, see the ideas.md file.
2023-12-22 13:25:28 +01:00
2ff494d108 Clean implementation of 👁️ and no longer increment 🏁 on checkpoint execution (redundant with 👁️) 2023-03-02 15:49:15 +09:00
5e441886c0 Add anonymous functions 2022-09-28 14:56:31 +09:00
2c6d66c222 Variable must now be explicitly marked as persistent 2022-09-27 19:27:23 +09:00
e9606cdee0 Add text buffer syntax 2022-09-27 17:05:06 +09:00
c43266260d Fix _._ operator not working with arbitrary expressions 2022-09-16 21:40:45 +09:00