diff --git a/include/cubescript/cubescript/state.hh b/include/cubescript/cubescript/state.hh index 1cb5416..70d8c3b 100644 --- a/include/cubescript/cubescript/state.hh +++ b/include/cubescript/cubescript/state.hh @@ -300,7 +300,7 @@ struct LIBCUBESCRIPT_EXPORT state { * * `a` - any (passed as is) * * `b` - bytecode/block * * `c` - condition (see below) - * * `r` - ident + * * `v` - ident (variable/alias/any kind) * * `#` - number of real arguments passed up until now * * `$` - self ident (the command, except for special hooks) * diff --git a/src/cs_parser.cc b/src/cs_parser.cc index bf1afc6..10bf5af 100644 --- a/src/cs_parser.cc +++ b/src/cs_parser.cc @@ -938,7 +938,7 @@ static bool parse_cmd_arg(parser_state &ps, char s, bool more, bool rep) { more = ps.parse_arg(VAL_CODE); } break; - case 'r': /* ident */ + case 'v': /* variable/alias/other ident */ if (more) { more = ps.parse_arg(VAL_IDENT); } diff --git a/src/cs_state.cc b/src/cs_state.cc index 306cd2f..9377d24 100644 --- a/src/cs_state.cc +++ b/src/cs_state.cc @@ -602,7 +602,7 @@ LIBCUBESCRIPT_EXPORT command &state::new_command( case '#': case 's': case 'b': - case 'r': + case 'v': case '$': ++nargs; break; diff --git a/src/cs_vm.cc b/src/cs_vm.cc index 435a6e4..356182a 100644 --- a/src/cs_vm.cc +++ b/src/cs_vm.cc @@ -99,7 +99,7 @@ void exec_command( args[i].force_code(*ts.pstate); } break; - case 'r': + case 'v': if (set_fake()) { args[i].force_ident(*ts.pstate); } diff --git a/src/lib_base.cc b/src/lib_base.cc index 5a4739c..35c292d 100644 --- a/src/lib_base.cc +++ b/src/lib_base.cc @@ -68,7 +68,7 @@ LIBCUBESCRIPT_EXPORT void std_init_base(state &gcs) { throw error{cs, args[0].get_string(cs)}; }); - new_cmd_quiet(gcs, "pcall", "brr", [](auto &cs, auto args, auto &ret) { + new_cmd_quiet(gcs, "pcall", "bvv", [](auto &cs, auto args, auto &ret) { auto &cret = args[1].get_ident(cs); auto &css = args[2].get_ident(cs); if (!cret.is_alias()) { @@ -159,7 +159,7 @@ LIBCUBESCRIPT_EXPORT void std_init_base(state &gcs) { } }); - new_cmd_quiet(gcs, "pushif", "rab", [](auto &cs, auto args, auto &res) { + new_cmd_quiet(gcs, "pushif", "vab", [](auto &cs, auto args, auto &res) { alias_local st{cs, args[0]}; if (st.get_alias().is_arg()) { throw error{cs, "cannot push an argument"}; @@ -170,28 +170,28 @@ LIBCUBESCRIPT_EXPORT void std_init_base(state &gcs) { } }); - new_cmd_quiet(gcs, "loop", "rab", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "loop", "vab", [](auto &cs, auto args, auto &) { do_loop( cs, args[0].get_ident(cs), 0, args[1].get_integer(), 1, bcode_ref{}, args[2].get_code() ); }); - new_cmd_quiet(gcs, "loop+", "riib", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "loop+", "viib", [](auto &cs, auto args, auto &) { do_loop( cs, args[0].get_ident(cs), args[1].get_integer(), args[2].get_integer(), 1, bcode_ref{}, args[3].get_code() ); }); - new_cmd_quiet(gcs, "loop*", "riib", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "loop*", "viib", [](auto &cs, auto args, auto &) { do_loop( cs, args[0].get_ident(cs), 0, args[1].get_integer(), args[2].get_integer(), bcode_ref{}, args[3].get_code() ); }); - new_cmd_quiet(gcs, "loop+*", "riiib", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "loop+*", "viiib", [](auto &cs, auto args, auto &) { do_loop( cs, args[0].get_ident(cs), args[1].get_integer(), args[3].get_integer(), args[2].get_integer(), @@ -199,28 +199,28 @@ LIBCUBESCRIPT_EXPORT void std_init_base(state &gcs) { ); }); - new_cmd_quiet(gcs, "loopwhile", "ribb", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "loopwhile", "vibb", [](auto &cs, auto args, auto &) { do_loop( cs, args[0].get_ident(cs), 0, args[1].get_integer(), 1, args[2].get_code(), args[3].get_code() ); }); - new_cmd_quiet(gcs, "loopwhile+", "riibb", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "loopwhile+", "viibb", [](auto &cs, auto args, auto &) { do_loop( cs, args[0].get_ident(cs), args[1].get_integer(), args[2].get_integer(), 1, args[3].get_code(), args[4].get_code() ); }); - new_cmd_quiet(gcs, "loopwhile*", "riibb", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "loopwhile*", "viibb", [](auto &cs, auto args, auto &) { do_loop( cs, args[0].get_ident(cs), 0, args[2].get_integer(), args[1].get_integer(), args[3].get_code(), args[4].get_code() ); }); - new_cmd_quiet(gcs, "loopwhile+*", "riiibb", []( + new_cmd_quiet(gcs, "loopwhile+*", "viiibb", []( auto &cs, auto args, auto & ) { do_loop( @@ -245,7 +245,7 @@ end: return; }); - new_cmd_quiet(gcs, "loopconcat", "rib", []( + new_cmd_quiet(gcs, "loopconcat", "vib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -254,7 +254,7 @@ end: ); }); - new_cmd_quiet(gcs, "loopconcat+", "riib", []( + new_cmd_quiet(gcs, "loopconcat+", "viib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -263,7 +263,7 @@ end: ); }); - new_cmd_quiet(gcs, "loopconcat*", "riib", []( + new_cmd_quiet(gcs, "loopconcat*", "viib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -272,7 +272,7 @@ end: ); }); - new_cmd_quiet(gcs, "loopconcat+*", "riiib", []( + new_cmd_quiet(gcs, "loopconcat+*", "viiib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -282,7 +282,7 @@ end: ); }); - new_cmd_quiet(gcs, "loopconcatword", "rib", []( + new_cmd_quiet(gcs, "loopconcatword", "vib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -291,7 +291,7 @@ end: ); }); - new_cmd_quiet(gcs, "loopconcatword+", "riib", []( + new_cmd_quiet(gcs, "loopconcatword+", "viib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -300,7 +300,7 @@ end: ); }); - new_cmd_quiet(gcs, "loopconcatword*", "riib", []( + new_cmd_quiet(gcs, "loopconcatword*", "viib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -309,7 +309,7 @@ end: ); }); - new_cmd_quiet(gcs, "loopconcatword+*", "riiib", []( + new_cmd_quiet(gcs, "loopconcatword+*", "viiib", []( auto &cs, auto args, auto &res ) { do_loop_conc( @@ -319,7 +319,7 @@ end: ); }); - new_cmd_quiet(gcs, "push", "rab", [](auto &cs, auto args, auto &res) { + new_cmd_quiet(gcs, "push", "vab", [](auto &cs, auto args, auto &res) { alias_local st{cs, args[0]}; if (st.get_alias().is_arg()) { throw error{cs, "cannot push an argument"}; diff --git a/src/lib_list.cc b/src/lib_list.cc index ce67d77..34654ac 100644 --- a/src/lib_list.cc +++ b/src/lib_list.cc @@ -204,7 +204,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { res.set_string(make_str_view(list, qend), cs); }); - new_cmd_quiet(gcs, "listfind", "rsb", [](auto &cs, auto args, auto &res) { + new_cmd_quiet(gcs, "listfind", "vsb", [](auto &cs, auto args, auto &res) { alias_local st{cs, args[0]}; any_value idv{}; auto body = args[2].get_code(); @@ -221,7 +221,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { res.set_integer(-1); }); - new_cmd_quiet(gcs, "listassoc", "rsb", [](auto &cs, auto args, auto &res) { + new_cmd_quiet(gcs, "listassoc", "vsb", [](auto &cs, auto args, auto &res) { alias_local st{cs, args[0]}; any_value idv{}; auto body = args[2].get_code(); @@ -286,7 +286,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { ); }); - new_cmd_quiet(gcs, "looplist", "rsb", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "looplist", "vsb", [](auto &cs, auto args, auto &) { alias_local st{cs, args[0]}; any_value idv{}; auto body = args[2].get_code(); @@ -303,7 +303,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { } }); - new_cmd_quiet(gcs, "looplist2", "rrsb", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "looplist2", "vvsb", [](auto &cs, auto args, auto &) { alias_local st1{cs, args[0]}; alias_local st2{cs, args[1]}; any_value idv{}; @@ -327,7 +327,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { } }); - new_cmd_quiet(gcs, "looplist3", "rrrsb", [](auto &cs, auto args, auto &) { + new_cmd_quiet(gcs, "looplist3", "vvvsb", [](auto &cs, auto args, auto &) { alias_local st1{cs, args[0]}; alias_local st2{cs, args[1]}; alias_local st3{cs, args[2]}; @@ -358,7 +358,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { } }); - new_cmd_quiet(gcs, "looplistconcat", "rsb", []( + new_cmd_quiet(gcs, "looplistconcat", "vsb", []( auto &cs, auto args, auto &res ) { loop_list_conc( @@ -367,7 +367,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { ); }); - new_cmd_quiet(gcs, "looplistconcatword", "rsb", []( + new_cmd_quiet(gcs, "looplistconcatword", "vsb", []( auto &cs, auto args, auto &res ) { loop_list_conc( @@ -376,7 +376,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { ); }); - new_cmd_quiet(gcs, "listfilter", "rsb", []( + new_cmd_quiet(gcs, "listfilter", "vsb", []( auto &cs, auto args, auto &res ) { alias_local st{cs, args[0]}; @@ -397,7 +397,7 @@ LIBCUBESCRIPT_EXPORT void std_init_list(state &gcs) { res.set_string(r.str(), cs); }); - new_cmd_quiet(gcs, "listcount", "rsb", [](auto &cs, auto args, auto &res) { + new_cmd_quiet(gcs, "listcount", "vsb", [](auto &cs, auto args, auto &res) { alias_local st{cs, args[0]}; any_value idv{}; auto body = args[2].get_code(); @@ -608,7 +608,7 @@ static void list_sort( } static void init_lib_list_sort(state &gcs) { - new_cmd_quiet(gcs, "sortlist", "srrbb", []( + new_cmd_quiet(gcs, "sortlist", "svvbb", []( auto &cs, auto args, auto &res ) { list_sort( @@ -616,7 +616,7 @@ static void init_lib_list_sort(state &gcs) { args[2].get_ident(cs), args[3].get_code(), args[4].get_code() ); }); - new_cmd_quiet(gcs, "uniquelist", "srrb", []( + new_cmd_quiet(gcs, "uniquelist", "svvb", []( auto &cs, auto args, auto &res ) { list_sort(