fixed some clippy errors

This commit is contained in:
2025-06-19 15:44:42 +01:00
parent c1d72e8d4c
commit d5a690563b
9 changed files with 26 additions and 53 deletions
+3 -3
View File
@@ -1,11 +1,11 @@
use common::{ use common::{
args, instructions, args,
prelude::{ITypeArgs, Instruction, Interrupt, RTypeArgs, Register}, prelude::{ITypeArgs, Instruction, Interrupt, RTypeArgs, Register},
}; };
use crate::{ use crate::{
AssembleError, expect_token, expect_type, AssembleError, Token, TokenType, expect_token,
model::{Node, Opcode, Token, TokenType}, model::{Node, Opcode},
}; };
pub fn codegen(nodes: Vec<Node>) -> Result<Vec<Instruction>, AssembleError> { pub fn codegen(nodes: Vec<Node>) -> Result<Vec<Instruction>, AssembleError> {
+4 -4
View File
@@ -1,7 +1,7 @@
use common::prelude::Register; use common::prelude::Register;
use crate::{ use crate::{
AssembleError, dsa, expect_token, expect_type, AssembleError, expect_token, expect_type,
model::{Node, Opcode, Token, TokenType}, model::{Node, Opcode, Token, TokenType},
node, node,
}; };
@@ -13,7 +13,7 @@ pub fn expand_pseudo_ops(
let mut result = Vec::<Node>::with_capacity(nodes.len()); let mut result = Vec::<Node>::with_capacity(nodes.len());
for node in nodes.iter_mut() { for node in nodes.iter_mut() {
if let Err(_) = try_expand(node.clone(), &mut result, module) { if try_expand(node.clone(), &mut result, module).is_err() {
result.push(node.clone()); result.push(node.clone());
} }
} }
@@ -22,9 +22,9 @@ pub fn expand_pseudo_ops(
} }
fn try_expand( fn try_expand(
mut node: Node, node: Node,
result: &mut Vec<Node>, result: &mut Vec<Node>,
module: u64, _module: u64,
) -> Result<(), AssembleError> { ) -> Result<(), AssembleError> {
match node.opcode() { match node.opcode() {
Opcode::Push => expand_push(node.clone(), result)?, Opcode::Push => expand_push(node.clone(), result)?,
+3 -33
View File
@@ -1,9 +1,9 @@
use std::path::PathBuf; use std::path::PathBuf;
use common::prelude::{Instruction, Register}; use common::prelude::Register;
use crate::model::{Module, Node, Opcode, Symbol, Token, TokenType}; use crate::model::{Node, Opcode, Token, TokenType};
use crate::{AssembleError, dsa, expect_token, expect_type, node, quick_hash}; use crate::{AssembleError, expect_token, expect_type, node};
pub struct Parser { pub struct Parser {
tokens: Vec<Token>, tokens: Vec<Token>,
@@ -302,34 +302,4 @@ impl Parser {
Ok(self.tokens.last().unwrap().clone()) Ok(self.tokens.last().unwrap().clone())
} }
} }
fn expect(&mut self, type_: TokenType) -> Result<Token, AssembleError> {
let tok = self.next()?;
if TokenType::from_token(&tok) == type_ {
Ok(tok)
} else {
Err(AssembleError::UnexpectedToken(tok, type_))
}
}
fn expect_any(&mut self, types: &[TokenType]) -> Result<Token, AssembleError> {
let tok = self.next()?;
if types.contains(&TokenType::from_token(&tok)) {
Ok(tok)
} else {
Err(AssembleError::UnexpectedToken(tok, types[0]))
}
}
fn maybe_expect(&mut self, types: &[TokenType]) -> Option<Token> {
let tok = self.peek_next().ok()?;
if types.contains(&TokenType::from_token(&tok)) {
Some(tok.clone())
} else {
None
}
}
} }
+1 -1
View File
@@ -9,7 +9,7 @@ use crate::{
}; };
pub fn resolve_symbols(nodes: &mut Vec<Node>) -> Result<(), AssembleError> { pub fn resolve_symbols(nodes: &mut Vec<Node>) -> Result<(), AssembleError> {
let symbol_table = generate_symbol_table(&nodes)?; let symbol_table = generate_symbol_table(nodes)?;
for node in nodes.iter_mut() { for node in nodes.iter_mut() {
match node.opcode() { match node.opcode() {
+3 -3
View File
@@ -414,8 +414,8 @@ impl std::fmt::Display for Instruction {
Self::Increment(a) | Self::Decrement(a) => write!(f, " {}", a.sr1), Self::Increment(a) | Self::Decrement(a) => write!(f, " {}", a.sr1),
Self::Interrupt(a) => write!(f, " {}", a.as_u8()), Self::Interrupt(a) => write!(f, " {}", a.as_u8()),
Self::Data(a) => write!(f, " {}", a), Self::Data(a) => write!(f, " {a}"),
Self::Segment(x) => write!(f, " [SEGMENT {}]", x), Self::Segment(x) => write!(f, " [SEGMENT {x}]"),
_ => Ok(()), _ => Ok(()),
} }
} }
@@ -469,7 +469,7 @@ impl TryFrom<u32> for Instruction {
0x24 => Ok(Self::Halt), 0x24 => Ok(Self::Halt),
0x25 => Ok(Self::AddImmediate(ITypeArgs::try_from(data)?)), 0x25 => Ok(Self::AddImmediate(ITypeArgs::try_from(data)?)),
0x26 => Ok(Self::SubImmediate(ITypeArgs::try_from(data)?)), 0x26 => Ok(Self::SubImmediate(ITypeArgs::try_from(data)?)),
0x3F => Ok(Self::Segment(data as u8 as u32)), 0x3F => Ok(Self::Segment(u32::from(data as u8))),
_ => Err(InstructionDecodeError::InvalidOpcode(opcode)), _ => Err(InstructionDecodeError::InvalidOpcode(opcode)),
} }
} }
+1 -1
View File
@@ -58,7 +58,7 @@ impl Encode for Instruction {
Self::Segment(segment) => { Self::Segment(segment) => {
let opcode = u32::from(self.opcode()); let opcode = u32::from(self.opcode());
let segment = segment as u8; let segment = segment as u8;
(opcode << 26) | (segment as u32) (opcode << 26) | u32::from(segment)
} }
] ]
) )
+9 -6
View File
@@ -5,7 +5,7 @@ fn test_encode_nop() {
let no_reg = Register::NoReg as u32; let no_reg = Register::NoReg as u32;
let no_op = u32::from(Instruction::Nop.opcode()); let no_op = u32::from(Instruction::Nop.opcode());
let expected = no_op << 26 | no_reg << 21 | no_reg << 16 | no_reg << 11; let expected = (no_op << 26) | (no_reg << 21) | (no_reg << 16) | (no_reg << 11);
let got = Instruction::Nop.encode(); let got = Instruction::Nop.encode();
assert_eq!(expected, got); assert_eq!(expected, got);
@@ -25,7 +25,7 @@ fn test_encode_mov() {
)); ));
let mov = u32::from(instruction.opcode()); let mov = u32::from(instruction.opcode());
let expected = mov << 26 | rg0 << 21 | no_reg << 16 | rg1 << 11; let expected = (mov << 26) | (rg0 << 21) | (no_reg << 16) | (rg1 << 11);
let got = instruction.encode(); let got = instruction.encode();
assert_eq!(expected, got); assert_eq!(expected, got);
@@ -44,7 +44,7 @@ fn test_encode_load_byte() {
)); ));
let load_byte = u32::from(instruction.opcode()); let load_byte = u32::from(instruction.opcode());
let expected = load_byte << 26 | rg0 << 21 | rg1 << 16 | u32::from(immediate); let expected = (load_byte << 26) | (rg0 << 21) | (rg1 << 16) | u32::from(immediate);
let got = instruction.encode(); let got = instruction.encode();
assert_eq!(expected, got); assert_eq!(expected, got);
@@ -65,8 +65,11 @@ fn test_encode_shift_left_shamt() {
)); ));
let shift_left = u32::from(instruction.opcode()); let shift_left = u32::from(instruction.opcode());
let expected = let expected = (shift_left << 26)
shift_left << 26 | rg0 << 21 | no_reg << 16 | no_reg << 11 | u32::from(shift_amount) << 6; | (rg0 << 21)
| (no_reg << 16)
| (no_reg << 11)
| (u32::from(shift_amount) << 6);
let got = instruction.encode(); let got = instruction.encode();
@@ -87,7 +90,7 @@ fn test_encode_shift_left_reg() {
)); ));
let shift_left = u32::from(instruction.opcode()); let shift_left = u32::from(instruction.opcode());
let expected = shift_left << 26 | rg0 << 21 | rg1 << 16 | no_reg << 11; let expected = (shift_left << 26) | (rg0 << 21) | (rg1 << 16) | (no_reg << 11);
let got = instruction.encode(); let got = instruction.encode();
+1 -1
View File
@@ -246,7 +246,7 @@ impl CodeEditor {
text: &mut dyn egui::TextBuffer, text: &mut dyn egui::TextBuffer,
) -> TextEditOutput { ) -> TextEditOutput {
let mut text_edit_output: Option<TextEditOutput> = None; let mut text_edit_output: Option<TextEditOutput> = None;
let mut code_editor = |ui: &mut egui::Ui| { let code_editor = |ui: &mut egui::Ui| {
ui.horizontal_top(|h| { ui.horizontal_top(|h| {
self.theme.modify_style(h, self.fontsize); self.theme.modify_style(h, self.fontsize);
if self.numlines { if self.numlines {