Update homework 1 and 2

This commit is contained in:
Jeehoon Kang
2020-03-26 03:38:20 +09:00
parent 241a66fcc1
commit 8938a7ad8f
40 changed files with 5171 additions and 1504 deletions

View File

@@ -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));
}
}

View File

@@ -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

View File

@@ -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();
}