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)19 orc_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