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

62 commits

Author SHA1 Message Date
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
ccaa40a99d Add rounding functions 2022-09-17 01:36:01 +09:00
e017a391ec Separate function and class injections 2022-09-16 21:55:06 +09:00
c43266260d Fix _._ operator not working with arbitrary expressions 2022-09-16 21:40:45 +09:00
fe897688d6 Bump version 2022-09-16 16:40:13 +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
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
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
eb3a1d3f2c Fix functions defined in code injection conflict due to reference reuse 2022-01-16 02:33:53 +01:00
b89095bbd2 Change priority of _~?_, _~_, and _#_ 2022-01-16 00:35:52 +01:00
f05ccdffcc Fix _!_ binop call with more than 2 arguments 2022-01-16 00:19:25 +01:00
86862be9f5 Change _=_ pair operator priority 2022-01-16 00:19:09 +01:00
428042c5d9 Add scoped function injections 2022-01-16 00:17:23 +01:00
6a5595ca04 Define injections from a game config.ans 2022-01-15 02:48:53 +01:00
dfe838a769 Add custom code inject at function/checkpoint start/end 2022-01-14 23:27:21 +01:00
5a61573cdb 🔖 is now a function reference 2022-01-14 21:40:08 +01:00
fd07db83f2 Add implicit multiplication 2022-01-14 21:32:14 +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
f5382d2912 Add _; 2021-12-12 16:31:19 +01:00
e7cfab524a Fix Lua 5.1 compatibility
Well error messages are still wrong due to pcall limitations in 5.1 but it works as intended.
2021-12-12 16:00:05 +01:00
fef498b3d7 Add scoped functions 2021-12-11 01:05:01 +01:00
acb8945dec Add variable reference and use them in alias(ref, id) 2021-12-09 14:34:21 +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
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
b9b59547ff More configurable handling of whitespace before decorators 2021-11-27 14:29:29 +01:00
e2b95b751b Switch a few remaining variables to snake_case 2021-11-27 13:17:29 +01:00
7105b445ef Handle events in text interpolation; capture text events in choice lines; improve test script 2021-11-26 21:26:41 +01:00
c847fefd39 Parser only change state on success 2021-06-05 21:34:12 +02:00
d42c35facd Change versioning to separate language/API/save; allow executing blocks directly; add version to game config 2021-06-05 17:19:42 +02:00
198c06e2e8 Rename format to {} 2021-06-05 00:06:00 +02:00
64bc85741a 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
2021-06-03 15:29:25 +02:00
151c70ed26 Add default and named arguments, rename equality operator to ==, shortcut for string pairs 2021-04-25 18:40:45 +02:00
17751c5c59 Rename checkpoint variable, add reached variable for checkpoints 2021-04-23 17:39:51 +02:00
0171d92352 Decorator system simplification, removed paragraph decorators, added function decorators 2021-04-23 17:13:39 +02:00