summaryrefslogtreecommitdiff
path: root/lexer.c
diff options
context:
space:
mode:
authorPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-12 00:09:12 +0000
committerPeter Mikkelsen <petermikkelsen10@gmail.com>2022-01-12 00:09:12 +0000
commit85aa2ad424c68343ef09e5f6df243ad6499e47d5 (patch)
tree8712baf633e82ffdba79b3a59b17734de0eaf4d7 /lexer.c
parent2ff4b85fc73f0cf82034e2a19ea8c5d677812c9c (diff)
Add a small version of monadic ⍳ and some simple form of ⎕IO
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++;
}