1 /* Asset Package Compiler */
13 extern int lexer_init();
20 %define parse.error verbose
49 %type <ref> ele_svlink
50 %type <ref> set_svlink
59 // Change width, height, num_ptrs to NUM because
60 // when scanning, we can't determine which NUM
71 /* Syntax Directed Translation Scheme of the APC grammar */
80 CLOPEN NAME {push_cdat($2);} class_block CLCLOSE {pop_cdat();};
113 MOPEN NAME NUM NUM NAME {insert_variant($2, $3, $4, $5);};
118 | variant_list HP hitbox root
119 | variant_list MP root
123 SOPEN set_label set_map_data element_list vdat SCLOSE {insert_set(); insert_set_vdatid();};
124 | SOPEN set_label set_map_data element_list set_vlink SCLOSE {insert_set();};
125 | SOPEN set_label set_map_data element_list set_svlink SCLOSE {insert_set_svlink($5); insert_set(); };
126 | SOPEN set_label element_list vdat SCLOSE {insert_set(); insert_set_vdatid();};
127 | SOPEN set_label element_list set_vlink SCLOSE {insert_set(); }
128 | SOPEN set_label element_list set_svlink SCLOSE {insert_set_svlink($4); insert_set();};
129 | SOPEN olink SCLOSE {insert_set_olink($2);};
134 HP NAME REF {insert_set_label($2,$3);};
135 | LP NAME {insert_set_label($2, -1);};
144 REF NAME {insert_set_vlink($1, $2);};
151 //parent_id is the set_index of the subclass_index.
153 element_list element MP
158 HP NAME REF {insert_ele_label($2, $3);};
159 | LP NAME {insert_ele_label($2, -1);};
163 REF NAME {insert_ele_vlink($1, $2);};
174 EOPEN ele_label ele_map_data vdat ECLOSE {insert_ele(); insert_ele_vdatid();};
175 | EOPEN ele_label ele_map_data ele_vlink ECLOSE {insert_ele(); };
176 | EOPEN ele_label ele_map_data ele_svlink ECLOSE {insert_ele_svlink($4);insert_ele(); };
177 | EOPEN ele_label vdat ECLOSE {insert_ele(); insert_ele_vdatid();};
178 | EOPEN ele_label ele_vlink ECLOSE {insert_ele(); };
179 | EOPEN ele_label ele_svlink ECLOSE {insert_ele_svlink($3); insert_ele(); ;}
180 | EOPEN olink ECLOSE {insert_ele_olink($2);};
185 | VOPEN NAME NUM NUM NAME {insert_vdat($2, $3, $4, $5);};
198 spritesheet HP framesheet
203 SSD NAME REF HEIGHT WIDTH NUM_PTRS frame_pointers LP //{insert_framesheet($1, $2, $3, $4, $5, $6);};
207 frame_pointers SSD HP FPTR //{insert_frame_pointer($2, $4);};
208 | SSD FPTR //{insert_frame_pointer($1, $2);};
214 yyerror (char const *s)
215 { fprintf(stderr, "%s\n", s);