int main(int argc, const char* argv[]) { FILE* file = open_stream(argc, argv); cons_t* tree = parse_from_stream(file); print_tree(tree); putchar('\n'); g_variables = create_cons_cell(NULL, NIL); g_variables->cdr = create_cons_cell(NULL, NIL); tree = eval(tree, g_variables); print_tree(tree); putchar('\n'); if(g_functions){ free_tree(g_functions); } if(g_variables){ free_tree(g_variables); } free_tree(tree); return 0; }
ast::Program *parse_file(const std::string &filename, Diagnostic *diagnostic) { std::ifstream is(filename); return parse_from_stream(&is, diagnostic); }
ast::Program *parse(const std::string &in, Diagnostic *diagnostic) { std::istringstream is(in); return parse_from_stream(&is, diagnostic); }