mirror of
https://github.com/Noratrieb/m8db.git
synced 2026-01-14 15:25:06 +01:00
fixed the last span/line number bug
This commit is contained in:
parent
8acef7bbff
commit
a24b93fd23
3 changed files with 15 additions and 21 deletions
|
|
@ -28,12 +28,12 @@ impl Vm<'_> {
|
|||
match self.stmts.get(pc).cloned() {
|
||||
Some(Stmt::Inc(r)) => self.registers[r] += 1,
|
||||
Some(Stmt::Dec(r)) => self.registers[r] -= 1,
|
||||
Some(Stmt::IsZero(r, line)) => {
|
||||
Some(Stmt::IsZero(r, index)) => {
|
||||
if self.registers[r] == 0 {
|
||||
self.pc = line - 1;
|
||||
self.pc = index - 1;
|
||||
}
|
||||
}
|
||||
Some(Stmt::Jump(line)) => self.pc = line - 1,
|
||||
Some(Stmt::Jump(index)) => self.pc = index - 1,
|
||||
Some(Stmt::Stop) => return VmState::Stop,
|
||||
None => return VmState::OutOfBounds,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,7 +72,13 @@ pub fn parse(text: &str, file_name: String) -> Result<Code, String> {
|
|||
statement_number += 1;
|
||||
statements.push((stmt, Span(line_index)));
|
||||
}
|
||||
Err(msg) => return Err(format!("error on line '{}': {}", line_index - 1, msg)),
|
||||
Err(msg) => {
|
||||
return Err(format!(
|
||||
"error on line '{}': {}",
|
||||
Span(line_index).line_number(),
|
||||
msg
|
||||
))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
22
test.m8
22
test.m8
|
|
@ -1,20 +1,8 @@
|
|||
.test
|
||||
# hi
|
||||
INC 1
|
||||
.test
|
||||
JUMP 8
|
||||
INC 2
|
||||
.test
|
||||
STOP
|
||||
INC 3
|
||||
.test
|
||||
INC 4
|
||||
.test
|
||||
INC 5
|
||||
.test
|
||||
INC 6
|
||||
.test
|
||||
INC 7
|
||||
.test
|
||||
INC 8
|
||||
.test
|
||||
INC 9
|
||||
.test
|
||||
INC 10
|
||||
#another comment
|
||||
JUMP 4
|
||||
Loading…
Add table
Add a link
Reference in a new issue