X-Git-Url: https://git.kengrimes.com/?p=henge%2Fwebcc.git;a=blobdiff_plain;f=src%2Fapc%2Fparser.y;h=12e88745d39167b80cb68e4a6b5920a2739fba0c;hp=64bed5ad6d4874172d6c7c66f4d4aec6519a1cf4;hb=92d574d704e54743631464fac3ce739b1077222c;hpb=dc6e33a26d6488e388817d4dd255dcdff22b4a2a diff --git a/src/apc/parser.y b/src/apc/parser.y index 64bed5a..12e8874 100644 --- a/src/apc/parser.y +++ b/src/apc/parser.y @@ -28,23 +28,19 @@ } //operators -%token CLOPEN // / -%token CLCLOSE // \ -%token SOPEN -%token SCLOSE -%token EOPEN -%token ECLOSE -%token VOPEN -%token VCLOSE - -%token QOPEN //! -%token QCLOSE //# -%token RT //* -%token HB -%token MOD -%token SET -%token FS -%token ELE +%token CLOPEN // ( +%token CLCLOSE // ) +%token SOPEN // { +%token SCLOSE // } +%token EOPEN // [ +%token ECLOSE // ] +%token VOPEN // / +%token VCLOSE // \ + +%token QOPEN // ! +%token QCLOSE // @ +%token RT // & +%token HB // # //nonterminal types %type olink %type ele_svlink @@ -57,6 +53,9 @@ %token REF %token SSD %token FPTR +// Change width, height, num_ptrs to NUM because +// when scanning, we can't determine which NUM +// is which. %token WIDTH %token HEIGHT %token NUM_PTRS @@ -79,7 +78,7 @@ class_list class ; class: -NAME CLOPEN {push_cdat($1);} class_block CLCLOSE {pop_cdat();}; + NAME CLOPEN {push_cdat($1);} class_block CLCLOSE {pop_cdat();}; ; class_block: @@ -119,10 +118,10 @@ quad_list ; set: -SOPEN set_label element_list set_map_data vdat SCLOSE {insert_set(); insert_vdat();}; -| SOPEN set_label element_list set_map_data set_vlink SCLOSE {insert_set();}; -| SOPEN set_label element_list set_map_data set_svlink SCLOSE {insert_set_svlink($5); insert_set(); }; -| SOPEN set_label element_list vdat SCLOSE {insert_set(); insert_vdat();}; +SOPEN set_label set_map_data element_list {alloc_vdat();} vdat SCLOSE {insert_set(); insert_set_vdatid();}; +| SOPEN set_label set_map_data element_list set_vlink SCLOSE {insert_set();}; +| SOPEN set_label set_map_data element_list set_svlink SCLOSE {insert_set_svlink($5); insert_set(); }; +| SOPEN set_label element_list {alloc_vdat();} vdat SCLOSE {insert_set(); insert_set_vdatid();}; | SOPEN set_label element_list set_vlink SCLOSE {insert_set(); } | SOPEN set_label element_list set_svlink SCLOSE {insert_set_svlink($4); insert_set();}; | SOPEN olink SCLOSE {insert_set_olink($2);}; @@ -130,7 +129,7 @@ SOPEN set_label element_list set_map_data vdat SCLOSE set_label: -HP NAME REF {insert_set_label($2,$3);}; +HP NAME REF {insert_set_label($2,$3);}; | LP NAME {insert_set_label($2, -1);}; ; @@ -166,10 +165,10 @@ REF ; element: -EOPEN ele_label hitbox root vdat ECLOSE {insert_ele(); insert_vdat();}; +EOPEN ele_label hitbox root {alloc_vdat();} vdat ECLOSE {insert_ele(); insert_ele_vdatid();}; | EOPEN ele_label hitbox root ele_vlink ECLOSE {insert_ele(); }; | EOPEN ele_label hitbox root ele_svlink ECLOSE {insert_ele_svlink($5);insert_ele(); }; -| EOPEN ele_label root vdat ECLOSE {insert_ele(); insert_vdat();}; +| EOPEN ele_label root {alloc_vdat();} vdat ECLOSE {insert_ele(); insert_ele_vdatid();}; | EOPEN ele_label root ele_vlink ECLOSE {insert_ele(); }; | EOPEN ele_label root ele_svlink ECLOSE {insert_ele_svlink($4); insert_ele(); }; | EOPEN olink ECLOSE {insert_ele_olink($2);}; @@ -181,8 +180,8 @@ VOPEN model_list VCLOSE model_list: model_list model -| model -; +| model + ; model: spritesheet LP