diff --git a/src/main.rs b/src/main.rs index 6231c55..8c73ee2 100644 --- a/src/main.rs +++ b/src/main.rs @@ -33,38 +33,52 @@ fn main() { }; match instruction { - b'+' => tape[cell_index] = tape[cell_index].wrapping_add(1), - b'-' => tape[cell_index] = tape[cell_index].wrapping_sub(1), + b'+' => { + tape[cell_index] = tape[cell_index].wrapping_add(1); + icount += 1; + } + b'-' => { + tape[cell_index] = tape[cell_index].wrapping_sub(1); + icount += 1; + } b'>' => { cell_index = cell_index.wrapping_add(1); if tape.len() <= cell_index { tape.push(0); } + icount += 1; + } + b'<' => { + cell_index = cell_index.wrapping_sub(1); + icount += 1; + } + b'.' => { + print!("{}", tape[cell_index] as char); + icount += 1; } - b'<' => cell_index = cell_index.wrapping_sub(1), - - b'.' => print!("{}", tape[cell_index] as char), b',' => { if user_input.is_empty() { user_input = input(); } tape[cell_index] = user_input.remove(0); + icount += 1; } b'[' => { if tape[cell_index] == 0 { ip = *table.get(&ip).unwrap(); } + icount += 1; } b']' => { if tape[cell_index] != 0 { ip = *table.get(&ip).unwrap(); } + icount += 1; } _ => {} } ip += 1; - icount += 1; } println!();