diff options
Diffstat (limited to 'lexer.c')
-rw-r--r-- | lexer.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -53,11 +53,15 @@ lexline(Rune *line, int *ntoks, Symtab *symtab) *p = 0; tokens[*ntoks].tag = ArrayTag; tokens[*ntoks].array = mkscalarint(atoll(buf)); - }else if(isalpharune(line[offset])){ + }else if(isalpharune(line[offset]) || line[offset] == L'⎕'){ + int quadname = L'⎕' == line[offset]; Rune buf[64]; Rune *p = buf; - while(isalpharune(line[offset])){ - *p = line[offset]; + while(isalpharune(line[offset]) || (line[offset] == L'⎕' && p == buf)){ + if(quadname) + *p = toupperrune(line[offset]); + else + *p = line[offset]; p++; offset++; } |