示例#1
0
文件: tables.c 项目: pombreda/pce
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);
}
示例#2
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;
}