mod compiler; mod value; mod lex; mod vm; mod parse; mod chunk; mod ast; mod binary; pub mod prelude; #[macro_export] macro_rules! iter { ($fn:expr) => { $crate::prelude::Value::Iter( ::std::rc::Rc::new( $crate::prelude::Function { name: ::std::rc::Rc::from(""), arity: 0, variadic: false, fun: $crate::prelude::InnerFunction::Native( ::std::rc::Rc::new($fn ))})) }; } #[macro_export] macro_rules! native { ($name:expr, $arity:expr, $varadic:expr, $fn:expr) => { $crate::prelude::Value::Function( ::std::rc::Rc::new( $crate::prelude::Function { name: std::rc::Rc::from($name), arity: $arity, variadic: $varadic, fun: $crate::prelude::InnerFunction::Native( ::std::rc::Rc::new($fn) ) }) ) } }