diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2021-02-21 21:25:38 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2021-02-21 21:26:08 -0800 |
commit | 8b8d0fc77130c6f39aae42319aee1f449fd4db70 (patch) | |
tree | bdf3516884e159fcd33874d837e53816cebd25fd /baremetal/shell/main.mu | |
parent | 7e9e65eece359d6bb28d202eec035cf7acc5118a (diff) | |
download | mu-8b8d0fc77130c6f39aae42319aee1f449fd4db70.tar.gz |
7772
Diffstat (limited to 'baremetal/shell/main.mu')
-rw-r--r-- | baremetal/shell/main.mu | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/baremetal/shell/main.mu b/baremetal/shell/main.mu index f3f6240c..e54515ed 100644 --- a/baremetal/shell/main.mu +++ b/baremetal/shell/main.mu @@ -20,3 +20,23 @@ fn main { loop } } + +type interpreter { + # tokenize + # insert parens + # transform infix + # token tree + # syntax tree +} + +fn run _self: (addr interpreter), in: (addr stream byte), out: (addr stream byte) { + clear-stream out + { + var done?/eax: boolean <- stream-empty? in + compare done?, 0/false + break-if-!= + var g/eax: grapheme <- read-grapheme in + write-grapheme out, g + loop + } +} |