summaryrefslogtreecommitdiff
path: root/lexer.c
diff options
context:
space:
mode:
Diffstat (limited to 'lexer.c')
-rw-r--r--lexer.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/lexer.c b/lexer.c
index bc5aa50..a7557c2 100644
--- a/lexer.c
+++ b/lexer.c
@@ -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++;
}