aboutsummaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-10 18:15:27 +0100
committerGitHub <noreply@github.com>2021-03-10 18:15:27 +0100
commit21b76633d149f62dbfdf55702dbdf8c84bf14105 (patch)
tree4de4557fff6785e4527e9df206f909d96a930028 /src/main.rs
parente930f7b71ba526f40210f3e89afc79b2288e2e91 (diff)
parent035ac6f1a0fde887ccbdfb9358adddcb89a5bae3 (diff)
downloadsylt-21b76633d149f62dbfdf55702dbdf8c84bf14105.tar.gz
Merge pull request #109 from FredTheDino/minor
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs24
1 files changed, 9 insertions, 15 deletions
diff --git a/src/main.rs b/src/main.rs
index 28e4e79..23ababa 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,16 +1,10 @@
-use std::path::{Path, PathBuf};
+use std::path::Path;
-use sylt::run_file;
-
-struct Args {
- file: Option<PathBuf>,
- print: bool,
-}
+use sylt::{run_file, Args};
fn main() {
let args = parse_args();
- let file = args.file.unwrap_or_else(|| Path::new("progs/tests/simple.sy").to_owned());
- let errs = match run_file(&file, args.print, sylt_macro::link!(extern_test as test)) {
+ let errs = match run_file(args, sylt_macro::link!(extern_test as test)) {
Err(it) => it,
_ => return,
};
@@ -21,17 +15,17 @@ fn main() {
}
fn parse_args() -> Args {
- let mut args = Args {
- file: None,
- print: false,
- };
+ let mut args = Args::default();
for s in std::env::args().skip(1) {
let path = Path::new(&s).to_owned();
if path.is_file() {
args.file = Some(path);
- } else if "-p" == s {
- args.print = true;
+ } else if s == "-v" {
+ args.print_bytecode = true;
+ } else if s == "-vv" {
+ args.print_bytecode = true;
+ args.print_exec = true;
} else {
eprintln!("Invalid argument {}.", s);
}