mirror of
https://github.com/Noratrieb/m8db.git
synced 2026-01-16 08:15:02 +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() {
|
match self.stmts.get(pc).cloned() {
|
||||||
Some(Stmt::Inc(r)) => self.registers[r] += 1,
|
Some(Stmt::Inc(r)) => self.registers[r] += 1,
|
||||||
Some(Stmt::Dec(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 {
|
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,
|
Some(Stmt::Stop) => return VmState::Stop,
|
||||||
None => return VmState::OutOfBounds,
|
None => return VmState::OutOfBounds,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,13 @@ pub fn parse(text: &str, file_name: String) -> Result<Code, String> {
|
||||||
statement_number += 1;
|
statement_number += 1;
|
||||||
statements.push((stmt, Span(line_index)));
|
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
|
INC 1
|
||||||
.test
|
JUMP 8
|
||||||
INC 2
|
INC 2
|
||||||
.test
|
STOP
|
||||||
INC 3
|
INC 3
|
||||||
.test
|
#another comment
|
||||||
INC 4
|
JUMP 4
|
||||||
.test
|
|
||||||
INC 5
|
|
||||||
.test
|
|
||||||
INC 6
|
|
||||||
.test
|
|
||||||
INC 7
|
|
||||||
.test
|
|
||||||
INC 8
|
|
||||||
.test
|
|
||||||
INC 9
|
|
||||||
.test
|
|
||||||
INC 10
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue