#![feature(trace_macros)] //#![feature(unrestricted_attribute_tokens)] #![feature(box_patterns, box_syntax)] //! `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 schala_repl; #[macro_use] extern crate schala_lang_codegen; extern crate derivative; macro_rules! bx { ($e:expr) => { Box::new($e) } } #[macro_use] mod util; #[macro_use] mod typechecking; mod tokenizing; mod ast; 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;