mirror of
https://github.com/Reuh/anselme.git
synced 2025-10-27 16:49:31 +00:00
Update doc
This commit is contained in:
parent
43a745a7a9
commit
9e73269cda
2 changed files with 33 additions and 25 deletions
50
doc/api.md
50
doc/api.md
|
|
@ -104,7 +104,7 @@ _defined at line 82 of [anselme/init.lua](../anselme/init.lua):_ `new = function
|
|||
|
||||
|
||||
---
|
||||
_file generated at 2023-12-29T17:36:31Z_
|
||||
_file generated at 2023-12-31T18:43:08Z_
|
||||
|
||||
# State
|
||||
|
||||
|
|
@ -116,7 +116,7 @@ Each State can run a single script at a time, and variable changes are isolated
|
|||
Load standard library.
|
||||
You will probably want to call this on every State right after creation.
|
||||
|
||||
_defined at line 50 of [anselme/state/State.lua](../anselme/state/State.lua):_ `load_stdlib = function(self)`
|
||||
_defined at line 43 of [anselme/state/State.lua](../anselme/state/State.lua):_ `load_stdlib = function(self)`
|
||||
|
||||
## Branching and merging
|
||||
|
||||
|
|
@ -124,13 +124,13 @@ _defined at line 50 of [anselme/state/State.lua](../anselme/state/State.lua):_ `
|
|||
|
||||
Name of the branch associated to this State.
|
||||
|
||||
_defined at line 57 of [anselme/state/State.lua](../anselme/state/State.lua):_ `branch_id = "main",`
|
||||
_defined at line 50 of [anselme/state/State.lua](../anselme/state/State.lua):_ `branch_id = "main",`
|
||||
|
||||
### .source_branch_id
|
||||
|
||||
Name of the branch this State was branched from.
|
||||
|
||||
_defined at line 59 of [anselme/state/State.lua](../anselme/state/State.lua):_ `source_branch_id = "main",`
|
||||
_defined at line 52 of [anselme/state/State.lua](../anselme/state/State.lua):_ `source_branch_id = "main",`
|
||||
|
||||
### :branch ()
|
||||
|
||||
|
|
@ -139,7 +139,7 @@ Return a new branch of this State.
|
|||
Branches act as indepent copies of this State where any change will not be reflected in the source State until it is merged back into the source branch.
|
||||
Note: probably makes the most sense to create branches from the main State only.
|
||||
|
||||
_defined at line 65 of [anselme/state/State.lua](../anselme/state/State.lua):_ `branch = function(self)`
|
||||
_defined at line 58 of [anselme/state/State.lua](../anselme/state/State.lua):_ `branch = function(self)`
|
||||
|
||||
### :merge ()
|
||||
|
||||
|
|
@ -149,7 +149,7 @@ Recommendation: only merge if you know that the state of the variables is consis
|
|||
If your script errored or was interrupted at an unknown point in the script, you might be in the middle of a calculation and variables won't contain
|
||||
values you want to merge.
|
||||
|
||||
_defined at line 74 of [anselme/state/State.lua](../anselme/state/State.lua):_ `merge = function(self)`
|
||||
_defined at line 67 of [anselme/state/State.lua](../anselme/state/State.lua):_ `merge = function(self)`
|
||||
|
||||
## Variable definition
|
||||
|
||||
|
|
@ -166,13 +166,25 @@ Define a value in the global scope, converting it from Lua to Anselme if needed.
|
|||
If `raw_mode` is true, no anselme-to/from-lua conversion will be performed in the function.
|
||||
The function will receive the state followed by AST nodes as arguments, and is expected to return an AST node.
|
||||
|
||||
_defined at line 92 of [anselme/state/State.lua](../anselme/state/State.lua):_ `define = function(self, name, value, func, raw_mode)`
|
||||
_defined at line 85 of [anselme/state/State.lua](../anselme/state/State.lua):_ `define = function(self, name, value, func, raw_mode)`
|
||||
|
||||
### :define_local (name, value, func, raw_mode)
|
||||
|
||||
Same as `:define`, but define the expression in the current scope.
|
||||
|
||||
_defined at line 98 of [anselme/state/State.lua](../anselme/state/State.lua):_ `define_local = function(self, name, value, func, raw_mode)`
|
||||
_defined at line 91 of [anselme/state/State.lua](../anselme/state/State.lua):_ `define_local = function(self, name, value, func, raw_mode)`
|
||||
|
||||
### :defined (name)
|
||||
|
||||
Returns false otherwise.
|
||||
|
||||
_defined at line 96 of [anselme/state/State.lua](../anselme/state/State.lua):_ `defined = function(self, name)`
|
||||
|
||||
### :defined_local (name)
|
||||
|
||||
Same as `:defined`, but check if the variable is defined in the current scope.
|
||||
|
||||
_defined at line 103 of [anselme/state/State.lua](../anselme/state/State.lua):_ `defined_local = function(self, name)`
|
||||
|
||||
For anything more advanced, you can directly access the current scope stack stored in `state.scope`.
|
||||
See [state/ScopeStack.lua](../state/ScopeStack.lua) for details; the documentation is not as polished as this file but you should still be able to find your way around.
|
||||
|
|
@ -185,7 +197,7 @@ Return a serialized (string) representation of all persistent variables in this
|
|||
|
||||
This can be loaded back later using `:load`.
|
||||
|
||||
_defined at line 110 of [anselme/state/State.lua](../anselme/state/State.lua):_ `save = function(self)`
|
||||
_defined at line 115 of [anselme/state/State.lua](../anselme/state/State.lua):_ `save = function(self)`
|
||||
|
||||
### :load (save)
|
||||
|
||||
|
|
@ -193,7 +205,7 @@ Load a string generated by `:save`.
|
|||
|
||||
Variables that already exist will be overwritten with the loaded data.
|
||||
|
||||
_defined at line 117 of [anselme/state/State.lua](../anselme/state/State.lua):_ `load = function(self, save)`
|
||||
_defined at line 122 of [anselme/state/State.lua](../anselme/state/State.lua):_ `load = function(self, save)`
|
||||
|
||||
## Current script state
|
||||
|
||||
|
|
@ -201,7 +213,7 @@ _defined at line 117 of [anselme/state/State.lua](../anselme/state/State.lua):_
|
|||
|
||||
Indicate if a script is currently loaded in this branch.
|
||||
|
||||
_defined at line 131 of [anselme/state/State.lua](../anselme/state/State.lua):_ `active = function(self)`
|
||||
_defined at line 136 of [anselme/state/State.lua](../anselme/state/State.lua):_ `active = function(self)`
|
||||
|
||||
### :state ()
|
||||
|
||||
|
|
@ -211,7 +223,7 @@ Returns `"active"` if a script is loaded but not currently running (i.e. the scr
|
|||
|
||||
Returns `"inactive"` if no script is loaded.
|
||||
|
||||
_defined at line 139 of [anselme/state/State.lua](../anselme/state/State.lua):_ `state = function(self)`
|
||||
_defined at line 144 of [anselme/state/State.lua](../anselme/state/State.lua):_ `state = function(self)`
|
||||
|
||||
### :run (code, source)
|
||||
|
||||
|
|
@ -221,7 +233,7 @@ Load a script in this branch. It will become the active script.
|
|||
|
||||
Note that this will only load the script; execution will only start by using the `:step` method. Will error if a script is already active in this State.
|
||||
|
||||
_defined at line 151 of [anselme/state/State.lua](../anselme/state/State.lua):_ `run = function(self, code, source)`
|
||||
_defined at line 156 of [anselme/state/State.lua](../anselme/state/State.lua):_ `run = function(self, code, source)`
|
||||
|
||||
### :step ()
|
||||
|
||||
|
|
@ -231,7 +243,7 @@ Will error if no script is active.
|
|||
|
||||
Returns `event type string, event data`.
|
||||
|
||||
_defined at line 164 of [anselme/state/State.lua](../anselme/state/State.lua):_ `step = function(self)`
|
||||
_defined at line 169 of [anselme/state/State.lua](../anselme/state/State.lua):_ `step = function(self)`
|
||||
|
||||
### :interrupt (code, source)
|
||||
|
||||
|
|
@ -242,7 +254,9 @@ Will error if no script is active.
|
|||
If `code` is given, the script will not be disabled but instead will be immediately replaced with this new script.
|
||||
The new script will then be started on the next `:step` and will preserve the current scope. This can be used to trigger an exit function or similar in the active script.
|
||||
|
||||
_defined at line 182 of [anselme/state/State.lua](../anselme/state/State.lua):_ `interrupt = function(self, code, source)`
|
||||
If this is called from within a running script, this will raise an `interrupt` event in order to stop the current script execution.
|
||||
|
||||
_defined at line 189 of [anselme/state/State.lua](../anselme/state/State.lua):_ `interrupt = function(self, code, source)`
|
||||
|
||||
### :eval (code, source)
|
||||
|
||||
|
|
@ -253,13 +267,13 @@ This can be called from outside a running script, but an error will be triggered
|
|||
* returns AST in case of success. Run `:to_lua(state)` on it to convert to a Lua value.
|
||||
* returns `nil, error message` in case of error.
|
||||
|
||||
_defined at line 203 of [anselme/state/State.lua](../anselme/state/State.lua):_ `eval = function(self, code, source)`
|
||||
_defined at line 212 of [anselme/state/State.lua](../anselme/state/State.lua):_ `eval = function(self, code, source)`
|
||||
|
||||
### :eval_local (code, source)
|
||||
|
||||
Same as `:eval`, but evaluate the expression in the current scope.
|
||||
|
||||
_defined at line 210 of [anselme/state/State.lua](../anselme/state/State.lua):_ `eval_local = function(self, code, source)`
|
||||
_defined at line 219 of [anselme/state/State.lua](../anselme/state/State.lua):_ `eval_local = function(self, code, source)`
|
||||
|
||||
If you want to perform more advanced manipulation of the resulting AST nodes, look at the `ast` modules.
|
||||
In particular, every Node inherits the methods from [ast.abstract.Node](../ast/abstract/Node.lua).
|
||||
|
|
@ -267,4 +281,4 @@ Otherwise, each Node has its own module file defined in the [ast/](../ast) direc
|
|||
|
||||
|
||||
---
|
||||
_file generated at 2023-12-29T17:36:31Z_
|
||||
_file generated at 2023-12-31T18:43:08Z_
|
||||
|
|
|
|||
8
ideas.md
8
ideas.md
|
|
@ -10,12 +10,6 @@ Documentation:
|
|||
|
||||
---
|
||||
|
||||
Write tests. Still missing:
|
||||
* some tests from anselme v1
|
||||
* tests for anselme v2 features
|
||||
|
||||
---
|
||||
|
||||
Translation.
|
||||
|
||||
Translation model for stdlib: ?
|
||||
|
|
@ -38,7 +32,7 @@ Or just say closures probably shouldn't be persisted. Yeah, probably easier.
|
|||
Standard library.
|
||||
|
||||
* Text manipulation would make sense, but that would require a full UTF-8/Unicode support library like https://github.com/starwing/luautf8.
|
||||
* Something to load other files. Maybe not load it by default to let the calling game sandbox Anselme.
|
||||
* Something to load other files. Maybe not load it by default to let the calling game sandbox Anselme. Probably create an export scope per file to perform some nice module loading.
|
||||
* Implement the useful functions from Anselme v1.
|
||||
* Checkpoint management.
|
||||
* Overloadable :format for custom types.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue