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

63 commits

Author SHA1 Message Date
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
5e7ac83854 Separate value and type of eventbuffer in internal representation 2021-12-03 15:39:59 +01:00
14bf0c2b06 Store tags in a regular Anselme list 2021-12-03 01:16:35 +01:00
0f89307d5f Cache read values in local state, handle mutable variables properly 2021-12-02 23:57:25 +01:00
607313d5ce Merge state on vm:eval, new aliases need to be merged 2021-12-02 19:24:48 +01:00
721464218c Add eventbuffer type 2021-12-02 18:39:43 +01:00
02d50fb79f Update notes 2021-11-29 14:48:04 +01:00
90e5a2d9cf Switch back to tag:pop instead of tag:trim
The tag operator should allow for all the user-defined tagging you need, and it already ensures the stack stays consistent so there's no need to be extra careful with tag:trim.
2021-11-28 16:31:42 +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
12d2aa3e82 Move reference into separate file 2021-11-27 14:31: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
7433d27da5 Don't expose private event fields to user in choices 2021-11-27 13:10:36 +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
633f7b2d61 Prevent from restarting interpreter after return or error 2021-06-05 22:38:02 +02:00
c847fefd39 Parser only change state on success 2021-06-05 21:34:12 +02:00
0e755ea841 Add anselme version check in game config, rename version to "game version" 2021-06-05 17:26:15 +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
9388a22a0f Move default variables alias from game config to language file 2021-06-05 14:01:54 +02:00
61e3143e9e Add alias() to define alias after definition; add frFR language file 2021-06-05 01:30:40 +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
4b139019c9 Add list assignment operators 2021-04-25 19:10:37 +02:00
b93061143c Add name and value pair methods 2021-04-25 18:46:22 +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
6f564ea0e2 Improve naming consistency
expression/conditions -> conditions
paragraphs/checkpoints -> checkpoints
merge/flush/commit -> merge
2021-04-23 02:27:06 +02:00
b7f38a16fd Commit on script end 2021-04-14 00:48:07 +02:00
977aa5dadd Don't commit on function call 2021-04-12 17:41:17 +02:00
e454888b9f Discard returns values from choices 2021-04-12 17:36:18 +02:00
f9edaff7e7 Restore tags when resuming from a checkpoint; simply resuming code 2021-04-12 17:08:35 +02:00
5c3e9d2c5d Preserve tags in choices children 2021-04-12 01:58:10 +02:00
b9c6d1d704 Add nil expression and fix return behavior with nil expression 2021-04-12 01:10:42 +02:00
6488bef75c Bump version 2021-04-10 14:48:22 +02:00
c6dc614c32 Only check for major version number when loading saves; don't save undefined arguments 2021-04-10 14:48:00 +02:00
dde89502da Fix a lot of issues when resuming from a paragraph in a choice or expression block 2021-04-10 14:33:32 +02:00
f93d6fab6b Use love.filesystem instead of io.open to read files if running inside Löve
Also small improvement to error reporting
2021-04-09 18:12:11 +02:00
0df120eeaf Allow parameters alias 2021-04-08 18:19:43 +02:00
25ded7a3c8 Bump version, move TODO to notes.txt 2021-04-08 18:02:18 +02:00
9d4e732034 Typo 2021-04-08 17:25:58 +02:00
32ae99e33b Add :loadgame 2021-04-08 17:25:50 +02:00
51e8c82181 Improve alias system 2021-04-08 16:34:33 +02:00
b0d7a0bfb5 Check identifier pattern in more cases while parsing 2021-04-08 13:22:26 +02:00
eb6da84878 Condition line -> expression line 2021-04-08 13:21:47 +02:00