Пример #1
0
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;
}
Пример #2
0
ast::Program *parse_file(const std::string &filename, Diagnostic *diagnostic) {
  std::ifstream is(filename);

  return parse_from_stream(&is, diagnostic);
}
Пример #3
0
ast::Program *parse(const std::string &in, Diagnostic *diagnostic) {
  std::istringstream is(in);

  return parse_from_stream(&is, diagnostic);
}