Browse Source

easymesh : Added SplitTriangles function to multiply triangles for triangle MADNESS !

legacy
Benjamin ‘Touky’ Huet touky 12 years ago
parent
commit
3ea6d93e95
8 changed files with 438 additions and 363 deletions
  1. +2
    -1
      src/easymesh/easymesh-parser.y
  2. +1
    -0
      src/easymesh/easymesh-scanner.l
  3. +51
    -6
      src/easymesh/easymesh.cpp
  4. +4
    -1
      src/easymesh/easymesh.h
  5. +225
    -208
      src/generated/easymesh-parser.cpp
  6. +24
    -23
      src/generated/easymesh-parser.h
  7. +129
    -122
      src/generated/easymesh-scanner.cpp
  8. +2
    -2
      test/MeshViewerBuffer.txt

+ 2
- 1
src/easymesh/easymesh-parser.y View File

@@ -47,7 +47,7 @@
%token T_TRANSLATEX T_ROTATEX T_TAPERX T_TWISTX T_SHEARX T_STRETCHX T_BENDXY T_BENDXZ T_SCALEX T_MIRRORX
%token T_TRANSLATEY T_ROTATEY T_TAPERY T_TWISTY T_SHEARY T_STRETCHY T_BENDYX T_BENDYZ T_SCALEY T_MIRRORY
%token T_TRANSLATEZ T_ROTATEZ T_TAPERZ T_TWISTZ T_SHEARZ T_STRETCHZ T_BENDZX T_BENDZY T_SCALEZ T_MIRRORZ
%token T_TRANSLATE T_SCALE T_TOGGLESCALEWINDING T_RADIALJITTER
%token T_TRANSLATE T_SCALE T_TOGGLESCALEWINDING T_RADIALJITTER T_SPLITTRIANGLE
%token T_CSGUNION T_CSGSUBSTRACT T_CSGSUBSTRACTLOSS T_CSGAND T_CSGXOR
%token T_CHAMFER

@@ -157,6 +157,7 @@ transform_command:
| T_MIRRORY { mc.m_mesh.MirrorY(); }
| T_MIRRORZ { mc.m_mesh.MirrorZ(); }
| T_RADIALJITTER args1 { mc.m_mesh.RadialJitter($2.f0); }
| T_SPLITTRIANGLE args1 { mc.m_mesh.SplitTriangles($2.f0); }
| T_TOGGLESCALEWINDING { mc.m_mesh.ToggleScaleWinding(); }
| T_CSGUNION { mc.m_mesh.CsgUnion(); }
| T_CSGSUBSTRACT { mc.m_mesh.CsgSubstract(); }


+ 1
- 0
src/easymesh/easymesh-scanner.l View File

@@ -86,6 +86,7 @@ mx { return token::T_MIRRORX; }
my { return token::T_MIRRORY; }
mz { return token::T_MIRRORZ; }
rj { return token::T_RADIALJITTER; }
splt { return token::T_SPLITTRIANGLE; }

csgu { return token::T_CSGUNION; }
csgs { return token::T_CSGSUBSTRACT; }


+ 51
- 6
src/easymesh/easymesh.cpp View File

@@ -568,16 +568,18 @@ void EasyMesh::SetCurColor2(vec4 const &color)
//-----------------------------------------------------------------------------
void EasyMesh::AddVertex(vec3 const &coord)
{
#if VERTEX_USEAGE == VU_BONES
m_vert.Push(
coord, vec3(0.f, 1.f, 0.f), m_color
#if VERTEX_USEAGE == VU_VANILLA
//-- VANILLA --
#elif VERTEX_USEAGE == VU_BONES
//TODO : -- BONE SUPPORT --
m_vert.Push(coord, vec3(0.f, 1.f, 0.f), m_color, ivec2(0), vec2(0));
, ivec2(0), vec2(0)
#elif VERTEX_USEAGE == VU_TEX_UV
//-- UV SUPPORT --
m_vert.Push(coord, vec3(0.f, 1.f, 0.f), m_color, vec2(-1));
#else
//-- VANILLA --
m_vert.Push(coord, vec3(0.f, 1.f, 0.f), m_color);
, vec2(-1)
#endif
);
}

//-----------------------------------------------------------------------------
@@ -586,6 +588,26 @@ void EasyMesh::AddDuplicateVertex(int i)
m_vert << m_vert[i];
}

//-----------------------------------------------------------------------------
void EasyMesh::AddLerpVertex(int i, int j, float alpha)
{
m_vert.Push(
lol::lerp(m_vert[i].m1, m_vert[j].m1, alpha),
lol::lerp(m_vert[i].m2, m_vert[j].m2, alpha),
lol::lerp(m_vert[i].m3, m_vert[j].m3, alpha)
#if VERTEX_USEAGE == VU_VANILLA
//-- VANILLA --
#elif VERTEX_USEAGE == VU_BONES
//TODO : -- BONE SUPPORT --
, lol::lerp(m_vert[i].m4, m_vert[j].m4, alpha),
lol::lerp(m_vert[i].m5, m_vert[j].m5, alpha)
#elif VERTEX_USEAGE == VU_TEX_UV
//-- UV SUPPORT --
, lol::lerp(m_vert[i].m4, m_vert[j].m4, alpha)
#endif
);
}

//-----------------------------------------------------------------------------
void EasyMesh::AppendQuad(int i1, int i2, int i3, int i4, int base)
{
@@ -1049,6 +1071,29 @@ void EasyMesh::DupAndScale(vec3 const &s)
m_cursors.Last().m2 -= tlen;
}

//-----------------------------------------------------------------------------
void EasyMesh::SplitTriangles(int pass)
{
while (pass--)
{
int trimax = m_indices.Count();
for (int i = m_cursors.Last().m2; i < trimax; i += 3)
{
int vbase = m_vert.Count();
int j = -1;
while (++j < 3)
AddLerpVertex(m_indices[i + j], m_indices[i + (j + 1) % 3], .5f);
//Add new triangles
AppendTriangle(vbase, m_indices[i + 1], vbase + 1, 0);
AppendTriangle(vbase + 2, vbase + 1, m_indices[i + 2], 0);
AppendTriangle(vbase, vbase + 1, vbase + 2, 0);
//Change current triangle
m_indices[i + 1] = vbase;
m_indices[i + 2] = vbase + 2;
}
}
ComputeNormals(m_cursors.Last().m2, m_indices.Count() - m_cursors.Last().m2);
}
//-----------------------------------------------------------------------------
void EasyMesh::AppendCylinder(int nsides, float h, float d1, float d2,
int dualside, int smooth, int close)


+ 4
- 1
src/easymesh/easymesh.h View File

@@ -156,6 +156,7 @@ private:
//-------------------------------------------------------------------------
void AddVertex(vec3 const &coord);
void AddDuplicateVertex(int i);
void AddLerpVertex(int i, int j, float alpha);
void AppendQuad(int i1, int i2, int i3, int i4, int base);
void AppendQuadDuplicateVerts(int i1, int i2, int i3, int i4, int base);
void AppendTriangle(int i1, int i2, int i3, int base);
@@ -270,7 +271,6 @@ private:
inline MeshTransform(Value v) : m_value(v) {}
inline operator Value() { return m_value; }
};

void DoMeshTransform(MeshTransform ct, Axis axis0, Axis axis1, float n0, float n1, float noff, int absolute);
public:
/* [cmd:s/sx/sy/sz] Scale vertices
@@ -302,6 +302,9 @@ public:
//Mesh shape operations
//-------------------------------------------------------------------------

/*
*/
void SplitTriangles(int pass);
/* [cmd:ac] Cylinder centered on (0,0,0) with BBox [-.5*max(d1, d2), -.5*h, -.5*max(d1, d2)]
- nbsides : Number of sides. [+.5*max(d1, d2), +.5*h, +.5*max(d1, d2)]
- h : Height of the cylinder.


+ 225
- 208
src/generated/easymesh-parser.cpp View File

@@ -763,240 +763,247 @@ namespace lol {

/* Line 677 of lalr1.cc */
#line 160 "easymesh/easymesh-parser.y"
{ mc.m_mesh.ToggleScaleWinding(); }
{ mc.m_mesh.SplitTriangles((yysemantic_stack_[(2) - (2)].args).f0); }
break;

case 59:

/* Line 677 of lalr1.cc */
#line 161 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgUnion(); }
{ mc.m_mesh.ToggleScaleWinding(); }
break;

case 60:

/* Line 677 of lalr1.cc */
#line 162 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgSubstract(); }
{ mc.m_mesh.CsgUnion(); }
break;

case 61:

/* Line 677 of lalr1.cc */
#line 163 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgSubstractLoss(); }
{ mc.m_mesh.CsgSubstract(); }
break;

case 62:

/* Line 677 of lalr1.cc */
#line 164 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgAnd(); }
{ mc.m_mesh.CsgSubstractLoss(); }
break;

case 63:

/* Line 677 of lalr1.cc */
#line 165 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgXor(); }
{ mc.m_mesh.CsgAnd(); }
break;

case 64:

/* Line 677 of lalr1.cc */
#line 169 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCylinder((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
(int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, 0); }
#line 166 "easymesh/easymesh-parser.y"
{ mc.m_mesh.CsgXor(); }
break;

case 65:

/* Line 677 of lalr1.cc */
#line 172 "easymesh/easymesh-parser.y"
#line 170 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCylinder((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
(int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, (int)(yysemantic_stack_[(2) - (2)].args).f6); }
(int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, 0); }
break;

case 66:

/* Line 677 of lalr1.cc */
#line 175 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
#line 173 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCylinder((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
(int)(yysemantic_stack_[(2) - (2)].args).f4, (int)(yysemantic_stack_[(2) - (2)].args).f5, (int)(yysemantic_stack_[(2) - (2)].args).f6); }
break;

case 67:

/* Line 677 of lalr1.cc */
#line 176 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSmoothChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
{ mc.m_mesh.AppendBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
break;

case 68:

/* Line 677 of lalr1.cc */
#line 178 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendFlatChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
#line 177 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSmoothChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
break;

case 69:

/* Line 677 of lalr1.cc */
#line 180 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSphere((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
#line 179 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendFlatChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
break;

case 70:

/* Line 677 of lalr1.cc */
#line 181 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCapsule((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
{ mc.m_mesh.AppendSphere((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 71:

/* Line 677 of lalr1.cc */
#line 182 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendTorus((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
{ mc.m_mesh.AppendCapsule((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break;

case 72:

/* Line 677 of lalr1.cc */
#line 183 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2,
(int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); }
{ mc.m_mesh.AppendTorus((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
break;

case 73:

/* Line 677 of lalr1.cc */
#line 185 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendExpandedStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
#line 184 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2,
(int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); }
break;

case 74:

/* Line 677 of lalr1.cc */
#line 187 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); }
#line 186 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendExpandedStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
break;

case 75:

/* Line 677 of lalr1.cc */
#line 188 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
{ mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); }
break;

case 76:

/* Line 677 of lalr1.cc */
#line 189 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
{ mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 77:

/* Line 677 of lalr1.cc */
#line 190 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCog((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3, (yysemantic_stack_[(2) - (2)].args).f4, (yysemantic_stack_[(2) - (2)].args).f5, (yysemantic_stack_[(2) - (2)].args).f6,
(yysemantic_stack_[(2) - (2)].args).f7, (yysemantic_stack_[(2) - (2)].args).f8, (int)(yysemantic_stack_[(2) - (2)].args).f9); }
{ mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
break;

case 78:

/* Line 677 of lalr1.cc */
#line 195 "easymesh/easymesh-parser.y"
{ (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); }
#line 191 "easymesh/easymesh-parser.y"
{ mc.m_mesh.AppendCog((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
(yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3, (yysemantic_stack_[(2) - (2)].args).f4, (yysemantic_stack_[(2) - (2)].args).f5, (yysemantic_stack_[(2) - (2)].args).f6,
(yysemantic_stack_[(2) - (2)].args).f7, (yysemantic_stack_[(2) - (2)].args).f8, (int)(yysemantic_stack_[(2) - (2)].args).f9); }
break;

case 79:

/* Line 677 of lalr1.cc */
#line 196 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); }
break;

case 80:

/* Line 677 of lalr1.cc */
#line 197 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 81:

/* Line 677 of lalr1.cc */
#line 198 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 82:

/* Line 677 of lalr1.cc */
#line 199 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 83:

/* Line 677 of lalr1.cc */
#line 200 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 84:

/* Line 677 of lalr1.cc */
#line 201 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 85:

/* Line 677 of lalr1.cc */
#line 202 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 86:

/* Line 677 of lalr1.cc */
#line 203 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f8 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 87:

/* Line 677 of lalr1.cc */
#line 204 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f9 = (yysemantic_stack_[(2) - (2)].fval); }
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f8 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 88:

/* Line 677 of lalr1.cc */
#line 207 "easymesh/easymesh-parser.y"
{ (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); }
#line 205 "easymesh/easymesh-parser.y"
{ (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f9 = (yysemantic_stack_[(2) - (2)].fval); }
break;

case 89:

/* Line 677 of lalr1.cc */
#line 208 "easymesh/easymesh-parser.y"
{ (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); }
break;

case 90:

/* Line 677 of lalr1.cc */
#line 209 "easymesh/easymesh-parser.y"
{ (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); }
break;



/* Line 677 of lalr1.cc */
#line 1000 "generated/easymesh-parser.cpp"
#line 1007 "generated/easymesh-parser.cpp"
default:
break;
}
@@ -1201,25 +1208,26 @@ namespace lol {

/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
const signed char EasyMeshParser::yypact_ninf_ = -69;
const signed char EasyMeshParser::yypact_ninf_ = -70;
const signed char
EasyMeshParser::yypact_[] =
{
60, -40, -23, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -69, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -69, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -69, -47, -47, -69, -47, -69, -69, -69,
-69, -69, -47, -47, -47, -47, -47, -47, -47, -47,
-47, -47, -47, -47, -47, -47, -69, 4, 6, 60,
60, 119, -69, -69, -69, -69, -69, -69, -47, -47,
-47, -47, -69, -69, -69, -69, -69, -69, -47, -69,
-69, -47, -69, -69, -69, -69, -69, -69, -69, -47,
-69, -69, -47, -69, -69, -69, -69, -69, -69, -69,
-47, -69, -69, -47, -69, -69, -69, -69, -69, -69,
-69, -69, -69, -47, -47, -47, -69, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -47, -47, -47,
-47, -69, -69, -69, -69, -69, -53, -69, -69, -69,
-69, -69, -69, -69, -69, -69, -69, -69, -69, -69
61, -41, -24, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -70, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -70, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -70, -48, -48, -70, -48, -48, -70, -70,
-70, -70, -70, -48, -48, -48, -48, -48, -48, -48,
-48, -48, -48, -48, -48, -48, -48, -70, 4, 6,
61, 61, 121, -70, -70, -70, -70, -70, -70, -48,
-48, -48, -48, -70, -70, -70, -70, -70, -70, -48,
-70, -70, -48, -70, -70, -70, -70, -70, -70, -70,
-48, -70, -70, -48, -70, -70, -70, -70, -70, -70,
-70, -48, -70, -70, -48, -70, -70, -70, -70, -70,
-70, -70, -70, -70, -70, -48, -48, -48, -70, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -48,
-48, -48, -48, -70, -70, -70, -70, -70, -54, -70,
-70, -70, -70, -70, -70, -70, -70, -70, -70, -70,
-70, -70
};

/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
@@ -1231,36 +1239,37 @@ namespace lol {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 54, 0, 0, 0, 0, 0, 0, 0,
0, 0, 55, 0, 0, 0, 0, 0, 0, 0,
0, 0, 56, 0, 0, 58, 0, 59, 60, 61,
62, 63, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 7, 0, 0, 3,
0, 5, 9, 11, 12, 13, 88, 15, 0, 0,
0, 0, 14, 78, 17, 16, 19, 23, 26, 27,
32, 35, 36, 41, 44, 45, 50, 20, 24, 28,
29, 33, 37, 38, 42, 46, 47, 51, 21, 25,
30, 31, 34, 39, 40, 43, 48, 49, 52, 22,
53, 57, 18, 0, 0, 64, 65, 66, 67, 68,
69, 70, 72, 73, 74, 75, 76, 0, 0, 0,
0, 77, 71, 1, 2, 4, 0, 10, 89, 79,
80, 81, 82, 83, 84, 85, 86, 87, 8, 6
0, 0, 56, 0, 0, 59, 0, 0, 60, 61,
62, 63, 64, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 7, 0, 0,
3, 0, 5, 9, 11, 12, 13, 89, 15, 0,
0, 0, 0, 14, 79, 17, 16, 19, 23, 26,
27, 32, 35, 36, 41, 44, 45, 50, 20, 24,
28, 29, 33, 37, 38, 42, 46, 47, 51, 21,
25, 30, 31, 34, 39, 40, 43, 48, 49, 52,
22, 53, 57, 58, 18, 0, 0, 65, 66, 67,
68, 69, 70, 71, 73, 74, 75, 76, 77, 0,
0, 0, 0, 78, 72, 1, 2, 4, 0, 10,
90, 80, 81, 82, 83, 84, 85, 86, 87, 88,
8, 6
};

/* YYPGOTO[NTERM-NUM]. */
const short int
EasyMeshParser::yypgoto_[] =
{
-69, -69, -30, -69, -69, -69, -69, -50, -69, -69,
-69, 224, 178, 0, 176, -35, -32, -28, -69, -69,
-69, -68
-70, -70, -31, -70, -70, -70, -70, -51, -70, -70,
-70, 228, 181, 0, 179, -36, -33, -29, -70, -70,
-70, -69
};

/* YYDEFGOTO[NTERM-NUM]. */
const short int
EasyMeshParser::yydefgoto_[] =
{
-1, 57, 58, 59, 60, 149, 61, 62, 63, 64,
65, 69, 70, 71, 113, 114, 115, 116, 129, 130,
131, 73
-1, 58, 59, 60, 61, 151, 62, 63, 64, 65,
66, 70, 71, 72, 115, 116, 117, 118, 131, 132,
133, 74
};

/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
@@ -1270,66 +1279,68 @@ namespace lol {
const unsigned char
EasyMeshParser::yytable_[] =
{
138, 139, 140, 141, 133, 78, 134, 81, 83, 148,
141, 137, 66, 141, 122, 89, 68, 92, 94, 66,
67, 141, 127, 68, 141, 100, 128, 103, 105, 135,
136, 0, 141, 109, 110, 141, 66, 74, 0, 0,
68, 0, 0, 0, 117, 142, 143, 144, 121, 0,
0, 124, 0, 0, 0, 132, 0, 0, 0, 144,
145, 146, 147, 1, 2, 3, 4, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 0, 0,
0, 56, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 72, 75, 0,
0, 79, 0, 82, 80, 0, 0, 84, 85, 0,
0, 90, 0, 93, 91, 0, 0, 95, 96, 0,
0, 101, 0, 104, 102, 0, 0, 106, 107, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 118, 119, 0, 0, 120, 123, 76, 77, 0,
125, 126, 0, 0, 0, 86, 0, 87, 88, 0,
0, 0, 0, 0, 0, 97, 0, 98, 99, 0,
0, 0, 0, 0, 0, 108, 0, 0, 0, 0,
111, 0, 0, 0, 0, 0, 112
140, 141, 142, 143, 135, 79, 136, 82, 84, 150,
143, 139, 67, 143, 124, 90, 69, 93, 95, 67,
68, 143, 129, 69, 143, 101, 130, 104, 106, 137,
138, 0, 143, 110, 111, 143, 67, 75, 0, 0,
69, 0, 0, 0, 0, 119, 144, 145, 146, 123,
0, 0, 126, 0, 0, 0, 134, 0, 0, 0,
146, 147, 148, 149, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
0, 0, 0, 57, 1, 2, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
73, 76, 0, 0, 80, 0, 83, 81, 0, 0,
85, 86, 0, 0, 91, 0, 94, 92, 0, 0,
96, 97, 0, 0, 102, 0, 105, 103, 0, 0,
107, 108, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 120, 121, 0, 0, 122,
125, 77, 78, 0, 127, 128, 0, 0, 0, 87,
0, 88, 89, 0, 0, 0, 0, 0, 0, 98,
0, 99, 100, 0, 0, 0, 0, 0, 0, 109,
0, 0, 0, 0, 112, 113, 0, 0, 0, 0,
0, 114
};

/* YYCHECK. */
const short int
EasyMeshParser::yycheck_[] =
{
68, 69, 70, 71, 0, 5, 0, 7, 8, 62,
78, 61, 59, 81, 49, 15, 63, 17, 18, 59,
60, 89, 54, 63, 92, 25, 54, 27, 28, 59,
60, -1, 100, 33, 34, 103, 59, 60, -1, -1,
63, -1, -1, -1, 44, 113, 114, 115, 48, -1,
-1, 51, -1, -1, -1, 55, -1, -1, -1, 127,
128, 129, 130, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 56, 57, -1, -1,
-1, 61, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 54, 55, 56, 57, 1, 2, -1,
-1, 5, -1, 7, 6, -1, -1, 9, 10, -1,
-1, 15, -1, 17, 16, -1, -1, 19, 20, -1,
-1, 25, -1, 27, 26, -1, -1, 29, 30, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, 45, 46, -1, -1, 47, 50, 3, 4, -1,
52, 53, -1, -1, -1, 11, -1, 13, 14, -1,
-1, -1, -1, -1, -1, 21, -1, 23, 24, -1,
-1, -1, -1, -1, -1, 31, -1, -1, -1, -1,
36, -1, -1, -1, -1, -1, 42
69, 70, 71, 72, 0, 5, 0, 7, 8, 63,
79, 62, 60, 82, 50, 15, 64, 17, 18, 60,
61, 90, 55, 64, 93, 25, 55, 27, 28, 60,
61, -1, 101, 33, 34, 104, 60, 61, -1, -1,
64, -1, -1, -1, -1, 45, 115, 116, 117, 49,
-1, -1, 52, -1, -1, -1, 56, -1, -1, -1,
129, 130, 131, 132, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
-1, -1, -1, 62, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1, 2, -1, -1, 5, -1, 7, 6, -1, -1,
9, 10, -1, -1, 15, -1, 17, 16, -1, -1,
19, 20, -1, -1, 25, -1, 27, 26, -1, -1,
29, 30, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 46, 47, -1, -1, 48,
51, 3, 4, -1, 53, 54, -1, -1, -1, 11,
-1, 13, 14, -1, -1, -1, -1, -1, -1, 21,
-1, 23, 24, -1, -1, -1, -1, -1, -1, 31,
-1, -1, -1, -1, 36, 37, -1, -1, -1, -1,
-1, 43
};

/* STOS_[STATE-NUM] -- The (internal number of the) accessing
@@ -1342,16 +1353,17 @@ namespace lol {
22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
52, 53, 54, 55, 56, 57, 61, 65, 66, 67,
68, 70, 71, 72, 73, 74, 59, 60, 63, 75,
76, 77, 78, 85, 60, 78, 75, 75, 77, 78,
76, 77, 78, 77, 76, 76, 75, 75, 75, 77,
78, 76, 77, 78, 77, 76, 76, 75, 75, 75,
77, 78, 76, 77, 78, 77, 76, 76, 75, 77,
77, 75, 75, 78, 79, 80, 81, 77, 78, 78,
76, 77, 79, 78, 77, 76, 76, 80, 81, 82,
83, 84, 77, 0, 0, 66, 66, 71, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 62, 69
52, 53, 54, 55, 56, 57, 58, 62, 66, 67,
68, 69, 71, 72, 73, 74, 75, 60, 61, 64,
76, 77, 78, 79, 86, 61, 79, 76, 76, 78,
79, 77, 78, 79, 78, 77, 77, 76, 76, 76,
78, 79, 77, 78, 79, 78, 77, 77, 76, 76,
76, 78, 79, 77, 78, 79, 78, 77, 77, 76,
78, 78, 76, 76, 76, 79, 80, 81, 82, 78,
79, 79, 77, 78, 80, 79, 78, 77, 77, 81,
82, 83, 84, 85, 78, 0, 0, 67, 67, 72,
86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
63, 70
};

#if YYDEBUG
@@ -1366,7 +1378,7 @@ namespace lol {
285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
315, 91, 93, 45
315, 316, 91, 93, 45
};
#endif

@@ -1374,15 +1386,16 @@ namespace lol {
const unsigned char
EasyMeshParser::yyr1_[] =
{
0, 64, 65, 66, 66, 67, 67, 68, 69, 70,
70, 71, 71, 71, 72, 72, 72, 72, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
73, 73, 73, 73, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 85
0, 65, 66, 67, 67, 68, 68, 69, 70, 71,
71, 72, 72, 72, 73, 73, 73, 73, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
74, 74, 74, 74, 74, 75, 75, 75, 75, 75,
75, 75, 75, 75, 75, 75, 75, 75, 75, 76,
77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
86
};

/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1394,10 +1407,11 @@ namespace lol {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 1, 1, 1, 2, 1, 1,
1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 1, 2,
2, 2, 2, 2, 2, 2, 2, 2, 1, 2
2, 2, 2, 2, 1, 1, 1, 2, 2, 1,
1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
2, 2, 2, 2, 2, 2, 2, 2, 2, 1,
2
};

#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
@@ -1413,12 +1427,12 @@ namespace lol {
"T_BENDYX", "T_BENDYZ", "T_SCALEY", "T_MIRRORY", "T_TRANSLATEZ",
"T_ROTATEZ", "T_TAPERZ", "T_TWISTZ", "T_SHEARZ", "T_STRETCHZ",
"T_BENDZX", "T_BENDZY", "T_SCALEZ", "T_MIRRORZ", "T_TRANSLATE",
"T_SCALE", "T_TOGGLESCALEWINDING", "T_RADIALJITTER", "T_CSGUNION",
"T_CSGSUBSTRACT", "T_CSGSUBSTRACTLOSS", "T_CSGAND", "T_CSGXOR",
"T_CHAMFER", "T_CYLINDER", "T_BOX", "T_SMOOTHCHAMFBOX", "T_FLATCHAMFBOX",
"T_SPHERE", "T_CAPSULE", "T_STAR", "T_EXPANDEDSTAR", "T_DISC",
"T_TRIANGLE", "T_QUAD", "T_COG", "T_TORUS", "T_ERROR", "NUMBER", "COLOR",
"'['", "']'", "'-'", "$accept", "mesh_description",
"T_SCALE", "T_TOGGLESCALEWINDING", "T_RADIALJITTER", "T_SPLITTRIANGLE",
"T_CSGUNION", "T_CSGSUBSTRACT", "T_CSGSUBSTRACTLOSS", "T_CSGAND",
"T_CSGXOR", "T_CHAMFER", "T_CYLINDER", "T_BOX", "T_SMOOTHCHAMFBOX",
"T_FLATCHAMFBOX", "T_SPHERE", "T_CAPSULE", "T_STAR", "T_EXPANDEDSTAR",
"T_DISC", "T_TRIANGLE", "T_QUAD", "T_COG", "T_TORUS", "T_ERROR",
"NUMBER", "COLOR", "'['", "']'", "'-'", "$accept", "mesh_description",
"mesh_expression_list", "mesh_expression", "mesh_open", "mesh_close",
"mesh_command_list", "mesh_command", "color_command",
"transform_command", "primitive_command", "args1", "args2", "args3",
@@ -1431,31 +1445,32 @@ namespace lol {
const EasyMeshParser::rhs_number_type
EasyMeshParser::yyrhs_[] =
{
65, 0, -1, 66, 0, -1, 67, -1, 67, 66,
-1, 70, -1, 68, 66, 69, -1, 61, -1, 62,
-1, 71, -1, 70, 71, -1, 72, -1, 73, -1,
74, -1, 3, 78, -1, 3, 60, -1, 4, 78,
-1, 4, 60, -1, 44, 75, -1, 5, 75, -1,
15, 75, -1, 25, 75, -1, 35, 77, -1, 6,
75, -1, 16, 75, -1, 26, 75, -1, 7, 77,
-1, 7, 78, -1, 17, 77, -1, 17, 78, -1,
27, 77, -1, 27, 78, -1, 8, 76, -1, 18,
76, -1, 28, 76, -1, 9, 77, -1, 9, 78,
-1, 19, 77, -1, 19, 78, -1, 29, 77, -1,
29, 78, -1, 10, 77, -1, 20, 77, -1, 30,
77, -1, 11, 76, -1, 12, 76, -1, 21, 76,
-1, 22, 76, -1, 31, 76, -1, 32, 76, -1,
13, 75, -1, 23, 75, -1, 33, 75, -1, 36,
77, -1, 14, -1, 24, -1, 34, -1, 38, 75,
-1, 37, -1, 39, -1, 40, -1, 41, -1, 42,
-1, 43, -1, 45, 80, -1, 45, 81, -1, 46,
77, -1, 47, 78, -1, 48, 78, -1, 49, 76,
-1, 50, 77, -1, 57, 77, -1, 51, 79, -1,
52, 78, -1, 53, 77, -1, 54, 76, -1, 55,
76, -1, 56, 84, -1, 85, -1, 75, 85, -1,
76, 85, -1, 77, 85, -1, 78, 85, -1, 79,
85, -1, 80, 85, -1, 81, 85, -1, 82, 85,
-1, 83, 85, -1, 59, -1, 63, 85, -1
66, 0, -1, 67, 0, -1, 68, -1, 68, 67,
-1, 71, -1, 69, 67, 70, -1, 62, -1, 63,
-1, 72, -1, 71, 72, -1, 73, -1, 74, -1,
75, -1, 3, 79, -1, 3, 61, -1, 4, 79,
-1, 4, 61, -1, 45, 76, -1, 5, 76, -1,
15, 76, -1, 25, 76, -1, 35, 78, -1, 6,
76, -1, 16, 76, -1, 26, 76, -1, 7, 78,
-1, 7, 79, -1, 17, 78, -1, 17, 79, -1,
27, 78, -1, 27, 79, -1, 8, 77, -1, 18,
77, -1, 28, 77, -1, 9, 78, -1, 9, 79,
-1, 19, 78, -1, 19, 79, -1, 29, 78, -1,
29, 79, -1, 10, 78, -1, 20, 78, -1, 30,
78, -1, 11, 77, -1, 12, 77, -1, 21, 77,
-1, 22, 77, -1, 31, 77, -1, 32, 77, -1,
13, 76, -1, 23, 76, -1, 33, 76, -1, 36,
78, -1, 14, -1, 24, -1, 34, -1, 38, 76,
-1, 39, 76, -1, 37, -1, 40, -1, 41, -1,
42, -1, 43, -1, 44, -1, 46, 81, -1, 46,
82, -1, 47, 78, -1, 48, 79, -1, 49, 79,
-1, 50, 77, -1, 51, 78, -1, 58, 78, -1,
52, 80, -1, 53, 79, -1, 54, 78, -1, 55,
77, -1, 56, 77, -1, 57, 85, -1, 86, -1,
76, 86, -1, 77, 86, -1, 78, 86, -1, 79,
86, -1, 80, 86, -1, 81, 86, -1, 82, 86,
-1, 83, 86, -1, 84, 86, -1, 60, -1, 64,
86, -1
};

/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
@@ -1468,10 +1483,11 @@ namespace lol {
50, 53, 56, 59, 62, 65, 68, 71, 74, 77,
80, 83, 86, 89, 92, 95, 98, 101, 104, 107,
110, 113, 116, 119, 122, 125, 128, 131, 134, 137,
140, 143, 146, 149, 152, 154, 156, 158, 161, 163,
165, 167, 169, 171, 173, 176, 179, 182, 185, 188,
191, 194, 197, 200, 203, 206, 209, 212, 215, 217,
220, 223, 226, 229, 232, 235, 238, 241, 244, 246
140, 143, 146, 149, 152, 154, 156, 158, 161, 164,
166, 168, 170, 172, 174, 176, 179, 182, 185, 188,
191, 194, 197, 200, 203, 206, 209, 212, 215, 218,
220, 223, 226, 229, 232, 235, 238, 241, 244, 247,
249
};

/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
@@ -1484,9 +1500,10 @@ namespace lol {
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
162, 163, 164, 165, 169, 172, 175, 176, 178, 180,
181, 182, 183, 185, 187, 188, 189, 190, 195, 196,
197, 198, 199, 200, 201, 202, 203, 204, 207, 208
162, 163, 164, 165, 166, 170, 173, 176, 177, 179,
181, 182, 183, 184, 186, 188, 189, 190, 191, 196,
197, 198, 199, 200, 201, 202, 203, 204, 205, 208,
209
};

// Print the state stack on the debug stream.
@@ -1530,12 +1547,12 @@ namespace lol {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 63, 2, 2, 2, 2,
2, 2, 2, 2, 2, 64, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 61, 2, 62, 2, 2, 2, 2, 2, 2,
2, 62, 2, 63, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -1557,7 +1574,7 @@ namespace lol {
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
55, 56, 57, 58, 59, 60
55, 56, 57, 58, 59, 60, 61
};
if ((unsigned int) t <= yyuser_token_number_max_)
return translate_table[t];
@@ -1566,26 +1583,26 @@ namespace lol {
}

const int EasyMeshParser::yyeof_ = 0;
const int EasyMeshParser::yylast_ = 266;
const int EasyMeshParser::yylast_ = 271;
const int EasyMeshParser::yynnts_ = 22;
const int EasyMeshParser::yyempty_ = -2;
const int EasyMeshParser::yyfinal_ = 133;
const int EasyMeshParser::yyfinal_ = 135;
const int EasyMeshParser::yyterror_ = 1;
const int EasyMeshParser::yyerrcode_ = 256;
const int EasyMeshParser::yyntokens_ = 64;
const int EasyMeshParser::yyntokens_ = 65;

const unsigned int EasyMeshParser::yyuser_token_number_max_ = 315;
const unsigned int EasyMeshParser::yyuser_token_number_max_ = 316;
const EasyMeshParser::token_number_type EasyMeshParser::yyundef_token_ = 2;


} // lol

/* Line 1053 of lalr1.cc */
#line 1585 "generated/easymesh-parser.cpp"
#line 1602 "generated/easymesh-parser.cpp"


/* Line 1055 of lalr1.cc */
#line 211 "easymesh/easymesh-parser.y"
#line 212 "easymesh/easymesh-parser.y"


void lol::EasyMeshParser::error(const EasyMeshParser::location_type& l,


+ 24
- 23
src/generated/easymesh-parser.h View File

@@ -168,28 +168,29 @@ namespace lol {
T_SCALE = 291,
T_TOGGLESCALEWINDING = 292,
T_RADIALJITTER = 293,
T_CSGUNION = 294,
T_CSGSUBSTRACT = 295,
T_CSGSUBSTRACTLOSS = 296,
T_CSGAND = 297,
T_CSGXOR = 298,
T_CHAMFER = 299,
T_CYLINDER = 300,
T_BOX = 301,
T_SMOOTHCHAMFBOX = 302,
T_FLATCHAMFBOX = 303,
T_SPHERE = 304,
T_CAPSULE = 305,
T_STAR = 306,
T_EXPANDEDSTAR = 307,
T_DISC = 308,
T_TRIANGLE = 309,
T_QUAD = 310,
T_COG = 311,
T_TORUS = 312,
T_ERROR = 313,
NUMBER = 314,
COLOR = 315
T_SPLITTRIANGLE = 294,
T_CSGUNION = 295,
T_CSGSUBSTRACT = 296,
T_CSGSUBSTRACTLOSS = 297,
T_CSGAND = 298,
T_CSGXOR = 299,
T_CHAMFER = 300,
T_CYLINDER = 301,
T_BOX = 302,
T_SMOOTHCHAMFBOX = 303,
T_FLATCHAMFBOX = 304,
T_SPHERE = 305,
T_CAPSULE = 306,
T_STAR = 307,
T_EXPANDEDSTAR = 308,
T_DISC = 309,
T_TRIANGLE = 310,
T_QUAD = 311,
T_COG = 312,
T_TORUS = 313,
T_ERROR = 314,
NUMBER = 315,
COLOR = 316
};

};
@@ -363,7 +364,7 @@ namespace lol {
} // lol

/* Line 34 of lalr1.cc */
#line 367 "generated/easymesh-parser.h"
#line 368 "generated/easymesh-parser.h"





+ 129
- 122
src/generated/easymesh-scanner.cpp View File

@@ -330,8 +330,8 @@ typedef unsigned char YY_CHAR;
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;

#define YY_NUM_RULES 67
#define YY_END_OF_BUFFER 68
#define YY_NUM_RULES 68
#define YY_END_OF_BUFFER 69
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -339,20 +339,20 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_accept[106] =
static yyconst flex_int16_t yy_accept[109] =
{ 0,
0, 0, 68, 66, 65, 64, 66, 66, 61, 66,
60, 62, 63, 66, 66, 66, 66, 66, 32, 7,
0, 0, 60, 60, 0, 43, 44, 47, 0, 0,
50, 51, 54, 0, 3, 0, 34, 35, 36, 37,
8, 9, 10, 1, 0, 0, 29, 30, 31, 0,
0, 0, 4, 5, 6, 0, 0, 60, 0, 46,
48, 0, 0, 0, 55, 0, 0, 0, 0, 2,
17, 18, 19, 20, 21, 22, 11, 12, 13, 33,
14, 15, 16, 56, 45, 49, 52, 53, 23, 24,
25, 26, 27, 28, 41, 39, 38, 42, 57, 40,
0, 58, 0, 59, 0
0, 0, 69, 67, 66, 65, 67, 67, 62, 67,
61, 63, 64, 67, 67, 67, 67, 67, 32, 7,
0, 0, 61, 61, 0, 44, 45, 48, 0, 0,
51, 52, 55, 0, 3, 0, 34, 35, 36, 37,
8, 9, 10, 1, 0, 0, 0, 29, 30, 31,
0, 0, 0, 4, 5, 6, 0, 0, 61, 0,
47, 49, 0, 0, 0, 56, 0, 0, 0, 0,
2, 17, 18, 19, 0, 20, 21, 22, 11, 12,
13, 33, 14, 15, 16, 57, 46, 50, 53, 54,
23, 24, 25, 26, 27, 28, 42, 40, 39, 43,
38, 58, 41, 0, 59, 0, 60, 0
} ;

static yyconst flex_int32_t yy_ec[256] =
@@ -395,82 +395,84 @@ static yyconst flex_int32_t yy_meta[35] =
1, 1, 1, 1
} ;

static yyconst flex_int16_t yy_base[114] =
static yyconst flex_int16_t yy_base[117] =
{ 0,
0, 0, 135, 136, 136, 136, 0, 28, 30, 126,
32, 136, 136, 36, 117, 27, 11, 25, 51, 73,
0, 124, 53, 59, 67, 136, 55, 136, 103, 115,
136, 62, 105, 56, 136, 109, 136, 136, 136, 136,
136, 136, 136, 113, 59, 62, 136, 136, 136, 65,
95, 76, 136, 136, 136, 0, 117, 116, 98, 136,
136, 107, 105, 97, 136, 45, 68, 49, 90, 136,
136, 136, 136, 136, 136, 136, 136, 136, 136, 136,
136, 136, 136, 0, 136, 136, 136, 136, 136, 136,
136, 136, 136, 136, 136, 94, 136, 136, 0, 136,
0, 0, 0, 136, 136, 113, 112, 111, 110, 109,
54, 46, 39
0, 0, 138, 139, 139, 139, 0, 28, 30, 129,
32, 139, 139, 36, 120, 27, 11, 25, 51, 73,
0, 126, 53, 64, 82, 139, 54, 139, 104, 115,
139, 53, 105, 59, 139, 109, 139, 139, 139, 139,
139, 139, 139, 113, 62, 104, 65, 139, 139, 139,
76, 94, 79, 139, 139, 139, 0, 116, 115, 97,
139, 139, 107, 106, 99, 139, 69, 43, 82, 103,
139, 139, 139, 139, 89, 139, 139, 139, 139, 139,
139, 139, 139, 139, 139, 0, 139, 139, 139, 139,
139, 139, 139, 139, 139, 139, 139, 95, 139, 139,
139, 0, 139, 0, 0, 0, 139, 139, 98, 87,
80, 77, 67, 54, 46, 39
} ;

static yyconst flex_int16_t yy_def[114] =
static yyconst flex_int16_t yy_def[117] =
{ 0,
105, 1, 105, 105, 105, 105, 106, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
107, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 108, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 109, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 110, 105,
111, 112, 113, 105, 0, 105, 105, 105, 105, 105,
105, 105, 105
108, 1, 108, 108, 108, 108, 109, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
110, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 111, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 112, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 113, 108, 114, 115, 116, 108, 0, 108, 108,
108, 108, 108, 108, 108, 108
} ;

static yyconst flex_int16_t yy_nxt[171] =
static yyconst flex_int16_t yy_nxt[174] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 4, 4,
12, 13, 14, 15, 16, 4, 4, 4, 4, 4,
4, 4, 17, 4, 4, 4, 18, 19, 20, 4,
4, 4, 4, 4, 22, 23, 22, 23, 22, 23,
104, 25, 37, 38, 39, 40, 35, 103, 25, 26,
27, 28, 29, 30, 36, 102, 41, 42, 43, 22,
23, 31, 25, 32, 33, 44, 24, 59, 25, 25,
45, 57, 57, 60, 58, 25, 63, 89, 90, 46,
93, 94, 47, 48, 49, 50, 64, 66, 67, 68,
71, 72, 73, 74, 75, 76, 77, 78, 79, 91,

51, 92, 95, 52, 53, 54, 55, 81, 82, 83,
101, 99, 84, 56, 21, 100, 88, 96, 87, 97,
86, 98, 85, 58, 58, 80, 70, 69, 65, 62,
61, 24, 34, 24, 105, 3, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105
107, 25, 37, 38, 39, 40, 35, 106, 25, 26,
27, 28, 29, 30, 36, 105, 41, 42, 43, 22,
23, 31, 25, 32, 33, 44, 60, 64, 104, 25,
45, 24, 61, 25, 93, 46, 94, 65, 102, 47,
25, 86, 48, 49, 50, 51, 58, 58, 57, 59,
67, 68, 69, 72, 73, 74, 76, 77, 78, 21,

52, 91, 92, 53, 54, 55, 56, 79, 80, 81,
83, 84, 85, 95, 96, 97, 103, 101, 90, 89,
88, 87, 59, 59, 82, 75, 71, 70, 66, 63,
98, 62, 99, 24, 100, 34, 24, 108, 3, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108
} ;

static yyconst flex_int16_t yy_chk[171] =
static yyconst flex_int16_t yy_chk[174] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 8, 8, 9, 9, 11, 11,
113, 11, 17, 17, 17, 18, 16, 112, 11, 14,
14, 14, 14, 14, 16, 111, 18, 18, 18, 23,
23, 14, 23, 14, 14, 19, 24, 27, 24, 23,
19, 25, 25, 27, 25, 24, 32, 66, 66, 19,
68, 68, 19, 19, 19, 20, 32, 34, 34, 34,
45, 45, 45, 46, 46, 46, 50, 50, 50, 67,

20, 67, 69, 20, 20, 20, 20, 52, 52, 52,
110, 109, 108, 107, 106, 96, 64, 69, 63, 69,
62, 69, 59, 58, 57, 51, 44, 36, 33, 30,
29, 22, 15, 10, 3, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
105, 105, 105, 105, 105, 105, 105, 105, 105, 105
116, 11, 17, 17, 17, 18, 16, 115, 11, 14,
14, 14, 14, 14, 16, 114, 18, 18, 18, 23,
23, 14, 23, 14, 14, 19, 27, 32, 113, 23,
19, 24, 27, 24, 68, 19, 68, 32, 112, 19,
24, 111, 19, 19, 19, 20, 25, 25, 110, 25,
34, 34, 34, 45, 45, 45, 47, 47, 47, 109,

20, 67, 67, 20, 20, 20, 20, 51, 51, 51,
53, 53, 53, 69, 69, 70, 98, 75, 65, 64,
63, 60, 59, 58, 52, 46, 44, 36, 33, 30,
70, 29, 70, 22, 70, 15, 10, 3, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
108, 108, 108
} ;

/* The intent behind this definition is that it'll catch
@@ -519,7 +521,7 @@ typedef lol::EasyMeshParser::token_type token_type;
#define yyterminate() return token::T_END
#define YY_NO_UNISTD_H
#define YY_USER_ACTION yylloc->columns(yyleng);
#line 523 "generated/easymesh-scanner.cpp"
#line 525 "generated/easymesh-scanner.cpp"

#define INITIAL 0

@@ -632,7 +634,7 @@ YY_DECL
yylloc->step();


#line 636 "generated/easymesh-scanner.cpp"
#line 638 "generated/easymesh-scanner.cpp"

if ( !(yy_init) )
{
@@ -685,13 +687,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 106 )
if ( yy_current_state >= 109 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
while ( yy_current_state != 105 );
while ( yy_current_state != 108 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);

@@ -898,97 +900,102 @@ YY_RULE_SETUP
YY_BREAK
case 38:
YY_RULE_SETUP
#line 90 "easymesh/easymesh-scanner.l"
{ return token::T_CSGUNION; }
#line 89 "easymesh/easymesh-scanner.l"
{ return token::T_SPLITTRIANGLE; }
YY_BREAK
case 39:
YY_RULE_SETUP
#line 91 "easymesh/easymesh-scanner.l"
{ return token::T_CSGSUBSTRACT; }
{ return token::T_CSGUNION; }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 92 "easymesh/easymesh-scanner.l"
{ return token::T_CSGSUBSTRACTLOSS; }
{ return token::T_CSGSUBSTRACT; }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 93 "easymesh/easymesh-scanner.l"
{ return token::T_CSGAND; }
{ return token::T_CSGSUBSTRACTLOSS; }
YY_BREAK
case 42:
YY_RULE_SETUP
#line 94 "easymesh/easymesh-scanner.l"
{ return token::T_CSGXOR; }
{ return token::T_CSGAND; }
YY_BREAK
case 43:
YY_RULE_SETUP
#line 96 "easymesh/easymesh-scanner.l"
{ return token::T_BOX; }
#line 95 "easymesh/easymesh-scanner.l"
{ return token::T_CSGXOR; }
YY_BREAK
case 44:
YY_RULE_SETUP
#line 97 "easymesh/easymesh-scanner.l"
{ return token::T_CYLINDER; }
{ return token::T_BOX; }
YY_BREAK
case 45:
YY_RULE_SETUP
#line 98 "easymesh/easymesh-scanner.l"
{ return token::T_CAPSULE; }
{ return token::T_CYLINDER; }
YY_BREAK
case 46:
YY_RULE_SETUP
#line 99 "easymesh/easymesh-scanner.l"
{ return token::T_COG; }
{ return token::T_CAPSULE; }
YY_BREAK
case 47:
YY_RULE_SETUP
#line 100 "easymesh/easymesh-scanner.l"
{ return token::T_DISC; }
{ return token::T_COG; }
YY_BREAK
case 48:
YY_RULE_SETUP
#line 101 "easymesh/easymesh-scanner.l"
{ return token::T_EXPANDEDSTAR; }
{ return token::T_DISC; }
YY_BREAK
case 49:
YY_RULE_SETUP
#line 102 "easymesh/easymesh-scanner.l"
{ return token::T_FLATCHAMFBOX; }
{ return token::T_EXPANDEDSTAR; }
YY_BREAK
case 50:
YY_RULE_SETUP
#line 103 "easymesh/easymesh-scanner.l"
{ return token::T_QUAD; }
{ return token::T_FLATCHAMFBOX; }
YY_BREAK
case 51:
YY_RULE_SETUP
#line 104 "easymesh/easymesh-scanner.l"
{ return token::T_STAR; }
{ return token::T_QUAD; }
YY_BREAK
case 52:
YY_RULE_SETUP
#line 105 "easymesh/easymesh-scanner.l"
{ return token::T_SMOOTHCHAMFBOX; }
{ return token::T_STAR; }
YY_BREAK
case 53:
YY_RULE_SETUP
#line 106 "easymesh/easymesh-scanner.l"
{ return token::T_SPHERE; }
{ return token::T_SMOOTHCHAMFBOX; }
YY_BREAK
case 54:
YY_RULE_SETUP
#line 107 "easymesh/easymesh-scanner.l"
{ return token::T_TRIANGLE; }
{ return token::T_SPHERE; }
YY_BREAK
case 55:
YY_RULE_SETUP
#line 108 "easymesh/easymesh-scanner.l"
{ return token::T_TORUS; }
{ return token::T_TRIANGLE; }
YY_BREAK
case 56:
YY_RULE_SETUP
#line 110 "easymesh/easymesh-scanner.l"
#line 109 "easymesh/easymesh-scanner.l"
{ return token::T_TORUS; }
YY_BREAK
case 57:
YY_RULE_SETUP
#line 111 "easymesh/easymesh-scanner.l"
{
uint32_t tmp = std::strtol(yytext + 1, NULL, 16);
yylval->u32val = 0x11000000u * (tmp >> 8)
@@ -997,9 +1004,9 @@ YY_RULE_SETUP
| 0x000000ffu;
return token::COLOR; }
YY_BREAK
case 57:
case 58:
YY_RULE_SETUP
#line 117 "easymesh/easymesh-scanner.l"
#line 118 "easymesh/easymesh-scanner.l"
{
uint32_t tmp = std::strtol(yytext + 1, NULL, 16);
yylval->u32val = 0x11000000u * (tmp >> 12)
@@ -1008,64 +1015,64 @@ YY_RULE_SETUP
| 0x00000011u * (tmp & 0xf);
return token::COLOR; }
YY_BREAK
case 58:
case 59:
YY_RULE_SETUP
#line 124 "easymesh/easymesh-scanner.l"
#line 125 "easymesh/easymesh-scanner.l"
{
yylval->u32val = 0xffu
| 0x100u * (uint32_t)std::strtol(yytext + 1, NULL, 16);
return token::COLOR; }
YY_BREAK
case 59:
case 60:
YY_RULE_SETUP
#line 128 "easymesh/easymesh-scanner.l"
#line 129 "easymesh/easymesh-scanner.l"
{
yylval->u32val = (uint32_t)std::strtol(yytext + 1, NULL, 16);
return token::COLOR; }
YY_BREAK
case 60:
case 61:
YY_RULE_SETUP
#line 131 "easymesh/easymesh-scanner.l"
#line 132 "easymesh/easymesh-scanner.l"
{
yylval->fval = std::atof(yytext); return token::NUMBER; }
YY_BREAK
case 61:
YY_RULE_SETUP
#line 133 "easymesh/easymesh-scanner.l"
{ return token_type('-'); }
YY_BREAK
case 62:
YY_RULE_SETUP
#line 134 "easymesh/easymesh-scanner.l"
{ return token_type('['); }
{ return token_type('-'); }
YY_BREAK
case 63:
YY_RULE_SETUP
#line 135 "easymesh/easymesh-scanner.l"
{ return token_type(']'); }
{ return token_type('['); }
YY_BREAK
case 64:
YY_RULE_SETUP
#line 136 "easymesh/easymesh-scanner.l"
{ /* ignore this */ }
{ return token_type(']'); }
YY_BREAK
case 65:
/* rule 65 can match eol */
YY_RULE_SETUP
#line 137 "easymesh/easymesh-scanner.l"
{ /* ignore this */ }
YY_BREAK
case 66:
/* rule 66 can match eol */
YY_RULE_SETUP
#line 138 "easymesh/easymesh-scanner.l"
{ return token::T_ERROR; }
{ /* ignore this */ }
YY_BREAK
case 67:
YY_RULE_SETUP
#line 140 "easymesh/easymesh-scanner.l"
#line 139 "easymesh/easymesh-scanner.l"
{ return token::T_ERROR; }
YY_BREAK
case 68:
YY_RULE_SETUP
#line 141 "easymesh/easymesh-scanner.l"
ECHO;
YY_BREAK
#line 1069 "generated/easymesh-scanner.cpp"
#line 1076 "generated/easymesh-scanner.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();

@@ -1447,7 +1454,7 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 106 )
if ( yy_current_state >= 109 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1475,11 +1482,11 @@ int yyFlexLexer::yy_get_next_buffer()
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 106 )
if ( yy_current_state >= 109 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 105);
yy_is_jam = (yy_current_state == 108);

return yy_is_jam ? 0 : yy_current_state;
}
@@ -1966,7 +1973,7 @@ void EasyMeshfree (void * ptr )

#define YYTABLES_NAME "yytables"

#line 140 "easymesh/easymesh-scanner.l"
#line 141 "easymesh/easymesh-scanner.l"





+ 2
- 2
test/MeshViewerBuffer.txt View File

@@ -1,7 +1,7 @@
[sc#88f ab 4 4 4 splt 5 tz 4 bdxy 90 0]//twy 45 0
//[sc#88f ab 4 4 4 tx 4 ab 4 4 4 tx -2 tax .4 .4 0]
//[sc#88f ab 4 4 4]
//[sc#88f ab .25 1 1 tx .25 ab .25 1 1 tx .25 ab .25 1 1 tx .25 ab .25 1 1 tx .125 stx 10 0 0]
[sc#ff2 scb#2ff acg 13 2 1 1 8 8 4 4 0 1 tax -2 0 0 0]
//[sc#ff2 scb#2ff acg 13 2 1 1 8 8 4 4 0 1 tax -2 0 0 0]
//[sc#88f ab 4 4 4 tx 4 ab 4 4 4 tx -2 shz 1 0 0 0]
//[sc#ff2 asph 4 4 shx 0 0 0 0]
//[sc#ff2 asph 4 4 tax .4 .4 0]


Loading…
Cancel
Save