46 lines
903 B
Rust
46 lines
903 B
Rust
#![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;
|