#![feature(trace_macros)] #![feature(custom_attribute)] //#![feature(unrestricted_attribute_tokens)] #![feature(slice_patterns, 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 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; macro_rules! bx { ($e:expr) => { Box::new($e) } } #[macro_use] mod util; #[macro_use] mod typechecking; mod debugging; mod tokenizing; mod ast; mod parsing; #[macro_use] mod symbol_table; mod scope_resolution; mod builtin; mod reduced_ast; mod eval; mod schala; pub use schala::Schala;