gc: default to nitgc when boehm is not available
[nit.git] / c_src / symbol._sep.c
1 /* This C file is generated by NIT to compile module symbol. */
2 #include "symbol._sep.h"
3 val_t symbol___String___to_symbol(val_t p0){
4 struct {struct stack_frame_t me; val_t MORE_REG[3];} fra;
5 val_t REGB0;
6 val_t tmp;
7 static val_t once_value_1; /* Once value */
8 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
9 fra.me.file = LOCATE_symbol;
10 fra.me.line = 20;
11 fra.me.meth = LOCATE_symbol___String___to_symbol;
12 fra.me.has_broke = 0;
13 fra.me.REG_size = 4;
14 fra.me.REG[0] = NIT_NULL;
15 fra.me.REG[1] = NIT_NULL;
16 fra.me.REG[2] = NIT_NULL;
17 fra.me.REG[3] = NIT_NULL;
18 fra.me.REG[0] = p0;
19 /* ./../lib/standard//symbol.nit:23 */
20 if (!once_value_1) {
21 fra.me.REG[1] = NEW_HashMap_hash_collection___HashMap___init();
22 once_value_1 = fra.me.REG[1];
23 register_static_object(&once_value_1);
24 } else fra.me.REG[1] = once_value_1;
25 REGB0 = CALL_abstract_collection___MapRead___has_key(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
26 /* ./../lib/standard//symbol.nit:24 */
27 if (UNTAG_Bool(REGB0)) {
28 fra.me.REG[2] = CALL_abstract_collection___MapRead_____bra(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0]);
29 /* ./../lib/standard//symbol.nit:25 */
30 goto label2;
31 } else {
32 fra.me.REG[3] = NEW_Symbol_symbol___Symbol___init(fra.me.REG[0]);
33 /* ./../lib/standard//symbol.nit:28 */
34 CALL_abstract_collection___Map_____braeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[0], fra.me.REG[3]);
35 fra.me.REG[2] = fra.me.REG[3];
36 /* ./../lib/standard//symbol.nit:29 */
37 goto label2;
38 }
39 label2: while(0);
40 stack_frame_head = fra.me.prev;
41 return fra.me.REG[2];
42 }
43 val_t symbol___Symbol___to_s(val_t p0){
44 struct {struct stack_frame_t me;} fra;
45 val_t REGB0;
46 val_t tmp;
47 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
48 fra.me.file = LOCATE_symbol;
49 fra.me.line = 37;
50 fra.me.meth = LOCATE_symbol___Symbol___to_s;
51 fra.me.has_broke = 0;
52 fra.me.REG_size = 1;
53 fra.me.REG[0] = NIT_NULL;
54 fra.me.REG[0] = p0;
55 REGB0 = TAG_Bool(ATTR_symbol___Symbol____string(fra.me.REG[0])!=NIT_NULL);
56 /* ./../lib/standard//symbol.nit:37 */
57 if (UNTAG_Bool(REGB0)) {
58 } else {
59 fprintf(stderr, "Uninitialized attribute %s", "_string");
60 fprintf(stderr, " (%s:%d)\n", LOCATE_symbol, 37);
61 nit_exit(1);
62 }
63 fra.me.REG[0] = ATTR_symbol___Symbol____string(fra.me.REG[0]);
64 fra.me.REG[0] = CALL_string___Object___to_s(fra.me.REG[0])(fra.me.REG[0]);
65 goto label1;
66 label1: while(0);
67 stack_frame_head = fra.me.prev;
68 return fra.me.REG[0];
69 }
70 void symbol___Symbol___init(val_t p0, val_t p1, int* init_table){
71 int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_Symbol].i;
72 struct {struct stack_frame_t me; val_t MORE_REG[1];} fra;
73 val_t tmp;
74 if (init_table[itpos0]) return;
75 fra.me.prev = stack_frame_head; stack_frame_head = &fra.me;
76 fra.me.file = LOCATE_symbol;
77 fra.me.line = 39;
78 fra.me.meth = LOCATE_symbol___Symbol___init;
79 fra.me.has_broke = 0;
80 fra.me.REG_size = 2;
81 fra.me.REG[0] = NIT_NULL;
82 fra.me.REG[1] = NIT_NULL;
83 fra.me.REG[0] = p0;
84 fra.me.REG[1] = p1;
85 /* ./../lib/standard//symbol.nit:40 */
86 ATTR_symbol___Symbol____string(fra.me.REG[0]) = fra.me.REG[1];
87 stack_frame_head = fra.me.prev;
88 init_table[itpos0] = 1;
89 return;
90 }