Loading

Paste #p7kjibhvm

  1. Program : /* empty */
  2.           {
  3.               g_vAnimations.clear();
  4.           }
  5.         | Program Animation
  6.           {
  7.               g_vAnimations.push_back($2);
  8.           }
  9.         ;
  10.  
  11. Animation : ANIMATIONKW STRING CURLY_OPEN AnimationProperties AnimationFrames CURLY_CLOSE
  12.             {
  13.                 Animation an($1, $2);
  14.                 an.SetProperties($4);
  15.                 an.setFrames($5);
  16.                 $$ = an;
  17.             }
  18.           ;
  19.  
  20. AnimationProperties : AnimationProperty
  21.                       {
  22.                           std::vector<FieldStorage> fss;
  23.                           $$ = fss;
  24.                           $$.push_back($1);
  25.                       }
  26.                     | AnimationProperties AnimationProperty
  27.                       {
  28.                           $$ = $1;
  29.                           $$.push_back($2);
  30.                       }
  31.                     ;
  32.  
  33. AnimationProperty : TILE_SIZEKW EQUAL NUMBER SEMICOL
  34.                     {
  35.                         FieldStorage fs(AP_TILESIZE, $3, $1);
  36.                         $$ = fs;
  37.                     }
  38.                   | VIEWKW EQUAL Direction SEMICOL
  39.                     {
  40.                         $$ = $3;
  41.                         $$.m_iLine = $1;
  42.                     }
  43.                   ;
  44.  
  45. Direction : NORTHKW
  46.             {
  47.                 FieldStorage fs(AP_VIEW, VD_NORTH, $1);
  48.                 $$ = fs;
  49.             }
  50.           | EASTKW
  51.             {
  52.                 FieldStorage fs(AP_VIEW, VD_EAST, $1);
  53.                 $$ = fs;
  54.             }
  55.           | SOUTHKW
  56.             {
  57.                 FieldStorage fs(AP_VIEW, VD_SOUTH, $1);
  58.                 $$ = fs;
  59.             }
  60.           | WESTKW
  61.             {
  62.                 FieldStorage fs(AP_VIEW, VD_WEST, $1);
  63.                 $$ = fs;
  64.             }
  65.           ;
  66.  
  67. AnimationFrames : AnimationFrame
  68.                   {
  69.                       std::vector<AnimationFrame> elements;
  70.                       $$ = elements;
  71.                       $$.push_back($1;);
  72.                   }
  73.                 | AnimationFrames AnimationFrame
  74.                   {
  75.                       $$ = $1;
  76.                       $$.push_back($2);
  77.                   }
  78.                 ;
  79.  
  80. AnimationFrame : FRAMEKW CURLY_OPEN FrameProperties FrameElements CURLY_CLOSE
  81.                  {
  82.                      AnimationFrame af($1);
  83.                      af.SetProperties($3);
  84.                      af.SetFrames($4);
  85.                      $$ = af;
  86.                  }
  87.                ;
  88.  
  89. FrameProperties : /* empty */
  90.                   {
  91.                       FieldStorage fs;
  92.                       $$ = fs;
  93.                   }
  94.                 | SOUNDKW EQUAL NUMBER SEMICOL
  95.                   {
  96.                       FieldStorage fs(AF_SOUND, $3, $1);
  97.                       $$ = fs;
  98.                   }
  99.                 ;
  100.  
  101. FrameElements : FrameElement
  102.                 {
  103.                     std::vector<FrameElement> elements;
  104.                     $$ = elements;
  105.                     $$.push_back($1;);
  106.                 }
  107.               | FrameElements FrameElement
  108.                 {
  109.                     $$ = $1;
  110.                     $$.push_back($2);
  111.                 }
  112.               ;
  113.  
  114. FrameElement : ELEMENTKW CURLY_OPEN ElementFields CURLY_CLOSE
  115.                {
  116.                    FrameElement fe($1);
  117.                    fe.AssignFields($3);
  118.                    $$ = fe;
  119.                }
  120.              ;
  121.  
  122. ElementFields : ElementField
  123.                 {
  124.                     std::vector<FieldStorage> fss;
  125.                     $$ = fss;
  126.                     $$.push_back($1);
  127.                 }
  128.               | ElementFields ElementField
  129.                 {
  130.                     $$ = $1;
  131.                     $$.push_back($2);
  132.                 }
  133.               ;
  134.  
  135. ElementField : TOPKW EQUAL NUMBER SEMICOL
  136.                {
  137.                    FieldStorage fs(FE_TOP, $3, $1);
  138.                    $$ = fs;
  139.                }
  140.              | LEFTKW EQUAL NUMBER SEMICOL
  141.                {
  142.                    FieldStorage fs(FE_LEFT, $3, $1);
  143.                    $$ = fs;
  144.                }
  145.              | WIDTHKW EQUAL NUMBER SEMICOL
  146.                {
  147.                    FieldStorage fs(FE_WIDTH, $3, $1);
  148.                    $$ = fs;
  149.                }
  150.              | HEIGHTKW EQUAL NUMBER SEMICOL
  151.                {
  152.                    FieldStorage fs(FE_HEIGHT, $3, $1);
  153.                    $$ = fs;
  154.                }
  155.              | X_OFFSETKW EQUAL NUMBER SEMICOL
  156.                {
  157.                    FieldStorage fs(FE_XOFFSET, $3, $1);
  158.                    $$ = fs;
  159.                }
  160.              | Y_OFFSETKW EQUAL NUMBER SEMICOL
  161.                {
  162.                    FieldStorage fs(FE_YOFFSET, $3, $1);
  163.                    $$ = fs;
  164.                }
  165.              | BASE_IMGKW EQUAL STRING SEMICOL
  166.                {
  167.                    FieldStorage fs(FE_IMAGE, $3, $1);
  168.                    $$ = fs;
  169.                }
  170.              | RECOLOURKW EQUAL STRING SEMICOL
  171.                {
  172.                    FieldStorage fs(FE_RECOLOUR, $3, $1);
  173.                    $$ = fs;
  174.                }
  175.              | LAYERKW NUMBER EQUAL NUMBER SEMICOL
  176.                {
  177.                    FieldStorage fs(FE_RECOLLAYER, $2, $4, $1);
  178.                    $$ = fs;
  179.                }
  180.              | DISPLAYKW NUMBER EQUAL NUMBER SEMICOL
  181.                {
  182.                    FieldStorage fs(FE_DISPLAY, $2, $4, $1);
  183.                    $$ = fs;
  184.                }
  185.              | ALPHAKW EQUAL NUMBER SEMICOL
  186.                {
  187.                    FieldStorage fs(FE_ALPHA, $3, $1);
  188.                    $$ = fs;
  189.                }
  190.              | HOR_FLIPKW
  191.                {
  192.                    FieldStorage fs(FE_HORFLIP, 1, $1);
  193.                    $$ = fs;
  194.                }
  195.              | VERT_FLIPKW
  196.                {
  197.                    FieldStorage fs(FE_VERTFLIP, 1, $1);
  198.                    $$ = fs;
  199.                }
  200.              ;

Comments