1 2 #include "config.h" 3 4 #include <stdio.h> 5 #include <string.h> 6 #include <stdlib.h> 7 8 #include <orc/orcprogram.h> 9 #include <orc/orcdebug.h> 10 11 /** 12 * SECTION:orcrule 13 * @title: OrcRule 14 * @short_description: Creating rules for code generation 15 */ 16 17 18 void orc_rule_register(OrcRuleSet * rule_set,const char * opcode_name,OrcRuleEmitFunc emit,void * emit_user)19orc_rule_register (OrcRuleSet *rule_set, 20 const char *opcode_name, 21 OrcRuleEmitFunc emit, void *emit_user) 22 { 23 int i; 24 OrcOpcodeSet *opcode_set; 25 26 opcode_set = orc_opcode_set_get_nth (rule_set->opcode_major); 27 28 i = orc_opcode_set_find_by_name (opcode_set, opcode_name); 29 if (i == -1) { 30 ORC_ERROR("failed to find opcode \"%s\"", opcode_name); 31 return; 32 } 33 34 rule_set->rules[i].emit = emit; 35 rule_set->rules[i].emit_user = emit_user; 36 } 37 38