diff options
-rw-r--r-- | lexer.c | 6 | ||||
-rw-r--r-- | print.c | 2 |
2 files changed, 7 insertions, 1 deletions
@@ -85,10 +85,14 @@ lexline(Rune *line) stmt->toks[stmt->ntoks].operator.dyadic = 1; stmt->toks[stmt->ntoks].operator.code = p-primdyadopnames; offset++; - }else if(isdigitrune(line[offset])){ + }else if(isdigitrune(line[offset]) || (line[offset] == L'¯' && isdigitrune(line[offset+1]))){ char buf[64]; char *p = buf; int floating = 0; + if(line[offset] == L'¯'){ + *p++ = '-'; + offset++; + } get_digits: while(isdigitrune(line[offset])) p += runetochar(p, &line[offset++]); @@ -93,6 +93,8 @@ pparray(Array *a) *p-- = 0; /* remove trailing 0's */ } } + if(elemstrs[i][0] == '-' && (a->type == AtypeInt || a->type == AtypeFloat)) + elemstrs[i][0] = L'¯'; } int lastdim = a->rank ? a->shape[a->rank-1] : 1; |