diff options
Diffstat (limited to 'src/brainfuck')
| -rw-r--r-- | src/brainfuck/program.cr | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/brainfuck/program.cr b/src/brainfuck/program.cr index 5b569df..4c3b41e 100644 --- a/src/brainfuck/program.cr +++ b/src/brainfuck/program.cr @@ -1,13 +1,18 @@ require "./parser.cr" +require "../program.cr" +require "../util.cr" -class Brainfuck::Program +struct Brainfuck::Program < Flint::Program @mem_size : Int32 - def initialize(@parser : Parser, mem_size : Int32?) - @mem_size = mem_size || DEFAULT_TAPE_SIZE + def initialize(source_io : IO, memory_size : Int32?) + super(source_io) + + @parser = Parser.new(source_io) + @mem_size = memory_size || DEFAULT_TAPE_SIZE end - def interpret + def interpret : Nil code = @parser.parse jumps = find_jumps(code) code_ptr = 0 |
