Daniel Kolesa
5d4bcaf797
use an ellipsis for variadics instead of V
2021-04-29 19:56:48 +02:00
Daniel Kolesa
e14d5c4aa3
remove automatic concatenating variadics
...
these were pretty much just pointless sugar for something that
can be better achieved with ordinary variadics and an extra call
(which is what it did, except in VM)
2021-04-29 19:29:51 +02:00
Daniel Kolesa
e52720ebb2
rename N in arglist to #
2021-04-29 04:15:16 +02:00
Daniel Kolesa
da7548664c
remove b and F arg types + renames + set default args to none
...
setting default args to none rather than whatever default
value allows for easily checking whether the arg was set,
without losing anything (since e.g. calling get_integer on
a none value still returns a 0)
'b' and 'F' were kinda ugly and handled special niches, which
are no longer a thing now that we're defaulting to none
2021-04-29 01:40:55 +02:00
Daniel Kolesa
92281e88c1
remove state::get_alias(), make get_ident() return an optional
2021-04-26 02:42:08 +02:00
Daniel Kolesa
43e6dc9341
remove get_ utilities from ident
...
this is not a good api (it prevents extensibility, requires
handling errors twice to be safe - once on user side, once
internally - and so on); just cast it
2021-04-25 00:44:45 +02:00
Daniel Kolesa
f4b8d077bb
alias_local and get_ident() memory safety (always return refs)
2021-04-24 23:34:44 +02:00
Daniel Kolesa
37ad7e7589
update compiler compat note + lowercase windows.h in linenoise
2021-04-15 20:59:30 +02:00
Daniel Kolesa
36bf0e368f
drop readline support in repl
...
this library is bad, and its documentation is even worse
and our linenoise now supports every non-boomer platform already
anyway
2021-04-12 20:43:19 +02:00
Daniel Kolesa
a5003678da
fix build with libc++, and try using it in CI with clang
2021-04-12 19:53:24 +02:00
Daniel Kolesa
8207ef0ce3
use overloads for new var methods
2021-04-11 20:49:26 +02:00
Daniel Kolesa
b26bae3ec5
move standard library init outside state, make it never error
2021-04-11 19:36:41 +02:00
Daniel Kolesa
d358dd83e7
halve the size of any_value by removing state pointer from it
...
this brings more advantages too like actually being default
constructible, so it can be used more easily in data structures etc
2021-04-11 03:32:33 +02:00
Daniel Kolesa
e531ab3434
clean up any_value APIs for consistency
2021-04-06 00:54:46 +02:00
Daniel Kolesa
8c8aa26c20
return refs for new_*var and new_ident (guarantee valid result)
2021-04-05 19:52:13 +02:00
Daniel Kolesa
194d5f960b
drop ret-by-reference run APIs
2021-04-05 18:32:45 +02:00
Daniel Kolesa
9c2d375471
remove overrides for fvar and svar handlers in repl
2021-04-04 19:35:45 +02:00
Daniel Kolesa
529e34d268
add a variable value change trigger callback
2021-04-04 04:30:36 +02:00
Daniel Kolesa
bab8633a05
add proper var value setting helpers
2021-04-04 02:58:04 +02:00
Daniel Kolesa
e9fc023daa
implement override value saving
2021-04-04 02:44:35 +02:00
Daniel Kolesa
3d91cf2ee7
rea-add proper handling of variable overrides
2021-04-04 02:33:28 +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
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
b36ef94b80
update notes on linenoise
2021-03-31 23:55:40 +02:00
Daniel Kolesa
6068a7259b
switch to modified cpp-linenoise, use it on windows
2021-03-31 23:48:22 +02:00
Daniel Kolesa
b9c74d86b5
msvc warning fixes
2021-03-31 02:21:32 +02:00
Daniel Kolesa
2270d8e41f
up the default warning level, turn off rtti by default
2021-03-31 01:35:02 +02:00
Daniel Kolesa
13d46881e8
windows fixes and other correctness/portability stuff
2021-03-31 01:13:35 +02:00
Daniel Kolesa
c62dd07adb
update linenoise to latest git
2021-03-28 01:05:09 +01:00
Daniel Kolesa
371ef9e912
add build option to disable repl, use feature objects
2021-03-28 00:56:11 +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
3d9f73c7b2
drop removed arg types in repl
2021-03-23 02:23:24 +01:00
Daniel Kolesa
4b766a380f
drop the util namespace
2021-03-23 02:02:43 +01:00
Daniel Kolesa
82d366366e
drop libostd requirement entirely
2021-03-20 08:23:51 +01:00
Daniel Kolesa
cb926a5750
get rid of ostd requirements inside library entirely
2021-03-20 07:24:25 +01:00
Daniel Kolesa
d626fba537
remove file exec api
...
this is something each thing will want to do on its own...
but add a new set of calls that take code source for debug info
2021-03-20 05:10:19 +01:00
Daniel Kolesa
5648c1a757
use string_view everywhere that returns or takes a string
2021-03-20 04:10:27 +01:00
Daniel Kolesa
704f9217f7
unify enum style
2021-03-18 20:55:14 +01:00
Daniel Kolesa
6ed9ae1235
get rid of standard i/o inside vm
2021-03-18 00:03:30 +01:00
Daniel Kolesa
7eaf3679a4
get rid of cs_value::get_strr
2021-03-17 21:59:37 +01:00
Daniel Kolesa
c004db42c6
refactor cs_value and related structures to contain state
...
this will allow us to intern strings inside cs_value
2021-03-17 01:26:30 +01:00
Daniel Kolesa
3224a33645
fix warnings
2020-09-11 23:41:09 +02:00
q66
e58c69bc99
mesonize libcubescript
2018-10-28 02:56:00 +02:00
q66
ccb35eb1c4
fixes
2017-06-19 20:13:54 +02:00
q66
5b1baafdb3
fixes
2017-04-01 01:06:36 +02:00
q66
6b17c4594f
remove slice_until
2017-03-31 03:18:26 +02:00
q66
69b9042fdc
ostd fixes
2017-03-10 20:16:20 +01:00
q66
8343979e03
fix build after style update
2017-02-16 19:07:22 +01:00
q66
41eb8b211f
begin naming scheme rework
2017-02-13 18:11:19 +01:00