X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fapc.git;a=blobdiff_plain;f=src%2Fparser.y;h=95a47cf6100fca452c09edfb892fa9f1a300b234;hp=60a5867aa34e468d927d48b26eb0346951cbfd1d;hb=10795ddac027be6e3edff27aa8da8d69aee9e454;hpb=d47bdba72dd5fef398bc485067fdc59147303253 diff --git a/src/parser.y b/src/parser.y index 60a5867..95a47cf 100644 --- a/src/parser.y +++ b/src/parser.y @@ -55,8 +55,6 @@ %token WIDTH %token D %token NAME -//nonterminals -%type ref_id /* Syntax Directed Translation Scheme of the APC grammar */ /* Rules */ @@ -93,7 +91,7 @@ vdat_statement ; ref_statement: -set_namelist ref_id {insert_refid($2);}; +set_namelist REF {insert_refid($2);}; ; link_namelist: @@ -117,18 +115,18 @@ NAME NUM NUM PATH {insert_map($1, 0, $3, 0, 0, $4 | NAME PATH {insert_map($1, 0, 0, 0, 0, $2);}; | NAME D PATH {insert_map($1, $2, 0, 0, 0, $3);}; | NAME D NUM NUM PATH {insert_map($1, $2, $3, $4, 0, $5);}; -| NAME NUM NUM ref_id PATH {insert_map($1, 0, $2, $3, $4, $5);}; -| NAME ref_id PATH {insert_map($1, 0, 0, 0, $2, $3);}; -| NAME D ref_id PATH {insert_map($1, $2, 0, 0, $3, $4);}; -| NAME D NUM NUM ref_id PATH {insert_map($1, $2, $3, $4, $5, $6);}; +| NAME NUM NUM REF PATH {insert_map($1, 0, $2, $3, $4, $5);}; +| NAME REF PATH {insert_map($1, 0, 0, 0, $2, $3);}; +| NAME D REF PATH {insert_map($1, $2, 0, 0, $3, $4);}; +| NAME D NUM NUM REF PATH {insert_map($1, $2, $3, $4, $5, $6);}; ; //shift list_namelist name > reduce mlink mlink: MOPEN LINK NAME LINK link_namelist PATH {insert_mlink($3, 0); }; | MOPEN LINK link_namelist PATH {insert_mlink(NULL, 0); }; -| MOPEN LINK ref_id PATH {insert_mlink(NULL, $3); }; -| MOPEN LINK NAME LINK ref_id PATH {insert_mlink($3,$5); }; +| MOPEN LINK REF PATH {insert_mlink(NULL, $3); }; +| MOPEN LINK NAME LINK REF PATH {insert_mlink($3,$5); }; ; //shift list_namelist name > reduce vlink @@ -144,11 +142,6 @@ olink: set_namelist MOPEN REF ; -ref_id: -LINK REF {$$ = $2;}; -; - - vdat_statement: set_namelist SS spritesheet_statement | set_namelist SS vlink @@ -159,10 +152,10 @@ NAME D HEIGHT WIDTH PATH {insert_framesheet($1, $2, $3, $4, | NAME D PATH {insert_framesheet($1, $2, 0, 0, 0, $3);}; | NAME HEIGHT WIDTH PATH {insert_framesheet($1, 0, $2, $3, 0, $4);}; | NAME PATH {insert_framesheet($1, 0, 0, 0, 0, $2);}; -| NAME D HEIGHT WIDTH ref_id PATH {insert_framesheet($1, $2, $3, $4, $5, $6);}; -| NAME D ref_id PATH {insert_framesheet($1, $2, 0, 0, $3, $4);}; -| NAME HEIGHT WIDTH ref_id PATH {insert_framesheet($1, 0, $2, $3, $4, $5);}; -| NAME ref_id PATH {insert_framesheet($1, 0, 0, 0, $2, $3);}; +| NAME D HEIGHT WIDTH REF PATH {insert_framesheet($1, $2, $3, $4, $5, $6);}; +| NAME D REF PATH {insert_framesheet($1, $2, 0, 0, $3, $4);}; +| NAME HEIGHT WIDTH REF PATH {insert_framesheet($1, 0, $2, $3, $4, $5);}; +| NAME REF PATH {insert_framesheet($1, 0, 0, 0, $2, $3);}; ; %%