Framework for compilation

This commit is contained in:
greg 2016-03-04 14:32:22 -08:00
parent cd69ebaa9d
commit 6c44d295db
3 changed files with 21 additions and 8 deletions

View File

@ -10,6 +10,12 @@ use self::iron_llvm::{LLVMRef, LLVMRefCtor};
use parser::{ParseResult, AST, ASTNode, Prototype, Function, Expression};
pub fn compile_ast(ast: AST) {
println!("Compiling!");
}
/*
pub struct Context {
context: core::Context,
builder: core::Builder,
@ -117,5 +123,4 @@ impl IRBuilder for Expression {
unimplemented!()
}
}
*/

View File

@ -17,6 +17,8 @@ mod parser;
use eval::{Evaluator};
mod eval;
use compilation::{compile_ast};
mod compilation;
fn main() {
let args: Vec<String> = std::env::args().collect();
@ -42,10 +44,16 @@ fn run_noninteractive(filename: &String) {
Err(err) => { println!("Parse error: {:?}", err); return; }
};
let mut evaluator = Evaluator::new();
let results = evaluator.run(ast);
for result in results.iter() {
println!("{}", result);
let compile = true;
if compile {
compile_ast(ast);
} else {
let mut evaluator = Evaluator::new();
let results = evaluator.run(ast);
for result in results.iter() {
println!("{}", result);
}
}
}

View File

@ -1,4 +1,4 @@
let a = 1
let b = 2
a = 1
b = 2
a + b