assembler still very broken, dependency resolution works, now working on expanding pseudoinstructions
This commit is contained in:
+18
-10
@@ -1,17 +1,25 @@
|
||||
use std::fs;
|
||||
use std::{fs, io::Write, path::PathBuf};
|
||||
|
||||
use assembler::{lexer, parser::Parser};
|
||||
use common::prelude::{ITypeArgs, Instruction, RTypeArgs, Register};
|
||||
|
||||
fn main() {
|
||||
let program = fs::read_to_string("../resources/dsa/print.dsa").unwrap();
|
||||
let tokens = lexer::lexer(program).unwrap();
|
||||
|
||||
println!("{tokens:?}");
|
||||
|
||||
let parser = Parser::new(tokens);
|
||||
|
||||
for node in parser {
|
||||
println!("{node:?}");
|
||||
// parse args:
|
||||
let args: Vec<String> = std::env::args().collect();
|
||||
if args.len() != 5 || args[1] != "-i" || args[3] != "-o" {
|
||||
eprintln!("Usage: binary_name -i input_path -o output_path");
|
||||
std::process::exit(1);
|
||||
}
|
||||
let input_path = &args[2];
|
||||
let output_path = &args[4];
|
||||
|
||||
let src = PathBuf::from(input_path);
|
||||
let mut output_file = fs::File::create(output_path).unwrap();
|
||||
|
||||
let res = assembler::assemble(&src)
|
||||
.iter()
|
||||
.map(|i| i.encode())
|
||||
.for_each(|i| {
|
||||
output_file.write_all(&i.to_be_bytes()).unwrap();
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user