diff options
Diffstat (limited to 'users/glittershark/achilles/src/commands')
-rw-r--r-- | users/glittershark/achilles/src/commands/check.rs | 39 | ||||
-rw-r--r-- | users/glittershark/achilles/src/commands/compile.rs | 31 | ||||
-rw-r--r-- | users/glittershark/achilles/src/commands/eval.rs | 32 | ||||
-rw-r--r-- | users/glittershark/achilles/src/commands/mod.rs | 7 |
4 files changed, 0 insertions, 109 deletions
diff --git a/users/glittershark/achilles/src/commands/check.rs b/users/glittershark/achilles/src/commands/check.rs deleted file mode 100644 index 0bea482c1478..000000000000 --- a/users/glittershark/achilles/src/commands/check.rs +++ /dev/null @@ -1,39 +0,0 @@ -use clap::Clap; -use std::path::PathBuf; - -use crate::ast::Type; -use crate::{parser, tc, Result}; - -/// Typecheck a file or expression -#[derive(Clap)] -pub struct Check { - /// File to check - path: Option<PathBuf>, - - /// Expression to check - #[clap(long, short = 'e')] - expr: Option<String>, -} - -fn run_expr(expr: String) -> Result<Type<'static>> { - let (_, parsed) = parser::expr(&expr)?; - let hir_expr = tc::typecheck_expr(parsed)?; - Ok(hir_expr.type_().to_owned()) -} - -fn run_path(path: PathBuf) -> Result<Type<'static>> { - todo!() -} - -impl Check { - pub fn run(self) -> Result<()> { - let type_ = match (self.path, self.expr) { - (None, None) => Err("Must specify either a file or expression to check".into()), - (Some(_), Some(_)) => Err("Cannot specify both a file and expression to check".into()), - (None, Some(expr)) => run_expr(expr), - (Some(path), None) => run_path(path), - }?; - println!("type: {}", type_); - Ok(()) - } -} diff --git a/users/glittershark/achilles/src/commands/compile.rs b/users/glittershark/achilles/src/commands/compile.rs deleted file mode 100644 index be8767575ab5..000000000000 --- a/users/glittershark/achilles/src/commands/compile.rs +++ /dev/null @@ -1,31 +0,0 @@ -use std::path::PathBuf; - -use clap::Clap; - -use crate::common::Result; -use crate::compiler::{self, CompilerOptions}; - -/// Compile a source file -#[derive(Clap)] -pub struct Compile { - /// File to compile - file: PathBuf, - - /// Output file - #[clap(short = 'o')] - out_file: PathBuf, - - #[clap(flatten)] - options: CompilerOptions, -} - -impl Compile { - pub fn run(self) -> Result<()> { - eprintln!( - ">>> {} -> {}", - &self.file.to_string_lossy(), - self.out_file.to_string_lossy() - ); - compiler::compile_file(&self.file, &self.out_file, &self.options) - } -} diff --git a/users/glittershark/achilles/src/commands/eval.rs b/users/glittershark/achilles/src/commands/eval.rs deleted file mode 100644 index 61a712c08a8e..000000000000 --- a/users/glittershark/achilles/src/commands/eval.rs +++ /dev/null @@ -1,32 +0,0 @@ -use clap::Clap; - -use crate::codegen; -use crate::interpreter; -use crate::parser; -use crate::tc; -use crate::Result; - -/// Evaluate an expression and print its result -#[derive(Clap)] -pub struct Eval { - /// JIT-compile with LLVM instead of interpreting - #[clap(long)] - jit: bool, - - /// Expression to evaluate - expr: String, -} - -impl Eval { - pub fn run(self) -> Result<()> { - let (_, parsed) = parser::expr(&self.expr)?; - let hir = tc::typecheck_expr(parsed)?; - let result = if self.jit { - codegen::jit_eval::<i64>(&hir)?.into() - } else { - interpreter::eval(&hir)? - }; - println!("{}", result); - Ok(()) - } -} diff --git a/users/glittershark/achilles/src/commands/mod.rs b/users/glittershark/achilles/src/commands/mod.rs deleted file mode 100644 index fd0a822708c2..000000000000 --- a/users/glittershark/achilles/src/commands/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -pub mod check; -pub mod compile; -pub mod eval; - -pub use check::Check; -pub use compile::Compile; -pub use eval::Eval; |