Daniel Kolesa
238e5a6ac5
unexpose get_flags from ident, replace with specific methods
2021-04-03 05:39:19 +02:00
Daniel Kolesa
2a8d2103b8
allow alias_local for arg aliases
2021-04-03 05:26:59 +02:00
Daniel Kolesa
b2b83a8e5b
clean up some leftover cruft
2021-04-03 03:40:19 +02:00
Daniel Kolesa
b00a08ea88
remove most variable code and leave it to user-defined handlers
...
the user can now define commands '//ivar', '//fvar' and '//svar'
which take identity (which is the variable) as the first argument
followed by any number of user defined arguments with types (one
can use the N argument type to check argument count, and when no
value arguments are provided, print the variable); this allows us
to implement different styles of variable setting without the
interpreter itself knowing about it, as well as ditch all the
stuff with overridden vars and hex vars and whatnot since this is
all specific to the engine and has no place in here
there is still leftover code remaining, which will get cleaned up
afterwards...
2021-04-03 03:16:57 +02:00
Daniel Kolesa
95e7ae320c
simplify alias_stack push/pop a bit
2021-04-02 23:50:35 +02:00
Daniel Kolesa
52b305954f
per-thread alias stack (the vm should be mostly resumable now)
2021-04-02 19:13:34 +02:00
Daniel Kolesa
881ba4bce9
prepare codebase for per-thread alias stack
2021-04-02 05:47:49 +02:00
Daniel Kolesa
e8856f8f9d
rename alias_stack to alias_local
2021-04-02 04:43:57 +02:00
Daniel Kolesa
99ec1a8583
make push_alias/alias_stack responsible for unsetting unknown flag
2021-04-02 04:34:14 +02:00
Daniel Kolesa
9d7853a840
store cached compiled code on alias stack
...
this will reduce needless discards on push and simplify the code
2021-04-02 02:12:31 +02:00
Daniel Kolesa
2b0392e27e
remove some more raw bcode usage
2021-04-01 05:25:21 +02:00
Daniel Kolesa
e2b65000d5
hide value getter from public alias interface
...
since this will become thread-specific, this API makes no sense
2021-04-01 04:19:00 +02:00
Daniel Kolesa
6bb3dc2a57
avoid recompiling code when undo/redoing arguments
2021-04-01 03:54:34 +02:00
Daniel Kolesa
d8736a059b
greatly simplify internal alias stack handling
...
this should be more efficient too (no value moves)
2021-04-01 03:41:40 +02:00
Daniel Kolesa
1def48cf76
redo alias_stack for robustness (guarantee order of push/pop)
2021-03-30 20:37:50 +02:00
Daniel Kolesa
970e37f318
make alias pushing separate from setting value
2021-03-30 20:24:46 +02:00
Daniel Kolesa
d1243c5cc3
add better api to deal with alias stack
2021-03-30 03:57:43 +02:00
Daniel Kolesa
4154944726
remove fixed-size argument stacks and reliance on argument ids
2021-03-30 00:28:06 +02:00
Daniel Kolesa
9e82dc0d2f
get rid of cycle check from push_arg
2021-03-29 23:42:08 +02:00
Daniel Kolesa
8385ab01e7
use bitset to store usedargs and increase argcount to 32
2021-03-28 23:46:08 +02:00
Daniel Kolesa
064a7ea99b
document the instructions and drop more now useless vm code
2021-03-28 17:07:29 +02:00
Daniel Kolesa
a37eb25d1c
move public state methods where they belong
2021-03-27 00:26:59 +01:00
Daniel Kolesa
0b2c4c7038
pass thread_state in more places
2021-03-26 02:29:54 +01:00
Daniel Kolesa
468c3a07d4
get rid of some indirections
2021-03-25 01:52:03 +01:00
Daniel Kolesa
00b8312ad5
move most thread state into an internal structure
2021-03-24 20:33:20 +01:00
Daniel Kolesa
d774db675a
separate cs_gen.hh, various refactors
2021-03-24 02:21:32 +01:00
Daniel Kolesa
21aec59ad3
rename namespace to cubescript
2021-03-23 23:32:25 +01:00
Daniel Kolesa
b9b344cba6
remove cs_ namespace in all API
2021-03-23 23:29:32 +01:00
Daniel Kolesa
7139370990
move belonging stuff into cs_ident
2021-03-23 21:57:38 +01:00
Daniel Kolesa
87e141ab36
move public ident interfaces to cs_ident.cc
2021-03-23 02:35:31 +01:00
Daniel Kolesa
702dca0809
separate ident and error impls into their own files
2021-03-22 22:33:15 +01:00