#![feature(box_patterns, box_syntax, trace_macros, or_patterns)] //! `schala-lang` is where the Schala programming language is actually implemented. //! It defines the `Schala` type, which contains the state for a Schala REPL, and implements //! `ProgrammingLanguageInterface` and the chain of compiler passes for it. extern crate itertools; #[macro_use] extern crate lazy_static; #[macro_use] extern crate maplit; extern crate schala_repl; #[macro_use] extern crate schala_lang_codegen; extern crate ena; extern crate derivative; extern crate colored; extern crate radix_trie; macro_rules! bx { ($e:expr) => { Box::new($e) } } #[macro_use] mod util; #[macro_use] mod typechecking; mod debugging; mod tokenizing; mod ast; mod parser; mod parsing; #[macro_use] mod symbol_table; mod scope_resolution; mod builtin; mod reduced_ast; mod eval; mod source_map; mod schala; pub use schala::Schala;