Refactor into libs part II
woo it compiles
This commit is contained in:
parent
a6f8616839
commit
69d5f38ea1
@ -23,16 +23,16 @@ use std::io::{Read, Write};
|
|||||||
use std::process::exit;
|
use std::process::exit;
|
||||||
use std::default::Default;
|
use std::default::Default;
|
||||||
|
|
||||||
mod language;
|
pub mod language;
|
||||||
use language::{ProgrammingLanguageInterface, EvalOptions, LLVMCodeString};
|
use language::{ProgrammingLanguageInterface, EvalOptions, LLVMCodeString};
|
||||||
mod webapp;
|
mod webapp;
|
||||||
mod llvm_wrap;
|
pub mod llvm_wrap;
|
||||||
|
|
||||||
include!(concat!(env!("OUT_DIR"), "/static.rs"));
|
include!(concat!(env!("OUT_DIR"), "/static.rs"));
|
||||||
|
|
||||||
type PLIGenerator = Box<Fn() -> Box<ProgrammingLanguageInterface> + Send + Sync>;
|
pub type PLIGenerator = Box<Fn() -> Box<ProgrammingLanguageInterface> + Send + Sync>;
|
||||||
|
|
||||||
fn schala_main(generators: Vec<PLIGenerator>) {
|
pub fn schala_main(generators: Vec<PLIGenerator>) {
|
||||||
let languages: Vec<Box<ProgrammingLanguageInterface>> = generators.iter().map(|x| x()).collect();
|
let languages: Vec<Box<ProgrammingLanguageInterface>> = generators.iter().map(|x| x()).collect();
|
||||||
|
|
||||||
let option_matches = program_options().parse(std::env::args()).unwrap_or_else(|e| {
|
let option_matches = program_options().parse(std::env::args()).unwrap_or_else(|e| {
|
||||||
|
@ -6,9 +6,9 @@ use self::llvm_sys::prelude::*;
|
|||||||
use self::llvm_sys::{LLVMIntPredicate};
|
use self::llvm_sys::{LLVMIntPredicate};
|
||||||
|
|
||||||
use maaru_lang::parser::{AST, Statement, Function, Prototype, Expression, BinOp};
|
use maaru_lang::parser::{AST, Statement, Function, Prototype, Expression, BinOp};
|
||||||
use language::LLVMCodeString;
|
use schala_lib::language::LLVMCodeString;
|
||||||
|
|
||||||
use llvm_wrap as LLVMWrap;
|
use schala_lib::llvm_wrap as LLVMWrap;
|
||||||
|
|
||||||
type VariableMap = HashMap<String, LLVMValueRef>;
|
type VariableMap = HashMap<String, LLVMValueRef>;
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@ pub mod parser;
|
|||||||
pub mod eval;
|
pub mod eval;
|
||||||
pub mod compilation;
|
pub mod compilation;
|
||||||
|
|
||||||
use language::{ProgrammingLanguageInterface, EvalOptions, ReplOutput, TraceArtifact, LLVMCodeString};
|
use schala_lib::language::{ProgrammingLanguageInterface, EvalOptions, ReplOutput, TraceArtifact, LLVMCodeString};
|
||||||
|
|
||||||
pub use self::eval::Evaluator as MaaruEvaluator;
|
pub use self::eval::Evaluator as MaaruEvaluator;
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ use std::str::Chars;
|
|||||||
use self::itertools::Itertools;
|
use self::itertools::Itertools;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
|
|
||||||
use language::TokenError;
|
use schala_lib::language::TokenError;
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq)]
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
pub enum Token {
|
pub enum Token {
|
||||||
|
@ -29,6 +29,7 @@ mod robo_lang;
|
|||||||
|
|
||||||
extern crate schala_lib;
|
extern crate schala_lib;
|
||||||
use schala_lib::{PLIGenerator, schala_main};
|
use schala_lib::{PLIGenerator, schala_main};
|
||||||
|
use schala_lib::language::ProgrammingLanguageInterface;
|
||||||
|
|
||||||
#[link_args="-ltinfo"]
|
#[link_args="-ltinfo"]
|
||||||
extern { }
|
extern { }
|
||||||
@ -39,8 +40,6 @@ fn main() {
|
|||||||
Box::new(|| { let x: Box<ProgrammingLanguageInterface> = Box::new(maaru_lang::Maaru::new()); x }),
|
Box::new(|| { let x: Box<ProgrammingLanguageInterface> = Box::new(maaru_lang::Maaru::new()); x }),
|
||||||
Box::new(|| { let x: Box<ProgrammingLanguageInterface> = Box::new(robo_lang::Robo::new()); x }),
|
Box::new(|| { let x: Box<ProgrammingLanguageInterface> = Box::new(robo_lang::Robo::new()); x }),
|
||||||
];
|
];
|
||||||
|
|
||||||
schala_main(generators);
|
schala_main(generators);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
|
|
||||||
use language::{ProgrammingLanguageInterface, EvalOptions, ReplOutput, TokenError};
|
use schala_lib::language::{ProgrammingLanguageInterface, EvalOptions, ReplOutput, TokenError};
|
||||||
|
|
||||||
pub struct Robo {
|
pub struct Robo {
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use language::{ProgrammingLanguageInterface, EvalOptions, TraceArtifact, ReplOutput};
|
use schala_lib::language::{ProgrammingLanguageInterface, EvalOptions, TraceArtifact, ReplOutput};
|
||||||
|
|
||||||
mod parsing;
|
mod parsing;
|
||||||
mod type_check;
|
mod type_check;
|
||||||
|
Loading…
Reference in New Issue
Block a user