moved
[henge/webcc.git] / .org / data / fb / 24c302-4743-4a45-845a-4249d2b1a378 / parser.y
diff --git a/.org/data/fb/24c302-4743-4a45-845a-4249d2b1a378/parser.y b/.org/data/fb/24c302-4743-4a45-845a-4249d2b1a378/parser.y
deleted file mode 100644 (file)
index e6d145c..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-/* Asset Package Compiler */
-%code requires{
-  #include <stdint.h>
-}
-%{
-  #include <stdio.h>
-  #include <string.h>
-  #include <dirent.h>
-  #include <png.h>
-  #include <apc/ir.h>
-
-  extern int lexer_init();
-  extern int lexer();
-  #define yylex lexer
-
-
-  void yyerror();
-%}
-%define parse.error verbose
-%define lr.type ielr
-
-%union {
-  uint64_t ref;
-  int val;
-  char *str;
-  void *voidp;
-
-}
-
- //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        // #
-//nonterminal types
-%type <ref> olink
-%type <ref> ele_svlink
-%type <ref> set_svlink
-//terminals
-%token <val> NUM
-%token <str> STR
-%token <val> SS
-%token <str> NAME
-%token <ref> REF
-%token <val> SSD
-%token <voidp> FPTR
-%token <voidp> QPTR
-// Change width, height, num_ptrs to NUM because
-// when scanning, we can't determine which NUM
-// is which. 
-%token <val> WIDTH
-%token <val> HEIGHT
-%token <val> NUM_PTRS
-//precedence
-%precedence LP
-%precedence MP
-%precedence HP
-
- /* Syntax Directed Translation Scheme of the APC grammar */
-
-/* Rules */
-%%
-cdat_buf:
-class_list
-;
-
-class_list:
-class_list class
-| class
-;
-
-class:
- CLOPEN NAME {push_cdat($2);} class_block CLCLOSE              {pop_cdat();};
-;
-
-class_block:
-class_list
-| class_list set_list
-| set_list
-;
-
-set_list:
-set_list set
-| set
-;
-
-root:
-RT NUM NUM NUM                                      {insert_root($2, $3, $4);};
-;
-
-quad_file:
-QOPEN QPTR  QCLOSE                                  {insert_quad($2);};
-
-hitbox:
-HB NUM                                              {insert_hitbox($2);}
-;
-
-set_map_data:
-quad_file
-| quad_file hitbox
-| quad_file hitbox root
-| hitbox root
-| hitbox
-| root
-;
-
-set:
-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);};
-;
-
-
-set_label:
-HP NAME REF                                          {insert_set_label($2,$3);};
-| LP NAME                                            {insert_set_label($2, -1);};
-;
-
-set_svlink:
-REF
-
-;
-
-set_vlink:
-REF NAME                                             {insert_set_vlink($1, $2);};
-;
-
-olink:
-REF
-;
-
-//parent_id is the set_index of the subclass_index.
-element_list:
-element_list element MP
-| element LP
-;
-
-ele_label:
-HP NAME REF                                          {insert_ele_label($2, $3);};
-| LP NAME                                            {insert_ele_label($2, -1);};
-;
-
-ele_vlink:
-REF NAME                                             {insert_ele_vlink($1, $2);};
-;
-
-ele_svlink:
-REF
-;
-
-element:
-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 {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);};
-;
-
-vdat:
-VOPEN model_list VCLOSE
-;
-
-model_list:
-model_list model
-|  model
- ;
-
-model:
-spritesheet LP
-;
-
-spritesheet:
-spritesheet HP framesheet
-| framesheet
-;
-
-framesheet:
-SSD NAME REF HEIGHT WIDTH NUM_PTRS frame_pointers LP                     {insert_framesheet($1, $2, $3, $4, $5, $6);};
-;
-
-frame_pointers:
-frame_pointers SSD HP FPTR                                              {insert_frame_pointer($2, $4);};
-| SSD FPTR                                                              {insert_frame_pointer($1, $2);};
-;
-
-%%
-
-void
-yyerror (char const *s)
-{ fprintf(stderr, "%s\n", s);
-}