brainfuck interpreter

This commit is contained in:
2025-06-30 13:59:17 +02:00
parent 152e0189fe
commit a0bee3f5ca
7 changed files with 68 additions and 22 deletions

View File

@@ -9,7 +9,7 @@ func print_i64[x: I64] : I64
printf("%ld\n", x)
func String.nth[s: String, n: I64] : U8
return _builtin_deref(s + n)
return _builtin_deref8(s + n)
func String.set[s: String, n: I64, c: U8] : I64
_builtin_string_set(s, n, c)
@@ -169,7 +169,7 @@ func Math.urandom[]: I64
let file: Ptr = fopen("/dev/urandom", "rb")
fread(buffer, 8, 1, file)
fclose(file)
let n: I64 = _builtin_deref(buffer)
let n: I64 = _builtin_deref64(buffer)
free(buffer)
return n
@@ -188,8 +188,8 @@ func Array.size[xs: Array] : I64
func OS.time[] : I64
let tv: Ptr = malloc(16)
gettimeofday(tv, 0)
let seconds: I64 = _builtin_deref(tv)
let microseconds: I64 = _builtin_deref(tv+8)
let seconds: I64 = _builtin_deref64(tv)
let microseconds: I64 = _builtin_deref64(tv+8)
free(tv)
return seconds * 1000 + microseconds / 1000