make index operator just read 1 byte

This commit is contained in:
2025-11-13 20:17:12 +01:00
parent c1bd84464c
commit 852c463532
9 changed files with 59 additions and 56 deletions

View File

@@ -9,38 +9,38 @@ func main[] : I64
let p: I64 = 0
while i < src_len
let op: U8 = str.nth(src, i)
let op: U8 = src[i]
if op == '>'
p = p + 1
else if op == '<'
p = p - 1
else if op == '+'
str.set(memory, p, mem.read8(memory + p)+1)
str.set(memory, p, memory[p]+1)
else if op == '-'
str.set(memory, p, mem.read8(memory + p)-1)
str.set(memory, p, memory[p]-1)
else if op == '.'
c.printf("%c", mem.read8(memory + p))
c.printf("%c", memory[p])
else if op == ','
str.set(memory, p, c.getchar())
else if op == '['
if !mem.read8(memory + p)
if !memory[p]
i = i + 1
let opened: I64 = 0
while i < src_len & !(str.nth(src, i) == ']' & !opened)
if str.nth(src, i) == '['
while i < src_len & !(src[i] == ']' & !opened)
if src[i] == '['
opened = opened + 1
else if str.nth(src, i) == ']'
else if src[i] == ']'
opened = opened - 1
i = i + 1
else if op == ']'
if mem.read8(memory + p)
if memory[p]
i = i - 1
let closed: I64 = 0
while i >= 0 & !(str.nth(src, i) == '[' & !closed)
if str.nth(src, i) == ']'
while i >= 0 & !(src[i] == '[' & !closed)
if src[i] == ']'
closed = closed + 1
else if str.nth(src, i) == '['
else if src[i] == '['
closed = closed - 1
i = i - 1