summaryrefslogtreecommitdiff
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/eval.c b/eval.c
index ea7e84f..aa74698 100644
--- a/eval.c
+++ b/eval.c
@@ -113,9 +113,9 @@ retry:
int guardOK = 1;
if(stmt->toks[0]->tag != ArrayTag)
guardOK = 0;
- else if(stmt->toks[0]->array->size != 1)
+ else if(GetSize(stmt->toks[0]->array) != 1)
guardOK = 0;
- else if(stmt->toks[0]->array->type != AtypeInt)
+ else if(GetType(stmt->toks[0]->array) != AtypeInt)
guardOK = 0;
else if(stmt->toks[0]->array->intdata[0] != 0 && stmt->toks[0]->array->intdata[0] != 1)
guardOK = 0;
@@ -161,13 +161,13 @@ lookup(Datum *var)
Datum *
strand(Datum *left, Datum *right)
{
- traceprint("Stranding (%d %d)\n", left->array->stranded, right->array->stranded);
+ traceprint("Stranding (%d %d)\n", GetStrand(left->array), GetStrand(right->array));
Datum *result = allocdatum(ArrayTag, 0);
- Array *leftarr = left->array->stranded ? fnSame(left->array) : fnEnclose(left->array);
- Array *rightarr = right->array->stranded ? fnSame(right->array) : fnEnclose(right->array);
+ Array *leftarr = GetStrand(left->array) ? fnSame(left->array) : fnEnclose(left->array);
+ Array *rightarr = GetStrand(right->array) ? fnSame(right->array) : fnEnclose(right->array);
Array *tmp = fnCatenateFirst(leftarr, rightarr);
result->array = simplifyarray(tmp);
- result->array->stranded = 1;
+ SetStrand(result->array, 1);
freearray(tmp);
freearray(leftarr);
freearray(rightarr);
@@ -207,7 +207,7 @@ parens(Datum *left, Datum *right)
Datum *result = eval(&left->stmt, 1);
incdatumref(result);
if(result->tag == ArrayTag)
- result->array->stranded = 0;
+ SetStrand(result->array, 0);
result->shy = 0;
return result; /* TODO handle error if ntoks != 1 */
}
@@ -263,12 +263,12 @@ assign(Datum *left, Datum *right)
symbol->value = right;
incdatumref(right);
if(symbol->value->tag == ArrayTag)
- symbol->value->array->stranded = 0;
+ SetStrand(symbol->value->array, 0);
}
}else{
if(right->tag != ArrayTag)
throwerror(nil, ESyntax);
- if(right->array->rank != 1 && right->array->rank != 0)
+ if(GetRank(right->array) != 1 && GetRank(right->array) != 0)
throwerror(nil, ERank);
int nlocs = 0;
@@ -297,12 +297,12 @@ assign(Datum *left, Datum *right)
}
}
- if(right->array->rank == 1 && right->array->size != nlocs)
+ if(GetRank(right->array) == 1 && GetSize(right->array) != nlocs)
throwerror(nil, ELength);
for(int i = 0; i < nlocs; i++){
Datum *item;
- if(right->array->rank == 0)
+ if(GetRank(right->array) == 0)
item = right;
else{
item = allocdatum(ArrayTag, 0);