pub mod step; pub mod util; pub mod subst; /// A leaf node for S-Expressions. /// /// May represent built-in operators, /// variables, functions (to be added) or values. #[derive(Debug)] #[derive(PartialEq)] #[derive(Clone)] pub enum SLeaf { Add, Sub, Mul, Div, Int(i32), Var(String), } /// An S-Expression; the defining structure of the language. /// /// This structure is not intended to correspond with /// IETF-standardized s-expressions; they are only inspiration. #[derive(Debug)] #[derive(PartialEq)] #[derive(Clone)] pub enum SExp { SCons(Box, Box), Atom(SLeaf), }