sunflower/src/main.rs

34 lines
678 B
Rust
Raw Normal View History

2022-07-03 15:17:37 +02:00
use std::fs::read_to_string;
2022-07-02 23:42:15 +02:00
use env::Env;
2022-07-03 16:01:45 +02:00
use function::FunctionMap;
2022-07-02 23:42:15 +02:00
use statement::Statement;
use value::Value;
mod env;
mod expression;
mod function;
mod macros;
mod statement;
mod value;
2022-07-03 15:17:37 +02:00
// mod lexer;
// mod parser;
mod pest_parser;
2022-07-02 23:42:15 +02:00
2022-07-03 16:01:45 +02:00
fn run(functions: FunctionMap, statement: Statement) {
2022-07-02 23:42:15 +02:00
let env = Env::new();
2022-07-03 16:01:45 +02:00
statement.eval(&env, &functions);
2022-07-02 23:42:15 +02:00
}
fn main() {
2022-07-03 15:17:37 +02:00
let f = read_to_string("./test.foo").unwrap();
2022-07-03 16:01:45 +02:00
let (res, funcs) = pest_parser::parse(f);
let mut m = FunctionMap::new();
m.insert_holder(funcs);
2022-07-02 23:42:15 +02:00
m.insert_native("print", |a: &Value| {
println!("{}", a);
});
m.insert_native("waluigi", || "Waluigi");
2022-07-03 16:01:45 +02:00
run(m, res);
2022-07-02 23:42:15 +02:00
}