void init_samp_table(samp_table_t *table) { init_sort_table(&table->sort_table); init_const_table(&table->const_table); init_var_table(&table->var_table); init_pred_table(&table->pred_table); init_atom_table(&table->atom_table); init_rule_inst_table(&table->rule_inst_table); init_rule_table(&table->rule_table); init_query_table(&table->query_table); init_query_instance_table(&table->query_instance_table); init_source_table(&table->source_table); //init_integer_stack(&table->fixable_stack, 0); }
int main(int argc, char ** argv) { FILE * f; if (argc == 1) { f = fopen("../Test/test1.cmm", "r"); } int i = 0; for (i = 1; i < argc; ++i) { f = fopen(argv[i], "r"); if (!f) { printf("File \'%s\' not exist\n", argv[i]); continue; } //printf("------------------Analysis for %s------------------\n", argv[i]); yyrestart(f); lineno = 1; error = 0; current_file = argv[i]; //:yydebug=1; yyparse(); fclose(f); if (root && !error) { // print_tree(root); init_var_table(); init_func_table(); init_struct_table(); function_field = NULL; //printf("now analyse\n"); semantic_analysis(root); clear_var_table(); clear_func_table(); clear_struct_table(); } putchar('\n'); } return 0; }