【发布时间】:2020-04-06 00:47:25
【问题描述】:
目前我正在开发一个用 Rust 编写的 VM。我遇到了两个语法错误,我正在努力解决这两个错误,因为它们对我来说似乎不太有意义。
代码如下:
pub fn aaa(vm: &mut VM, pipeline: &Pipeline, _hv: &mut dyn Hypervisor) -> Result<(), VMError>{
let mut al = vm.get_reg(Reg8::AL as u8, ValueSize::Byte)?.u8_exact()?;
let ah = vm.get_reg(Reg8::AH as u8, ValueSize::Byte)?.u8_exact()?;
let adjust = vm.flags.adjust;
if (al & 0x0F) > 9 | | adjust {
vm.set_reg(Reg8::AL as u8, SizedValue::Byte(al1.overflowing_add(6)));
vm.set_reg(Reg8::AH as u8, SizedValue::Byte(ah.overflowing_add(1)));
vm.flags.adjust = true;
vm.flags.carry = true;
} else {
vm.flags.adjust = false;
vm.flags.carry = false;
}
al = vm.get_reg(Reg8::AL as u8, ValueSize::Byte)?.u8_exact()?;
vm.set_reg(Reg8::AL as u8, SizedValue::Byte(al2 & 0x0F));
Ok(())
}
我遇到的错误在这里:
error: expected `,`
--> src/ops.rs:738:9
|
738 | vm.set_reg(Reg8::AL as u8, SizedValue::Byte(al1.overflowing_add(6)));
| ^^
--> src/ops.rs:738:9
|
738 | vm.set_reg(Reg8::AL as u8, SizedValue::Byte(al1.overflowing_add(6)));
| ^^
error: expected one of `,` or `:`, found `else`
--> src/ops.rs:742:7
|
742 | } else {
| ^^^^ expected one of `,` or `:` here
我只是试图访问结构字段实现的函数,我不确定为什么编译器会告诉我使用逗号而不是句点。此外,我不知道为什么它需要逗号或冒号而不是我的 else 语句。 if else 似乎完全对齐。还有其他人遇到这个吗?这是编译器错误吗?
【问题讨论】:
标签: syntax compiler-errors rust rust-cargo