diff options
author | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-12 00:09:12 +0000 |
---|---|---|
committer | Peter Mikkelsen <petermikkelsen10@gmail.com> | 2022-01-12 00:09:12 +0000 |
commit | 85aa2ad424c68343ef09e5f6df243ad6499e47d5 (patch) | |
tree | 8712baf633e82ffdba79b3a59b17734de0eaf4d7 /lexer.c | |
parent | 2ff4b85fc73f0cf82034e2a19ea8c5d677812c9c (diff) |
Add a small version of monadic ⍳ and some simple form of ⎕IO
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++; } |