summaryrefslogtreecommitdiff
path: root/pez.c
diff options
context:
space:
mode:
Diffstat (limited to 'pez.c')
-rw-r--r--pez.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/pez.c b/pez.c
index 3f72b14..b8a9ebf 100644
--- a/pez.c
+++ b/pez.c
@@ -84,7 +84,6 @@ typedef struct Proto {
char name[];
} Proto;
-
typedef struct Upval Upval;
struct Upval {
OBJHEADER;
@@ -212,7 +211,6 @@ enum {
};
#define VOID ((Val){0})
-#define _EMPTY ((Val){TAGEmpty})
#define _DELETED ((Val){TAGDeleted})
#define isvoid(v) ((v).r == 0)
#define _isdeleted(v) (((v).r & 0xFF) == TAGDeleted)
@@ -234,16 +232,15 @@ enum {
#define box_cfn(x) ((Val){(uint64_t)(intptr_t)(x) << 2 | TAGCFn})
#define truthy(x) (!isvoid(x) && ((x).r == TAGBool ? unbox_bool(x) : 1))
-static Val length_sstr;
+static Val len_sstr;
static int
typeof1(Val v)
{
if (isvoid(v))
return PEZ_TVoid;
- if (isobj(v)) {
+ if (isobj(v))
return objtag(v);
- }
if (isnum(v))
return PEZ_TNumber;
if (isbool(v))
@@ -1378,7 +1375,7 @@ apply(PezContext *cx, Val *ret, void *srcfn, int srcpc, Val recv, uint n)
return runerr(cx, srcfn, srcpc, "array indexing takes one argument (got %d)", n), 0;
}
arg = args[0];
- if (arg.r == length_sstr.r) {
+ if (arg.r == len_sstr.r) {
*ret = box_num(inttofix(arr->len));
return 1;
}
@@ -1399,7 +1396,7 @@ apply(PezContext *cx, Val *ret, void *srcfn, int srcpc, Val recv, uint n)
return runerr(cx, srcfn, srcpc, "string indexing takes one argument (got %d)", n), 0;
}
arg = args[0];
- if (arg.r == length_sstr.r) {
+ if (arg.r == len_sstr.r) {
*ret = box_num(inttofix(len));
return 1;
}
@@ -1437,7 +1434,7 @@ setapply(PezContext *cx, Val *ret, void *srcfn, int srcpc, Val recv, uint n, Val
return runerr(cx, srcfn, srcpc, "array indexing takes one argument"), 0;
}
arg = args[0];
- if (arg.r == length_sstr.r) {
+ if (arg.r == len_sstr.r) {
return runerr(cx, srcfn, srcpc, "cannot mutate array length"), 0;
}
TRY(checkindex(cx, &idx, srcfn, srcpc, "array", arr->len, arg));
@@ -1497,8 +1494,8 @@ exefn(PezContext *cx, Fn *fn, uint nargs)
int n = code[ip++] + 1;
Val *it = cx->stktop - n;
assert(cx->stktop > cx->stack + n);
- for (int i = 0; i < n; ++i ) {
- TRY(push(cx, it[i]));
+ for (int i = 0; i < n; ++i) {
+ TRY(push(cx, it[i]));
}
}
CASE(Odupbck) {
@@ -3454,7 +3451,7 @@ setexpr(Comp *cm)
break;
case Olength:
--code->len;
- TRY(compconst(cm, length_sstr));
+ TRY(compconst(cm, len_sstr));
argc = 1;
opcode = Oapply;
goto Oapply;
@@ -3729,6 +3726,7 @@ forstmt(Comp *cm)
resetlastops(cm);
return compop(cm, Ovoid);
}
+
static bool
stmt(Comp *cm)
{
@@ -3907,7 +3905,7 @@ pez_new(PezAllocFn *alloc, void *userdata, size_t stacksize)
if (!cx->stack) goto Err;
cx->stktop = cx->stack;
cx->stkend = cx->stack + stacksize;
- if (!box_str(cx, &length_sstr, "length", 6)) assert(0);
+ if (!box_str(cx, &len_sstr, "len", 3)) assert(0);
if (!initcore(cx)) goto Err;
cx->gcthresh = stacksize * sizeof(Val)*5/2 + 128;