mirror of
https://github.com/janet-lang/janet
synced 2024-12-26 08:20:27 +00:00
Add tuple/brackets
Fix macro expansion via macex for bracketed tuples.
This commit is contained in:
parent
c64e92a5de
commit
17783c3c3e
@ -1324,7 +1324,9 @@ value, one key will be ignored."
|
|||||||
|
|
||||||
(def ret
|
(def ret
|
||||||
(case (type x)
|
(case (type x)
|
||||||
:tuple (dotup x)
|
:tuple (if (= (tuple/type x) :brackets)
|
||||||
|
(tuple/brackets ;(map macex1 x))
|
||||||
|
(dotup x))
|
||||||
:array (map macex1 x)
|
:array (map macex1 x)
|
||||||
:struct (table/to-struct (dotable x macex1))
|
:struct (table/to-struct (dotable x macex1))
|
||||||
:table (dotable x macex1)
|
:table (dotable x macex1)
|
||||||
|
@ -94,6 +94,12 @@ int janet_tuple_compare(const Janet *lhs, const Janet *rhs) {
|
|||||||
|
|
||||||
/* C Functions */
|
/* C Functions */
|
||||||
|
|
||||||
|
static Janet cfun_tuple_brackets(int32_t argc, Janet *argv) {
|
||||||
|
const Janet *tup = janet_tuple_n(argv, argc);
|
||||||
|
janet_tuple_flag(tup) |= JANET_TUPLE_FLAG_BRACKETCTOR;
|
||||||
|
return janet_wrap_tuple(tup);
|
||||||
|
}
|
||||||
|
|
||||||
static Janet cfun_tuple_slice(int32_t argc, Janet *argv) {
|
static Janet cfun_tuple_slice(int32_t argc, Janet *argv) {
|
||||||
JanetRange range = janet_getslice(argc, argv);
|
JanetRange range = janet_getslice(argc, argv);
|
||||||
JanetView view = janet_getindexed(argv, 0);
|
JanetView view = janet_getindexed(argv, 0);
|
||||||
@ -131,6 +137,11 @@ static Janet cfun_tuple_type(int32_t argc, Janet *argv) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const JanetReg tuple_cfuns[] = {
|
static const JanetReg tuple_cfuns[] = {
|
||||||
|
{
|
||||||
|
"tuple/brackets", cfun_tuple_brackets,
|
||||||
|
JDOC("(tuple/brackets & xs)\n\n"
|
||||||
|
"Creates a new bracketed tuple containing the elements xs.")
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"tuple/slice", cfun_tuple_slice,
|
"tuple/slice", cfun_tuple_slice,
|
||||||
JDOC("(tuple/slice arrtup [,start=0 [,end=(length arrtup)]])\n\n"
|
JDOC("(tuple/slice arrtup [,start=0 [,end=(length arrtup)]])\n\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user