diff --git a/src/main.rs b/src/main.rs index 7e0ced3..ee37e74 100644 --- a/src/main.rs +++ b/src/main.rs @@ -605,25 +605,29 @@ fn parse_label(pair: pest::iterators::Pair, next_pair: Option) -> AstNode { //println!("{:#?}", pair); + *CURRENT_SIZE.lock().unwrap() = Size::Word; match pair.as_rule() { Rule::data_byte => { match parse_operand(pair.into_inner().next().unwrap(), false) { AstNode::Immediate32(half) => AstNode::DataByte(half as u8), - AstNode::LabelOperand {name, size, is_relative} => AstNode::LabelOperand {name, size, is_relative}, + AstNode::LabelOperand {name, size: _, is_relative} => + AstNode::LabelOperand {name, size: Size::Byte, is_relative}, _ => unreachable!(), } }, Rule::data_half => { match parse_operand(pair.into_inner().next().unwrap(), false) { AstNode::Immediate32(half) => AstNode::DataHalf(half as u16), - AstNode::LabelOperand {name, size, is_relative} => AstNode::LabelOperand {name, size, is_relative}, + AstNode::LabelOperand {name, size: _, is_relative} => + AstNode::LabelOperand {name, size: Size::Half, is_relative}, _ => unreachable!(), } }, Rule::data_word => { match parse_operand(pair.into_inner().next().unwrap(), false) { AstNode::Immediate32(word) => AstNode::DataWord(word), - AstNode::LabelOperand {name, size, is_relative} => AstNode::LabelOperand {name, size, is_relative}, + AstNode::LabelOperand {name, size: _, is_relative} => + AstNode::LabelOperand {name, size: Size::Word, is_relative}, _ => unreachable!(), } },