diff options
| author | Matthew Hall <hallmatthew314@gmail.com> | 2022-09-04 15:55:10 +1200 |
|---|---|---|
| committer | Matthew Hall <hallmatthew314@gmail.com> | 2022-09-04 15:55:10 +1200 |
| commit | 2fe381c9a1719718d4a4dfc662f07db47af7831f (patch) | |
| tree | 9878717f235f686849e685599500394a461e9b0e /src/brainfuck/program.cr | |
| parent | 70dbbd733758b61317af37af1cbbec6aa4b6e2a5 (diff) | |
Big refactor + Program base class
Diffstat (limited to 'src/brainfuck/program.cr')
| -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 |
