Ignore:
Timestamp:
Jan 17, 2013, 9:49:29 PM (7 years ago)
Author:
touky
Message:

Added CSG v0.001a : not optimized, too much operation makes it slow. triangle count is not optimized.
Useage : "...[.... csg*]" equals "current mesh -CSG- the mesh in the braces".
Keywords : CsgUnion<csgu>, CsgSubstract<csgs>, CsgAnd<csga>, CsgXor<csgx>
TODO : cleanup useless code.
TODO : Some bugs are still present, some face that disappear should not.
TODO : Correct epsilon useage (see geometry files).
TODO : Coplanar face are not handled -at all-.
TODO : Vertex count goes through the roof in case of a Xor.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/generated/easymesh-parser.cpp

    r2183 r2226  
    1 /* A Bison parser, made by GNU Bison 2.5.  */
     1/* A Bison parser, made by GNU Bison 2.4.2.  */
    22
    33/* Skeleton implementation for Bison LALR(1) parsers in C++
    44   
    5       Copyright (C) 2002-2011 Free Software Foundation, Inc.
     5      Copyright (C) 2002-2010 Free Software Foundation, Inc.
    66   
    77   This program is free software: you can redistribute it and/or modify
     
    3636/* First part of user declarations.  */
    3737
    38 /* Line 293 of lalr1.cc  */
     38/* Line 310 of lalr1.cc  */
    3939#line 1 "easymesh/easymesh-parser.y"
    4040
     
    4242// Lol Engine
    4343//
    44 // Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net>
    45 //            (c) 2009-2012 Cédric Lecacheur <jordx@free.fr>
    46 //            (c) 2009-2012 Benjamin Huet <huet.benjamin@gmail.com>
     44// Copyright: (c) 2010-2013 Sam Hocevar <sam@hocevar.net>
     45//            (c) 2009-2013 Cédric Lecacheur <jordx@free.fr>
     46//            (c) 2009-2013 Benjamin "Touky" Huet <huet.benjamin@gmail.com>
    4747//   This program is free software; you can redistribute it and/or
    4848//   modify it under the terms of the Do What The Fuck You Want To
     
    6262
    6363
    64 /* Line 293 of lalr1.cc  */
     64/* Line 310 of lalr1.cc  */
    6565#line 66 "generated/easymesh-parser.cpp"
    6666
     
    7070/* User implementation prologue.  */
    7171
    72 /* Line 299 of lalr1.cc  */
    73 #line 65 "easymesh/easymesh-parser.y"
     72/* Line 316 of lalr1.cc  */
     73#line 66 "easymesh/easymesh-parser.y"
    7474
    7575#include "easymesh/easymesh-compiler.h"
     
    7979
    8080
    81 /* Line 299 of lalr1.cc  */
     81/* Line 316 of lalr1.cc  */
    8282#line 83 "generated/easymesh-parser.cpp"
    8383
     
    9494#endif
    9595
    96 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    97    If N is 0, then set CURRENT to the empty location which ends
    98    the previous symbol: RHS[0] (always defined).  */
    99 
    100 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    101 #ifndef YYLLOC_DEFAULT
    102 # define YYLLOC_DEFAULT(Current, Rhs, N)                               \
    103  do                                                                    \
    104    if (N)                                                              \
    105      {                                                                 \
    106        (Current).begin = YYRHSLOC (Rhs, 1).begin;                      \
    107        (Current).end   = YYRHSLOC (Rhs, N).end;                        \
    108      }                                                                 \
    109    else                                                                \
    110      {                                                                 \
    111        (Current).begin = (Current).end = YYRHSLOC (Rhs, 0).end;        \
    112      }                                                                 \
    113  while (false)
    114 #endif
    115 
    11696/* Suppress unused-variable warnings by "using" E.  */
    11797#define YYUSE(e) ((void) (e))
     
    165145namespace lol {
    166146
    167 /* Line 382 of lalr1.cc  */
    168 #line 169 "generated/easymesh-parser.cpp"
     147/* Line 379 of lalr1.cc  */
     148#line 149 "generated/easymesh-parser.cpp"
     149#if YYERROR_VERBOSE
    169150
    170151  /* Return YYSTR after stripping away unnecessary quotes and
     
    205186  }
    206187
     188#endif
    207189
    208190  /// Build a parser object.
     
    305287#endif
    306288
    307   inline bool
    308   EasyMeshParser::yy_pact_value_is_default_ (int yyvalue)
    309   {
    310     return yyvalue == yypact_ninf_;
    311   }
    312 
    313   inline bool
    314   EasyMeshParser::yy_table_value_is_error_ (int yyvalue)
    315   {
    316     return yyvalue == yytable_ninf_;
    317   }
    318 
    319289  int
    320290  EasyMeshParser::parse ()
     
    338308    location_type yylloc;
    339309    /// The locations where the error started and ended.
    340     location_type yyerror_range[3];
     310    location_type yyerror_range[2];
    341311
    342312    /// $$.
     
    376346    /* Try to take a decision without lookahead.  */
    377347    yyn = yypact_[yystate];
    378     if (yy_pact_value_is_default_ (yyn))
     348    if (yyn == yypact_ninf_)
    379349      goto yydefault;
    380350
     
    409379    if (yyn <= 0)
    410380      {
    411         if (yy_table_value_is_error_ (yyn))
    412           goto yyerrlab;
     381        if (yyn == 0 || yyn == yytable_ninf_)
     382        goto yyerrlab;
    413383        yyn = -yyn;
    414384        goto yyreduce;
     
    466436          case 7:
    467437
    468 /* Line 690 of lalr1.cc  */
    469 #line 89 "easymesh/easymesh-parser.y"
     438/* Line 677 of lalr1.cc  */
     439#line 90 "easymesh/easymesh-parser.y"
    470440    { mc.m_mesh.OpenBrace(); }
    471441    break;
     
    473443  case 8:
    474444
    475 /* Line 690 of lalr1.cc  */
    476 #line 93 "easymesh/easymesh-parser.y"
     445/* Line 677 of lalr1.cc  */
     446#line 94 "easymesh/easymesh-parser.y"
    477447    { mc.m_mesh.CloseBrace(); }
    478448    break;
     
    480450  case 14:
    481451
    482 /* Line 690 of lalr1.cc  */
    483 #line 108 "easymesh/easymesh-parser.y"
     452/* Line 677 of lalr1.cc  */
     453#line 109 "easymesh/easymesh-parser.y"
    484454    { mc.m_mesh.SetCurColor(vec4((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3)); }
    485455    break;
     
    487457  case 15:
    488458
    489 /* Line 690 of lalr1.cc  */
    490 #line 109 "easymesh/easymesh-parser.y"
     459/* Line 677 of lalr1.cc  */
     460#line 110 "easymesh/easymesh-parser.y"
    491461    { uint32_t x = (yysemantic_stack_[(2) - (2)].u32val);
    492462                      vec4 v(x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff);
     
    496466  case 16:
    497467
    498 /* Line 690 of lalr1.cc  */
    499 #line 112 "easymesh/easymesh-parser.y"
     468/* Line 677 of lalr1.cc  */
     469#line 113 "easymesh/easymesh-parser.y"
    500470    { mc.m_mesh.SetCurColor2(vec4((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3)); }
    501471    break;
     
    503473  case 17:
    504474
    505 /* Line 690 of lalr1.cc  */
    506 #line 113 "easymesh/easymesh-parser.y"
     475/* Line 677 of lalr1.cc  */
     476#line 114 "easymesh/easymesh-parser.y"
    507477    { uint32_t x = (yysemantic_stack_[(2) - (2)].u32val);
    508478                      vec4 v(x >> 24, (x >> 16) & 0xff, (x >> 8) & 0xff, x & 0xff);
     
    512482  case 18:
    513483
    514 /* Line 690 of lalr1.cc  */
    515 #line 119 "easymesh/easymesh-parser.y"
     484/* Line 677 of lalr1.cc  */
     485#line 120 "easymesh/easymesh-parser.y"
    516486    { mc.m_mesh.Chamfer((yysemantic_stack_[(2) - (2)].args).f0); }
    517487    break;
     
    519489  case 19:
    520490
    521 /* Line 690 of lalr1.cc  */
    522 #line 120 "easymesh/easymesh-parser.y"
     491/* Line 677 of lalr1.cc  */
     492#line 121 "easymesh/easymesh-parser.y"
    523493    { mc.m_mesh.Translate(vec3((yysemantic_stack_[(2) - (2)].args).f0, 0, 0)); }
    524494    break;
     
    526496  case 20:
    527497
    528 /* Line 690 of lalr1.cc  */
    529 #line 121 "easymesh/easymesh-parser.y"
     498/* Line 677 of lalr1.cc  */
     499#line 122 "easymesh/easymesh-parser.y"
    530500    { mc.m_mesh.Translate(vec3(0, (yysemantic_stack_[(2) - (2)].args).f0, 0)); }
    531501    break;
     
    533503  case 21:
    534504
    535 /* Line 690 of lalr1.cc  */
    536 #line 122 "easymesh/easymesh-parser.y"
     505/* Line 677 of lalr1.cc  */
     506#line 123 "easymesh/easymesh-parser.y"
    537507    { mc.m_mesh.Translate(vec3(0, 0, (yysemantic_stack_[(2) - (2)].args).f0)); }
    538508    break;
     
    540510  case 22:
    541511
    542 /* Line 690 of lalr1.cc  */
    543 #line 123 "easymesh/easymesh-parser.y"
     512/* Line 677 of lalr1.cc  */
     513#line 124 "easymesh/easymesh-parser.y"
    544514    { mc.m_mesh.Translate(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
    545515    break;
     
    547517  case 23:
    548518
    549 /* Line 690 of lalr1.cc  */
    550 #line 124 "easymesh/easymesh-parser.y"
     519/* Line 677 of lalr1.cc  */
     520#line 125 "easymesh/easymesh-parser.y"
    551521    { mc.m_mesh.RotateX((yysemantic_stack_[(2) - (2)].args).f0); }
    552522    break;
     
    554524  case 24:
    555525
    556 /* Line 690 of lalr1.cc  */
    557 #line 125 "easymesh/easymesh-parser.y"
     526/* Line 677 of lalr1.cc  */
     527#line 126 "easymesh/easymesh-parser.y"
    558528    { mc.m_mesh.RotateY((yysemantic_stack_[(2) - (2)].args).f0); }
    559529    break;
     
    561531  case 25:
    562532
    563 /* Line 690 of lalr1.cc  */
    564 #line 126 "easymesh/easymesh-parser.y"
     533/* Line 677 of lalr1.cc  */
     534#line 127 "easymesh/easymesh-parser.y"
    565535    { mc.m_mesh.RotateZ((yysemantic_stack_[(2) - (2)].args).f0); }
    566536    break;
     
    568538  case 26:
    569539
    570 /* Line 690 of lalr1.cc  */
    571 #line 127 "easymesh/easymesh-parser.y"
     540/* Line 677 of lalr1.cc  */
     541#line 128 "easymesh/easymesh-parser.y"
    572542    { mc.m_mesh.TaperX((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    573543    break;
     
    575545  case 27:
    576546
    577 /* Line 690 of lalr1.cc  */
    578 #line 128 "easymesh/easymesh-parser.y"
     547/* Line 677 of lalr1.cc  */
     548#line 129 "easymesh/easymesh-parser.y"
    579549    { mc.m_mesh.TaperY((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    580550    break;
     
    582552  case 28:
    583553
    584 /* Line 690 of lalr1.cc  */
    585 #line 129 "easymesh/easymesh-parser.y"
     554/* Line 677 of lalr1.cc  */
     555#line 130 "easymesh/easymesh-parser.y"
    586556    { mc.m_mesh.TaperZ((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    587557    break;
     
    589559  case 29:
    590560
    591 /* Line 690 of lalr1.cc  */
    592 #line 130 "easymesh/easymesh-parser.y"
     561/* Line 677 of lalr1.cc  */
     562#line 131 "easymesh/easymesh-parser.y"
    593563    { mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, 1.0, 1.0)); }
    594564    break;
     
    596566  case 30:
    597567
    598 /* Line 690 of lalr1.cc  */
    599 #line 131 "easymesh/easymesh-parser.y"
     568/* Line 677 of lalr1.cc  */
     569#line 132 "easymesh/easymesh-parser.y"
    600570    { mc.m_mesh.Scale(vec3(1.0, (yysemantic_stack_[(2) - (2)].args).f0, 1.0)); }
    601571    break;
     
    603573  case 31:
    604574
    605 /* Line 690 of lalr1.cc  */
    606 #line 132 "easymesh/easymesh-parser.y"
     575/* Line 677 of lalr1.cc  */
     576#line 133 "easymesh/easymesh-parser.y"
    607577    { mc.m_mesh.Scale(vec3(1.0, 1.0, (yysemantic_stack_[(2) - (2)].args).f0)); }
    608578    break;
     
    610580  case 32:
    611581
    612 /* Line 690 of lalr1.cc  */
    613 #line 133 "easymesh/easymesh-parser.y"
     582/* Line 677 of lalr1.cc  */
     583#line 134 "easymesh/easymesh-parser.y"
    614584    { mc.m_mesh.Scale(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
    615585    break;
     
    617587  case 33:
    618588
    619 /* Line 690 of lalr1.cc  */
    620 #line 134 "easymesh/easymesh-parser.y"
     589/* Line 677 of lalr1.cc  */
     590#line 135 "easymesh/easymesh-parser.y"
    621591    { mc.m_mesh.MirrorX(); }
    622592    break;
     
    624594  case 34:
    625595
    626 /* Line 690 of lalr1.cc  */
    627 #line 135 "easymesh/easymesh-parser.y"
     596/* Line 677 of lalr1.cc  */
     597#line 136 "easymesh/easymesh-parser.y"
    628598    { mc.m_mesh.MirrorY(); }
    629599    break;
     
    631601  case 35:
    632602
    633 /* Line 690 of lalr1.cc  */
    634 #line 136 "easymesh/easymesh-parser.y"
     603/* Line 677 of lalr1.cc  */
     604#line 137 "easymesh/easymesh-parser.y"
    635605    { mc.m_mesh.MirrorZ(); }
    636606    break;
     
    638608  case 36:
    639609
    640 /* Line 690 of lalr1.cc  */
    641 #line 137 "easymesh/easymesh-parser.y"
     610/* Line 677 of lalr1.cc  */
     611#line 138 "easymesh/easymesh-parser.y"
    642612    { mc.m_mesh.ToggleScaleWinding(); }
    643613    break;
     
    645615  case 37:
    646616
    647 /* Line 690 of lalr1.cc  */
     617/* Line 677 of lalr1.cc  */
     618#line 139 "easymesh/easymesh-parser.y"
     619    { mc.m_mesh.CsgUnion(); }
     620    break;
     621
     622  case 38:
     623
     624/* Line 677 of lalr1.cc  */
     625#line 140 "easymesh/easymesh-parser.y"
     626    { mc.m_mesh.CsgSubstract(); }
     627    break;
     628
     629  case 39:
     630
     631/* Line 677 of lalr1.cc  */
    648632#line 141 "easymesh/easymesh-parser.y"
     633    { mc.m_mesh.CsgAnd(); }
     634    break;
     635
     636  case 40:
     637
     638/* Line 677 of lalr1.cc  */
     639#line 142 "easymesh/easymesh-parser.y"
     640    { mc.m_mesh.CsgXor(); }
     641    break;
     642
     643  case 41:
     644
     645/* Line 677 of lalr1.cc  */
     646#line 146 "easymesh/easymesh-parser.y"
    649647    { mc.m_mesh.AppendCylinder((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    650648                                                 (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3,
     
    652650    break;
    653651
    654   case 38:
    655 
    656 /* Line 690 of lalr1.cc  */
    657 #line 144 "easymesh/easymesh-parser.y"
     652  case 42:
     653
     654/* Line 677 of lalr1.cc  */
     655#line 149 "easymesh/easymesh-parser.y"
    658656    { mc.m_mesh.AppendBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2)); }
    659657    break;
    660658
    661   case 39:
    662 
    663 /* Line 690 of lalr1.cc  */
    664 #line 145 "easymesh/easymesh-parser.y"
     659  case 43:
     660
     661/* Line 677 of lalr1.cc  */
     662#line 150 "easymesh/easymesh-parser.y"
    665663    { mc.m_mesh.AppendSmoothChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    666664                                                            (yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
    667665    break;
    668666
    669   case 40:
    670 
    671 /* Line 690 of lalr1.cc  */
    672 #line 147 "easymesh/easymesh-parser.y"
     667  case 44:
     668
     669/* Line 677 of lalr1.cc  */
     670#line 152 "easymesh/easymesh-parser.y"
    673671    { mc.m_mesh.AppendFlatChamfBox(vec3((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    674672                                                          (yysemantic_stack_[(2) - (2)].args).f2), (yysemantic_stack_[(2) - (2)].args).f3); }
    675673    break;
    676674
    677   case 41:
    678 
    679 /* Line 690 of lalr1.cc  */
    680 #line 149 "easymesh/easymesh-parser.y"
     675  case 45:
     676
     677/* Line 677 of lalr1.cc  */
     678#line 154 "easymesh/easymesh-parser.y"
    681679    { mc.m_mesh.AppendSphere((yysemantic_stack_[(2) - (2)].args).f0,
    682680                                               vec3((yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3)); }
    683681    break;
    684682
    685   case 42:
    686 
    687 /* Line 690 of lalr1.cc  */
    688 #line 151 "easymesh/easymesh-parser.y"
     683  case 46:
     684
     685/* Line 677 of lalr1.cc  */
     686#line 156 "easymesh/easymesh-parser.y"
    689687    { mc.m_mesh.AppendCapsule((yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    690688    break;
    691689
    692   case 43:
    693 
    694 /* Line 690 of lalr1.cc  */
    695 #line 152 "easymesh/easymesh-parser.y"
     690  case 47:
     691
     692/* Line 677 of lalr1.cc  */
     693#line 157 "easymesh/easymesh-parser.y"
    696694    { mc.m_mesh.AppendTorus((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2); }
    697695    break;
    698696
    699   case 44:
    700 
    701 /* Line 690 of lalr1.cc  */
    702 #line 153 "easymesh/easymesh-parser.y"
     697  case 48:
     698
     699/* Line 677 of lalr1.cc  */
     700#line 158 "easymesh/easymesh-parser.y"
    703701    { mc.m_mesh.AppendStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (yysemantic_stack_[(2) - (2)].args).f2,
    704702                                             (int)(yysemantic_stack_[(2) - (2)].args).f3, (int)(yysemantic_stack_[(2) - (2)].args).f4); }
    705703    break;
    706704
    707   case 45:
    708 
    709 /* Line 690 of lalr1.cc  */
    710 #line 155 "easymesh/easymesh-parser.y"
     705  case 49:
     706
     707/* Line 677 of lalr1.cc  */
     708#line 160 "easymesh/easymesh-parser.y"
    711709    { mc.m_mesh.AppendExpandedStar((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    712710                                                     (yysemantic_stack_[(2) - (2)].args).f2, (yysemantic_stack_[(2) - (2)].args).f3); }
    713711    break;
    714712
    715   case 46:
    716 
    717 /* Line 690 of lalr1.cc  */
    718 #line 157 "easymesh/easymesh-parser.y"
     713  case 50:
     714
     715/* Line 677 of lalr1.cc  */
     716#line 162 "easymesh/easymesh-parser.y"
    719717    { mc.m_mesh.AppendDisc((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1, (int)(yysemantic_stack_[(2) - (2)].args).f2); }
    720718    break;
    721719
    722   case 47:
    723 
    724 /* Line 690 of lalr1.cc  */
    725 #line 158 "easymesh/easymesh-parser.y"
     720  case 51:
     721
     722/* Line 677 of lalr1.cc  */
     723#line 163 "easymesh/easymesh-parser.y"
    726724    { mc.m_mesh.AppendSimpleTriangle((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
    727725    break;
    728726
    729   case 48:
    730 
    731 /* Line 690 of lalr1.cc  */
    732 #line 159 "easymesh/easymesh-parser.y"
     727  case 52:
     728
     729/* Line 677 of lalr1.cc  */
     730#line 164 "easymesh/easymesh-parser.y"
    733731    { mc.m_mesh.AppendSimpleQuad((yysemantic_stack_[(2) - (2)].args).f0, (int)(yysemantic_stack_[(2) - (2)].args).f1); }
    734732    break;
    735733
    736   case 49:
    737 
    738 /* Line 690 of lalr1.cc  */
    739 #line 160 "easymesh/easymesh-parser.y"
     734  case 53:
     735
     736/* Line 677 of lalr1.cc  */
     737#line 165 "easymesh/easymesh-parser.y"
    740738    { mc.m_mesh.AppendCog((int)(yysemantic_stack_[(2) - (2)].args).f0, (yysemantic_stack_[(2) - (2)].args).f1,
    741739                                 (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,
     
    743741    break;
    744742
    745   case 50:
    746 
    747 /* Line 690 of lalr1.cc  */
    748 #line 165 "easymesh/easymesh-parser.y"
     743  case 54:
     744
     745/* Line 677 of lalr1.cc  */
     746#line 170 "easymesh/easymesh-parser.y"
    749747    { (yyval.args).f0 = (yysemantic_stack_[(1) - (1)].fval); }
    750748    break;
    751749
    752   case 51:
    753 
    754 /* Line 690 of lalr1.cc  */
    755 #line 166 "easymesh/easymesh-parser.y"
     750  case 55:
     751
     752/* Line 677 of lalr1.cc  */
     753#line 171 "easymesh/easymesh-parser.y"
    756754    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f1 = (yysemantic_stack_[(2) - (2)].fval); }
    757755    break;
    758756
    759   case 52:
    760 
    761 /* Line 690 of lalr1.cc  */
    762 #line 167 "easymesh/easymesh-parser.y"
     757  case 56:
     758
     759/* Line 677 of lalr1.cc  */
     760#line 172 "easymesh/easymesh-parser.y"
    763761    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f2 = (yysemantic_stack_[(2) - (2)].fval); }
    764762    break;
    765763
    766   case 53:
    767 
    768 /* Line 690 of lalr1.cc  */
    769 #line 168 "easymesh/easymesh-parser.y"
     764  case 57:
     765
     766/* Line 677 of lalr1.cc  */
     767#line 173 "easymesh/easymesh-parser.y"
    770768    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f3 = (yysemantic_stack_[(2) - (2)].fval); }
    771769    break;
    772770
    773   case 54:
    774 
    775 /* Line 690 of lalr1.cc  */
    776 #line 169 "easymesh/easymesh-parser.y"
     771  case 58:
     772
     773/* Line 677 of lalr1.cc  */
     774#line 174 "easymesh/easymesh-parser.y"
    777775    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f4 = (yysemantic_stack_[(2) - (2)].fval); }
    778776    break;
    779777
    780   case 55:
    781 
    782 /* Line 690 of lalr1.cc  */
    783 #line 170 "easymesh/easymesh-parser.y"
     778  case 59:
     779
     780/* Line 677 of lalr1.cc  */
     781#line 175 "easymesh/easymesh-parser.y"
    784782    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f5 = (yysemantic_stack_[(2) - (2)].fval); }
    785783    break;
    786784
    787   case 56:
    788 
    789 /* Line 690 of lalr1.cc  */
    790 #line 171 "easymesh/easymesh-parser.y"
     785  case 60:
     786
     787/* Line 677 of lalr1.cc  */
     788#line 176 "easymesh/easymesh-parser.y"
    791789    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f6 = (yysemantic_stack_[(2) - (2)].fval); }
    792790    break;
    793791
    794   case 57:
    795 
    796 /* Line 690 of lalr1.cc  */
    797 #line 172 "easymesh/easymesh-parser.y"
     792  case 61:
     793
     794/* Line 677 of lalr1.cc  */
     795#line 177 "easymesh/easymesh-parser.y"
    798796    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f7 = (yysemantic_stack_[(2) - (2)].fval); }
    799797    break;
    800798
    801   case 58:
    802 
    803 /* Line 690 of lalr1.cc  */
    804 #line 173 "easymesh/easymesh-parser.y"
     799  case 62:
     800
     801/* Line 677 of lalr1.cc  */
     802#line 178 "easymesh/easymesh-parser.y"
    805803    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f8 = (yysemantic_stack_[(2) - (2)].fval); }
    806804    break;
    807805
    808   case 59:
    809 
    810 /* Line 690 of lalr1.cc  */
    811 #line 174 "easymesh/easymesh-parser.y"
     806  case 63:
     807
     808/* Line 677 of lalr1.cc  */
     809#line 179 "easymesh/easymesh-parser.y"
    812810    { (yyval.args) = (yysemantic_stack_[(2) - (1)].args); (yyval.args).f9 = (yysemantic_stack_[(2) - (2)].fval); }
    813811    break;
    814812
    815   case 60:
    816 
    817 /* Line 690 of lalr1.cc  */
    818 #line 177 "easymesh/easymesh-parser.y"
     813  case 64:
     814
     815/* Line 677 of lalr1.cc  */
     816#line 182 "easymesh/easymesh-parser.y"
    819817    { (yyval.fval) = (yysemantic_stack_[(1) - (1)].fval); }
    820818    break;
    821819
    822   case 61:
    823 
    824 /* Line 690 of lalr1.cc  */
    825 #line 178 "easymesh/easymesh-parser.y"
     820  case 65:
     821
     822/* Line 677 of lalr1.cc  */
     823#line 183 "easymesh/easymesh-parser.y"
    826824    { (yyval.fval) = -(yysemantic_stack_[(2) - (2)].fval); }
    827825    break;
     
    829827
    830828
    831 /* Line 690 of lalr1.cc  */
    832 #line 833 "generated/easymesh-parser.cpp"
     829/* Line 677 of lalr1.cc  */
     830#line 831 "generated/easymesh-parser.cpp"
    833831        default:
    834832          break;
    835833      }
    836     /* User semantic actions sometimes alter yychar, and that requires
    837        that yytoken be updated with the new translation.  We take the
    838        approach of translating immediately before every use of yytoken.
    839        One alternative is translating here after every semantic action,
    840        but that translation would be missed if the semantic action
    841        invokes YYABORT, YYACCEPT, or YYERROR immediately after altering
    842        yychar.  In the case of YYABORT or YYACCEPT, an incorrect
    843        destructor might then be invoked immediately.  In the case of
    844        YYERROR, subsequent parser actions might lead to an incorrect
    845        destructor call or verbose syntax error message before the
    846        lookahead is translated.  */
    847834    YY_SYMBOL_PRINT ("-> $$ =", yyr1_[yyn], &yyval, &yyloc);
    848835
     
    868855  `------------------------------------*/
    869856  yyerrlab:
    870     /* Make sure we have latest lookahead translation.  See comments at
    871        user semantic actions for why this is necessary.  */
    872     yytoken = yytranslate_ (yychar);
    873 
    874857    /* If not already recovering from an error, report this error.  */
    875858    if (!yyerrstatus_)
    876859      {
    877860        ++yynerrs_;
    878         if (yychar == yyempty_)
    879           yytoken = yyempty_;
    880861        error (yylloc, yysyntax_error_ (yystate, yytoken));
    881862      }
    882863
    883     yyerror_range[1] = yylloc;
     864    yyerror_range[0] = yylloc;
    884865    if (yyerrstatus_ == 3)
    885866      {
     
    916897      goto yyerrorlab;
    917898
    918     yyerror_range[1] = yylocation_stack_[yylen - 1];
     899    yyerror_range[0] = yylocation_stack_[yylen - 1];
    919900    /* Do not reclaim the symbols of the rule which action triggered
    920901       this YYERROR.  */
     
    933914      {
    934915        yyn = yypact_[yystate];
    935         if (!yy_pact_value_is_default_ (yyn))
     916        if (yyn != yypact_ninf_)
    936917        {
    937918          yyn += yyterror_;
     
    948929        YYABORT;
    949930
    950         yyerror_range[1] = yylocation_stack_[0];
     931        yyerror_range[0] = yylocation_stack_[0];
    951932        yydestruct_ ("Error: popping",
    952933                     yystos_[yystate],
     
    957938      }
    958939
    959     yyerror_range[2] = yylloc;
     940    yyerror_range[1] = yylloc;
    960941    // Using YYLLOC is tempting, but would change the location of
    961942    // the lookahead.  YYLOC is available though.
    962     YYLLOC_DEFAULT (yyloc, yyerror_range, 2);
     943    YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
    963944    yysemantic_stack_.push (yylval);
    964945    yylocation_stack_.push (yyloc);
     
    983964  yyreturn:
    984965    if (yychar != yyempty_)
    985       {
    986         /* Make sure we have latest lookahead translation.  See comments
    987            at user semantic actions for why this is necessary.  */
    988         yytoken = yytranslate_ (yychar);
    989         yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval,
    990                      &yylloc);
    991       }
     966      yydestruct_ ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc);
    992967
    993968    /* Do not reclaim the symbols of the rule which action triggered
     
    1008983  // Generate an error message.
    1009984  std::string
    1010   EasyMeshParser::yysyntax_error_ (int yystate, int yytoken)
    1011   {
    1012     std::string yyres;
    1013     // Number of reported tokens (one for the "unexpected", one per
    1014     // "expected").
    1015     size_t yycount = 0;
    1016     // Its maximum.
    1017     enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
    1018     // Arguments of yyformat.
    1019     char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
    1020 
    1021     /* There are many possibilities here to consider:
    1022        - If this state is a consistent state with a default action, then
    1023          the only way this function was invoked is if the default action
    1024          is an error action.  In that case, don't check for expected
    1025          tokens because there are none.
    1026        - The only way there can be no lookahead present (in yytoken) is
    1027          if this state is a consistent state with a default action.
    1028          Thus, detecting the absence of a lookahead is sufficient to
    1029          determine that there is no unexpected or expected token to
    1030          report.  In that case, just report a simple "syntax error".
    1031        - Don't assume there isn't a lookahead just because this state is
    1032          a consistent state with a default action.  There might have
    1033          been a previous inconsistent state, consistent state with a
    1034          non-default action, or user semantic action that manipulated
    1035          yychar.
    1036        - Of course, the expected token list depends on states to have
    1037          correct lookahead information, and it depends on the parser not
    1038          to perform extra reductions after fetching a lookahead from the
    1039          scanner and before detecting a syntax error.  Thus, state
    1040          merging (from LALR or IELR) and default reductions corrupt the
    1041          expected token list.  However, the list is correct for
    1042          canonical LR with one exception: it will still contain any
    1043          token that will not be accepted due to an error action in a
    1044          later state.
    1045     */
    1046     if (yytoken != yyempty_)
     985  EasyMeshParser::yysyntax_error_ (int yystate, int tok)
     986  {
     987    std::string res;
     988    YYUSE (yystate);
     989#if YYERROR_VERBOSE
     990    int yyn = yypact_[yystate];
     991    if (yypact_ninf_ < yyn && yyn <= yylast_)
    1047992      {
    1048         yyarg[yycount++] = yytname_[yytoken];
    1049         int yyn = yypact_[yystate];
    1050         if (!yy_pact_value_is_default_ (yyn))
    1051           {
    1052             /* Start YYX at -YYN if negative to avoid negative indexes in
    1053                YYCHECK.  In other words, skip the first -YYN actions for
    1054                this state because they are default actions.  */
    1055             int yyxbegin = yyn < 0 ? -yyn : 0;
    1056             /* Stay within bounds of both yycheck and yytname.  */
    1057             int yychecklim = yylast_ - yyn + 1;
    1058             int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
    1059             for (int yyx = yyxbegin; yyx < yyxend; ++yyx)
    1060               if (yycheck_[yyx + yyn] == yyx && yyx != yyterror_
    1061                   && !yy_table_value_is_error_ (yytable_[yyx + yyn]))
    1062                 {
    1063                   if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
    1064                     {
    1065                       yycount = 1;
    1066                       break;
    1067                     }
    1068                   else
    1069                     yyarg[yycount++] = yytname_[yyx];
    1070                 }
    1071           }
     993        /* Start YYX at -YYN if negative to avoid negative indexes in
     994           YYCHECK.  */
     995        int yyxbegin = yyn < 0 ? -yyn : 0;
     996
     997        /* Stay within bounds of both yycheck and yytname.  */
     998        int yychecklim = yylast_ - yyn + 1;
     999        int yyxend = yychecklim < yyntokens_ ? yychecklim : yyntokens_;
     1000        int count = 0;
     1001        for (int x = yyxbegin; x < yyxend; ++x)
     1002          if (yycheck_[x + yyn] == x && x != yyterror_)
     1003            ++count;
     1004
     1005        // FIXME: This method of building the message is not compatible
     1006        // with internationalization.  It should work like yacc.c does it.
     1007        // That is, first build a string that looks like this:
     1008        // "syntax error, unexpected %s or %s or %s"
     1009        // Then, invoke YY_ on this string.
     1010        // Finally, use the string as a format to output
     1011        // yytname_[tok], etc.
     1012        // Until this gets fixed, this message appears in English only.
     1013        res = "syntax error, unexpected ";
     1014        res += yytnamerr_ (yytname_[tok]);
     1015        if (count < 5)
     1016          {
     1017            count = 0;
     1018            for (int x = yyxbegin; x < yyxend; ++x)
     1019              if (yycheck_[x + yyn] == x && x != yyterror_)
     1020                {
     1021                  res += (!count++) ? ", expecting " : " or ";
     1022                  res += yytnamerr_ (yytname_[x]);
     1023                }
     1024          }
    10721025      }
    1073 
    1074     char const* yyformat = 0;
    1075     switch (yycount)
    1076       {
    1077 #define YYCASE_(N, S)                         \
    1078         case N:                               \
    1079           yyformat = S;                       \
    1080         break
    1081         YYCASE_(0, YY_("syntax error"));
    1082         YYCASE_(1, YY_("syntax error, unexpected %s"));
    1083         YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
    1084         YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
    1085         YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
    1086         YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
    1087 #undef YYCASE_
    1088       }
    1089 
    1090     // Argument number.
    1091     size_t yyi = 0;
    1092     for (char const* yyp = yyformat; *yyp; ++yyp)
    1093       if (yyp[0] == '%' && yyp[1] == 's' && yyi < yycount)
    1094         {
    1095           yyres += yytnamerr_ (yyarg[yyi++]);
    1096           ++yyp;
    1097         }
    1098       else
    1099         yyres += *yyp;
    1100     return yyres;
     1026    else
     1027#endif
     1028      res = YY_("syntax error");
     1029    return res;
    11011030  }
    11021031
     
    11041033  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    11051034     STATE-NUM.  */
    1106   const signed char EasyMeshParser::yypact_ninf_ = -48;
     1035  const signed char EasyMeshParser::yypact_ninf_ = -10;
    11071036  const signed char
    11081037  EasyMeshParser::yypact_[] =
    11091038  {
    1110         37,   -27,    89,   -32,   -32,   -32,   -32,   -48,   -32,   -32,
    1111      -32,   -32,   -48,   -32,   -32,   -32,   -32,   -48,   -32,   -32,
    1112      -48,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,   -32,
    1113      -32,   -32,   -32,   -32,   -32,   -48,     5,    13,    37,    37,
    1114       75,   -48,   -48,   -48,   -48,   -48,   -48,   -32,   -32,   -32,
    1115      -32,   -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,
    1116      -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,
    1117      -32,   -32,   -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,
    1118      -48,   -48,   -48,   -32,   -32,   -32,   -32,   -48,   -48,   -48,
    1119      -48,   -48,   -25,   -48,   -48,   -48,   -48,   -48,   -48,   -48,
    1120      -48,   -48,   -48,   -48,   -48,   -48
     1039        -3,    18,    27,    16,    16,    16,    16,   -10,    16,    16,
     1040      16,    16,   -10,    16,    16,    16,    16,   -10,    16,    16,
     1041     -10,   -10,   -10,   -10,   -10,    16,    16,    16,    16,    16,
     1042      16,    16,    16,    16,    16,    16,    16,    16,    16,   -10,
     1043      40,    48,    -3,    -3,    79,   -10,   -10,   -10,   -10,   -10,
     1044     -10,    16,    16,    16,    16,   -10,   -10,   -10,   -10,   -10,
     1045     -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,
     1046     -10,   -10,   -10,   -10,    16,    16,   -10,   -10,   -10,   -10,
     1047     -10,   -10,   -10,   -10,   -10,   -10,   -10,    16,    16,    16,
     1048      16,   -10,   -10,   -10,   -10,   -10,     5,   -10,   -10,   -10,
     1049     -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10,   -10
    11211050  };
    11221051
    1123   /* YYDEFACT[S] -- default reduction number in state S.  Performed when
    1124      YYTABLE doesn't specify something else to do.  Zero means the
    1125      default is an error.  */
     1052  /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
     1053     doesn't specify something else to do.  Zero means the default is an
     1054     error.  */
    11261055  const unsigned char
    11271056  EasyMeshParser::yydefact_[] =
     
    11291058         0,     0,     0,     0,     0,     0,     0,    33,     0,     0,
    11301059       0,     0,    34,     0,     0,     0,     0,    35,     0,     0,
    1131       36,     0,     0,     0,     0,     0,     0,     0,     0,     0,
    1132        0,     0,     0,     0,     0,     7,     0,     0,     3,     0,
    1133        5,     9,    11,    12,    13,    60,    15,     0,     0,     0,
    1134        0,    14,    50,    17,    16,    19,    23,    26,    29,    20,
    1135       24,    27,    30,    21,    25,    28,    31,    22,    32,    18,
    1136        0,     0,    37,    38,    39,    40,    41,    42,    44,    45,
    1137       46,    47,    48,     0,     0,     0,     0,    49,    43,     1,
    1138        2,     4,     0,    10,    61,    51,    52,    53,    54,    55,
    1139       56,    57,    58,    59,    8,     6
     1060      36,    37,    38,    39,    40,     0,     0,     0,     0,     0,
     1061       0,     0,     0,     0,     0,     0,     0,     0,     0,     7,
     1062       0,     0,     3,     0,     5,     9,    11,    12,    13,    64,
     1063      15,     0,     0,     0,     0,    14,    54,    17,    16,    19,
     1064      23,    26,    29,    20,    24,    27,    30,    21,    25,    28,
     1065      31,    22,    32,    18,     0,     0,    41,    42,    43,    44,
     1066      45,    46,    48,    49,    50,    51,    52,     0,     0,     0,
     1067       0,    53,    47,     1,     2,     4,     0,    10,    65,    55,
     1068      56,    57,    58,    59,    60,    61,    62,    63,    8,     6
    11401069  };
    11411070
     
    11441073  EasyMeshParser::yypgoto_[] =
    11451074  {
    1146        -48,   -48,   -19,   -48,   -48,   -48,   -48,   -15,   -48,   -48,
    1147      -48,   109,    -4,    -1,     6,    -7,     1,   -48,   -48,   -48,
    1148      -48,   -47
     1075       -10,   -10,    -4,   -10,   -10,   -10,   -10,     9,   -10,   -10,
     1076     -10,    43,    36,   115,   122,    23,    26,   -10,   -10,   -10,
     1077     -10,    -9
    11491078  };
    11501079
     
    11531082  EasyMeshParser::yydefgoto_[] =
    11541083  {
    1155         -1,    36,    37,    38,    39,   105,    40,    41,    42,    43,
    1156       44,    48,    49,    50,    70,    71,    72,    84,    85,    86,
    1157       87,    52
     1084        -1,    40,    41,    42,    43,   109,    44,    45,    46,    47,
     1085      48,    52,    53,    54,    74,    75,    76,    88,    89,    90,
     1086      91,    56
    11581087  };
    11591088
    11601089  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    11611090     positive, shift that token.  If negative, reduce the rule which
    1162      number is the opposite.  If YYTABLE_NINF_, syntax error.  */
     1091     number is the opposite.  If zero, do what YYDEFACT says.  */
    11631092  const signed char EasyMeshParser::yytable_ninf_ = -1;
    11641093  const unsigned char
    11651094  EasyMeshParser::yytable_[] =
    11661095  {
    1167         94,    95,    96,    97,    57,    89,    45,    51,    54,    61,
    1168       47,    45,    46,    90,    65,    47,   104,    67,    68,    91,
    1169       92,    78,    73,    98,    99,    93,    77,    81,    82,    80,
    1170       74,    75,    76,    88,    83,    79,   100,   101,   102,   103,
    1171        1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
     1096         1,     2,     3,     4,     5,     6,     7,     8,     9,    10,
    11721097      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
    11731098      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
    1174       31,    32,    33,    34,     0,     0,     0,    35,     1,     2,
    1175        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    1176       13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    1177       23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    1178       33,    34,    55,    56,     0,    58,     0,    59,    60,     0,
    1179       62,     0,    63,    64,     0,    66,     0,    45,    53,     0,
    1180       69,    47
     1099      31,    32,    33,    34,    35,    36,    37,    38,    95,    96,
     1100      93,    39,    98,    99,   100,   101,    59,    60,    94,    62,
     1101     108,    63,    64,    97,    66,    82,    67,    68,    49,    70,
     1102      49,    50,    51,    87,    51,   102,   103,     0,    73,    49,
     1103      57,    85,    86,    51,     0,     0,     0,     0,   104,   105,
     1104     106,   107,     1,     2,     3,     4,     5,     6,     7,     8,
     1105       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
     1106      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
     1107      29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
     1108      61,     0,     0,    55,    58,    65,     0,     0,     0,     0,
     1109      69,     0,     0,    71,    72,     0,     0,     0,     0,     0,
     1110       0,     0,    77,     0,     0,     0,    81,     0,     0,    84,
     1111      78,    79,    80,    92,     0,    83
    11811112  };
    11821113
     
    11851116  EasyMeshParser::yycheck_[] =
    11861117  {
    1187         47,    48,    49,    50,     5,     0,    38,     1,     2,    10,
    1188       42,    38,    39,     0,    15,    42,    41,    18,    19,    38,
    1189       39,    28,    23,    70,    71,    40,    27,    31,    32,    30,
    1190       24,    25,    26,    34,    33,    29,    83,    84,    85,    86,
    1191        3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
     1118         3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
    11921119      13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
    11931120      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
    1194       33,    34,    35,    36,    -1,    -1,    -1,    40,     3,     4,
    1195        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
    1196       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    1197       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    1198       35,    36,     3,     4,    -1,     6,    -1,     8,     9,    -1,
    1199       11,    -1,    13,    14,    -1,    16,    -1,    38,    39,    -1,
    1200       21,    42
     1121      33,    34,    35,    36,    37,    38,    39,    40,    42,    43,
     1122       0,    44,    51,    52,    53,    54,     3,     4,     0,     6,
     1123      45,     8,     9,    44,    11,    32,    13,    14,    42,    16,
     1124      42,    43,    46,    37,    46,    74,    75,    -1,    25,    42,
     1125      43,    35,    36,    46,    -1,    -1,    -1,    -1,    87,    88,
     1126      89,    90,     3,     4,     5,     6,     7,     8,     9,    10,
     1127      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
     1128      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
     1129      31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
     1130       5,    -1,    -1,     1,     2,    10,    -1,    -1,    -1,    -1,
     1131      15,    -1,    -1,    18,    19,    -1,    -1,    -1,    -1,    -1,
     1132      -1,    -1,    27,    -1,    -1,    -1,    31,    -1,    -1,    34,
     1133      28,    29,    30,    38,    -1,    33
    12011134  };
    12021135
     
    12091142      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
    12101143      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
    1211       32,    33,    34,    35,    36,    40,    44,    45,    46,    47,
    1212       49,    50,    51,    52,    53,    38,    39,    42,    54,    55,
    1213       56,    57,    64,    39,    57,    54,    54,    56,    54,    54,
    1214       54,    56,    54,    54,    54,    56,    54,    56,    56,    54,
    1215       57,    58,    59,    56,    57,    57,    57,    56,    58,    57,
    1216       56,    55,    55,    59,    60,    61,    62,    63,    56,     0,
    1217        0,    45,    45,    50,    64,    64,    64,    64,    64,    64,
    1218       64,    64,    64,    64,    41,    48
     1144      32,    33,    34,    35,    36,    37,    38,    39,    40,    44,
     1145      48,    49,    50,    51,    53,    54,    55,    56,    57,    42,
     1146      43,    46,    58,    59,    60,    61,    68,    43,    61,    58,
     1147      58,    60,    58,    58,    58,    60,    58,    58,    58,    60,
     1148      58,    60,    60,    58,    61,    62,    63,    60,    61,    61,
     1149      61,    60,    62,    61,    60,    59,    59,    63,    64,    65,
     1150      66,    67,    60,     0,     0,    49,    49,    54,    68,    68,
     1151      68,    68,    68,    68,    68,    68,    68,    68,    45,    52
    12191152  };
    12201153
     
    12291162     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
    12301163     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
    1231       91,    93,    45
     1164     295,   296,   297,   298,    91,    93,    45
    12321165  };
    12331166#endif
     
    12371170  EasyMeshParser::yyr1_[] =
    12381171  {
    1239          0,    43,    44,    45,    45,    46,    46,    47,    48,    49,
    1240       49,    50,    50,    50,    51,    51,    51,    51,    52,    52,
    1241       52,    52,    52,    52,    52,    52,    52,    52,    52,    52,
    1242       52,    52,    52,    52,    52,    52,    52,    53,    53,    53,
    1243       53,    53,    53,    53,    53,    53,    53,    53,    53,    53,
    1244       54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
    1245       64,    64
     1172         0,    47,    48,    49,    49,    50,    50,    51,    52,    53,
     1173      53,    54,    54,    54,    55,    55,    55,    55,    56,    56,
     1174      56,    56,    56,    56,    56,    56,    56,    56,    56,    56,
     1175      56,    56,    56,    56,    56,    56,    56,    56,    56,    56,
     1176      56,    57,    57,    57,    57,    57,    57,    57,    57,    57,
     1177      57,    57,    57,    57,    58,    59,    60,    61,    62,    63,
     1178      64,    65,    66,    67,    68,    68
    12461179  };
    12471180
     
    12531186       2,     1,     1,     1,     2,     2,     2,     2,     2,     2,
    12541187       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1255        2,     2,     2,     1,     1,     1,     1,     2,     2,     2,
    1256        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1188       2,     2,     2,     1,     1,     1,     1,     1,     1,     1,
    12571189       1,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1258        1,     2
     1190       2,     2,     2,     2,     1,     2,     2,     2,     2,     2,
     1191       2,     2,     2,     2,     1,     2
    12591192  };
    12601193
     
    12691202  "T_ROTATEY", "T_TAPERY", "T_SCALEY", "T_MIRRORY", "T_TRANSLATEZ",
    12701203  "T_ROTATEZ", "T_TAPERZ", "T_SCALEZ", "T_MIRRORZ", "T_TRANSLATE",
    1271   "T_SCALE", "T_TOGGLESCALEWINDING", "T_CHAMFER", "T_CYLINDER", "T_BOX",
     1204  "T_SCALE", "T_TOGGLESCALEWINDING", "T_CSGUNION", "T_CSGSUBSTRACT",
     1205  "T_CSGAND", "T_CSGXOR", "T_CHAMFER", "T_CYLINDER", "T_BOX",
    12721206  "T_SMOOTHCHAMFBOX", "T_FLATCHAMFBOX", "T_SPHERE", "T_CAPSULE", "T_STAR",
    12731207  "T_EXPANDEDSTAR", "T_DISC", "T_TRIANGLE", "T_QUAD", "T_COG", "T_TORUS",
     
    12861220  EasyMeshParser::yyrhs_[] =
    12871221  {
    1288         44,     0,    -1,    45,     0,    -1,    46,    -1,    46,    45,
    1289       -1,    49,    -1,    47,    45,    48,    -1,    40,    -1,    41,
    1290       -1,    50,    -1,    49,    50,    -1,    51,    -1,    52,    -1,
    1291       53,    -1,     3,    57,    -1,     3,    39,    -1,     4,    57,
    1292       -1,     4,    39,    -1,    23,    54,    -1,     5,    54,    -1,
    1293       10,    54,    -1,    15,    54,    -1,    20,    56,    -1,     6,
    1294       54,    -1,    11,    54,    -1,    16,    54,    -1,     7,    56,
    1295       -1,    12,    56,    -1,    17,    56,    -1,     8,    54,    -1,
    1296       13,    54,    -1,    18,    54,    -1,    21,    56,    -1,     9,
    1297       -1,    14,    -1,    19,    -1,    22,    -1,    24,    59,    -1,
    1298       25,    56,    -1,    26,    57,    -1,    27,    57,    -1,    28,
    1299       57,    -1,    29,    56,    -1,    36,    56,    -1,    30,    58,
    1300       -1,    31,    57,    -1,    32,    56,    -1,    33,    55,    -1,
    1301       34,    55,    -1,    35,    63,    -1,    64,    -1,    54,    64,
    1302       -1,    55,    64,    -1,    56,    64,    -1,    57,    64,    -1,
    1303       58,    64,    -1,    59,    64,    -1,    60,    64,    -1,    61,
    1304       64,    -1,    62,    64,    -1,    38,    -1,    42,    64,    -1
     1222        48,     0,    -1,    49,     0,    -1,    50,    -1,    50,    49,
     1223      -1,    53,    -1,    51,    49,    52,    -1,    44,    -1,    45,
     1224      -1,    54,    -1,    53,    54,    -1,    55,    -1,    56,    -1,
     1225      57,    -1,     3,    61,    -1,     3,    43,    -1,     4,    61,
     1226      -1,     4,    43,    -1,    27,    58,    -1,     5,    58,    -1,
     1227      10,    58,    -1,    15,    58,    -1,    20,    60,    -1,     6,
     1228      58,    -1,    11,    58,    -1,    16,    58,    -1,     7,    60,
     1229      -1,    12,    60,    -1,    17,    60,    -1,     8,    58,    -1,
     1230      13,    58,    -1,    18,    58,    -1,    21,    60,    -1,     9,
     1231      -1,    14,    -1,    19,    -1,    22,    -1,    23,    -1,    24,
     1232      -1,    25,    -1,    26,    -1,    28,    63,    -1,    29,    60,
     1233      -1,    30,    61,    -1,    31,    61,    -1,    32,    61,    -1,
     1234      33,    60,    -1,    40,    60,    -1,    34,    62,    -1,    35,
     1235      61,    -1,    36,    60,    -1,    37,    59,    -1,    38,    59,
     1236      -1,    39,    67,    -1,    68,    -1,    58,    68,    -1,    59,
     1237      68,    -1,    60,    68,    -1,    61,    68,    -1,    62,    68,
     1238      -1,    63,    68,    -1,    64,    68,    -1,    65,    68,    -1,
     1239      66,    68,    -1,    42,    -1,    46,    68,    -1
    13051240  };
    13061241
     
    13131248      23,    26,    28,    30,    32,    35,    38,    41,    44,    47,
    13141249      50,    53,    56,    59,    62,    65,    68,    71,    74,    77,
    1315       80,    83,    86,    89,    91,    93,    95,    97,   100,   103,
    1316      106,   109,   112,   115,   118,   121,   124,   127,   130,   133,
    1317      136,   138,   141,   144,   147,   150,   153,   156,   159,   162,
    1318      165,   167
     1250      80,    83,    86,    89,    91,    93,    95,    97,    99,   101,
     1251     103,   105,   108,   111,   114,   117,   120,   123,   126,   129,
     1252     132,   135,   138,   141,   144,   146,   149,   152,   155,   158,
     1253     161,   164,   167,   170,   173,   175
    13191254  };
    13201255
     
    13231258  EasyMeshParser::yyrline_[] =
    13241259  {
    1325          0,    75,    75,    79,    80,    84,    85,    89,    93,    97,
    1326       98,   102,   103,   104,   108,   109,   112,   113,   119,   120,
    1327      121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
    1328      131,   132,   133,   134,   135,   136,   137,   141,   144,   145,
    1329      147,   149,   151,   152,   153,   155,   157,   158,   159,   160,
    1330      165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
    1331      177,   178
     1260         0,    76,    76,    80,    81,    85,    86,    90,    94,    98,
     1261      99,   103,   104,   105,   109,   110,   113,   114,   120,   121,
     1262     122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
     1263     132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
     1264     142,   146,   149,   150,   152,   154,   156,   157,   158,   160,
     1265     162,   163,   164,   165,   170,   171,   172,   173,   174,   175,
     1266     176,   177,   178,   179,   182,   183
    13321267  };
    13331268
     
    13731308       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    13741309       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1375        2,     2,     2,     2,     2,    42,     2,     2,     2,     2,
    1376        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1377        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1378        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1379        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    1380        2,    40,     2,    41,     2,     2,     2,     2,     2,     2,
     1310       2,     2,     2,     2,     2,    46,     2,     2,     2,     2,
     1311       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1312       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1313       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1314       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     1315       2,    44,     2,    45,     2,     2,     2,     2,     2,     2,
    13811316       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    13821317       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
     
    13981333      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
    13991334      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
    1400       35,    36,    37,    38,    39
     1335      35,    36,    37,    38,    39,    40,    41,    42,    43
    14011336    };
    14021337    if ((unsigned int) t <= yyuser_token_number_max_)
     
    14071342
    14081343  const int EasyMeshParser::yyeof_ = 0;
    1409   const int EasyMeshParser::yylast_ = 131;
     1344  const int EasyMeshParser::yylast_ = 155;
    14101345  const int EasyMeshParser::yynnts_ = 22;
    14111346  const int EasyMeshParser::yyempty_ = -2;
    1412   const int EasyMeshParser::yyfinal_ = 89;
     1347  const int EasyMeshParser::yyfinal_ = 93;
    14131348  const int EasyMeshParser::yyterror_ = 1;
    14141349  const int EasyMeshParser::yyerrcode_ = 256;
    1415   const int EasyMeshParser::yyntokens_ = 43;
    1416 
    1417   const unsigned int EasyMeshParser::yyuser_token_number_max_ = 294;
     1350  const int EasyMeshParser::yyntokens_ = 47;
     1351
     1352  const unsigned int EasyMeshParser::yyuser_token_number_max_ = 298;
    14181353  const EasyMeshParser::token_number_type EasyMeshParser::yyundef_token_ = 2;
    14191354
     
    14211356} // lol
    14221357
    1423 /* Line 1136 of lalr1.cc  */
    1424 #line 1425 "generated/easymesh-parser.cpp"
    1425 
    1426 
    1427 /* Line 1138 of lalr1.cc  */
    1428 #line 181 "easymesh/easymesh-parser.y"
     1358/* Line 1053 of lalr1.cc  */
     1359#line 1360 "generated/easymesh-parser.cpp"
     1360
     1361
     1362/* Line 1055 of lalr1.cc  */
     1363#line 186 "easymesh/easymesh-parser.y"
    14291364
    14301365
Note: See TracChangeset for help on using the changeset viewer.