prototype IR and parser
[henge/webcc.git] / src / apc / parser.y
index fdbb56f..ffc672d 100644 (file)
@@ -27,8 +27,8 @@
 %token         VOPEN
 %token         VCLOSE
 
-%token         RLS     //!
-%token         RLE    //#
+%token         QOPEN     //!
+%token         QCLOSE    //#
 %token         RT     //*
 %token         HB
 %token         MOD
@@ -51,9 +51,9 @@
 %token <int> HEIGHT
 %token <int> NUM_PTRS
 //precedence
-%precedence LOW
-%precedence MED
-%precedence HIGH
+%precedence LP
+%precedence MP
+%precedence HP
 
  /* Syntax Directed Translation Scheme of the APC grammar */
 
@@ -74,7 +74,7 @@ NAME CLOPEN {push_cdat($1);} class_block CLCLOSE              {pop_cdat();};
 
 class_block:
 class_list
-| class_list set_list 
+| class_list set_list
 | set_list
 ;
 
@@ -86,17 +86,14 @@ set_list set
 root:
 RT NUM NUM NUM                                                {insert_root($2, $3, $4);};
 ;
-quad_list:
-RLS quads RLE
-;
 
-quads:
-quads quad
+quad_list:
+quad_list quad
 | quad
 ;
 
 quad:
-NUM NUM NUM REF                                               {insert_quad($1, $2, $3, $4);};
+QOPEN NUM NUM NUM REF QCLOSE                                  {insert_quad($2, $3, $4, $5);};
 
 hitbox:
 HB NUM                                                        {insert_hitbox($2);}
@@ -123,8 +120,8 @@ SOPEN set_label element_list set_map_data vdat SCLOSE
 
 
 set_label:
-HIGH NAME REF                                                 {insert_set_label($2,$3);};
-| LOW NAME                                                    {insert_set_label($2, -1);};
+HP NAME REF                                                 {insert_set_label($2,$3);};
+| LP NAME                                                    {insert_set_label($2, -1);};
 ;
 
 set_svlink:
@@ -141,13 +138,13 @@ REF
 
 //parent_id is the set_index of the subclass_index.
 element_list:
-element_list element MED
-| element LOW
+element_list element MP
+| element LP
 ;
 
 ele_label:
-HIGH NAME REF                                                                  {insert_ele_label($2, $3);};
-| LOW NAME                                                                     {insert_ele_label($2, -1);};
+HP NAME REF                                                                  {insert_ele_label($2, $3);};
+| LP NAME                                                                     {insert_ele_label($2, -1);};
 ;
 
 ele_vlink:
@@ -178,20 +175,20 @@ model_list model
 ;
 
 model:
-spritesheet LOW
+spritesheet LP
 ;
 
 spritesheet:
-spritesheet HIGH framesheet
+spritesheet HP framesheet
 | framesheet
 ;
 
 framesheet:
-SSD NAME REF HEIGHT WIDTH NUM_PTRS frame_pointers LOW                         {insert_framesheet($1, $2, $3, $4, $5, $6);};
+SSD NAME REF HEIGHT WIDTH NUM_PTRS frame_pointers LP                         {insert_framesheet($1, $2, $3, $4, $5, $6);};
 ;
 
 frame_pointers:
-frame_pointers SSD HIGH FPTR                                           {insert_frame_pointer($2, $4);};
+frame_pointers SSD HP FPTR                                           {insert_frame_pointer($2, $4);};
 | SSD FPTR                                                        {insert_frame_pointer($1, $2);};
 ;