mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-14 22:38:46 +00:00
Update homework 1 and 2
This commit is contained in:
@@ -6,6 +6,7 @@ use clap::{crate_authors, crate_description, crate_version, App};
|
||||
extern crate kecc;
|
||||
|
||||
use kecc::{Parse, Translate};
|
||||
use std::path::Path;
|
||||
|
||||
fn main() {
|
||||
let yaml = load_yaml!("fuzz_cli.yml");
|
||||
@@ -20,7 +21,10 @@ fn main() {
|
||||
let unit = ok_or_exit!(Parse::default().translate(&input), 1);
|
||||
|
||||
if matches.is_present("print") {
|
||||
kecc::write_c_test(&unit);
|
||||
return;
|
||||
kecc::test_write_c(&unit, Path::new(&input));
|
||||
}
|
||||
|
||||
if matches.is_present("irgen") {
|
||||
kecc::test_irgen(&unit, Path::new(&input));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,10 @@ args:
|
||||
short: p
|
||||
long: print
|
||||
help: Fuzzes C AST printer
|
||||
- irgen:
|
||||
short: i
|
||||
long: irgen
|
||||
help: Fuzzes irgen
|
||||
- INPUT:
|
||||
help: Sets the input file to use
|
||||
required: true
|
||||
|
||||
10
bin/kecc.rs
10
bin/kecc.rs
@@ -5,7 +5,7 @@ use clap::{crate_authors, crate_description, crate_version, App};
|
||||
#[macro_use]
|
||||
extern crate kecc;
|
||||
|
||||
use kecc::{Codegen, Irgen, Optimize, Parse, Translate, O1};
|
||||
use kecc::{write, Asmgen, Irgen, Optimize, Parse, Translate, O1};
|
||||
|
||||
fn main() {
|
||||
let yaml = load_yaml!("kecc_cli.yml");
|
||||
@@ -27,7 +27,7 @@ fn main() {
|
||||
};
|
||||
|
||||
if matches.is_present("print") {
|
||||
kecc::write_c(&unit, &mut output).unwrap();
|
||||
write(&unit, &mut output).unwrap();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ fn main() {
|
||||
}
|
||||
};
|
||||
if matches.is_present("irgen") {
|
||||
kecc::write_ir(&ir, &mut output).unwrap();
|
||||
write(&ir, &mut output).unwrap();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -47,6 +47,6 @@ fn main() {
|
||||
O1::default().optimize(&mut ir);
|
||||
}
|
||||
|
||||
let asm = ok_or_exit!(Codegen::default().translate(&ir), 1);
|
||||
kecc::write_asm(&asm, &mut output);
|
||||
let asm = ok_or_exit!(Asmgen::default().translate(&ir), 1);
|
||||
write(&asm, &mut output).unwrap();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user