import char
import gbf/eval
import gbf/lexer
import gbf/parser
import gbf/vm
import gleam/io
import gleam/list
import gleam/result
import gleam/string
pub fn main() {
let input =
"++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."
let vm =
input
|> string.split(on: "")
|> list.map(char.to_code)
|> vm.new
let ast = input |> lexer.new() |> lexer.lex |> parser.parse()
case ast {
Error(_) -> panic as "not yay failed"
Ok(ast) -> {
use res <- result.try(eval.eval(vm, ast))
io.println("input: " <> input)
io.println("input: " <> res.output)
Ok("")
}
}
}
|