make index operator just read 1 byte
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user