#![feature(link_args)] #![feature(advanced_slice_patterns, slice_patterns, box_patterns, box_syntax)] #![feature(plugin)] #![plugin(rocket_codegen)] extern crate getopts; extern crate linefeed; extern crate itertools; #[macro_use] extern crate lazy_static; #[macro_use] extern crate maplit; extern crate serde_json; extern crate rocket; extern crate rocket_contrib; extern crate includedir; extern crate phf; mod schala_lang; mod maaru_lang; mod robo_lang; extern crate schala_lib; use schala_lib::{PLIGenerator, schala_main}; use schala_lib::language::ProgrammingLanguageInterface; #[link_args="-ltinfo"] extern { } fn main() { let generators: Vec = vec![ Box::new(|| { let x: Box = Box::new(schala_lang::Schala::new()); x }), Box::new(|| { let x: Box = Box::new(maaru_lang::Maaru::new()); x }), Box::new(|| { let x: Box = Box::new(robo_lang::Robo::new()); x }), ]; schala_main(generators); }