diff --git a/src/gl/gl_basic.h b/src/gl/gl_basic.h index b75d579e..4c2b9197 100644 --- a/src/gl/gl_basic.h +++ b/src/gl/gl_basic.h @@ -99,4 +99,4 @@ public: } }; -#endif \ No newline at end of file +#endif diff --git a/src/gl/gl_cycler.h b/src/gl/gl_cycler.h index e76012a0..4abafae7 100644 --- a/src/gl/gl_cycler.h +++ b/src/gl/gl_cycler.h @@ -49,4 +49,4 @@ inline FArchive &operator<< (FArchive &arc, FCycler &type) } -#endif \ No newline at end of file +#endif diff --git a/src/gl/gl_data.h b/src/gl/gl_data.h index d68378de..be68ea10 100644 --- a/src/gl/gl_data.h +++ b/src/gl/gl_data.h @@ -11,4 +11,4 @@ side_t* getNextSide(sector_t * sec, line_t* line); -#endif \ No newline at end of file +#endif diff --git a/src/gl/gl_geometric.h b/src/gl/gl_geometric.h index 4e394c87..a4d2adc2 100644 --- a/src/gl/gl_geometric.h +++ b/src/gl/gl_geometric.h @@ -134,4 +134,4 @@ protected: float m_d; }; -#endif \ No newline at end of file +#endif diff --git a/src/gl/gl_lights.h b/src/gl/gl_lights.h index 5e55496d..722d5c44 100644 --- a/src/gl/gl_lights.h +++ b/src/gl/gl_lights.h @@ -271,4 +271,4 @@ void gl_GetLightForThing(AActor * thing, float upper, float lower, float & r, fl extern bool i_useshaders; -#endif \ No newline at end of file +#endif diff --git a/src/gl/gl_pch.h b/src/gl/gl_pch.h index 34d62e39..17e14e20 100644 --- a/src/gl/gl_pch.h +++ b/src/gl/gl_pch.h @@ -12,7 +12,9 @@ #define DWORD WINDOWS_DWORD // I don't want to depend on this throughout the GL code! +#ifdef _MSC_VER #pragma warning(disable : 4995) // MIPS +#endif #include #include diff --git a/src/gl/gl_texture.cpp b/src/gl/gl_texture.cpp index a2e4c72a..b606e371 100644 --- a/src/gl/gl_texture.cpp +++ b/src/gl/gl_texture.cpp @@ -1375,6 +1375,7 @@ const WorldTextureInfo * FGLTexture::Bind(int texunit, int cm, int clampmode, in } delete buffer; } + if (texunit == 0) gltexture->SetTextureClamp(gl_render_precise? clampmode&GLT_CLAMPY : clampmode); if (tex->bHasCanvas) static_cast(tex)->NeedUpdate(); return (WorldTextureInfo*)this; diff --git a/src/gl/gl_walls.cpp b/src/gl/gl_walls.cpp index d845812e..8cba1f96 100644 --- a/src/gl/gl_walls.cpp +++ b/src/gl/gl_walls.cpp @@ -1346,7 +1346,7 @@ void GLWall::Process(seg_t *seg, sector_t * frontsector, sector_t * backsector, #ifdef _MSC_VER #ifdef _DEBUG - if (seg->linedef-lines==341) + if (seg->linedef-lines==64) __asm nop #endif #endif diff --git a/src/gl/gltexture.cpp b/src/gl/gltexture.cpp index 0d436233..93f62b8a 100644 --- a/src/gl/gltexture.cpp +++ b/src/gl/gltexture.cpp @@ -335,9 +335,6 @@ unsigned * GLTexture::GetTexID(int cm, int translation) // // Binds this patch // -// If this has to be extended for multitexturing this function and -// the lastbound variable will have to be changed -// //=========================================================================== unsigned int GLTexture::Bind(int texunit, int cm,int translation, int clampmode) { @@ -349,7 +346,6 @@ unsigned int GLTexture::Bind(int texunit, int cm,int translation, int clampmode) lastbound[texunit]=*pTexID; if (texunit != 0) gl.ActiveTexture(GL_TEXTURE0+texunit); gl.BindTexture(GL_TEXTURE_2D, *pTexID); - if (clampmode != -1) SetTextureClamp(clampmode); if (texunit != 0) gl.ActiveTexture(GL_TEXTURE0); return *pTexID; } diff --git a/src/gl/gltexture.h b/src/gl/gltexture.h index 0e2f0a77..e7a92ead 100644 --- a/src/gl/gltexture.h +++ b/src/gl/gltexture.h @@ -69,7 +69,6 @@ private: void LoadImage(unsigned char * buffer,int w, int h, unsigned int & glTexID,int wrapparam, bool alphatexture, int texunit); unsigned * GetTexID(int cm, int translation); - void SetTextureClamp(int clampmode); public: GLTexture(int w, int h, bool mip, bool wrap); @@ -78,6 +77,7 @@ public: unsigned int Bind(int texunit, int cm, int translation=0, int clampmode = -1); unsigned int CreateTexture(unsigned char * buffer, int w, int h,bool wrap, int texunit, int cm, int translation=0); void Resize(int _width, int _height) ; + void SetTextureClamp(int clampmode); void Clean(bool all); diff --git a/src/gl/r_render/r_opengl.cpp b/src/gl/r_render/r_opengl.cpp index 938e399c..fd153ebd 100644 --- a/src/gl/r_render/r_opengl.cpp +++ b/src/gl/r_render/r_opengl.cpp @@ -869,9 +869,7 @@ static void APIENTRY SetTextureMode(int type) glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_PRIMARY_COLOR); glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR); - glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE); - glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_TEXTURE0); - glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA); + glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_MODULATE); } else if (type == TM_OPAQUE) { diff --git a/src/p_3dfloors.cpp b/src/p_3dfloors.cpp index ec22b38f..f4687c4a 100644 --- a/src/p_3dfloors.cpp +++ b/src/p_3dfloors.cpp @@ -328,7 +328,7 @@ void P_Recalculate3DFloors(sector_t * sector) unsigned pickindex; F3DFloor * clipped=NULL; fixed_t clipped_top; - fixed_t clipped_bottom; + fixed_t clipped_bottom=0; fixed_t maxheight, minheight; unsigned i, j; lightlist_t newlight; diff --git a/src/p_map.cpp b/src/p_map.cpp index fcbe0fba..5e4f15bf 100644 --- a/src/p_map.cpp +++ b/src/p_map.cpp @@ -738,7 +738,7 @@ bool PIT_CheckLine (line_t *ld) } } - fixed_t sx, sy; + fixed_t sx=0, sy=0; // set openrange, opentop, openbottom if ((((ld->frontsector->floorplane.a | ld->frontsector->floorplane.b) | @@ -768,16 +768,16 @@ bool PIT_CheckLine (line_t *ld) ld->backsector->floorplane.ic);*/ if (r <= 0) { - P_LineOpening (tmthing, ld, ld->v1->x, ld->v1->y, tmx, tmy); + P_LineOpening (tmthing, ld, sx=ld->v1->x, sy=ld->v1->y, tmx, tmy); } else if (r >= (1<<24)) { - P_LineOpening (tmthing, ld, ld->v2->x, ld->v2->y, tmthing->x, tmthing->y); + P_LineOpening (tmthing, ld, sx=ld->v2->x, sy=ld->v2->y, tmthing->x, tmthing->y); } else { - P_LineOpening (tmthing, ld, ld->v1->x + MulScale24 (r, ld->dx), - ld->v1->y + MulScale24 (r, ld->dy), tmx, tmy); + P_LineOpening (tmthing, ld, sx=ld->v1->x + MulScale24 (r, ld->dx), + sy=ld->v1->y + MulScale24 (r, ld->dy), tmx, tmy); } // the floorplane on both sides is identical with the current one diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 22a1bf39..37080a3b 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -1112,7 +1112,7 @@ void P_ExplodeMissile (AActor *mo, line_t *line, AActor *target) { // find a 3D-floor to stick to sector_t * backsector=sides[line->sidenum[side^1]].sector; - for(int i=0;ie->ffloors.Size();i++) + for(unsigned int i=0;ie->ffloors.Size();i++) { F3DFloor * rover=backsector->e->ffloors[i]; @@ -1897,7 +1897,7 @@ void P_ZMovement (AActor *mo) // [GrafZahl] This is a really ugly workaround... :( // But unless the collision code is completely rewritten it is the // only way to avoid problems caused by incorrect positioning info... - for(int i=0;iSector->e->ffloors.Size();i++) + for(unsigned int i=0;iSector->e->ffloors.Size();i++) { F3DFloor* rover=mo->Sector->e->ffloors[i]; @@ -3141,7 +3141,7 @@ bool AActor::UpdateWaterLevel (fixed_t oldz, bool dosplash) else { // Check 3D floors as well! - for(int i=0;ie->ffloors.Size();i++) + for(unsigned int i=0;ie->ffloors.Size();i++) { F3DFloor* rover=Sector->e->ffloors[i]; @@ -4375,7 +4375,7 @@ bool P_HitWater (AActor * thing, sector_t * sec, fixed_t z) // don't splash above the object else if (z>thing->z+(thing->height>>1)) return false; - for(int i=0;ie->ffloors.Size();i++) + for(unsigned int i=0;ie->ffloors.Size();i++) { F3DFloor * rover = sec->e->ffloors[i]; if (!(rover->flags & FF_EXISTS)) continue; @@ -4496,7 +4496,7 @@ bool P_HitFloor (AActor *thing) } // Check 3D floors - for(int i=0;im_sector->e->ffloors.Size();i++) + for(unsigned int i=0;im_sector->e->ffloors.Size();i++) { F3DFloor * rover = m->m_sector->e->ffloors[i]; if (!(rover->flags & FF_EXISTS)) continue; diff --git a/src/r_defs.h b/src/r_defs.h index 2bdeff76..a97cfceb 100644 --- a/src/r_defs.h +++ b/src/r_defs.h @@ -716,11 +716,11 @@ public: int GetWidth () { return Width; } int GetHeight () { return Height; } - int GetScaledWidth () { return DivScale16(Width, xScale); } - int GetScaledHeight () { return DivScale16(Height, yScale); } + int GetScaledWidth () { return ((Width<<16) + (xScale>>1)) / xScale; } + int GetScaledHeight () { return ((Height<<16) + (yScale>>1)) / yScale; } - int GetScaledLeftOffset () { return DivScale16(LeftOffset, xScale); } - int GetScaledTopOffset () { return DivScale16(TopOffset, yScale); } + int GetScaledLeftOffset () { return ((LeftOffset<<16) + (xScale>>1)) / xScale; } + int GetScaledTopOffset () { return ((TopOffset<<16) + (xScale>>1)) / xScale; } virtual void SetFrontSkyLayer(); diff --git a/src/r_draw.cpp b/src/r_draw.cpp index 9e3c4915..546aacf0 100644 --- a/src/r_draw.cpp +++ b/src/r_draw.cpp @@ -141,7 +141,7 @@ BYTE identitymap[256]; // Convert legacy render styles to flexible render styles. const FRenderStyle LegacyRenderStyles[STYLE_Count] = { - /* STYLE_None */ {{ STYLEOP_None, }}, + /* STYLE_None */ {{ STYLEOP_None, STYLEALPHA_Zero, STYLEALPHA_Zero, 0 }}, /* STYLE_Normal */ {{ STYLEOP_Add, STYLEALPHA_Src, STYLEALPHA_InvSrc, 0 }}, /* STYLE_Fuzzy */ {{ STYLEOP_Fuzz, STYLEALPHA_Src, STYLEALPHA_InvSrc, STYLEF_Alpha1 }}, /* STYLE_SoulTrans */ {{ STYLEOP_Add, STYLEALPHA_Src, STYLEALPHA_InvSrc, STYLEF_TransSoulsAlpha }}, diff --git a/src/win32/hardware.cpp b/src/win32/hardware.cpp index aaea829c..9b61b3d1 100644 --- a/src/win32/hardware.cpp +++ b/src/win32/hardware.cpp @@ -92,7 +92,7 @@ CUSTOM_CVAR (Int, vid_renderer, 1, CVAR_ARCHIVE | CVAR_GLOBALCONFIG | CVAR_NOINI Printf("Switching to OpenGL renderer...\n"); break; default: - Printf("Unknown renderer (%d). Falling back to software renderer...\n", vid_renderer); + Printf("Unknown renderer (%d). Falling back to software renderer...\n", *vid_renderer); self = 0; // make sure to actually switch to the software renderer break; } diff --git a/src/win32/win32gliface.h b/src/win32/win32gliface.h index e54d7c6c..25b14797 100644 --- a/src/win32/win32gliface.h +++ b/src/win32/win32gliface.h @@ -58,8 +58,8 @@ protected: width (inX), height (inY), bits (inBits), - realheight (inRealY), - refreshHz (inRefresh) + refreshHz (inRefresh), + realheight (inRealY) {} ModeInfo *next; int width, height, bits, refreshHz, realheight; @@ -132,4 +132,4 @@ protected: }; -#endif //__WIN32GLIFACE_H__ \ No newline at end of file +#endif //__WIN32GLIFACE_H__ diff --git a/tools/dehsupp/parse.c b/tools/dehsupp/parse.c index 93a50ab9..3c0de701 100644 --- a/tools/dehsupp/parse.c +++ b/tools/dehsupp/parse.c @@ -69,9 +69,7 @@ typedef union { int yy64; int yy133; } YYMINORTYPE; -#ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 -#endif #define ParseARG_SDECL #define ParseARG_PDECL #define ParseARG_FETCH @@ -132,80 +130,80 @@ typedef union { ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 170, 32, 25, 22, 24, 26, 23, 28, 27, 21, - /* 10 */ 56, 147, 101, 35, 83, 165, 17, 87, 108, 145, - /* 20 */ 137, 144, 57, 66, 77, 88, 99, 58, 101, 35, - /* 30 */ 92, 65, 98, 67, 167, 166, 164, 162, 161, 159, - /* 40 */ 158, 157, 156, 153, 152, 150, 25, 22, 24, 26, - /* 50 */ 23, 28, 27, 24, 26, 23, 28, 27, 29, 16, - /* 60 */ 25, 22, 24, 26, 23, 28, 27, 26, 23, 28, - /* 70 */ 27, 140, 31, 25, 22, 24, 26, 23, 28, 27, - /* 80 */ 33, 97, 80, 100, 151, 104, 72, 25, 22, 24, - /* 90 */ 26, 23, 28, 27, 22, 24, 26, 23, 28, 27, - /* 100 */ 32, 60, 63, 21, 53, 117, 111, 112, 113, 51, - /* 110 */ 17, 85, 46, 48, 169, 144, 9, 79, 31, 39, - /* 120 */ 75, 54, 84, 82, 73, 18, 76, 10, 38, 44, - /* 130 */ 155, 81, 47, 89, 93, 95, 28, 27, 106, 78, - /* 140 */ 91, 71, 30, 69, 52, 62, 19, 107, 102, 143, - /* 150 */ 258, 1, 59, 146, 168, 109, 142, 49, 4, 55, - /* 160 */ 103, 45, 41, 94, 8, 2, 5, 43, 114, 50, - /* 170 */ 42, 141, 96, 115, 116, 40, 37, 12, 34, 131, - /* 180 */ 118, 105, 36, 138, 163, 128, 121, 13, 15, 110, - /* 190 */ 20, 259, 119, 86, 139, 149, 126, 7, 148, 160, - /* 200 */ 136, 120, 90, 134, 130, 6, 135, 61, 124, 154, - /* 210 */ 122, 133, 64, 259, 259, 123, 129, 74, 11, 127, - /* 220 */ 70, 14, 3, 125, 259, 132, 68, + /* 0 */ 167, 166, 164, 162, 161, 159, 158, 157, 156, 153, + /* 10 */ 152, 150, 56, 22, 24, 26, 23, 28, 27, 87, + /* 20 */ 26, 23, 28, 27, 57, 66, 77, 88, 99, 147, + /* 30 */ 101, 35, 92, 65, 98, 67, 25, 22, 24, 26, + /* 40 */ 23, 28, 27, 24, 26, 23, 28, 27, 83, 97, + /* 50 */ 25, 22, 24, 26, 23, 28, 27, 60, 58, 101, + /* 60 */ 35, 108, 29, 16, 25, 22, 24, 26, 23, 28, + /* 70 */ 27, 100, 53, 117, 31, 140, 106, 25, 22, 24, + /* 80 */ 26, 23, 28, 27, 9, 44, 155, 73, 32, 104, + /* 90 */ 84, 25, 22, 24, 26, 23, 28, 27, 21, 21, + /* 100 */ 63, 48, 169, 85, 95, 17, 17, 52, 145, 137, + /* 110 */ 144, 144, 79, 111, 112, 113, 75, 39, 82, 54, + /* 120 */ 38, 93, 76, 18, 47, 10, 49, 91, 78, 81, + /* 130 */ 72, 89, 28, 27, 62, 80, 71, 30, 32, 31, + /* 140 */ 258, 1, 107, 102, 19, 69, 146, 168, 33, 143, + /* 150 */ 59, 151, 165, 109, 4, 142, 46, 55, 103, 94, + /* 160 */ 41, 8, 51, 45, 43, 2, 114, 50, 42, 141, + /* 170 */ 96, 40, 116, 105, 115, 12, 118, 13, 138, 37, + /* 180 */ 34, 36, 131, 163, 15, 121, 110, 128, 119, 20, + /* 190 */ 139, 149, 126, 5, 86, 160, 148, 136, 120, 7, + /* 200 */ 134, 135, 90, 259, 6, 130, 61, 124, 154, 122, + /* 210 */ 133, 64, 125, 259, 123, 129, 74, 11, 127, 70, + /* 220 */ 14, 3, 259, 259, 259, 132, 68, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 0, 51, 1, 2, 3, 4, 5, 6, 7, 4, - /* 10 */ 10, 49, 50, 51, 13, 65, 11, 17, 58, 14, - /* 20 */ 15, 16, 22, 23, 24, 25, 26, 49, 50, 51, - /* 30 */ 30, 31, 32, 33, 37, 38, 39, 40, 41, 42, - /* 40 */ 43, 44, 45, 46, 47, 48, 1, 2, 3, 4, - /* 50 */ 5, 6, 7, 3, 4, 5, 6, 7, 13, 13, - /* 60 */ 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, - /* 70 */ 7, 12, 51, 1, 2, 3, 4, 5, 6, 7, - /* 80 */ 51, 34, 34, 34, 63, 13, 34, 1, 2, 3, - /* 90 */ 4, 5, 6, 7, 2, 3, 4, 5, 6, 7, - /* 100 */ 51, 34, 34, 4, 57, 58, 27, 28, 29, 61, - /* 110 */ 11, 34, 60, 64, 65, 16, 13, 13, 51, 51, - /* 120 */ 13, 53, 19, 19, 34, 13, 19, 13, 51, 62, - /* 130 */ 63, 19, 55, 19, 13, 34, 6, 7, 21, 13, - /* 140 */ 19, 13, 13, 34, 54, 19, 13, 19, 19, 51, - /* 150 */ 35, 36, 19, 21, 20, 20, 51, 56, 13, 51, - /* 160 */ 19, 52, 51, 19, 18, 18, 11, 51, 20, 51, - /* 170 */ 51, 51, 19, 21, 20, 51, 51, 18, 51, 21, - /* 180 */ 20, 59, 51, 20, 20, 14, 21, 18, 18, 21, - /* 190 */ 13, 66, 20, 19, 21, 20, 20, 18, 12, 21, - /* 200 */ 20, 20, 19, 21, 20, 18, 21, 19, 14, 20, - /* 210 */ 20, 20, 19, 66, 66, 20, 20, 19, 18, 20, - /* 220 */ 19, 18, 18, 21, 66, 20, 19, + /* 0 */ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + /* 10 */ 47, 48, 10, 2, 3, 4, 5, 6, 7, 17, + /* 20 */ 4, 5, 6, 7, 22, 23, 24, 25, 26, 49, + /* 30 */ 50, 51, 30, 31, 32, 33, 1, 2, 3, 4, + /* 40 */ 5, 6, 7, 3, 4, 5, 6, 7, 13, 34, + /* 50 */ 1, 2, 3, 4, 5, 6, 7, 34, 49, 50, + /* 60 */ 51, 58, 13, 13, 1, 2, 3, 4, 5, 6, + /* 70 */ 7, 34, 57, 58, 51, 12, 21, 1, 2, 3, + /* 80 */ 4, 5, 6, 7, 13, 62, 63, 34, 51, 13, + /* 90 */ 19, 1, 2, 3, 4, 5, 6, 7, 4, 4, + /* 100 */ 34, 64, 65, 34, 34, 11, 11, 54, 14, 15, + /* 110 */ 16, 16, 13, 27, 28, 29, 13, 51, 19, 53, + /* 120 */ 51, 13, 19, 13, 55, 13, 56, 19, 13, 19, + /* 130 */ 34, 19, 6, 7, 19, 34, 13, 13, 51, 51, + /* 140 */ 35, 36, 19, 19, 13, 34, 21, 20, 51, 51, + /* 150 */ 19, 63, 65, 20, 13, 51, 60, 51, 19, 19, + /* 160 */ 51, 18, 61, 52, 51, 18, 20, 51, 51, 51, + /* 170 */ 19, 51, 20, 59, 21, 18, 20, 18, 20, 51, + /* 180 */ 51, 51, 21, 20, 18, 21, 21, 14, 20, 13, + /* 190 */ 21, 20, 20, 11, 19, 21, 12, 20, 20, 18, + /* 200 */ 21, 21, 19, 66, 18, 20, 19, 14, 20, 20, + /* 210 */ 20, 19, 21, 66, 20, 20, 19, 18, 20, 19, + /* 220 */ 18, 18, 66, 66, 66, 20, 19, }; #define YY_SHIFT_USE_DFLT (-1) #define YY_SHIFT_MAX 107 static const short yy_shift_ofst[] = { - /* 0 */ -1, 0, 99, 99, 5, 5, 99, 99, 117, 99, - /* 10 */ 99, 173, 171, 168, 165, 158, 99, 99, 99, 99, - /* 20 */ 79, 99, 99, 99, 99, 99, 99, 99, 99, 99, - /* 30 */ 117, 45, 1, 72, 59, 86, 86, 86, 86, 86, - /* 40 */ 86, 92, 50, 63, 103, 104, 107, 112, 114, 121, - /* 50 */ 130, 126, 128, 129, 133, 130, 155, 179, 186, 184, - /* 60 */ 188, 189, 191, 193, 196, 200, 203, 204, 205, 207, - /* 70 */ 199, 202, 201, 198, 195, 194, 190, 187, 185, 182, - /* 80 */ 183, 181, 180, 178, 175, 174, 172, 170, 169, 164, - /* 90 */ 163, 160, 159, 152, 154, 153, 148, 144, 147, 146, - /* 100 */ 141, 145, 135, 134, 132, 46, 177, 176, + /* 0 */ -1, 2, 95, 95, 94, 94, 95, 95, 55, 95, + /* 10 */ 95, 169, 173, 165, 164, 161, 95, 95, 95, 95, + /* 20 */ 86, 95, 95, 95, 95, 95, 95, 95, 95, 95, + /* 30 */ 55, 49, 35, 76, 63, 90, 90, 90, 90, 90, + /* 40 */ 90, 11, 40, 16, 71, 99, 103, 110, 112, 108, + /* 50 */ 126, 115, 123, 124, 131, 126, 182, 181, 184, 185, + /* 60 */ 187, 188, 190, 192, 195, 199, 202, 203, 205, 207, + /* 70 */ 198, 191, 200, 197, 194, 193, 189, 186, 180, 179, + /* 80 */ 183, 178, 177, 174, 171, 175, 168, 166, 159, 163, + /* 90 */ 158, 156, 157, 153, 152, 151, 146, 140, 147, 143, + /* 100 */ 139, 141, 133, 127, 125, 50, 176, 172, }; -#define YY_REDUCE_USE_DFLT (-51) +#define YY_REDUCE_USE_DFLT (-38) #define YY_REDUCE_MAX 30 static const short yy_reduce_ofst[] = { - /* 0 */ 115, -3, 67, 49, -38, -22, 77, 68, 47, 21, - /* 10 */ -50, 48, 52, 101, 90, 109, 131, 127, 125, 124, - /* 20 */ 122, 120, 119, 118, 116, 111, 108, 105, 98, 29, - /* 30 */ -40, + /* 0 */ 105, -37, 23, 37, -20, 9, 69, 66, 15, 88, + /* 10 */ 87, 101, 96, 70, 53, 111, 130, 129, 128, 120, + /* 20 */ 114, 118, 117, 116, 113, 109, 106, 104, 98, 97, + /* 30 */ 3, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 171, 257, 247, 253, 185, 185, 218, 208, 228, 257, + /* 0 */ 171, 170, 247, 253, 185, 185, 218, 208, 228, 257, /* 10 */ 257, 242, 237, 223, 213, 203, 257, 257, 257, 257, /* 20 */ 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, /* 30 */ 257, 257, 257, 257, 257, 189, 231, 220, 219, 209, @@ -490,42 +488,42 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){ ** which appear on the RHS of the rule, but which are not used ** inside the C code. */ - case 1: /* OR */ - case 2: /* XOR */ - case 3: /* AND */ - case 4: /* MINUS */ - case 5: /* PLUS */ - case 6: /* MULTIPLY */ - case 7: /* DIVIDE */ - case 8: /* NEG */ - case 9: /* EOI */ - case 10: /* PRINT */ - case 11: /* LPAREN */ - case 12: /* RPAREN */ - case 13: /* COMMA */ - case 14: /* STRING */ - case 15: /* ENDL */ - case 16: /* NUM */ - case 17: /* Actions */ - case 18: /* LBRACE */ - case 19: /* RBRACE */ - case 20: /* SEMICOLON */ - case 21: /* SYM */ - case 22: /* OrgHeights */ - case 23: /* ActionList */ - case 24: /* CodePConv */ - case 25: /* OrgSprNames */ - case 26: /* StateMap */ - case 27: /* FirstState */ - case 28: /* SpawnState */ - case 29: /* DeathState */ - case 30: /* SoundMap */ - case 31: /* InfoNames */ - case 32: /* ThingBits */ - case 33: /* RenderStyles */ + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: #line 10 "parse.y" { if ((yypminor->yy0).string) free((yypminor->yy0).string); } -#line 529 "parse.c" +#line 527 "parse.c" break; default: break; /* If no destructor action specified: do nothing */ } @@ -871,41 +869,7 @@ static void yy_reduce( ** #line ** break; */ - case 0: /* main ::= translation_unit */ - case 1: /*translation_unit ::= */ - case 2: /*translation_unit ::= translation_unit external_declaration */ - case 3: /*external_declaration ::= print_statement */ - case 4: /*external_declaration ::= actions_def */ - case 5: /*external_declaration ::= org_heights_def */ - case 6: /*external_declaration ::= action_list_def */ - case 7: /*external_declaration ::= codep_conv_def */ - case 8: /*external_declaration ::= org_spr_names_def */ - case 9: /*external_declaration ::= state_map_def */ - case 10: /*external_declaration ::= sound_map_def */ - case 11: /*external_declaration ::= info_names_def */ - case 12: /*external_declaration ::= thing_bits_def */ - case 13: /*external_declaration ::= render_styles_def */ - case 15: /*print_list ::= */ - case 16: /*print_list ::= print_item */ - case 33: /*actions_list ::= */ - case 38: /*org_heights_list ::= */ - case 43: /*action_list_list ::= */ - case 48: /*codep_conv_list ::= */ - case 53: /*org_spr_names_list ::= */ - case 58: /*state_map_list ::= */ - case 59: /*state_map_list ::= state_map_entry */ - case 67: /*sound_map_list ::= */ - case 72: /*info_names_list ::= */ - case 77: /*thing_bits_list ::= */ - case 78: /*thing_bits_list ::= thing_bits_entry */ - case 83: /*render_styles_list ::= */ - case 84: /*render_styles_list ::= render_styles_entry */ -#line 21 "parse.y" -{ -} -#line 907 "parse.c" - break; - case 14: /* print_statement ::= PRINT LPAREN print_list RPAREN */ + case 14: #line 39 "parse.y" { printf ("\n"); @@ -913,318 +877,198 @@ static void yy_reduce( yy_destructor(11,&yymsp[-2].minor); yy_destructor(12,&yymsp[0].minor); } -#line 917 "parse.c" +#line 881 "parse.c" break; - case 17: /* print_list ::= print_item COMMA print_list */ - case 60: /*state_map_list ::= state_map_list COMMA state_map_entry */ - case 79: /*thing_bits_list ::= thing_bits_list COMMA thing_bits_entry */ - case 85: /*render_styles_list ::= render_styles_list COMMA render_styles_entry */ -#line 45 "parse.y" -{ - yy_destructor(13,&yymsp[-1].minor); -} -#line 927 "parse.c" - break; - case 18: /* print_item ::= STRING */ + case 18: #line 47 "parse.y" { printf ("%s", yymsp[0].minor.yy0.string); } -#line 932 "parse.c" +#line 886 "parse.c" break; - case 19: /* print_item ::= exp */ + case 19: #line 48 "parse.y" { printf ("%d", yymsp[0].minor.yy64); } -#line 937 "parse.c" +#line 891 "parse.c" break; - case 20: /* print_item ::= ENDL */ + case 20: #line 49 "parse.y" { printf ("\n"); yy_destructor(15,&yymsp[0].minor); } -#line 943 "parse.c" +#line 897 "parse.c" break; - case 21: /* exp ::= NUM */ + case 21: #line 52 "parse.y" { yygotominor.yy64 = yymsp[0].minor.yy0.val; } -#line 948 "parse.c" +#line 902 "parse.c" break; - case 22: /* exp ::= exp PLUS exp */ + case 22: #line 53 "parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 + yymsp[0].minor.yy64; yy_destructor(5,&yymsp[-1].minor); } -#line 954 "parse.c" +#line 908 "parse.c" break; - case 23: /* exp ::= exp MINUS exp */ + case 23: #line 54 "parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 - yymsp[0].minor.yy64; yy_destructor(4,&yymsp[-1].minor); } -#line 960 "parse.c" +#line 914 "parse.c" break; - case 24: /* exp ::= exp MULTIPLY exp */ + case 24: #line 55 "parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 * yymsp[0].minor.yy64; yy_destructor(6,&yymsp[-1].minor); } -#line 966 "parse.c" +#line 920 "parse.c" break; - case 25: /* exp ::= exp DIVIDE exp */ + case 25: #line 56 "parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 / yymsp[0].minor.yy64; yy_destructor(7,&yymsp[-1].minor); } -#line 972 "parse.c" +#line 926 "parse.c" break; - case 26: /* exp ::= exp OR exp */ + case 26: #line 57 "parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 | yymsp[0].minor.yy64; yy_destructor(1,&yymsp[-1].minor); } -#line 978 "parse.c" +#line 932 "parse.c" break; - case 27: /* exp ::= exp AND exp */ + case 27: #line 58 "parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 & yymsp[0].minor.yy64; yy_destructor(3,&yymsp[-1].minor); } -#line 984 "parse.c" +#line 938 "parse.c" break; - case 28: /* exp ::= exp XOR exp */ + case 28: #line 59 "parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 ^ yymsp[0].minor.yy64; yy_destructor(2,&yymsp[-1].minor); } -#line 990 "parse.c" +#line 944 "parse.c" break; - case 29: /* exp ::= MINUS exp */ + case 29: #line 60 "parse.y" { yygotominor.yy64 = -yymsp[0].minor.yy64; yy_destructor(4,&yymsp[-1].minor); } -#line 996 "parse.c" +#line 950 "parse.c" break; - case 30: /* exp ::= LPAREN exp RPAREN */ + case 30: #line 61 "parse.y" { yygotominor.yy64 = yymsp[-1].minor.yy64; yy_destructor(11,&yymsp[-2].minor); yy_destructor(12,&yymsp[0].minor); } -#line 1003 "parse.c" +#line 957 "parse.c" break; - case 31: /* actions_def ::= Actions LBRACE actions_list RBRACE SEMICOLON */ - case 32: /*actions_def ::= Actions LBRACE error RBRACE SEMICOLON */ -#line 64 "parse.y" -{ - yy_destructor(17,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1014 "parse.c" - break; - case 34: /* actions_list ::= SYM */ + case 34: #line 68 "parse.y" { AddAction (yymsp[0].minor.yy0.string); } -#line 1019 "parse.c" +#line 962 "parse.c" break; - case 35: /* actions_list ::= actions_list COMMA SYM */ + case 35: #line 69 "parse.y" { AddAction (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); } -#line 1025 "parse.c" +#line 968 "parse.c" break; - case 36: /* org_heights_def ::= OrgHeights LBRACE org_heights_list RBRACE SEMICOLON */ - case 37: /*org_heights_def ::= OrgHeights LBRACE error RBRACE SEMICOLON */ -#line 72 "parse.y" -{ - yy_destructor(22,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1036 "parse.c" - break; - case 39: /* org_heights_list ::= exp */ + case 39: #line 76 "parse.y" { AddHeight (yymsp[0].minor.yy64); } -#line 1041 "parse.c" +#line 973 "parse.c" break; - case 40: /* org_heights_list ::= org_heights_list COMMA exp */ + case 40: #line 77 "parse.y" { AddHeight (yymsp[0].minor.yy64); yy_destructor(13,&yymsp[-1].minor); } -#line 1047 "parse.c" +#line 979 "parse.c" break; - case 41: /* action_list_def ::= ActionList LBRACE action_list_list RBRACE SEMICOLON */ - case 42: /*action_list_def ::= ActionList LBRACE error RBRACE SEMICOLON */ -#line 80 "parse.y" -{ - yy_destructor(23,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1058 "parse.c" - break; - case 44: /* action_list_list ::= SYM */ + case 44: #line 84 "parse.y" { AddActionMap (yymsp[0].minor.yy0.string); } -#line 1063 "parse.c" +#line 984 "parse.c" break; - case 45: /* action_list_list ::= action_list_list COMMA SYM */ + case 45: #line 85 "parse.y" { AddActionMap (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); } -#line 1069 "parse.c" +#line 990 "parse.c" break; - case 46: /* codep_conv_def ::= CodePConv LBRACE codep_conv_list RBRACE SEMICOLON */ - case 47: /*codep_conv_def ::= CodePConv LBRACE error RBRACE SEMICOLON */ -#line 88 "parse.y" -{ - yy_destructor(24,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1080 "parse.c" - break; - case 49: /* codep_conv_list ::= exp */ + case 49: #line 92 "parse.y" { AddCodeP (yymsp[0].minor.yy64); } -#line 1085 "parse.c" +#line 995 "parse.c" break; - case 50: /* codep_conv_list ::= codep_conv_list COMMA exp */ + case 50: #line 93 "parse.y" { AddCodeP (yymsp[0].minor.yy64); yy_destructor(13,&yymsp[-1].minor); } -#line 1091 "parse.c" +#line 1001 "parse.c" break; - case 51: /* org_spr_names_def ::= OrgSprNames LBRACE org_spr_names_list RBRACE SEMICOLON */ - case 52: /*org_spr_names_def ::= OrgSprNames LBRACE error RBRACE SEMICOLON */ -#line 96 "parse.y" -{ - yy_destructor(25,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1102 "parse.c" - break; - case 54: /* org_spr_names_list ::= SYM */ + case 54: #line 100 "parse.y" { AddSpriteName (yymsp[0].minor.yy0.string); } -#line 1107 "parse.c" +#line 1006 "parse.c" break; - case 55: /* org_spr_names_list ::= org_spr_names_list COMMA SYM */ + case 55: #line 101 "parse.y" { AddSpriteName (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); } -#line 1113 "parse.c" +#line 1012 "parse.c" break; - case 56: /* state_map_def ::= StateMap LBRACE state_map_list RBRACE SEMICOLON */ - case 57: /*state_map_def ::= StateMap LBRACE error RBRACE SEMICOLON */ -#line 104 "parse.y" -{ - yy_destructor(26,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1124 "parse.c" - break; - case 61: /* state_map_entry ::= SYM COMMA state_type COMMA exp */ + case 61: #line 111 "parse.y" { AddStateMap (yymsp[-4].minor.yy0.string, yymsp[-2].minor.yy64, yymsp[0].minor.yy64); yy_destructor(13,&yymsp[-3].minor); yy_destructor(13,&yymsp[-1].minor); } -#line 1131 "parse.c" +#line 1019 "parse.c" break; - case 62: /* state_type ::= FirstState */ + case 62: #line 114 "parse.y" { yygotominor.yy64 = 0; yy_destructor(27,&yymsp[0].minor); } -#line 1137 "parse.c" +#line 1025 "parse.c" break; - case 63: /* state_type ::= SpawnState */ + case 63: #line 115 "parse.y" { yygotominor.yy64 = 1; yy_destructor(28,&yymsp[0].minor); } -#line 1143 "parse.c" +#line 1031 "parse.c" break; - case 64: /* state_type ::= DeathState */ + case 64: #line 116 "parse.y" { yygotominor.yy64 = 2; yy_destructor(29,&yymsp[0].minor); } -#line 1149 "parse.c" +#line 1037 "parse.c" break; - case 65: /* sound_map_def ::= SoundMap LBRACE sound_map_list RBRACE SEMICOLON */ - case 66: /*sound_map_def ::= SoundMap LBRACE error RBRACE SEMICOLON */ -#line 119 "parse.y" -{ - yy_destructor(30,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1160 "parse.c" - break; - case 68: /* sound_map_list ::= STRING */ + case 68: #line 123 "parse.y" { AddSoundMap (yymsp[0].minor.yy0.string); } -#line 1165 "parse.c" +#line 1042 "parse.c" break; - case 69: /* sound_map_list ::= sound_map_list COMMA STRING */ + case 69: #line 124 "parse.y" { AddSoundMap (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); } -#line 1171 "parse.c" +#line 1048 "parse.c" break; - case 70: /* info_names_def ::= InfoNames LBRACE info_names_list RBRACE SEMICOLON */ - case 71: /*info_names_def ::= InfoNames LBRACE error RBRACE SEMICOLON */ -#line 127 "parse.y" -{ - yy_destructor(31,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1182 "parse.c" - break; - case 73: /* info_names_list ::= SYM */ + case 73: #line 131 "parse.y" { AddInfoName (yymsp[0].minor.yy0.string); } -#line 1187 "parse.c" +#line 1053 "parse.c" break; - case 74: /* info_names_list ::= info_names_list COMMA SYM */ + case 74: #line 132 "parse.y" { AddInfoName (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); } -#line 1193 "parse.c" +#line 1059 "parse.c" break; - case 75: /* thing_bits_def ::= ThingBits LBRACE thing_bits_list RBRACE SEMICOLON */ - case 76: /*thing_bits_def ::= ThingBits LBRACE error RBRACE SEMICOLON */ -#line 135 "parse.y" -{ - yy_destructor(32,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1204 "parse.c" - break; - case 80: /* thing_bits_entry ::= exp COMMA exp COMMA SYM */ + case 80: #line 142 "parse.y" { AddThingBits (yymsp[0].minor.yy0.string, yymsp[-4].minor.yy64, yymsp[-2].minor.yy64); yy_destructor(13,&yymsp[-3].minor); yy_destructor(13,&yymsp[-1].minor); } -#line 1211 "parse.c" +#line 1066 "parse.c" break; - case 81: /* render_styles_def ::= RenderStyles LBRACE render_styles_list RBRACE SEMICOLON */ - case 82: /*render_styles_def ::= RenderStyles LBRACE error RBRACE SEMICOLON */ -#line 145 "parse.y" -{ - yy_destructor(33,&yymsp[-4].minor); - yy_destructor(18,&yymsp[-3].minor); - yy_destructor(19,&yymsp[-1].minor); - yy_destructor(20,&yymsp[0].minor); -} -#line 1222 "parse.c" - break; - case 86: /* render_styles_entry ::= exp COMMA SYM */ + case 86: #line 152 "parse.y" { AddRenderStyle (yymsp[0].minor.yy0.string, yymsp[-2].minor.yy64); yy_destructor(13,&yymsp[-1].minor); } -#line 1228 "parse.c" +#line 1072 "parse.c" break; }; yygoto = yyRuleInfo[yyruleno].lhs; @@ -1284,7 +1128,7 @@ static void yy_syntax_error( #define TOKEN (yyminor.yy0) #line 8 "parse.y" yyerror("Syntax error"); -#line 1288 "parse.c" +#line 1132 "parse.c" ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } diff --git a/tools/xlatcc/xlat-parse.c b/tools/xlatcc/xlat-parse.c index 33504302..29489e00 100644 --- a/tools/xlatcc/xlat-parse.c +++ b/tools/xlatcc/xlat-parse.c @@ -410,16 +410,17 @@ typedef union { BoomArg yy65; ParseBoomArg yy87; SpecialArgs yy123; + int yy133; } YYMINORTYPE; -#ifndef YYSTACKDEPTH #define YYSTACKDEPTH 100 -#endif #define ParseARG_SDECL #define ParseARG_PDECL #define ParseARG_FETCH #define ParseARG_STORE #define YYNSTATE 174 #define YYNRULE 94 +#define YYERRORSYMBOL 38 +#define YYERRSYMDT yy133 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) @@ -472,126 +473,126 @@ typedef union { ** yy_default[] Default action for each state. */ static const YYACTIONTYPE yy_action[] = { - /* 0 */ 174, 30, 71, 123, 30, 70, 157, 152, 26, 157, - /* 10 */ 152, 26, 79, 144, 115, 83, 126, 80, 104, 166, - /* 20 */ 109, 64, 120, 128, 127, 6, 71, 102, 53, 154, - /* 30 */ 150, 164, 149, 148, 147, 146, 145, 100, 140, 16, - /* 40 */ 162, 39, 34, 37, 54, 32, 55, 41, 39, 34, - /* 50 */ 37, 54, 32, 55, 41, 49, 34, 37, 54, 32, - /* 60 */ 55, 41, 51, 11, 39, 34, 37, 54, 32, 55, - /* 70 */ 41, 39, 34, 37, 54, 32, 55, 41, 50, 37, - /* 80 */ 54, 32, 55, 41, 9, 44, 14, 39, 34, 37, - /* 90 */ 54, 32, 55, 41, 39, 34, 37, 54, 32, 55, - /* 100 */ 41, 45, 169, 170, 171, 172, 173, 81, 42, 151, - /* 110 */ 39, 34, 37, 54, 32, 55, 41, 54, 32, 55, - /* 120 */ 41, 136, 79, 39, 34, 37, 54, 32, 55, 41, - /* 130 */ 39, 34, 37, 54, 32, 55, 41, 39, 34, 37, - /* 140 */ 54, 32, 55, 41, 29, 56, 5, 124, 139, 23, - /* 150 */ 163, 20, 155, 39, 34, 37, 54, 32, 55, 41, - /* 160 */ 39, 34, 37, 54, 32, 55, 41, 39, 34, 37, - /* 170 */ 54, 32, 55, 41, 47, 56, 5, 153, 132, 114, - /* 180 */ 7, 19, 39, 34, 37, 54, 32, 55, 41, 39, - /* 190 */ 34, 37, 54, 32, 55, 41, 39, 34, 37, 54, - /* 200 */ 32, 55, 41, 167, 86, 24, 30, 82, 112, 114, - /* 210 */ 36, 157, 152, 26, 168, 101, 110, 39, 34, 37, - /* 220 */ 54, 32, 55, 41, 142, 106, 55, 41, 159, 86, - /* 230 */ 39, 34, 37, 54, 32, 55, 41, 39, 34, 37, - /* 240 */ 54, 32, 55, 41, 52, 64, 98, 128, 165, 108, - /* 250 */ 106, 21, 117, 39, 34, 37, 54, 32, 55, 41, - /* 260 */ 39, 34, 37, 54, 32, 55, 41, 25, 269, 1, - /* 270 */ 10, 82, 39, 34, 37, 54, 32, 55, 41, 4, - /* 280 */ 121, 68, 43, 122, 131, 39, 34, 37, 54, 32, - /* 290 */ 55, 41, 39, 34, 37, 54, 32, 55, 41, 18, - /* 300 */ 94, 130, 78, 27, 57, 35, 17, 60, 39, 34, - /* 310 */ 37, 54, 32, 55, 41, 39, 34, 37, 54, 32, - /* 320 */ 55, 41, 31, 39, 34, 37, 54, 32, 55, 41, - /* 330 */ 39, 34, 37, 54, 32, 55, 41, 33, 59, 30, - /* 340 */ 28, 13, 30, 107, 157, 152, 26, 157, 152, 26, - /* 350 */ 30, 141, 138, 30, 116, 157, 152, 26, 157, 152, - /* 360 */ 26, 30, 12, 125, 30, 84, 157, 152, 26, 157, - /* 370 */ 152, 26, 30, 137, 111, 119, 3, 157, 152, 26, - /* 380 */ 66, 15, 129, 133, 85, 103, 40, 62, 22, 61, - /* 390 */ 93, 135, 161, 158, 134, 87, 118, 143, 95, 38, - /* 400 */ 65, 2, 97, 46, 113, 48, 88, 156, 105, 67, - /* 410 */ 270, 96, 8, 69, 99, 91, 160, 270, 270, 72, - /* 420 */ 90, 74, 77, 76, 270, 270, 75, 270, 270, 270, - /* 430 */ 92, 270, 58, 73, 270, 89, 270, 63, + /* 0 */ 30, 54, 32, 55, 41, 157, 152, 26, 79, 144, + /* 10 */ 115, 71, 123, 80, 104, 70, 109, 64, 120, 128, + /* 20 */ 127, 6, 71, 102, 53, 154, 150, 164, 149, 148, + /* 30 */ 147, 146, 145, 100, 140, 16, 162, 39, 34, 37, + /* 40 */ 54, 32, 55, 41, 39, 34, 37, 54, 32, 55, + /* 50 */ 41, 49, 34, 37, 54, 32, 55, 41, 51, 11, + /* 60 */ 39, 34, 37, 54, 32, 55, 41, 39, 34, 37, + /* 70 */ 54, 32, 55, 41, 50, 37, 54, 32, 55, 41, + /* 80 */ 81, 44, 9, 39, 34, 37, 54, 32, 55, 41, + /* 90 */ 39, 34, 37, 54, 32, 55, 41, 45, 169, 170, + /* 100 */ 171, 172, 173, 14, 42, 151, 39, 34, 37, 54, + /* 110 */ 32, 55, 41, 163, 56, 5, 124, 136, 79, 39, + /* 120 */ 34, 37, 54, 32, 55, 41, 39, 34, 37, 54, + /* 130 */ 32, 55, 41, 39, 34, 37, 54, 32, 55, 41, + /* 140 */ 29, 56, 5, 153, 139, 23, 98, 20, 155, 39, + /* 150 */ 34, 37, 54, 32, 55, 41, 39, 34, 37, 54, + /* 160 */ 32, 55, 41, 39, 34, 37, 54, 32, 55, 41, + /* 170 */ 47, 117, 64, 4, 128, 165, 7, 19, 39, 34, + /* 180 */ 37, 54, 32, 55, 41, 39, 34, 37, 54, 32, + /* 190 */ 55, 41, 39, 34, 37, 54, 32, 55, 41, 167, + /* 200 */ 86, 24, 30, 82, 132, 114, 36, 157, 152, 26, + /* 210 */ 168, 101, 110, 39, 34, 37, 54, 32, 55, 41, + /* 220 */ 142, 106, 86, 43, 159, 68, 39, 34, 37, 54, + /* 230 */ 32, 55, 41, 39, 34, 37, 54, 32, 55, 41, + /* 240 */ 52, 131, 108, 106, 112, 114, 94, 21, 78, 39, + /* 250 */ 34, 37, 54, 32, 55, 41, 39, 34, 37, 54, + /* 260 */ 32, 55, 41, 25, 55, 41, 10, 82, 39, 34, + /* 270 */ 37, 54, 32, 55, 41, 130, 121, 27, 57, 122, + /* 280 */ 35, 39, 34, 37, 54, 32, 55, 41, 39, 34, + /* 290 */ 37, 54, 32, 55, 41, 18, 83, 28, 60, 59, + /* 300 */ 166, 13, 17, 84, 39, 34, 37, 54, 32, 55, + /* 310 */ 41, 39, 34, 37, 54, 32, 55, 41, 31, 39, + /* 320 */ 34, 37, 54, 32, 55, 41, 39, 34, 37, 54, + /* 330 */ 32, 55, 41, 33, 3, 30, 66, 15, 30, 107, + /* 340 */ 157, 152, 26, 157, 152, 26, 30, 141, 138, 30, + /* 350 */ 116, 157, 152, 26, 157, 152, 26, 30, 12, 125, + /* 360 */ 30, 40, 157, 152, 26, 157, 152, 26, 30, 137, + /* 370 */ 111, 119, 126, 157, 152, 26, 85, 30, 129, 269, + /* 380 */ 1, 103, 157, 152, 26, 22, 62, 133, 61, 93, + /* 390 */ 135, 161, 158, 134, 87, 143, 95, 38, 65, 2, + /* 400 */ 118, 97, 46, 48, 88, 156, 105, 67, 96, 113, + /* 410 */ 69, 99, 8, 91, 160, 72, 270, 270, 90, 74, + /* 420 */ 77, 76, 270, 270, 75, 270, 270, 270, 92, 58, + /* 430 */ 270, 73, 270, 89, 63, }; static const YYCODETYPE yy_lookahead[] = { - /* 0 */ 0, 4, 39, 40, 4, 39, 9, 10, 11, 9, - /* 10 */ 10, 11, 39, 13, 14, 39, 19, 39, 18, 43, - /* 20 */ 20, 39, 22, 41, 42, 25, 39, 40, 28, 51, - /* 30 */ 52, 53, 54, 55, 56, 57, 58, 64, 65, 61, - /* 40 */ 29, 1, 2, 3, 4, 5, 6, 7, 1, 2, - /* 50 */ 3, 4, 5, 6, 7, 15, 2, 3, 4, 5, - /* 60 */ 6, 7, 15, 44, 1, 2, 3, 4, 5, 6, - /* 70 */ 7, 1, 2, 3, 4, 5, 6, 7, 15, 3, - /* 80 */ 4, 5, 6, 7, 11, 15, 11, 1, 2, 3, - /* 90 */ 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, - /* 100 */ 7, 15, 30, 31, 32, 33, 34, 39, 15, 21, - /* 110 */ 1, 2, 3, 4, 5, 6, 7, 4, 5, 6, - /* 120 */ 7, 12, 39, 1, 2, 3, 4, 5, 6, 7, - /* 130 */ 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, - /* 140 */ 4, 5, 6, 7, 15, 45, 46, 47, 65, 27, - /* 150 */ 39, 15, 12, 1, 2, 3, 4, 5, 6, 7, - /* 160 */ 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, - /* 170 */ 4, 5, 6, 7, 15, 45, 46, 47, 62, 63, - /* 180 */ 28, 15, 1, 2, 3, 4, 5, 6, 7, 1, - /* 190 */ 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, - /* 200 */ 5, 6, 7, 24, 39, 24, 4, 39, 62, 63, - /* 210 */ 15, 9, 10, 11, 35, 27, 48, 1, 2, 3, - /* 220 */ 4, 5, 6, 7, 59, 60, 6, 7, 12, 39, - /* 230 */ 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, - /* 240 */ 4, 5, 6, 7, 15, 39, 39, 41, 42, 59, - /* 250 */ 60, 15, 19, 1, 2, 3, 4, 5, 6, 7, - /* 260 */ 1, 2, 3, 4, 5, 6, 7, 15, 49, 50, - /* 270 */ 11, 39, 1, 2, 3, 4, 5, 6, 7, 23, - /* 280 */ 48, 39, 15, 12, 12, 1, 2, 3, 4, 5, - /* 290 */ 6, 7, 1, 2, 3, 4, 5, 6, 7, 15, - /* 300 */ 39, 23, 39, 15, 39, 15, 15, 39, 1, 2, - /* 310 */ 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, - /* 320 */ 6, 7, 15, 1, 2, 3, 4, 5, 6, 7, - /* 330 */ 1, 2, 3, 4, 5, 6, 7, 15, 39, 4, - /* 340 */ 24, 11, 4, 29, 9, 10, 11, 9, 10, 11, - /* 350 */ 4, 16, 17, 4, 10, 9, 10, 11, 9, 10, - /* 360 */ 11, 4, 15, 19, 4, 39, 9, 10, 11, 9, - /* 370 */ 10, 11, 4, 26, 36, 37, 11, 9, 10, 11, - /* 380 */ 39, 15, 36, 21, 39, 36, 15, 39, 15, 39, - /* 390 */ 39, 12, 39, 36, 16, 39, 36, 12, 39, 11, - /* 400 */ 39, 15, 39, 11, 36, 15, 39, 12, 19, 39, - /* 410 */ 66, 39, 15, 39, 39, 39, 39, 66, 66, 39, - /* 420 */ 39, 39, 39, 39, 66, 66, 39, 66, 66, 66, - /* 430 */ 39, 66, 39, 39, 66, 39, 66, 39, + /* 0 */ 4, 4, 5, 6, 7, 9, 10, 11, 39, 13, + /* 10 */ 14, 39, 40, 39, 18, 39, 20, 39, 22, 41, + /* 20 */ 42, 25, 39, 40, 28, 51, 52, 53, 54, 55, + /* 30 */ 56, 57, 58, 64, 65, 61, 29, 1, 2, 3, + /* 40 */ 4, 5, 6, 7, 1, 2, 3, 4, 5, 6, + /* 50 */ 7, 15, 2, 3, 4, 5, 6, 7, 15, 44, + /* 60 */ 1, 2, 3, 4, 5, 6, 7, 1, 2, 3, + /* 70 */ 4, 5, 6, 7, 15, 3, 4, 5, 6, 7, + /* 80 */ 39, 15, 11, 1, 2, 3, 4, 5, 6, 7, + /* 90 */ 1, 2, 3, 4, 5, 6, 7, 15, 30, 31, + /* 100 */ 32, 33, 34, 11, 15, 21, 1, 2, 3, 4, + /* 110 */ 5, 6, 7, 39, 45, 46, 47, 12, 39, 1, + /* 120 */ 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, + /* 130 */ 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, + /* 140 */ 15, 45, 46, 47, 65, 27, 39, 15, 12, 1, + /* 150 */ 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, + /* 160 */ 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, + /* 170 */ 15, 19, 39, 23, 41, 42, 28, 15, 1, 2, + /* 180 */ 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, + /* 190 */ 6, 7, 1, 2, 3, 4, 5, 6, 7, 24, + /* 200 */ 39, 24, 4, 39, 62, 63, 15, 9, 10, 11, + /* 210 */ 35, 27, 48, 1, 2, 3, 4, 5, 6, 7, + /* 220 */ 59, 60, 39, 15, 12, 39, 1, 2, 3, 4, + /* 230 */ 5, 6, 7, 1, 2, 3, 4, 5, 6, 7, + /* 240 */ 15, 12, 59, 60, 62, 63, 39, 15, 39, 1, + /* 250 */ 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, + /* 260 */ 5, 6, 7, 15, 6, 7, 11, 39, 1, 2, + /* 270 */ 3, 4, 5, 6, 7, 23, 48, 15, 39, 12, + /* 280 */ 15, 1, 2, 3, 4, 5, 6, 7, 1, 2, + /* 290 */ 3, 4, 5, 6, 7, 15, 39, 24, 39, 39, + /* 300 */ 43, 11, 15, 39, 1, 2, 3, 4, 5, 6, + /* 310 */ 7, 1, 2, 3, 4, 5, 6, 7, 15, 1, + /* 320 */ 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, + /* 330 */ 5, 6, 7, 15, 11, 4, 39, 15, 4, 29, + /* 340 */ 9, 10, 11, 9, 10, 11, 4, 16, 17, 4, + /* 350 */ 10, 9, 10, 11, 9, 10, 11, 4, 15, 19, + /* 360 */ 4, 15, 9, 10, 11, 9, 10, 11, 4, 26, + /* 370 */ 36, 37, 19, 9, 10, 11, 39, 4, 36, 49, + /* 380 */ 50, 36, 9, 10, 11, 15, 39, 21, 39, 39, + /* 390 */ 12, 39, 36, 16, 39, 12, 39, 11, 39, 15, + /* 400 */ 36, 39, 11, 15, 39, 12, 19, 39, 39, 36, + /* 410 */ 39, 39, 15, 39, 39, 39, 66, 66, 39, 39, + /* 420 */ 39, 39, 66, 66, 39, 66, 66, 66, 39, 39, + /* 430 */ 66, 39, 66, 39, 39, }; -#define YY_SHIFT_USE_DFLT (-4) +#define YY_SHIFT_USE_DFLT (-5) #define YY_SHIFT_MAX 129 static const short yy_shift_ofst[] = { - /* 0 */ -4, 0, 335, 335, 72, 72, 202, 202, 202, 338, - /* 10 */ 338, 202, 202, 202, 202, 233, 233, 346, 349, 368, - /* 20 */ 357, -3, 360, 202, 202, 202, 202, 202, 202, 202, - /* 30 */ 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - /* 40 */ 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - /* 50 */ 202, 202, 202, 202, 202, 202, 179, 229, 40, 63, - /* 60 */ 70, 86, 93, 109, 122, 129, 136, 322, 314, 307, - /* 70 */ 291, 284, 271, 259, 252, 236, 47, 216, 195, 188, - /* 80 */ 181, 166, 159, 152, 329, 329, 329, 329, 329, 329, - /* 90 */ 329, 329, 329, 329, 329, 54, 76, 113, 220, 220, - /* 100 */ 347, 344, 395, 390, 389, 392, 386, 388, 385, 378, - /* 110 */ 379, 373, 362, 371, 366, 365, 330, 316, 290, 288, - /* 120 */ 278, 272, 256, 140, 88, 75, 73, 11, 397, 267, + /* 0 */ -5, -4, 331, 331, 68, 68, 198, 198, 198, 334, + /* 10 */ 334, 198, 198, 198, 198, 152, 152, 342, 345, 373, + /* 20 */ 356, 353, 364, 198, 198, 198, 198, 198, 198, 198, + /* 30 */ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + /* 40 */ 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + /* 50 */ 198, 198, 198, 198, 198, 198, 175, 225, 36, 59, + /* 60 */ 66, 82, 89, 105, 118, 125, 132, 318, 310, 303, + /* 70 */ 287, 280, 267, 255, 248, 232, 43, 212, 191, 184, + /* 80 */ 177, 162, 155, 148, 325, 325, 325, 325, 325, 325, + /* 90 */ 325, 325, 325, 325, 325, 50, 72, -3, 258, 258, + /* 100 */ 343, 340, 393, 388, 387, 391, 384, 386, 383, 377, + /* 110 */ 378, 370, 366, 346, 322, 323, 290, 273, 265, 262, + /* 120 */ 252, 229, 150, 136, 84, 92, 71, 7, 397, 208, }; -#define YY_REDUCE_USE_DFLT (-38) +#define YY_REDUCE_USE_DFLT (-32) #define YY_REDUCE_MAX 56 static const short yy_reduce_ofst[] = { - /* 0 */ 219, -22, 165, 190, 100, 130, -27, -18, 206, -37, - /* 10 */ -13, -24, 83, 168, 232, 116, 146, 68, -34, 341, - /* 20 */ 396, 394, 393, 391, 387, 384, 383, 382, 381, 380, - /* 30 */ 377, 376, 375, 374, 372, 370, 367, 363, 361, 359, - /* 40 */ 356, 353, 351, 350, 348, 345, 398, 326, 299, 268, - /* 50 */ 265, 263, 261, 242, 207, 111, 19, + /* 0 */ 330, -26, 161, 183, 69, 96, -31, -22, 133, -28, + /* 10 */ -17, 257, 79, 164, 228, 142, 182, 41, -24, 297, + /* 20 */ 394, 392, 390, 389, 385, 382, 381, 380, 379, 376, + /* 30 */ 375, 374, 372, 371, 369, 368, 365, 362, 359, 357, + /* 40 */ 355, 352, 350, 349, 347, 337, 395, 264, 260, 259, + /* 50 */ 239, 209, 207, 186, 107, 74, 15, }; static const YYACTIONTYPE yy_default[] = { - /* 0 */ 186, 268, 197, 197, 223, 223, 268, 268, 268, 238, + /* 0 */ 186, 174, 197, 197, 223, 223, 268, 268, 268, 238, /* 10 */ 238, 268, 268, 217, 217, 207, 207, 268, 268, 268, /* 20 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, /* 30 */ 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, @@ -1235,162 +1236,133 @@ static void yy_reduce( ** #line ** break; */ - case 0: /* main ::= translation_unit */ - case 12: /*translation_unit ::= */ - case 13: /*translation_unit ::= translation_unit external_declaration */ - case 14: /*external_declaration ::= define_statement */ - case 15: /*external_declaration ::= include_statement */ - case 16: /*external_declaration ::= print_statement */ - case 17: /*external_declaration ::= enum_statement */ - case 18: /*external_declaration ::= linetype_declaration */ - case 19: /*external_declaration ::= boom_declaration */ - case 20: /*external_declaration ::= special_declaration */ - case 21: /*external_declaration ::= NOP */ - case 23: /*print_list ::= */ - case 24: /*print_list ::= print_item */ - case 25: /*print_list ::= print_item COMMA print_list */ - case 31: /*enum_statement ::= enum_open enum_list RBRACE */ - case 33: /*enum_list ::= */ - case 34: /*enum_list ::= single_enum */ - case 35: /*enum_list ::= single_enum COMMA enum_list */ - case 38: /*special_declaration ::= SPECIAL special_list SEMICOLON */ - case 39: /*special_list ::= special_def */ - case 40: /*special_list ::= special_list COMMA special_def */ - case 43: /*maybe_argcount ::= */ - case 44: /*maybe_argcount ::= exp */ - case 45: /*maybe_argcount ::= exp COMMA exp */ -#line 365 "xlat-parse.y" -{ -} -#line 1266 "xlat-parse.c" - break; - case 1: /* exp ::= NUM */ + case 1: #line 367 "xlat-parse.y" { yygotominor.yy64 = yymsp[0].minor.yy0.val; } -#line 1271 "xlat-parse.c" +#line 1243 "xlat-parse.c" break; - case 2: /* exp ::= SYMNUM */ + case 2: #line 368 "xlat-parse.y" { yygotominor.yy64 = yymsp[0].minor.yy0.symval->Value; } -#line 1276 "xlat-parse.c" +#line 1248 "xlat-parse.c" break; - case 3: /* exp ::= exp PLUS exp */ + case 3: #line 369 "xlat-parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 + yymsp[0].minor.yy64; } -#line 1281 "xlat-parse.c" +#line 1253 "xlat-parse.c" break; - case 4: /* exp ::= exp MINUS exp */ + case 4: #line 370 "xlat-parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 - yymsp[0].minor.yy64; } -#line 1286 "xlat-parse.c" +#line 1258 "xlat-parse.c" break; - case 5: /* exp ::= exp MULTIPLY exp */ + case 5: #line 371 "xlat-parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 * yymsp[0].minor.yy64; } -#line 1291 "xlat-parse.c" +#line 1263 "xlat-parse.c" break; - case 6: /* exp ::= exp DIVIDE exp */ + case 6: #line 372 "xlat-parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 / yymsp[0].minor.yy64; } -#line 1296 "xlat-parse.c" +#line 1268 "xlat-parse.c" break; - case 7: /* exp ::= exp OR exp */ + case 7: #line 373 "xlat-parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 | yymsp[0].minor.yy64; } -#line 1301 "xlat-parse.c" +#line 1273 "xlat-parse.c" break; - case 8: /* exp ::= exp AND exp */ + case 8: #line 374 "xlat-parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 & yymsp[0].minor.yy64; } -#line 1306 "xlat-parse.c" +#line 1278 "xlat-parse.c" break; - case 9: /* exp ::= exp XOR exp */ + case 9: #line 375 "xlat-parse.y" { yygotominor.yy64 = yymsp[-2].minor.yy64 ^ yymsp[0].minor.yy64; } -#line 1311 "xlat-parse.c" +#line 1283 "xlat-parse.c" break; - case 10: /* exp ::= MINUS exp */ + case 10: #line 376 "xlat-parse.y" { yygotominor.yy64 = -yymsp[0].minor.yy64; } -#line 1316 "xlat-parse.c" +#line 1288 "xlat-parse.c" break; - case 11: /* exp ::= LPAREN exp RPAREN */ + case 11: #line 377 "xlat-parse.y" { yygotominor.yy64 = yymsp[-1].minor.yy64; } -#line 1321 "xlat-parse.c" +#line 1293 "xlat-parse.c" break; - case 22: /* print_statement ::= PRINT LPAREN print_list RPAREN */ + case 22: #line 392 "xlat-parse.y" { printf ("\n"); } -#line 1328 "xlat-parse.c" +#line 1300 "xlat-parse.c" break; - case 26: /* print_item ::= STRING */ + case 26: #line 400 "xlat-parse.y" { printf ("%s", yymsp[0].minor.yy0.string); } -#line 1333 "xlat-parse.c" +#line 1305 "xlat-parse.c" break; - case 27: /* print_item ::= exp */ + case 27: #line 401 "xlat-parse.y" { printf ("%d", yymsp[0].minor.yy64); } -#line 1338 "xlat-parse.c" +#line 1310 "xlat-parse.c" break; - case 28: /* print_item ::= ENDL */ + case 28: #line 402 "xlat-parse.y" { printf ("\n"); } -#line 1343 "xlat-parse.c" +#line 1315 "xlat-parse.c" break; - case 29: /* define_statement ::= DEFINE SYM LPAREN exp RPAREN */ + case 29: #line 405 "xlat-parse.y" { AddSym (yymsp[-3].minor.yy0.sym, yymsp[-1].minor.yy64); } -#line 1350 "xlat-parse.c" +#line 1322 "xlat-parse.c" break; - case 30: /* include_statement ::= INCLUDE STRING */ + case 30: #line 410 "xlat-parse.y" { IncludeFile (yymsp[0].minor.yy0.string); } -#line 1357 "xlat-parse.c" +#line 1329 "xlat-parse.c" break; - case 32: /* enum_open ::= ENUM LBRACE */ + case 32: #line 417 "xlat-parse.y" { EnumVal = 0; } -#line 1364 "xlat-parse.c" +#line 1336 "xlat-parse.c" break; - case 36: /* single_enum ::= SYM */ + case 36: #line 426 "xlat-parse.y" { AddSym (yymsp[0].minor.yy0.sym, EnumVal++); } -#line 1371 "xlat-parse.c" +#line 1343 "xlat-parse.c" break; - case 37: /* single_enum ::= SYM EQUALS exp */ + case 37: #line 431 "xlat-parse.y" { AddSym (yymsp[-2].minor.yy0.sym, EnumVal = yymsp[0].minor.yy64); } -#line 1378 "xlat-parse.c" +#line 1350 "xlat-parse.c" break; - case 41: /* special_def ::= exp COLON SYM LPAREN maybe_argcount RPAREN */ + case 41: #line 444 "xlat-parse.y" { AddSym (yymsp[-3].minor.yy0.sym, yymsp[-5].minor.yy64); } -#line 1385 "xlat-parse.c" +#line 1357 "xlat-parse.c" break; - case 42: /* special_def ::= exp COLON SYMNUM LPAREN maybe_argcount RPAREN */ + case 42: #line 448 "xlat-parse.y" { printf ("%s, line %d: %s is already defined\n", SourceName, SourceLine, yymsp[-3].minor.yy0.symval->Sym); } -#line 1392 "xlat-parse.c" +#line 1364 "xlat-parse.c" break; - case 46: /* linetype_declaration ::= exp EQUALS exp COMMA exp LPAREN special_args RPAREN */ + case 46: #line 457 "xlat-parse.y" { Simple[yymsp[-7].minor.yy64].NewSpecial = yymsp[-3].minor.yy64; @@ -1401,16 +1373,16 @@ static void yy_reduce( Simple[yymsp[-7].minor.yy64].Args[3] = yymsp[-1].minor.yy123.args[3]; Simple[yymsp[-7].minor.yy64].Args[4] = yymsp[-1].minor.yy123.args[4]; } -#line 1405 "xlat-parse.c" +#line 1377 "xlat-parse.c" break; - case 47: /* linetype_declaration ::= exp EQUALS exp COMMA SYM LPAREN special_args RPAREN */ + case 47: #line 467 "xlat-parse.y" { printf ("%s, line %d: %s is undefined\n", SourceName, SourceLine, yymsp[-3].minor.yy0.sym); } -#line 1412 "xlat-parse.c" +#line 1384 "xlat-parse.c" break; - case 48: /* boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE */ + case 48: #line 472 "xlat-parse.y" { if (NumBoomish == MAX_BOOMISH) @@ -1455,25 +1427,25 @@ static void yy_reduce( NumBoomish++; } } -#line 1459 "xlat-parse.c" +#line 1431 "xlat-parse.c" break; - case 49: /* boom_body ::= */ + case 49: #line 517 "xlat-parse.y" { yygotominor.yy57 = NULL; } -#line 1466 "xlat-parse.c" +#line 1438 "xlat-parse.c" break; - case 50: /* boom_body ::= boom_line boom_body */ + case 50: #line 521 "xlat-parse.y" { yygotominor.yy57 = malloc (sizeof(MoreLines)); yygotominor.yy57->next = yymsp[0].minor.yy57; yygotominor.yy57->arg = yymsp[-1].minor.yy65; } -#line 1475 "xlat-parse.c" +#line 1447 "xlat-parse.c" break; - case 51: /* boom_line ::= boom_selector boom_op boom_args */ + case 51: #line 528 "xlat-parse.y" { yygotominor.yy65.bDefined = 1; @@ -1506,102 +1478,102 @@ static void yy_reduce( yygotominor.yy65.ListSize = i > 15 ? 15 : i; } } -#line 1510 "xlat-parse.c" +#line 1482 "xlat-parse.c" break; - case 52: /* boom_selector ::= FLAGS */ + case 52: #line 560 "xlat-parse.y" { yygotominor.yy64 = 4; } -#line 1515 "xlat-parse.c" +#line 1487 "xlat-parse.c" break; - case 53: /* boom_selector ::= ARG2 */ + case 53: #line 561 "xlat-parse.y" { yygotominor.yy64 = 0; } -#line 1520 "xlat-parse.c" +#line 1492 "xlat-parse.c" break; - case 54: /* boom_selector ::= ARG3 */ + case 54: #line 562 "xlat-parse.y" { yygotominor.yy64 = 1; } -#line 1525 "xlat-parse.c" +#line 1497 "xlat-parse.c" break; - case 55: /* boom_selector ::= ARG4 */ + case 55: #line 563 "xlat-parse.y" { yygotominor.yy64 = 2; } -#line 1530 "xlat-parse.c" +#line 1502 "xlat-parse.c" break; - case 56: /* boom_selector ::= ARG5 */ + case 56: #line 564 "xlat-parse.y" { yygotominor.yy64 = 3; } -#line 1535 "xlat-parse.c" +#line 1507 "xlat-parse.c" break; - case 57: /* boom_op ::= EQUALS */ + case 57: #line 566 "xlat-parse.y" { yygotominor.yy64 = '='; } -#line 1540 "xlat-parse.c" +#line 1512 "xlat-parse.c" break; - case 58: /* boom_op ::= OR_EQUAL */ + case 58: #line 567 "xlat-parse.y" { yygotominor.yy64 = OR_EQUAL; } -#line 1545 "xlat-parse.c" +#line 1517 "xlat-parse.c" break; - case 59: /* boom_args ::= exp */ + case 59: #line 570 "xlat-parse.y" { yygotominor.yy87.constant = yymsp[0].minor.yy64; yygotominor.yy87.filters = NULL; } -#line 1553 "xlat-parse.c" +#line 1525 "xlat-parse.c" break; - case 60: /* boom_args ::= exp LBRACKET arg_list RBRACKET */ + case 60: #line 575 "xlat-parse.y" { yygotominor.yy87.mask = yymsp[-3].minor.yy64; yygotominor.yy87.filters = yymsp[-1].minor.yy39; } -#line 1561 "xlat-parse.c" +#line 1533 "xlat-parse.c" break; - case 61: /* arg_list ::= list_val */ + case 61: #line 581 "xlat-parse.y" { yygotominor.yy39 = malloc (sizeof(MoreFilters)); yygotominor.yy39->next = NULL; yygotominor.yy39->filter = yymsp[0].minor.yy20; } -#line 1570 "xlat-parse.c" +#line 1542 "xlat-parse.c" break; - case 62: /* arg_list ::= list_val COMMA arg_list */ + case 62: #line 587 "xlat-parse.y" { yygotominor.yy39 = malloc (sizeof(MoreFilters)); yygotominor.yy39->next = yymsp[0].minor.yy39; yygotominor.yy39->filter = yymsp[-2].minor.yy20; } -#line 1579 "xlat-parse.c" +#line 1551 "xlat-parse.c" break; - case 63: /* list_val ::= exp COLON exp */ + case 63: #line 594 "xlat-parse.y" { yygotominor.yy20.filter = yymsp[-2].minor.yy64; yygotominor.yy20.value = yymsp[0].minor.yy64; } -#line 1587 "xlat-parse.c" +#line 1559 "xlat-parse.c" break; - case 64: /* special_args ::= */ + case 64: #line 600 "xlat-parse.y" { yygotominor.yy123.addflags = 0; memset (yygotominor.yy123.args, 0, 5); } -#line 1595 "xlat-parse.c" +#line 1567 "xlat-parse.c" break; - case 65: /* special_args ::= TAG */ + case 65: #line 605 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT1; memset (yygotominor.yy123.args, 0, 5); } -#line 1603 "xlat-parse.c" +#line 1575 "xlat-parse.c" break; - case 66: /* special_args ::= TAG COMMA exp */ + case 66: #line 610 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT1; @@ -1611,9 +1583,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1615 "xlat-parse.c" +#line 1587 "xlat-parse.c" break; - case 67: /* special_args ::= TAG COMMA exp COMMA exp */ + case 67: #line 619 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT1; @@ -1623,9 +1595,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1627 "xlat-parse.c" +#line 1599 "xlat-parse.c" break; - case 68: /* special_args ::= TAG COMMA exp COMMA exp COMMA exp */ + case 68: #line 628 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT1; @@ -1635,9 +1607,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[0].minor.yy64; yygotominor.yy123.args[4] = 0; } -#line 1639 "xlat-parse.c" +#line 1611 "xlat-parse.c" break; - case 69: /* special_args ::= TAG COMMA exp COMMA exp COMMA exp COMMA exp */ + case 69: #line 637 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT1; @@ -1647,9 +1619,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[-2].minor.yy64; yygotominor.yy123.args[4] = yymsp[0].minor.yy64; } -#line 1651 "xlat-parse.c" +#line 1623 "xlat-parse.c" break; - case 70: /* special_args ::= TAG COMMA TAG */ + case 70: #line 646 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HAS2TAGS; @@ -1658,9 +1630,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1662 "xlat-parse.c" +#line 1634 "xlat-parse.c" break; - case 71: /* special_args ::= TAG COMMA TAG COMMA exp */ + case 71: #line 654 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HAS2TAGS; @@ -1669,9 +1641,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1673 "xlat-parse.c" +#line 1645 "xlat-parse.c" break; - case 72: /* special_args ::= TAG COMMA TAG COMMA exp COMMA exp */ + case 72: #line 662 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HAS2TAGS; @@ -1680,9 +1652,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[0].minor.yy64; yygotominor.yy123.args[4] = 0; } -#line 1684 "xlat-parse.c" +#line 1656 "xlat-parse.c" break; - case 73: /* special_args ::= TAG COMMA TAG COMMA exp COMMA exp COMMA exp */ + case 73: #line 670 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HAS2TAGS; @@ -1691,17 +1663,17 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[-2].minor.yy64; yygotominor.yy123.args[4] = yymsp[0].minor.yy64; } -#line 1695 "xlat-parse.c" +#line 1667 "xlat-parse.c" break; - case 74: /* special_args ::= LINEID */ + case 74: #line 678 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASLINEID; memset (yygotominor.yy123.args, 0, 5); } -#line 1703 "xlat-parse.c" +#line 1675 "xlat-parse.c" break; - case 75: /* special_args ::= LINEID COMMA exp */ + case 75: #line 683 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASLINEID; @@ -1711,9 +1683,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1715 "xlat-parse.c" +#line 1687 "xlat-parse.c" break; - case 76: /* special_args ::= LINEID COMMA exp COMMA exp */ + case 76: #line 692 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASLINEID; @@ -1723,9 +1695,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1727 "xlat-parse.c" +#line 1699 "xlat-parse.c" break; - case 77: /* special_args ::= LINEID COMMA exp COMMA exp COMMA exp */ + case 77: #line 701 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASLINEID; @@ -1735,9 +1707,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[0].minor.yy64; yygotominor.yy123.args[4] = 0; } -#line 1739 "xlat-parse.c" +#line 1711 "xlat-parse.c" break; - case 78: /* special_args ::= LINEID COMMA exp COMMA exp COMMA exp COMMA exp */ + case 78: #line 710 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASLINEID; @@ -1747,9 +1719,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[-2].minor.yy64; yygotominor.yy123.args[4] = yymsp[0].minor.yy64; } -#line 1751 "xlat-parse.c" +#line 1723 "xlat-parse.c" break; - case 79: /* special_args ::= exp */ + case 79: #line 719 "xlat-parse.y" { yygotominor.yy123.addflags = 0; @@ -1759,9 +1731,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1763 "xlat-parse.c" +#line 1735 "xlat-parse.c" break; - case 80: /* special_args ::= exp COMMA exp */ + case 80: #line 728 "xlat-parse.y" { yygotominor.yy123.addflags = 0; @@ -1771,9 +1743,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1775 "xlat-parse.c" +#line 1747 "xlat-parse.c" break; - case 81: /* special_args ::= exp COMMA exp COMMA exp */ + case 81: #line 737 "xlat-parse.y" { yygotominor.yy123.addflags = 0; @@ -1783,9 +1755,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1787 "xlat-parse.c" +#line 1759 "xlat-parse.c" break; - case 82: /* special_args ::= exp COMMA exp COMMA exp COMMA exp */ + case 82: #line 746 "xlat-parse.y" { yygotominor.yy123.addflags = 0; @@ -1795,9 +1767,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[0].minor.yy64; yygotominor.yy123.args[4] = 0; } -#line 1799 "xlat-parse.c" +#line 1771 "xlat-parse.c" break; - case 83: /* special_args ::= exp COMMA exp COMMA exp COMMA exp COMMA exp */ + case 83: #line 755 "xlat-parse.y" { yygotominor.yy123.addflags = 0; @@ -1807,9 +1779,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[-2].minor.yy64; yygotominor.yy123.args[4] = yymsp[0].minor.yy64; } -#line 1811 "xlat-parse.c" +#line 1783 "xlat-parse.c" break; - case 84: /* special_args ::= exp COMMA TAG */ + case 84: #line 764 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT2; @@ -1819,9 +1791,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1823 "xlat-parse.c" +#line 1795 "xlat-parse.c" break; - case 85: /* special_args ::= exp COMMA TAG COMMA exp */ + case 85: #line 773 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT2; @@ -1831,9 +1803,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1835 "xlat-parse.c" +#line 1807 "xlat-parse.c" break; - case 86: /* special_args ::= exp COMMA TAG COMMA exp COMMA exp */ + case 86: #line 782 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT2; @@ -1843,9 +1815,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[0].minor.yy64; yygotominor.yy123.args[4] = 0; } -#line 1847 "xlat-parse.c" +#line 1819 "xlat-parse.c" break; - case 87: /* special_args ::= exp COMMA TAG COMMA exp COMMA exp COMMA exp */ + case 87: #line 791 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT2; @@ -1855,9 +1827,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[-2].minor.yy64; yygotominor.yy123.args[4] = yymsp[0].minor.yy64; } -#line 1859 "xlat-parse.c" +#line 1831 "xlat-parse.c" break; - case 88: /* special_args ::= exp COMMA exp COMMA TAG */ + case 88: #line 800 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT3; @@ -1867,9 +1839,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1871 "xlat-parse.c" +#line 1843 "xlat-parse.c" break; - case 89: /* special_args ::= exp COMMA exp COMMA TAG COMMA exp */ + case 89: #line 809 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT3; @@ -1879,9 +1851,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[0].minor.yy64; yygotominor.yy123.args[4] = 0; } -#line 1883 "xlat-parse.c" +#line 1855 "xlat-parse.c" break; - case 90: /* special_args ::= exp COMMA exp COMMA TAG COMMA exp COMMA exp */ + case 90: #line 818 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT3; @@ -1891,9 +1863,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[-2].minor.yy64; yygotominor.yy123.args[4] = yymsp[0].minor.yy64; } -#line 1895 "xlat-parse.c" +#line 1867 "xlat-parse.c" break; - case 91: /* special_args ::= exp COMMA exp COMMA exp COMMA TAG */ + case 91: #line 827 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT4; @@ -1903,9 +1875,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = 0; } -#line 1907 "xlat-parse.c" +#line 1879 "xlat-parse.c" break; - case 92: /* special_args ::= exp COMMA exp COMMA exp COMMA TAG COMMA exp */ + case 92: #line 836 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT4; @@ -1915,9 +1887,9 @@ static void yy_reduce( yygotominor.yy123.args[3] = 0; yygotominor.yy123.args[4] = yymsp[0].minor.yy64; } -#line 1919 "xlat-parse.c" +#line 1891 "xlat-parse.c" break; - case 93: /* special_args ::= exp COMMA exp COMMA exp COMMA exp COMMA TAG */ + case 93: #line 845 "xlat-parse.y" { yygotominor.yy123.addflags = SIMPLE_HASTAGAT5; @@ -1927,7 +1899,7 @@ static void yy_reduce( yygotominor.yy123.args[3] = yymsp[-2].minor.yy64; yygotominor.yy123.args[4] = 0; } -#line 1931 "xlat-parse.c" +#line 1903 "xlat-parse.c" break; }; yygoto = yyRuleInfo[yyruleno].lhs; @@ -1987,7 +1959,7 @@ static void yy_syntax_error( #define TOKEN (yyminor.yy0) #line 345 "xlat-parse.y" yyerror("syntax error"); -#line 1991 "xlat-parse.c" +#line 1963 "xlat-parse.c" ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ } diff --git a/tools/xlatcc/xlat-parse.out b/tools/xlatcc/xlat-parse.out index 1c1ace39..4c7cb44a 100644 --- a/tools/xlatcc/xlat-parse.out +++ b/tools/xlatcc/xlat-parse.out @@ -1,5 +1,14 @@ State 0: main ::= * translation_unit + (12) translation_unit ::= * + translation_unit ::= * translation_unit external_declaration + + main accept + translation_unit shift 1 + {default} reduce 12 + +State 1: + (0) main ::= translation_unit * exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -11,8 +20,7 @@ exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - (12) translation_unit ::= * - translation_unit ::= * external_declaration + translation_unit ::= translation_unit * external_declaration external_declaration ::= * define_statement external_declaration ::= * include_statement external_declaration ::= * print_statement @@ -20,6 +28,7 @@ external_declaration ::= * linetype_declaration external_declaration ::= * boom_declaration external_declaration ::= * special_declaration + external_declaration ::= * NOP print_statement ::= * PRINT LPAREN print_list RPAREN define_statement ::= * DEFINE SYM LPAREN exp RPAREN include_statement ::= * INCLUDE STRING @@ -31,59 +40,27 @@ boom_declaration ::= * LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - PRINT shift 127 - DEFINE shift 102 - INCLUDE shift 108 - ENUM shift 119 - SPECIAL shift 5 - LBRACKET shift 22 - exp shift 65 - main accept - translation_unit shift 163 - external_declaration shift 160 - define_statement shift 149 - include_statement shift 148 - print_statement shift 147 - enum_statement shift 146 - linetype_declaration shift 145 - boom_declaration shift 144 - special_declaration shift 143 - enum_open shift 14 - {default} reduce 12 - -State 1: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - (22) print_list ::= * - print_list ::= * print_item - print_list ::= * print_item COMMA print_list - print_list ::= print_item COMMA * print_list - print_item ::= * STRING - print_item ::= * exp - print_item ::= * ENDL - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - STRING shift 140 - ENDL shift 137 - exp shift 88 - print_list shift 141 - print_item shift 104 - {default} reduce 22 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + NOP shift 144 + PRINT shift 115 + DEFINE shift 104 + INCLUDE shift 109 + ENUM shift 120 + SPECIAL shift 6 + LBRACKET shift 53 + exp shift 80 + external_declaration shift 154 + define_statement shift 150 + include_statement shift 164 + print_statement shift 149 + enum_statement shift 148 + linetype_declaration shift 147 + boom_declaration shift 146 + special_declaration shift 145 + enum_open shift 16 + {default} reduce 0 State 2: exp ::= * NUM @@ -97,8 +74,39 @@ State 2: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN + (23) print_list ::= * + print_list ::= * print_item + print_list ::= * print_item COMMA print_list + print_list ::= print_item COMMA * print_list + print_item ::= * STRING + print_item ::= * exp + print_item ::= * ENDL + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + STRING shift 141 + ENDL shift 138 + exp shift 86 + print_list shift 142 + print_item shift 106 + {default} reduce 23 + +State 3: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN print_statement ::= PRINT LPAREN * print_list RPAREN - (22) print_list ::= * + (23) print_list ::= * print_list ::= * print_item print_list ::= * print_item COMMA print_list print_item ::= * STRING @@ -106,19 +114,19 @@ State 2: print_item ::= * ENDL MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - STRING shift 140 - ENDL shift 137 - exp shift 88 - print_list shift 110 - print_item shift 104 - {default} reduce 22 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + STRING shift 141 + ENDL shift 138 + exp shift 86 + print_list shift 108 + print_item shift 106 + {default} reduce 23 -State 3: +State 4: boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE * boom_body RBRACE - (48) boom_body ::= * + (49) boom_body ::= * boom_body ::= * boom_line boom_body boom_line ::= * boom_selector boom_op boom_args boom_selector ::= * FLAGS @@ -127,18 +135,18 @@ State 3: boom_selector ::= * ARG4 boom_selector ::= * ARG5 - FLAGS shift 168 - ARG2 shift 169 - ARG3 shift 170 - ARG4 shift 171 - ARG5 shift 172 - boom_selector shift 55 - boom_line shift 4 - boom_body shift 101 - {default} reduce 48 + FLAGS shift 169 + ARG2 shift 170 + ARG3 shift 171 + ARG4 shift 172 + ARG5 shift 173 + boom_selector shift 56 + boom_line shift 5 + boom_body shift 124 + {default} reduce 49 -State 4: - (48) boom_body ::= * +State 5: + (49) boom_body ::= * boom_body ::= * boom_line boom_body boom_body ::= boom_line * boom_body boom_line ::= * boom_selector boom_op boom_args @@ -148,17 +156,17 @@ State 4: boom_selector ::= * ARG4 boom_selector ::= * ARG5 - FLAGS shift 168 - ARG2 shift 169 - ARG3 shift 170 - ARG4 shift 171 - ARG5 shift 172 - boom_selector shift 55 - boom_line shift 4 - boom_body shift 152 - {default} reduce 48 + FLAGS shift 169 + ARG2 shift 170 + ARG3 shift 171 + ARG4 shift 172 + ARG5 shift 173 + boom_selector shift 56 + boom_line shift 5 + boom_body shift 153 + {default} reduce 49 -State 5: +State 6: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -177,14 +185,14 @@ State 5: special_def ::= * exp COLON SYMNUM LPAREN maybe_argcount RPAREN MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 66 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 79 special_list shift 100 - special_def shift 139 + special_def shift 140 -State 6: +State 7: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -202,14 +210,14 @@ State 6: list_val ::= * exp COLON exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 80 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 64 list_val shift 128 - arg_list shift 107 + arg_list shift 127 -State 7: +State 8: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -227,66 +235,12 @@ State 7: list_val ::= * exp COLON exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 80 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 64 list_val shift 128 - arg_list shift 164 - -State 8: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - linetype_declaration ::= exp EQUALS exp COMMA SYM LPAREN * special_args RPAREN - (63) special_args ::= * - special_args ::= * TAG - special_args ::= * TAG COMMA exp - special_args ::= * TAG COMMA exp COMMA exp - special_args ::= * TAG COMMA exp COMMA exp COMMA exp - special_args ::= * TAG COMMA exp COMMA exp COMMA exp COMMA exp - special_args ::= * TAG COMMA TAG - special_args ::= * TAG COMMA TAG COMMA exp - special_args ::= * TAG COMMA TAG COMMA exp COMMA exp - special_args ::= * TAG COMMA TAG COMMA exp COMMA exp COMMA exp - special_args ::= * LINEID - special_args ::= * LINEID COMMA exp - special_args ::= * LINEID COMMA exp COMMA exp - special_args ::= * LINEID COMMA exp COMMA exp COMMA exp - special_args ::= * LINEID COMMA exp COMMA exp COMMA exp COMMA exp - special_args ::= * exp - special_args ::= * exp COMMA exp - special_args ::= * exp COMMA exp COMMA exp - special_args ::= * exp COMMA exp COMMA exp COMMA exp - special_args ::= * exp COMMA exp COMMA exp COMMA exp COMMA exp - special_args ::= * exp COMMA TAG - special_args ::= * exp COMMA TAG COMMA exp - special_args ::= * exp COMMA TAG COMMA exp COMMA exp - special_args ::= * exp COMMA TAG COMMA exp COMMA exp COMMA exp - special_args ::= * exp COMMA exp COMMA TAG - special_args ::= * exp COMMA exp COMMA TAG COMMA exp - special_args ::= * exp COMMA exp COMMA TAG COMMA exp COMMA exp - special_args ::= * exp COMMA exp COMMA exp COMMA TAG - special_args ::= * exp COMMA exp COMMA exp COMMA TAG COMMA exp - special_args ::= * exp COMMA exp COMMA exp COMMA exp COMMA TAG - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - TAG shift 114 - LINEID shift 126 - exp shift 77 - special_args shift 106 - {default} reduce 63 + arg_list shift 165 State 9: exp ::= * NUM @@ -300,8 +254,8 @@ State 9: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - linetype_declaration ::= exp EQUALS exp COMMA exp LPAREN * special_args RPAREN - (63) special_args ::= * + linetype_declaration ::= exp EQUALS exp COMMA SYM LPAREN * special_args RPAREN + (64) special_args ::= * special_args ::= * TAG special_args ::= * TAG COMMA exp special_args ::= * TAG COMMA exp COMMA exp @@ -333,16 +287,70 @@ State 9: special_args ::= * exp COMMA exp COMMA exp COMMA exp COMMA TAG MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - TAG shift 114 - LINEID shift 126 - exp shift 77 - special_args shift 117 - {default} reduce 63 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + TAG shift 111 + LINEID shift 119 + exp shift 71 + special_args shift 123 + {default} reduce 64 State 10: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + linetype_declaration ::= exp EQUALS exp COMMA exp LPAREN * special_args RPAREN + (64) special_args ::= * + special_args ::= * TAG + special_args ::= * TAG COMMA exp + special_args ::= * TAG COMMA exp COMMA exp + special_args ::= * TAG COMMA exp COMMA exp COMMA exp + special_args ::= * TAG COMMA exp COMMA exp COMMA exp COMMA exp + special_args ::= * TAG COMMA TAG + special_args ::= * TAG COMMA TAG COMMA exp + special_args ::= * TAG COMMA TAG COMMA exp COMMA exp + special_args ::= * TAG COMMA TAG COMMA exp COMMA exp COMMA exp + special_args ::= * LINEID + special_args ::= * LINEID COMMA exp + special_args ::= * LINEID COMMA exp COMMA exp + special_args ::= * LINEID COMMA exp COMMA exp COMMA exp + special_args ::= * LINEID COMMA exp COMMA exp COMMA exp COMMA exp + special_args ::= * exp + special_args ::= * exp COMMA exp + special_args ::= * exp COMMA exp COMMA exp + special_args ::= * exp COMMA exp COMMA exp COMMA exp + special_args ::= * exp COMMA exp COMMA exp COMMA exp COMMA exp + special_args ::= * exp COMMA TAG + special_args ::= * exp COMMA TAG COMMA exp + special_args ::= * exp COMMA TAG COMMA exp COMMA exp + special_args ::= * exp COMMA TAG COMMA exp COMMA exp COMMA exp + special_args ::= * exp COMMA exp COMMA TAG + special_args ::= * exp COMMA exp COMMA TAG COMMA exp + special_args ::= * exp COMMA exp COMMA TAG COMMA exp COMMA exp + special_args ::= * exp COMMA exp COMMA exp COMMA TAG + special_args ::= * exp COMMA exp COMMA exp COMMA TAG COMMA exp + special_args ::= * exp COMMA exp COMMA exp COMMA exp COMMA TAG + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + TAG shift 111 + LINEID shift 119 + exp shift 71 + special_args shift 102 + {default} reduce 64 + +State 11: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -359,36 +367,11 @@ State 10: boom_args ::= * exp LBRACKET arg_list RBRACKET MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 68 - boom_args shift 165 - -State 11: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - special_def ::= exp COLON SYM LPAREN * maybe_argcount RPAREN - (42) maybe_argcount ::= * - maybe_argcount ::= * exp - maybe_argcount ::= * exp COMMA exp - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 61 - maybe_argcount shift 120 - {default} reduce 42 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 83 + boom_args shift 166 State 12: exp ::= * NUM @@ -407,11 +390,11 @@ State 12: special_def ::= * exp COLON SYMNUM LPAREN maybe_argcount RPAREN MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 66 - special_def shift 138 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 79 + special_def shift 139 State 13: exp ::= * NUM @@ -426,45 +409,70 @@ State 13: exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN special_def ::= exp COLON SYMNUM LPAREN * maybe_argcount RPAREN - (42) maybe_argcount ::= * + (43) maybe_argcount ::= * maybe_argcount ::= * exp maybe_argcount ::= * exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 61 - maybe_argcount shift 109 - {default} reduce 42 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 82 + maybe_argcount shift 110 + {default} reduce 43 State 14: - enum_statement ::= enum_open * enum_list RBRACE - (32) enum_list ::= * - enum_list ::= * single_enum - enum_list ::= * single_enum COMMA enum_list - single_enum ::= * SYM - single_enum ::= * SYM EQUALS exp + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + special_def ::= exp COLON SYM LPAREN * maybe_argcount RPAREN + (43) maybe_argcount ::= * + maybe_argcount ::= * exp + maybe_argcount ::= * exp COMMA exp - SYM shift 116 - enum_list shift 111 - single_enum shift 113 - {default} reduce 32 + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 82 + maybe_argcount shift 121 + {default} reduce 43 State 15: - (32) enum_list ::= * + (33) enum_list ::= * enum_list ::= * single_enum enum_list ::= * single_enum COMMA enum_list enum_list ::= single_enum COMMA * enum_list single_enum ::= * SYM single_enum ::= * SYM EQUALS exp - SYM shift 116 - enum_list shift 131 - single_enum shift 113 - {default} reduce 32 + SYM shift 117 + enum_list shift 132 + single_enum shift 114 + {default} reduce 33 State 16: + enum_statement ::= enum_open * enum_list RBRACE + (33) enum_list ::= * + enum_list ::= * single_enum + enum_list ::= * single_enum COMMA enum_list + single_enum ::= * SYM + single_enum ::= * SYM EQUALS exp + + SYM shift 117 + enum_list shift 112 + single_enum shift 114 + {default} reduce 33 + +State 17: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -487,39 +495,11 @@ State 16: special_args ::= exp COMMA exp COMMA * exp COMMA exp COMMA TAG MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - TAG shift 121 - exp shift 73 - -State 17: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - special_args ::= TAG COMMA * exp - special_args ::= TAG COMMA * exp COMMA exp - special_args ::= TAG COMMA * exp COMMA exp COMMA exp - special_args ::= TAG COMMA * exp COMMA exp COMMA exp COMMA exp - special_args ::= TAG COMMA * TAG - special_args ::= TAG COMMA * TAG COMMA exp - special_args ::= TAG COMMA * TAG COMMA exp COMMA exp - special_args ::= TAG COMMA * TAG COMMA exp COMMA exp COMMA exp - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - TAG shift 112 - exp shift 58 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + TAG shift 129 + exp shift 81 State 18: exp ::= * NUM @@ -549,35 +529,13 @@ State 18: special_args ::= exp COMMA * exp COMMA exp COMMA exp COMMA TAG MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - TAG shift 118 - exp shift 75 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + TAG shift 103 + exp shift 70 State 19: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - linetype_declaration ::= exp EQUALS exp COMMA * exp LPAREN special_args RPAREN - linetype_declaration ::= exp EQUALS exp COMMA * SYM LPAREN special_args RPAREN - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - SYM shift 105 - exp shift 79 - -State 20: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -596,13 +554,13 @@ State 20: special_args ::= exp COMMA exp COMMA exp COMMA * exp COMMA TAG MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - TAG shift 122 - exp shift 72 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + TAG shift 113 + exp shift 66 -State 21: +State 20: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -618,11 +576,33 @@ State 21: special_args ::= exp COMMA exp COMMA exp COMMA exp COMMA * TAG MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - TAG shift 155 - exp shift 85 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + TAG shift 158 + exp shift 89 + +State 21: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + linetype_declaration ::= exp EQUALS exp COMMA * exp LPAREN special_args RPAREN + linetype_declaration ::= exp EQUALS exp COMMA * SYM LPAREN special_args RPAREN + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + SYM shift 126 + exp shift 73 State 22: exp ::= * NUM @@ -636,13 +616,21 @@ State 22: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - boom_declaration ::= LBRACKET * exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE + special_args ::= TAG COMMA * exp + special_args ::= TAG COMMA * exp COMMA exp + special_args ::= TAG COMMA * exp COMMA exp COMMA exp + special_args ::= TAG COMMA * exp COMMA exp COMMA exp COMMA exp + special_args ::= TAG COMMA * TAG + special_args ::= TAG COMMA * TAG COMMA exp + special_args ::= TAG COMMA * TAG COMMA exp COMMA exp + special_args ::= TAG COMMA * TAG COMMA exp COMMA exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 69 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + TAG shift 118 + exp shift 58 State 23: exp ::= * NUM @@ -656,13 +644,13 @@ State 23: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - exp ::= LPAREN * exp RPAREN + list_val ::= exp COLON * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 70 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 92 State 24: exp ::= * NUM @@ -680,133 +668,12 @@ State 24: linetype_declaration ::= exp EQUALS * exp COMMA SYM LPAREN special_args RPAREN MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 82 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 75 State 25: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - define_statement ::= DEFINE SYM LPAREN * exp RPAREN - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 81 - -State 26: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - list_val ::= exp COLON * exp - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 92 - -State 27: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - special_args ::= LINEID COMMA exp COMMA exp COMMA exp COMMA * exp - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 83 - -State 28: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= exp MULTIPLY * exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 162 - -State 29: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - special_args ::= LINEID COMMA exp COMMA exp COMMA * exp - special_args ::= LINEID COMMA exp COMMA exp COMMA * exp COMMA exp - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 78 - -State 30: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= MINUS * exp - exp ::= * LPAREN exp RPAREN - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 158 - -State 31: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -823,12 +690,12 @@ State 31: special_args ::= LINEID COMMA exp COMMA * exp COMMA exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 exp shift 76 -State 32: +State 26: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -838,17 +705,17 @@ State 32: exp ::= * exp OR exp exp ::= * exp AND exp exp ::= * exp XOR exp - exp ::= exp XOR * exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN + exp ::= LPAREN * exp RPAREN MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 95 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 77 -State 33: +State 27: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -866,12 +733,32 @@ State 33: special_args ::= LINEID COMMA * exp COMMA exp COMMA exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 71 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 74 -State 34: +State 28: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + single_enum ::= SYM EQUALS * exp + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 90 + +State 29: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -886,32 +773,12 @@ State 34: boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA * exp RPAREN LBRACE boom_body RBRACE MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 64 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 72 -State 35: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= exp AND * exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 96 - -State 36: +State 30: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -922,16 +789,16 @@ State 36: exp ::= * exp AND exp exp ::= * exp XOR exp exp ::= * MINUS exp + exp ::= MINUS * exp exp ::= * LPAREN exp RPAREN - maybe_argcount ::= exp COMMA * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 86 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 160 -State 37: +State 31: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -946,12 +813,32 @@ State 37: special_args ::= TAG COMMA TAG COMMA exp COMMA exp COMMA * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 84 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 91 -State 38: +State 32: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= exp PLUS * exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 99 + +State 33: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -967,12 +854,32 @@ State 38: special_args ::= TAG COMMA TAG COMMA exp COMMA * exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 74 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 69 -State 39: +State 34: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= exp XOR * exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 96 + +State 35: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -989,11 +896,91 @@ State 39: special_args ::= TAG COMMA TAG COMMA * exp COMMA exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 exp shift 67 +State 36: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + special_args ::= LINEID COMMA exp COMMA exp COMMA exp COMMA * exp + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 88 + +State 37: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= exp AND * exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 97 + +State 38: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + boom_declaration ::= LBRACKET exp RBRACKET LPAREN * exp COMMA exp RPAREN LBRACE boom_body RBRACE + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 65 + +State 39: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= exp OR * exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 95 + State 40: exp ::= * NUM exp ::= * SYMNUM @@ -1009,9 +996,9 @@ State 40: special_args ::= exp COMMA exp COMMA exp COMMA TAG COMMA * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 exp shift 87 State 41: @@ -1021,24 +1008,23 @@ State 41: exp ::= * exp MINUS exp exp ::= * exp MULTIPLY exp exp ::= * exp DIVIDE exp + exp ::= exp DIVIDE * exp exp ::= * exp OR exp - exp ::= exp OR * exp exp ::= * exp AND exp exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 94 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 161 State 42: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp - exp ::= exp PLUS * exp exp ::= * exp MINUS exp exp ::= * exp MULTIPLY exp exp ::= * exp DIVIDE exp @@ -1047,12 +1033,13 @@ State 42: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN + special_args ::= TAG COMMA exp COMMA exp COMMA exp COMMA * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 99 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 93 State 43: exp ::= * NUM @@ -1070,10 +1057,10 @@ State 43: special_args ::= exp COMMA exp COMMA TAG COMMA * exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 63 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 61 State 44: exp ::= * NUM @@ -1087,13 +1074,14 @@ State 44: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - special_args ::= TAG COMMA exp COMMA exp COMMA exp COMMA * exp + special_args ::= TAG COMMA exp COMMA exp COMMA * exp + special_args ::= TAG COMMA exp COMMA exp COMMA * exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 89 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 62 State 45: exp ::= * NUM @@ -1110,10 +1098,10 @@ State 45: special_args ::= exp COMMA exp COMMA TAG COMMA exp COMMA * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 90 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 85 State 46: exp ::= * NUM @@ -1127,14 +1115,13 @@ State 46: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - special_args ::= TAG COMMA exp COMMA exp COMMA * exp - special_args ::= TAG COMMA exp COMMA exp COMMA * exp COMMA exp + define_statement ::= DEFINE SYM LPAREN * exp RPAREN MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 62 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 63 State 47: exp ::= * NUM @@ -1148,15 +1135,13 @@ State 47: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - special_args ::= TAG COMMA exp COMMA * exp - special_args ::= TAG COMMA exp COMMA * exp COMMA exp - special_args ::= TAG COMMA exp COMMA * exp COMMA exp COMMA exp + maybe_argcount ::= exp COMMA * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 60 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 84 State 48: exp ::= * NUM @@ -1175,10 +1160,10 @@ State 48: special_args ::= exp COMMA TAG COMMA * exp COMMA exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 57 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 59 State 49: exp ::= * NUM @@ -1192,13 +1177,15 @@ State 49: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - boom_declaration ::= LBRACKET exp RBRACKET LPAREN * exp COMMA exp RPAREN LBRACE boom_body RBRACE + special_args ::= TAG COMMA exp COMMA * exp + special_args ::= TAG COMMA exp COMMA * exp COMMA exp + special_args ::= TAG COMMA exp COMMA * exp COMMA exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 59 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 60 State 50: exp ::= * NUM @@ -1216,10 +1203,10 @@ State 50: special_args ::= exp COMMA TAG COMMA exp COMMA * exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 56 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 57 State 51: exp ::= * NUM @@ -1228,40 +1215,21 @@ State 51: exp ::= * exp MINUS exp exp ::= * exp MULTIPLY exp exp ::= * exp DIVIDE exp - exp ::= exp DIVIDE * exp exp ::= * exp OR exp exp ::= * exp AND exp exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN + special_args ::= LINEID COMMA exp COMMA exp COMMA * exp + special_args ::= LINEID COMMA exp COMMA exp COMMA * exp COMMA exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 159 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 78 State 52: - exp ::= * NUM - exp ::= * SYMNUM - exp ::= * exp PLUS exp - exp ::= * exp MINUS exp - exp ::= exp MINUS * exp - exp ::= * exp MULTIPLY exp - exp ::= * exp DIVIDE exp - exp ::= * exp OR exp - exp ::= * exp AND exp - exp ::= * exp XOR exp - exp ::= * MINUS exp - exp ::= * LPAREN exp RPAREN - - MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 98 - -State 53: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -1276,12 +1244,12 @@ State 53: special_args ::= exp COMMA TAG COMMA exp COMMA exp COMMA * exp MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 93 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 94 -State 54: +State 53: exp ::= * NUM exp ::= * SYMNUM exp ::= * exp PLUS exp @@ -1293,43 +1261,62 @@ State 54: exp ::= * exp XOR exp exp ::= * MINUS exp exp ::= * LPAREN exp RPAREN - single_enum ::= SYM EQUALS * exp + boom_declaration ::= LBRACKET * exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE MINUS shift 30 - NUM shift 156 - SYMNUM shift 151 - LPAREN shift 23 - exp shift 91 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 68 + +State 54: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= exp MINUS * exp + exp ::= * exp MULTIPLY exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 98 State 55: + exp ::= * NUM + exp ::= * SYMNUM + exp ::= * exp PLUS exp + exp ::= * exp MINUS exp + exp ::= * exp MULTIPLY exp + exp ::= exp MULTIPLY * exp + exp ::= * exp DIVIDE exp + exp ::= * exp OR exp + exp ::= * exp AND exp + exp ::= * exp XOR exp + exp ::= * MINUS exp + exp ::= * LPAREN exp RPAREN + + MINUS shift 30 + NUM shift 157 + SYMNUM shift 152 + LPAREN shift 26 + exp shift 163 + +State 56: boom_line ::= boom_selector * boom_op boom_args boom_op ::= * EQUALS boom_op ::= * OR_EQUAL - EQUALS shift 166 - OR_EQUAL shift 167 - boom_op shift 10 - -State 56: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - (85) special_args ::= exp COMMA TAG COMMA exp COMMA exp * - special_args ::= exp COMMA TAG COMMA exp COMMA exp * COMMA exp - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 53 - {default} reduce 85 + EQUALS shift 167 + OR_EQUAL shift 168 + boom_op shift 11 State 57: exp ::= exp * PLUS exp @@ -1339,19 +1326,18 @@ State 57: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (84) special_args ::= exp COMMA TAG COMMA exp * - special_args ::= exp COMMA TAG COMMA exp * COMMA exp - special_args ::= exp COMMA TAG COMMA exp * COMMA exp COMMA exp + (86) special_args ::= exp COMMA TAG COMMA exp COMMA exp * + special_args ::= exp COMMA TAG COMMA exp COMMA exp * COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 50 - {default} reduce 84 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 52 + {default} reduce 86 State 58: exp ::= exp * PLUS exp @@ -1361,20 +1347,20 @@ State 58: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (65) special_args ::= TAG COMMA exp * + (66) special_args ::= TAG COMMA exp * special_args ::= TAG COMMA exp * COMMA exp special_args ::= TAG COMMA exp * COMMA exp COMMA exp special_args ::= TAG COMMA exp * COMMA exp COMMA exp COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 47 - {default} reduce 65 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 49 + {default} reduce 66 State 59: exp ::= exp * PLUS exp @@ -1384,16 +1370,19 @@ State 59: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp * COMMA exp RPAREN LBRACE boom_body RBRACE + (85) special_args ::= exp COMMA TAG COMMA exp * + special_args ::= exp COMMA TAG COMMA exp * COMMA exp + special_args ::= exp COMMA TAG COMMA exp * COMMA exp COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 34 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 50 + {default} reduce 85 State 60: exp ::= exp * PLUS exp @@ -1403,19 +1392,19 @@ State 60: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (66) special_args ::= TAG COMMA exp COMMA exp * + (67) special_args ::= TAG COMMA exp COMMA exp * special_args ::= TAG COMMA exp COMMA exp * COMMA exp special_args ::= TAG COMMA exp COMMA exp * COMMA exp COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 46 - {default} reduce 66 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 44 + {default} reduce 67 State 61: exp ::= exp * PLUS exp @@ -1425,18 +1414,18 @@ State 61: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (43) maybe_argcount ::= exp * - maybe_argcount ::= exp * COMMA exp + (89) special_args ::= exp COMMA exp COMMA TAG COMMA exp * + special_args ::= exp COMMA exp COMMA TAG COMMA exp * COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 36 - {default} reduce 43 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 45 + {default} reduce 89 State 62: exp ::= exp * PLUS exp @@ -1446,18 +1435,18 @@ State 62: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (67) special_args ::= TAG COMMA exp COMMA exp COMMA exp * + (68) special_args ::= TAG COMMA exp COMMA exp COMMA exp * special_args ::= TAG COMMA exp COMMA exp COMMA exp * COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 44 - {default} reduce 67 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 42 + {default} reduce 68 State 63: exp ::= exp * PLUS exp @@ -1467,18 +1456,16 @@ State 63: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (88) special_args ::= exp COMMA exp COMMA TAG COMMA exp * - special_args ::= exp COMMA exp COMMA TAG COMMA exp * COMMA exp + define_statement ::= DEFINE SYM LPAREN exp * RPAREN - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 45 - {default} reduce 88 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + RPAREN shift 136 State 64: exp ::= exp * PLUS exp @@ -1488,16 +1475,16 @@ State 64: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp * RPAREN LBRACE boom_body RBRACE + list_val ::= exp * COLON exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - RPAREN shift 125 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COLON shift 23 State 65: exp ::= exp * PLUS exp @@ -1507,17 +1494,16 @@ State 65: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - linetype_declaration ::= exp * EQUALS exp COMMA exp LPAREN special_args RPAREN - linetype_declaration ::= exp * EQUALS exp COMMA SYM LPAREN special_args RPAREN + boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp * COMMA exp RPAREN LBRACE boom_body RBRACE - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - EQUALS shift 24 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 29 State 66: exp ::= exp * PLUS exp @@ -1527,17 +1513,19 @@ State 66: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - special_def ::= exp * COLON SYM LPAREN maybe_argcount RPAREN - special_def ::= exp * COLON SYMNUM LPAREN maybe_argcount RPAREN + (82) special_args ::= exp COMMA exp COMMA exp COMMA exp * + special_args ::= exp COMMA exp COMMA exp COMMA exp * COMMA exp + special_args ::= exp COMMA exp COMMA exp COMMA exp * COMMA TAG - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COLON shift 97 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 20 + {default} reduce 82 State 67: exp ::= exp * PLUS exp @@ -1547,19 +1535,19 @@ State 67: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (70) special_args ::= TAG COMMA TAG COMMA exp * + (71) special_args ::= TAG COMMA TAG COMMA exp * special_args ::= TAG COMMA TAG COMMA exp * COMMA exp special_args ::= TAG COMMA TAG COMMA exp * COMMA exp COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 38 - {default} reduce 70 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 33 + {default} reduce 71 State 68: exp ::= exp * PLUS exp @@ -1569,18 +1557,16 @@ State 68: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (58) boom_args ::= exp * - boom_args ::= exp * LBRACKET arg_list RBRACKET + boom_declaration ::= LBRACKET exp * RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - LBRACKET shift 6 - {default} reduce 58 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + RBRACKET shift 107 State 69: exp ::= exp * PLUS exp @@ -1590,16 +1576,18 @@ State 69: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - boom_declaration ::= LBRACKET exp * RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE + (72) special_args ::= TAG COMMA TAG COMMA exp COMMA exp * + special_args ::= TAG COMMA TAG COMMA exp COMMA exp * COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - RBRACKET shift 123 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 31 + {default} reduce 72 State 70: exp ::= exp * PLUS exp @@ -1609,117 +1597,7 @@ State 70: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - exp ::= LPAREN exp * RPAREN - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - RPAREN shift 157 - -State 71: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - (74) special_args ::= LINEID COMMA exp * - special_args ::= LINEID COMMA exp * COMMA exp - special_args ::= LINEID COMMA exp * COMMA exp COMMA exp - special_args ::= LINEID COMMA exp * COMMA exp COMMA exp COMMA exp - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 31 - {default} reduce 74 - -State 72: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - (81) special_args ::= exp COMMA exp COMMA exp COMMA exp * - special_args ::= exp COMMA exp COMMA exp COMMA exp * COMMA exp - special_args ::= exp COMMA exp COMMA exp COMMA exp * COMMA TAG - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 21 - {default} reduce 81 - -State 73: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - (80) special_args ::= exp COMMA exp COMMA exp * - special_args ::= exp COMMA exp COMMA exp * COMMA exp - special_args ::= exp COMMA exp COMMA exp * COMMA exp COMMA exp - special_args ::= exp COMMA exp COMMA exp * COMMA TAG - special_args ::= exp COMMA exp COMMA exp * COMMA TAG COMMA exp - special_args ::= exp COMMA exp COMMA exp * COMMA exp COMMA TAG - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 20 - {default} reduce 80 - -State 74: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - (71) special_args ::= TAG COMMA TAG COMMA exp COMMA exp * - special_args ::= TAG COMMA TAG COMMA exp COMMA exp * COMMA exp - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 37 - {default} reduce 71 - -State 75: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - (79) special_args ::= exp COMMA exp * + (80) special_args ::= exp COMMA exp * special_args ::= exp COMMA exp * COMMA exp special_args ::= exp COMMA exp * COMMA exp COMMA exp special_args ::= exp COMMA exp * COMMA exp COMMA exp COMMA exp @@ -1730,17 +1608,17 @@ State 75: special_args ::= exp COMMA exp * COMMA exp COMMA TAG COMMA exp special_args ::= exp COMMA exp * COMMA exp COMMA exp COMMA TAG - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 16 - {default} reduce 79 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 17 + {default} reduce 80 -State 76: +State 71: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -1748,29 +1626,7 @@ State 76: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (75) special_args ::= LINEID COMMA exp COMMA exp * - special_args ::= LINEID COMMA exp COMMA exp * COMMA exp - special_args ::= LINEID COMMA exp COMMA exp * COMMA exp COMMA exp - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 29 - {default} reduce 75 - -State 77: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - (78) special_args ::= exp * + (79) special_args ::= exp * special_args ::= exp * COMMA exp special_args ::= exp * COMMA exp COMMA exp special_args ::= exp * COMMA exp COMMA exp COMMA exp @@ -1786,17 +1642,17 @@ State 77: special_args ::= exp * COMMA exp COMMA exp COMMA TAG COMMA exp special_args ::= exp * COMMA exp COMMA exp COMMA exp COMMA TAG - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 COMMA shift 18 - {default} reduce 78 + {default} reduce 79 -State 78: +State 72: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -1804,20 +1660,18 @@ State 78: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (76) special_args ::= LINEID COMMA exp COMMA exp COMMA exp * - special_args ::= LINEID COMMA exp COMMA exp COMMA exp * COMMA exp + boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp * RPAREN LBRACE boom_body RBRACE - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COMMA shift 27 - {default} reduce 76 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + RPAREN shift 122 -State 79: +State 73: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -1827,16 +1681,16 @@ State 79: exp ::= exp * XOR exp linetype_declaration ::= exp EQUALS exp COMMA exp * LPAREN special_args RPAREN - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - LPAREN shift 9 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + LPAREN shift 10 -State 80: +State 74: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -1844,37 +1698,22 @@ State 80: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - list_val ::= exp * COLON exp + (75) special_args ::= LINEID COMMA exp * + special_args ::= LINEID COMMA exp * COMMA exp + special_args ::= LINEID COMMA exp * COMMA exp COMMA exp + special_args ::= LINEID COMMA exp * COMMA exp COMMA exp COMMA exp - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - COLON shift 26 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 25 + {default} reduce 75 -State 81: - exp ::= exp * PLUS exp - exp ::= exp * MINUS exp - exp ::= exp * MULTIPLY exp - exp ::= exp * DIVIDE exp - exp ::= exp * OR exp - exp ::= exp * AND exp - exp ::= exp * XOR exp - define_statement ::= DEFINE SYM LPAREN exp * RPAREN - - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - RPAREN shift 135 - -State 82: +State 75: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -1885,14 +1724,162 @@ State 82: linetype_declaration ::= exp EQUALS exp * COMMA exp LPAREN special_args RPAREN linetype_declaration ::= exp EQUALS exp * COMMA SYM LPAREN special_args RPAREN - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 21 + +State 76: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + (76) special_args ::= LINEID COMMA exp COMMA exp * + special_args ::= LINEID COMMA exp COMMA exp * COMMA exp + special_args ::= LINEID COMMA exp COMMA exp * COMMA exp COMMA exp + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 51 + {default} reduce 76 + +State 77: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + exp ::= LPAREN exp * RPAREN + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + RPAREN shift 159 + +State 78: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + (77) special_args ::= LINEID COMMA exp COMMA exp COMMA exp * + special_args ::= LINEID COMMA exp COMMA exp COMMA exp * COMMA exp + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 36 + {default} reduce 77 + +State 79: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + special_def ::= exp * COLON SYM LPAREN maybe_argcount RPAREN + special_def ::= exp * COLON SYMNUM LPAREN maybe_argcount RPAREN + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COLON shift 101 + +State 80: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + linetype_declaration ::= exp * EQUALS exp COMMA exp LPAREN special_args RPAREN + linetype_declaration ::= exp * EQUALS exp COMMA SYM LPAREN special_args RPAREN + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + EQUALS shift 24 + +State 81: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + (81) special_args ::= exp COMMA exp COMMA exp * + special_args ::= exp COMMA exp COMMA exp * COMMA exp + special_args ::= exp COMMA exp COMMA exp * COMMA exp COMMA exp + special_args ::= exp COMMA exp COMMA exp * COMMA TAG + special_args ::= exp COMMA exp COMMA exp * COMMA TAG COMMA exp + special_args ::= exp COMMA exp COMMA exp * COMMA exp COMMA TAG + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 COMMA shift 19 + {default} reduce 81 + +State 82: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + (44) maybe_argcount ::= exp * + maybe_argcount ::= exp * COMMA exp + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + COMMA shift 47 + {default} reduce 44 State 83: exp ::= exp * PLUS exp @@ -1902,16 +1889,18 @@ State 83: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (77) special_args ::= LINEID COMMA exp COMMA exp COMMA exp COMMA exp * + (59) boom_args ::= exp * + boom_args ::= exp * LBRACKET arg_list RBRACKET - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 77 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + LBRACKET shift 7 + {default} reduce 59 State 84: exp ::= exp * PLUS exp @@ -1921,16 +1910,16 @@ State 84: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (72) special_args ::= TAG COMMA TAG COMMA exp COMMA exp COMMA exp * + (45) maybe_argcount ::= exp COMMA exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 72 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 45 State 85: exp ::= exp * PLUS exp @@ -1940,16 +1929,16 @@ State 85: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (82) special_args ::= exp COMMA exp COMMA exp COMMA exp COMMA exp * + (90) special_args ::= exp COMMA exp COMMA TAG COMMA exp COMMA exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 82 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 90 State 86: exp ::= exp * PLUS exp @@ -1959,16 +1948,16 @@ State 86: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (44) maybe_argcount ::= exp COMMA exp * + (27) print_item ::= exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 44 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 27 State 87: exp ::= exp * PLUS exp @@ -1978,16 +1967,16 @@ State 87: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (91) special_args ::= exp COMMA exp COMMA exp COMMA TAG COMMA exp * + (92) special_args ::= exp COMMA exp COMMA exp COMMA TAG COMMA exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 91 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 92 State 88: exp ::= exp * PLUS exp @@ -1997,16 +1986,16 @@ State 88: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (26) print_item ::= exp * + (78) special_args ::= LINEID COMMA exp COMMA exp COMMA exp COMMA exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 26 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 78 State 89: exp ::= exp * PLUS exp @@ -2016,16 +2005,16 @@ State 89: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (68) special_args ::= TAG COMMA exp COMMA exp COMMA exp COMMA exp * + (83) special_args ::= exp COMMA exp COMMA exp COMMA exp COMMA exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 68 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 83 State 90: exp ::= exp * PLUS exp @@ -2035,16 +2024,16 @@ State 90: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (89) special_args ::= exp COMMA exp COMMA TAG COMMA exp COMMA exp * + (37) single_enum ::= SYM EQUALS exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 89 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 37 State 91: exp ::= exp * PLUS exp @@ -2054,16 +2043,16 @@ State 91: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (36) single_enum ::= SYM EQUALS exp * + (73) special_args ::= TAG COMMA TAG COMMA exp COMMA exp COMMA exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 36 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 73 State 92: exp ::= exp * PLUS exp @@ -2073,16 +2062,16 @@ State 92: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (62) list_val ::= exp COLON exp * + (63) list_val ::= exp COLON exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 62 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 63 State 93: exp ::= exp * PLUS exp @@ -2092,16 +2081,16 @@ State 93: exp ::= exp * OR exp exp ::= exp * AND exp exp ::= exp * XOR exp - (86) special_args ::= exp COMMA TAG COMMA exp COMMA exp COMMA exp * + (69) special_args ::= TAG COMMA exp COMMA exp COMMA exp COMMA exp * - OR shift 41 - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 - {default} reduce 86 + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 69 State 94: exp ::= exp * PLUS exp @@ -2109,19 +2098,38 @@ State 94: exp ::= exp * MULTIPLY exp exp ::= exp * DIVIDE exp exp ::= exp * OR exp + exp ::= exp * AND exp + exp ::= exp * XOR exp + (87) special_args ::= exp COMMA TAG COMMA exp COMMA exp COMMA exp * + + OR shift 39 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 + {default} reduce 87 + +State 95: + exp ::= exp * PLUS exp + exp ::= exp * MINUS exp + exp ::= exp * MULTIPLY exp + exp ::= exp * DIVIDE exp + exp ::= exp * OR exp (7) exp ::= exp OR exp * exp ::= exp * AND exp exp ::= exp * XOR exp - XOR shift 32 - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 + XOR shift 34 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 {default} reduce 7 -State 95: +State 96: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -2131,14 +2139,14 @@ State 95: exp ::= exp * XOR exp (9) exp ::= exp XOR exp * - AND shift 35 - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 + AND shift 37 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 {default} reduce 9 -State 96: +State 97: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -2148,19 +2156,12 @@ State 96: (8) exp ::= exp AND exp * exp ::= exp * XOR exp - MINUS shift 52 - PLUS shift 42 - MULTIPLY shift 28 - DIVIDE shift 51 + MINUS shift 54 + PLUS shift 32 + MULTIPLY shift 55 + DIVIDE shift 41 {default} reduce 8 -State 97: - special_def ::= exp COLON * SYM LPAREN maybe_argcount RPAREN - special_def ::= exp COLON * SYMNUM LPAREN maybe_argcount RPAREN - - SYMNUM shift 115 - SYM shift 124 - State 98: exp ::= exp * PLUS exp exp ::= exp * MINUS exp @@ -2171,8 +2172,8 @@ State 98: exp ::= exp * AND exp exp ::= exp * XOR exp - MULTIPLY shift 28 - DIVIDE shift 51 + MULTIPLY shift 55 + DIVIDE shift 41 {default} reduce 4 State 99: @@ -2185,8 +2186,8 @@ State 99: exp ::= exp * AND exp exp ::= exp * XOR exp - MULTIPLY shift 28 - DIVIDE shift 51 + MULTIPLY shift 55 + DIVIDE shift 41 {default} reduce 3 State 100: @@ -2194,83 +2195,68 @@ State 100: special_list ::= special_list * COMMA special_def COMMA shift 12 - SEMICOLON shift 136 + SEMICOLON shift 137 State 101: - boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body * RBRACE + special_def ::= exp COLON * SYM LPAREN maybe_argcount RPAREN + special_def ::= exp COLON * SYMNUM LPAREN maybe_argcount RPAREN - RBRACE shift 150 + SYMNUM shift 116 + SYM shift 125 State 102: - define_statement ::= DEFINE * SYM LPAREN exp RPAREN + linetype_declaration ::= exp EQUALS exp COMMA exp LPAREN special_args * RPAREN - SYM shift 103 + RPAREN shift 156 State 103: - define_statement ::= DEFINE SYM * LPAREN exp RPAREN + (84) special_args ::= exp COMMA TAG * + special_args ::= exp COMMA TAG * COMMA exp + special_args ::= exp COMMA TAG * COMMA exp COMMA exp + special_args ::= exp COMMA TAG * COMMA exp COMMA exp COMMA exp - LPAREN shift 25 + COMMA shift 48 + {default} reduce 84 State 104: - (23) print_list ::= print_item * - print_list ::= print_item * COMMA print_list + define_statement ::= DEFINE * SYM LPAREN exp RPAREN - COMMA shift 1 - {default} reduce 23 + SYM shift 105 State 105: - linetype_declaration ::= exp EQUALS exp COMMA SYM * LPAREN special_args RPAREN + define_statement ::= DEFINE SYM * LPAREN exp RPAREN - LPAREN shift 8 + LPAREN shift 46 State 106: - linetype_declaration ::= exp EQUALS exp COMMA SYM LPAREN special_args * RPAREN + (24) print_list ::= print_item * + print_list ::= print_item * COMMA print_list - RPAREN shift 153 + COMMA shift 2 + {default} reduce 24 State 107: - boom_args ::= exp LBRACKET arg_list * RBRACKET + boom_declaration ::= LBRACKET exp RBRACKET * LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE - RBRACKET shift 161 + LPAREN shift 38 State 108: - include_statement ::= INCLUDE * STRING - - STRING shift 133 - -State 109: - special_def ::= exp COLON SYMNUM LPAREN maybe_argcount * RPAREN - - RPAREN shift 134 - -State 110: print_statement ::= PRINT LPAREN print_list * RPAREN - RPAREN shift 142 + RPAREN shift 143 + +State 109: + include_statement ::= INCLUDE * STRING + + STRING shift 134 + +State 110: + special_def ::= exp COLON SYMNUM LPAREN maybe_argcount * RPAREN + + RPAREN shift 135 State 111: - enum_statement ::= enum_open enum_list * RBRACE - - RBRACE shift 132 - -State 112: - (69) special_args ::= TAG COMMA TAG * - special_args ::= TAG COMMA TAG * COMMA exp - special_args ::= TAG COMMA TAG * COMMA exp COMMA exp - special_args ::= TAG COMMA TAG * COMMA exp COMMA exp COMMA exp - - COMMA shift 39 - {default} reduce 69 - -State 113: - (33) enum_list ::= single_enum * - enum_list ::= single_enum * COMMA enum_list - - COMMA shift 15 - {default} reduce 33 - -State 114: - (64) special_args ::= TAG * + (65) special_args ::= TAG * special_args ::= TAG * COMMA exp special_args ::= TAG * COMMA exp COMMA exp special_args ::= TAG * COMMA exp COMMA exp COMMA exp @@ -2280,243 +2266,270 @@ State 114: special_args ::= TAG * COMMA TAG COMMA exp COMMA exp special_args ::= TAG * COMMA TAG COMMA exp COMMA exp COMMA exp - COMMA shift 17 - {default} reduce 64 + COMMA shift 22 + {default} reduce 65 + +State 112: + enum_statement ::= enum_open enum_list * RBRACE + + RBRACE shift 133 + +State 113: + (91) special_args ::= exp COMMA exp COMMA exp COMMA TAG * + special_args ::= exp COMMA exp COMMA exp COMMA TAG * COMMA exp + + COMMA shift 40 + {default} reduce 91 + +State 114: + (34) enum_list ::= single_enum * + enum_list ::= single_enum * COMMA enum_list + + COMMA shift 15 + {default} reduce 34 State 115: + print_statement ::= PRINT * LPAREN print_list RPAREN + + LPAREN shift 3 + +State 116: special_def ::= exp COLON SYMNUM * LPAREN maybe_argcount RPAREN LPAREN shift 13 -State 116: - (35) single_enum ::= SYM * +State 117: + (36) single_enum ::= SYM * single_enum ::= SYM * EQUALS exp - EQUALS shift 54 - {default} reduce 35 - -State 117: - linetype_declaration ::= exp EQUALS exp COMMA exp LPAREN special_args * RPAREN - - RPAREN shift 154 + EQUALS shift 28 + {default} reduce 36 State 118: - (83) special_args ::= exp COMMA TAG * - special_args ::= exp COMMA TAG * COMMA exp - special_args ::= exp COMMA TAG * COMMA exp COMMA exp - special_args ::= exp COMMA TAG * COMMA exp COMMA exp COMMA exp + (70) special_args ::= TAG COMMA TAG * + special_args ::= TAG COMMA TAG * COMMA exp + special_args ::= TAG COMMA TAG * COMMA exp COMMA exp + special_args ::= TAG COMMA TAG * COMMA exp COMMA exp COMMA exp - COMMA shift 48 - {default} reduce 83 + COMMA shift 35 + {default} reduce 70 State 119: - enum_open ::= ENUM * LBRACE - - LBRACE shift 129 - -State 120: - special_def ::= exp COLON SYM LPAREN maybe_argcount * RPAREN - - RPAREN shift 130 - -State 121: - (87) special_args ::= exp COMMA exp COMMA TAG * - special_args ::= exp COMMA exp COMMA TAG * COMMA exp - special_args ::= exp COMMA exp COMMA TAG * COMMA exp COMMA exp - - COMMA shift 43 - {default} reduce 87 - -State 122: - (90) special_args ::= exp COMMA exp COMMA exp COMMA TAG * - special_args ::= exp COMMA exp COMMA exp COMMA TAG * COMMA exp - - COMMA shift 40 - {default} reduce 90 - -State 123: - boom_declaration ::= LBRACKET exp RBRACKET * LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE - - LPAREN shift 49 - -State 124: - special_def ::= exp COLON SYM * LPAREN maybe_argcount RPAREN - - LPAREN shift 11 - -State 125: - boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN * LBRACE boom_body RBRACE - - LBRACE shift 3 - -State 126: - (73) special_args ::= LINEID * + (74) special_args ::= LINEID * special_args ::= LINEID * COMMA exp special_args ::= LINEID * COMMA exp COMMA exp special_args ::= LINEID * COMMA exp COMMA exp COMMA exp special_args ::= LINEID * COMMA exp COMMA exp COMMA exp COMMA exp - COMMA shift 33 - {default} reduce 73 + COMMA shift 27 + {default} reduce 74 + +State 120: + enum_open ::= ENUM * LBRACE + + LBRACE shift 130 + +State 121: + special_def ::= exp COLON SYM LPAREN maybe_argcount * RPAREN + + RPAREN shift 131 + +State 122: + boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN * LBRACE boom_body RBRACE + + LBRACE shift 4 + +State 123: + linetype_declaration ::= exp EQUALS exp COMMA SYM LPAREN special_args * RPAREN + + RPAREN shift 155 + +State 124: + boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body * RBRACE + + RBRACE shift 151 + +State 125: + special_def ::= exp COLON SYM * LPAREN maybe_argcount RPAREN + + LPAREN shift 14 + +State 126: + linetype_declaration ::= exp EQUALS exp COMMA SYM * LPAREN special_args RPAREN + + LPAREN shift 9 State 127: - print_statement ::= PRINT * LPAREN print_list RPAREN + boom_args ::= exp LBRACKET arg_list * RBRACKET - LPAREN shift 2 + RBRACKET shift 162 State 128: - (60) arg_list ::= list_val * + (61) arg_list ::= list_val * arg_list ::= list_val * COMMA arg_list - COMMA shift 7 - {default} reduce 60 + COMMA shift 8 + {default} reduce 61 State 129: - (31) enum_open ::= ENUM LBRACE * + (88) special_args ::= exp COMMA exp COMMA TAG * + special_args ::= exp COMMA exp COMMA TAG * COMMA exp + special_args ::= exp COMMA exp COMMA TAG * COMMA exp COMMA exp - {default} reduce 31 + COMMA shift 43 + {default} reduce 88 State 130: - (40) special_def ::= exp COLON SYM LPAREN maybe_argcount RPAREN * + (32) enum_open ::= ENUM LBRACE * - {default} reduce 40 + {default} reduce 32 State 131: - (34) enum_list ::= single_enum COMMA enum_list * - - {default} reduce 34 - -State 132: - (30) enum_statement ::= enum_open enum_list RBRACE * - - {default} reduce 30 - -State 133: - (29) include_statement ::= INCLUDE STRING * - - {default} reduce 29 - -State 134: - (41) special_def ::= exp COLON SYMNUM LPAREN maybe_argcount RPAREN * + (41) special_def ::= exp COLON SYM LPAREN maybe_argcount RPAREN * {default} reduce 41 -State 135: - (28) define_statement ::= DEFINE SYM LPAREN exp RPAREN * +State 132: + (35) enum_list ::= single_enum COMMA enum_list * - {default} reduce 28 + {default} reduce 35 + +State 133: + (31) enum_statement ::= enum_open enum_list RBRACE * + + {default} reduce 31 + +State 134: + (30) include_statement ::= INCLUDE STRING * + + {default} reduce 30 + +State 135: + (42) special_def ::= exp COLON SYMNUM LPAREN maybe_argcount RPAREN * + + {default} reduce 42 State 136: - (37) special_declaration ::= SPECIAL special_list SEMICOLON * + (29) define_statement ::= DEFINE SYM LPAREN exp RPAREN * - {default} reduce 37 + {default} reduce 29 State 137: - (27) print_item ::= ENDL * - - {default} reduce 27 - -State 138: - (39) special_list ::= special_list COMMA special_def * - - {default} reduce 39 - -State 139: - (38) special_list ::= special_def * + (38) special_declaration ::= SPECIAL special_list SEMICOLON * {default} reduce 38 +State 138: + (28) print_item ::= ENDL * + + {default} reduce 28 + +State 139: + (40) special_list ::= special_list COMMA special_def * + + {default} reduce 40 + State 140: - (25) print_item ::= STRING * + (39) special_list ::= special_def * + + {default} reduce 39 + +State 141: + (26) print_item ::= STRING * + + {default} reduce 26 + +State 142: + (25) print_list ::= print_item COMMA print_list * {default} reduce 25 -State 141: - (24) print_list ::= print_item COMMA print_list * +State 143: + (22) print_statement ::= PRINT LPAREN print_list RPAREN * - {default} reduce 24 + {default} reduce 22 -State 142: - (21) print_statement ::= PRINT LPAREN print_list RPAREN * +State 144: + (21) external_declaration ::= NOP * {default} reduce 21 -State 143: +State 145: (20) external_declaration ::= special_declaration * {default} reduce 20 -State 144: +State 146: (19) external_declaration ::= boom_declaration * {default} reduce 19 -State 145: +State 147: (18) external_declaration ::= linetype_declaration * {default} reduce 18 -State 146: +State 148: (17) external_declaration ::= enum_statement * {default} reduce 17 -State 147: +State 149: (16) external_declaration ::= print_statement * {default} reduce 16 -State 148: - (15) external_declaration ::= include_statement * - - {default} reduce 15 - -State 149: +State 150: (14) external_declaration ::= define_statement * {default} reduce 14 -State 150: - (47) boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE * - - {default} reduce 47 - State 151: + (48) boom_declaration ::= LBRACKET exp RBRACKET LPAREN exp COMMA exp RPAREN LBRACE boom_body RBRACE * + + {default} reduce 48 + +State 152: (2) exp ::= SYMNUM * {default} reduce 2 -State 152: - (49) boom_body ::= boom_line boom_body * - - {default} reduce 49 - State 153: - (46) linetype_declaration ::= exp EQUALS exp COMMA SYM LPAREN special_args RPAREN * + (50) boom_body ::= boom_line boom_body * + + {default} reduce 50 + +State 154: + (13) translation_unit ::= translation_unit external_declaration * + + {default} reduce 13 + +State 155: + (47) linetype_declaration ::= exp EQUALS exp COMMA SYM LPAREN special_args RPAREN * + + {default} reduce 47 + +State 156: + (46) linetype_declaration ::= exp EQUALS exp COMMA exp LPAREN special_args RPAREN * {default} reduce 46 -State 154: - (45) linetype_declaration ::= exp EQUALS exp COMMA exp LPAREN special_args RPAREN * - - {default} reduce 45 - -State 155: - (92) special_args ::= exp COMMA exp COMMA exp COMMA exp COMMA TAG * - - {default} reduce 92 - -State 156: +State 157: (1) exp ::= NUM * {default} reduce 1 -State 157: +State 158: + (93) special_args ::= exp COMMA exp COMMA exp COMMA exp COMMA TAG * + + {default} reduce 93 + +State 159: (11) exp ::= LPAREN exp RPAREN * {default} reduce 11 -State 158: +State 160: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -2528,7 +2541,7 @@ State 158: {default} reduce 10 -State 159: +State 161: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -2540,17 +2553,12 @@ State 159: {default} reduce 6 -State 160: - (13) translation_unit ::= external_declaration * - - {default} reduce 13 - -State 161: - (59) boom_args ::= exp LBRACKET arg_list RBRACKET * - - {default} reduce 59 - State 162: + (60) boom_args ::= exp LBRACKET arg_list RBRACKET * + + {default} reduce 60 + +State 163: exp ::= exp * PLUS exp exp ::= exp * MINUS exp exp ::= exp * MULTIPLY exp @@ -2562,53 +2570,53 @@ State 162: {default} reduce 5 -State 163: - (0) main ::= translation_unit * - - {default} reduce 0 - State 164: - (61) arg_list ::= list_val COMMA arg_list * + (15) external_declaration ::= include_statement * - {default} reduce 61 + {default} reduce 15 State 165: - (50) boom_line ::= boom_selector boom_op boom_args * + (62) arg_list ::= list_val COMMA arg_list * - {default} reduce 50 + {default} reduce 62 State 166: - (56) boom_op ::= EQUALS * + (51) boom_line ::= boom_selector boom_op boom_args * - {default} reduce 56 + {default} reduce 51 State 167: - (57) boom_op ::= OR_EQUAL * + (57) boom_op ::= EQUALS * {default} reduce 57 State 168: - (51) boom_selector ::= FLAGS * + (58) boom_op ::= OR_EQUAL * - {default} reduce 51 + {default} reduce 58 State 169: - (52) boom_selector ::= ARG2 * + (52) boom_selector ::= FLAGS * {default} reduce 52 State 170: - (53) boom_selector ::= ARG3 * + (53) boom_selector ::= ARG2 * {default} reduce 53 State 171: - (54) boom_selector ::= ARG4 * + (54) boom_selector ::= ARG3 * {default} reduce 54 State 172: - (55) boom_selector ::= ARG5 * + (55) boom_selector ::= ARG4 * {default} reduce 55 +State 173: + (56) boom_selector ::= ARG5 * + + {default} reduce 56 +