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

122 commits

Author SHA1 Message Date
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
ef5e1a577f Re-add alternative : operator for pairs 2022-09-16 14:19:48 +09:00
4284b06f10 Allow any character to be escaped 2022-09-14 15:42:02 +09:00
d1f49d1894 Preprend every definition line type with a colon, remove function decorator, add immediately ran definition line 2022-09-14 15:28:58 +09:00
7b756ad092 Update README, bump version 2022-09-13 19:34:34 +09:00
1263c32572 Implicitly call references like functions 2022-09-10 17:58:34 +09:00
95462391e3 Add maps; remove map emulation functionality from list; function and tags now internally use maps instead of lists 2022-09-09 21:39:37 +09:00
bac5cdde01 Change equality test to reference comparison for mutable values 2022-09-09 14:57:31 +09:00
95683a0ffd Add constants 2022-09-08 22:09:11 +09:00
3e658e4780 Add variable constraints, rename type annotation checks to constraints, rename custom type to annotation 2022-09-08 21:28:27 +09:00
47f95fc04a Add object type, dot operator can return function references 2022-06-09 17:07:58 +09:00
69b9e17020 Updated documentation; added Lua API documentation 2022-01-20 01:49:52 +01:00
933e8fb0ee Add "function return" and "scoped function return" injections, allow children for return lines 2022-01-16 15:32:59 +01:00
b60f53df01 Improve variable redefinition error 2022-01-16 02:34:25 +01:00
a56e159a7d Fix test error on LuaJIT due to Lua 5.4 change on double formatting 2022-01-14 23:49:22 +01:00
fdcea38e5e Update documentation 2022-01-14 23:43:20 +01:00
5a61573cdb 🔖 is now a function reference 2022-01-14 21:40:08 +01:00
88157b04b9 Merge behavior of : and = into single = operator for pairs; add assignment with _._ operator in function references 2021-12-14 02:37:09 +01:00
48cabbf4c0 Add while loop line and operator 2021-12-12 20:49:48 +01:00
bb45cc8fdd Fix scoping with mutable variables 2021-12-12 15:38:27 +01:00
16d0bb8d7a Fix LuaJIT compatibility 2021-12-11 01:38:18 +01:00
fef498b3d7 Add scoped functions 2021-12-11 01:05:01 +01:00
40c1616cce Rewrite next, random using references 2021-12-09 17:23:54 +01:00
acb8945dec Add variable reference and use them in alias(ref, id) 2021-12-09 14:34:21 +01:00
04c6683de8 Proper checkpointing of mutable values 2021-12-06 18:34:58 +01:00
bc5e68ffcb Remove text litterals as events buffers may contain code blocks (choices events) and we don't want this to end up in the save file 2021-12-06 16:15:35 +01:00
9bd9759115 Rename overloaded operators (add underscores)
* add suffix unary operators
* add _! operator
* _._ and _&_ operator overloading
* allow calling function references with _! and access variables with _._
* rename . method operator to !
* various cleaning & improvements

Documentation will follow at some point.
2021-12-06 01:45:19 +01:00
d5b1a9f225 Allow argument-less calling using ! suffix 2021-12-04 18:51:09 +01:00
6e5cbf9e7e Add function references 2021-12-04 18:20:32 +01:00
0f89307d5f Cache read values in local state, handle mutable variables properly 2021-12-02 23:57:25 +01:00
721464218c Add eventbuffer type 2021-12-02 18:39:43 +01:00
38b2a6ae69 Improve function decorator parsing 2021-11-28 16:23:44 +01:00
f2e74c94c9 Changed a few things
* Integrated # and ~ decorators into the expression system. Created associated operators.
* # and ~ decorators only affect their current line. That's more useful...
* Fix our priority system to evaluate left-to-right instead of right-to-left (if there was a reason why I did it this way initially, I don't remember it so ¯\_(ツ)_/¯)
* a lotta internal changes

Various other small adjustments, see the diff of REFERENCE.md for details.
2021-11-28 01:43:54 +01:00
14d348bad9 Untypo 2021-11-27 14:37:55 +01:00
b9b59547ff More configurable handling of whitespace before decorators 2021-11-27 14:29:29 +01:00