2017-10-26 02:03:47 -07:00
|
|
|
#![feature(link_args)]
|
2017-10-08 23:33:53 -07:00
|
|
|
#![feature(advanced_slice_patterns, slice_patterns, box_patterns, box_syntax)]
|
2017-09-19 03:32:15 -07:00
|
|
|
#![feature(plugin)]
|
2017-09-18 19:09:27 -07:00
|
|
|
extern crate itertools;
|
2017-09-07 19:38:22 -07:00
|
|
|
#[macro_use]
|
|
|
|
extern crate lazy_static;
|
|
|
|
#[macro_use]
|
|
|
|
extern crate maplit;
|
2015-12-18 23:40:30 -08:00
|
|
|
|
2017-10-23 00:45:01 -07:00
|
|
|
mod schala_lang;
|
2017-01-25 20:09:51 -08:00
|
|
|
mod maaru_lang;
|
2017-08-29 00:28:19 -07:00
|
|
|
mod robo_lang;
|
2017-01-25 20:09:51 -08:00
|
|
|
|
2017-10-30 20:06:20 -07:00
|
|
|
extern crate schala_lib;
|
|
|
|
use schala_lib::{PLIGenerator, schala_main};
|
2017-10-30 22:18:02 -07:00
|
|
|
use schala_lib::language::ProgrammingLanguageInterface;
|
2017-10-12 02:13:55 -07:00
|
|
|
|
2017-10-26 02:03:47 -07:00
|
|
|
#[link_args="-ltinfo"]
|
|
|
|
extern { }
|
|
|
|
|
2015-07-16 01:40:37 -07:00
|
|
|
fn main() {
|
2017-10-29 04:09:10 -07:00
|
|
|
let generators: Vec<PLIGenerator> = vec![
|
|
|
|
Box::new(|| { let x: Box<ProgrammingLanguageInterface> = Box::new(schala_lang::Schala::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 }),
|
|
|
|
];
|
2017-10-29 13:45:55 -07:00
|
|
|
schala_main(generators);
|
2017-10-23 20:51:08 -07:00
|
|
|
}
|
|
|
|
|