diff --git a/Box/Box.cpp b/Box/Box.cpp index 9249fcb401a7f8dc421271f2d9dc00acb8717f72..19914abedc8c82f29755a4723a5ec31defd0c820 100644 --- a/Box/Box.cpp +++ b/Box/Box.cpp @@ -13,7 +13,9 @@ #include "Static.h" -int VERBOSE = 0 ; +char *TheFileNameTab[MAX_OPEN_FILES]; +char *ThePathForIncludes=NULL, *TheBgmFileName=NULL; +int VERBOSE = 0 ; char progname[] = "This is Gmsh (non-interactive)" ; char copyright[] = "Copyright (C) 1997-2000 C. Geuzaine, J.-F. Remacle" ; @@ -27,7 +29,6 @@ char clargs[] = " -format msh|unv|gref mesh format (default: msh)\n" " -algo iso|aniso mesh algorithm (default: iso)\n" " -scale float scaling factor (default: 1.0)\n" - " -recombine recombine extruded meshes\n" " -bgm file load backround mesh from file\n" "Other options:\n" " -v print debug information\n" @@ -74,7 +75,6 @@ void OpenProblem(char *name){ InitSymbols(); Init_Mesh(&M, 1); - BD_EXISTS = 1; strncpy(TheFileName,name,NAME_STR_L); strncpy(TheBaseFileName,name,NAME_STR_L); @@ -107,12 +107,13 @@ void OpenProblem(char *name){ /* G e t _ O p t i o n s */ /* ------------------------------------------------------------------------ */ -void Get_Options (int argc, char *argv[]) { +void Get_Options (int argc, char *argv[], int *nbfiles) { int i=1; if(argc < 2) Info(0,argv[0]); - strncpy(TheFileNameTab[0], "unnamed.geo",NAME_STR_L); + TheFileNameTab[0] = "unnamed.geo" ; + *nbfiles = 0; while (i < argc) { @@ -135,20 +136,15 @@ void Get_Options (int argc, char *argv[]) { } else if(!strcmp(argv[i]+1, "path")){ i++; - if(argv[i] != NULL){ - strncpy(ThePathForIncludes,argv[i++],NAME_STR_L); - } + if(argv[i] != NULL) ThePathForIncludes = argv[i++]; } else if(!strcmp(argv[i]+1, "bgm")){ i++; - if(argv[i] != NULL){ - strncpy(TheBgmFileName,argv[i++],NAME_STR_L); - INITIALBGMESH = ONFILE; - } + if(argv[i] != NULL) TheBgmFileName = argv[i++]; } else if(!strcmp(argv[i]+1, "smooth")){ i++; - LISSAGE = atoi(argv[i]); i++; + CTX.mesh.nb_smoothing = atoi(argv[i]); i++; } else if(!strcmp(argv[i]+1, "scale")){ i++; @@ -222,8 +218,8 @@ void Get_Options (int argc, char *argv[]) { } else { - if(NbFileName<MAX_OPEN_FILES){ - strncpy(TheFileNameTab[NbFileName++], argv[i++], NAME_STR_L); + if(*nbfiles < MAX_OPEN_FILES){ + TheFileNameTab[(*nbfiles)++] = argv[i++]; } else{ fprintf(stderr, "Error: Too many input files\n"); @@ -242,10 +238,10 @@ void Get_Options (int argc, char *argv[]) { /* ------------------------------------------------------------------------ */ int main(int argc, char *argv[]){ - int i; + int i, nbf; InitContext(&CTX); - Get_Options(argc, argv); + Get_Options(argc, argv, &nbf); signal(SIGINT, Signal); signal(SIGSEGV, Signal); @@ -255,10 +251,10 @@ int main(int argc, char *argv[]){ if(yyerrorstate) exit(1); else{ - if(NbFileName>1){ - for(i=1;i<NbFileName;i++) MergeProblem(TheFileNameTab[i]); + if(nbf>1){ + for(i=1;i<nbf;i++) MergeProblem(TheFileNameTab[i]); } - if(INITIALBGMESH == ONFILE){ + if(TheBgmFileName){ MergeProblem(TheBgmFileName); if(List_Nbr(Post_ViewList)){ BGMWithView((Post_View*)List_Pointer(Post_ViewList, List_Nbr(Post_ViewList)-1)); diff --git a/Common/Context.cpp b/Common/Context.cpp index 86ac187a633126fb30803a0b6666d355b051b370..b91abc811dfd309147a04d8d3c263c055da6b122 100644 --- a/Common/Context.cpp +++ b/Common/Context.cpp @@ -128,6 +128,7 @@ void InitColors(rgbacolors * col, int num){ void InitContext(Context_T *ctx){ ctx->interactive = 0 ; + ctx->expose = 0 ; ctx->r[0] = 0.0 ; ctx->r[1] = 0.0 ; @@ -220,11 +221,14 @@ void InitContext(Context_T *ctx){ ctx->mesh.format = FORMAT_MSH ; ctx->mesh.nb_smoothing = 0 ; ctx->mesh.algo = DELAUNAY_OLDALGO ; + ctx->mesh.point_insertion = CENTER_CIRCCIRC; + ctx->mesh.speed_max = 0 ; ctx->mesh.degree = 1 ; - ctx->mesh.is_limit_gamma = 0 ; - ctx->mesh.limit_gamma = 0.1 ; + ctx->mesh.limit_gamma = 0.0 ; + ctx->mesh.limit_eta = 0.0 ; + ctx->mesh.limit_rho = 0.0 ; ctx->mesh.dual = 0 ; - ctx->mesh.reco_extrude = 0 ; + ctx->mesh.interactive = 0 ; ctx->post.draw = 1 ; ctx->post.scales = 1 ; @@ -236,13 +240,8 @@ void InitContext(Context_T *ctx){ ctx->post.initial_nbiso = 15 ; ctx->post.anim_delay = 0 ; -#ifdef _UNIX ctx->print.type = GLPRPAINTER ; ctx->print.format = FORMAT_EPS ; -#else - ctx->print.type = -1 ; - ctx->print.format = -1 ; -#endif ctx->color.id = -1; InitColors(&ctx->color, 0) ; diff --git a/Common/Context.h b/Common/Context.h index 0f8140ee0ef32f9cb407e138b51acce69139279f..aa2f0657e9f429342823c4a13d13c9ef210540a8 100644 --- a/Common/Context.h +++ b/Common/Context.h @@ -50,6 +50,7 @@ typedef struct{ typedef struct { int interactive; /* 0=full gfx; -1=just parse; 1,2,3=batch mesh */ + int expose; /* 1 if everything is ready to expose and draw */ double r[3], t[3], s[3]; /* current rotation, translation and scale */ int rlock[3], tlock[3], slock[3]; /* locks for r, t and s */ @@ -103,11 +104,11 @@ typedef struct { int draw; int points, lines, surfaces, volumes; int points_num, lines_num, surfaces_num, volumes_num; - int is_limit_gamma, dual; - double limit_gamma; + double limit_gamma, limit_eta, limit_rho; + int dual, interactive; int hidden, shade; int format, nb_smoothing, algo, degree; - int reco_extrude; + int point_insertion, speed_max; double normals, tangents, explode; } mesh; diff --git a/Common/GmshUI.h b/Common/GmshUI.h index f759c73139f49248bea044cea81d51da30caefd7..b69fa62f430477fa8b814c8172a438ea2b6cf632 100644 --- a/Common/GmshUI.h +++ b/Common/GmshUI.h @@ -8,7 +8,7 @@ #include <GL/gl.h> #include <GL/glu.h> #include <GL/glx.h> -#include <GL/GLwMDrawA.h> +#include <GLwMDrawA.h> #else diff --git a/Common/Static.h b/Common/Static.h index 1cf77d9a3638d7adb8d39c12ed8e7b4e5b39e46e..5c3a00e52577261dc432fa59be1939653ffb5e35 100644 --- a/Common/Static.h +++ b/Common/Static.h @@ -1,6 +1,9 @@ #ifndef _STATIC_H_ #define _STATIC_H_ +/* This file defines the static structures for Gmsh. It should be + included only once, in any 'main' file */ + #include "Version.h" char gmsh_progname[] = "This is Gmsh" ; @@ -15,38 +18,23 @@ char gmsh_email[] = "E-Mail : " char gmsh_url[] = "URL : http://www.geuz.org/gmsh/"; -char yyname[NAME_STR_L]; -int yyerrorstate; - -char TheFileNameTab[MAX_OPEN_FILES][NAME_STR_L], TheFileName[NAME_STR_L]; -char TheBaseFileName[NAME_STR_L], TheMshFileName[NAME_STR_L], TheBgmFileName[NAME_STR_L]; -char ThePathForIncludes[NAME_STR_L] = ""; +char TheFileName[NAME_STR_L], TheBaseFileName[NAME_STR_L]; +char yyname[NAME_STR_L]; +int yyerrorstate; Context_T CTX ; Mesh M, *THEM, *LOCAL; -Simplex Boundary; - +int CurrentNodeNumber, CurrentSimplexNumber; Tree_T *EntitesVisibles = NULL; -List_T *TrsfVolNum = NULL; List_T *Post_ViewList = NULL; -double LC, MiddleLC, FACTEUR_MULTIPLICATIF=1.0; +double LC, MiddleLC ; int LC_ORDER; -double RANDOM_FACTOR=1.0, GLOBALSCALINGFACTOR=1.0; - -char *TextBuffer, TextAbout[1024]; - -int NbFileName=0; -int EXPOSE = 0 ; -int WARNING_OVERRIDE=0; -int ACTUAL_ENTITY, SHOW_ALL; -int LocalNewPoint= CENTER_CIRCCIRC, FindQualityMethod=FEM_INTERPOLATION; -int Alerte_Point_Scabreux, Alerte_Point_Exterieur, Highlight_Selection=0; -int SPEED_MAX=0 ; -int LISSAGE=3; -int INITIALBGMESH=NONE, TYPBGMESH=WITHPOINTS; -int CurrentNodeNumber, CurrentSimplexNumber; -int NbComplexVolumes=0, BD_EXISTS=0; +double FACTEUR_MULTIPLICATIF=1.0, GLOBALSCALINGFACTOR=1.0; + +/* Some garbage */ + +int TYPBGMESH=WITHPOINTS; int FLAG_OLD_CIRCLE = 0 ; /* Pour David : cercles > Pi */ diff --git a/Common/Version.h b/Common/Version.h index 05d5af1bcb0b8ab34f1ebd6e57ea97e9276b5ebd..b53f1bd87aee40766d68a703607a1fb8da610147 100644 --- a/Common/Version.h +++ b/Common/Version.h @@ -1,5 +1,5 @@ #define GMSH_VERSION 0.995 -#define GMSH_DATE "Thu Nov 23 00:50:59 CET 2000" -#define GMSH_HOST "geuz.montefiore.ulg.ac.be" +#define GMSH_DATE "Thu Nov 23 14:48:03 MET 2000" +#define GMSH_HOST "elap57.montefiore.ulg.ac.be" #define GMSH_PACKAGER "geuzaine" -#define GMSH_OS "Linux 2.2.16-22" +#define GMSH_OS "OSF1 V4.0" diff --git a/Geo/ExtrudeParams.cpp b/Geo/ExtrudeParams.cpp index ed9f19451d1eb4ea11fbe3145b7ee03dbb5dc8fb..47e61faa1f3e42c49713f56df95eb6ad3539dcdc 100644 --- a/Geo/ExtrudeParams.cpp +++ b/Geo/ExtrudeParams.cpp @@ -19,6 +19,7 @@ ExtrudeParams :: ExtrudeParams (int ModeEx){ mesh.ExtrudeMesh = false; geo.Mode = ModeEx; mesh.Simplexes = true; + mesh.Recombine = false; } diff --git a/Geo/ExtrudeParams.h b/Geo/ExtrudeParams.h index 555451341a882191fc54c825dc36373343345acd..06e17fe7e2f548fdb4d34fa1149abe943d8c098d 100644 --- a/Geo/ExtrudeParams.h +++ b/Geo/ExtrudeParams.h @@ -7,9 +7,9 @@ #define COPIED_ENTITY 2 class ExtrudeParams{ - public : - ExtrudeParams(int Mode = EXTRUDED_ENTITY); +public : + ExtrudeParams(int Mode = EXTRUDED_ENTITY); void fill (int ep,double A, double B, double C, double X, double Y, double Z, double angle); void Extrude ( int iLayer, int iElemLayer, @@ -18,7 +18,7 @@ class ExtrudeParams{ void Rotate(double matr[3][3]); struct{ bool ExtrudeMesh; - bool Simplexes; + bool Simplexes, Recombine; int NbLayer; int NbElmLayer [NB_LAYER_MAX]; int ZonLayer [NB_LAYER_MAX]; @@ -32,6 +32,7 @@ class ExtrudeParams{ double pt[3]; double angle; }geo; + }; #endif diff --git a/Graphics/Draw.cpp b/Graphics/Draw.cpp index 81b4ac75b0d6f65b630dd1526a13640426c0955c..6edee008674d7a2094b2885d211ce9a8ce55194d 100644 --- a/Graphics/Draw.cpp +++ b/Graphics/Draw.cpp @@ -7,6 +7,8 @@ #include "Context.h" #include "MinMax.h" +#include "CbGeneral.h" + #ifdef _UNIX #include "Widgets.h" #include "XContext.h" @@ -14,15 +16,10 @@ extern XContext_T XCTX ; extern Widgets_T WID ; #endif -void set_r(int i, double val); -void set_t(int i, double val); -void set_s(int i, double val); - extern Context_T CTX ; extern GLdouble vxmin, vxmax, vymin, vymax; extern Mesh M; extern double LC; -extern int BD_EXISTS, EXPOSE; extern List_T *Post_ViewList; /* ------------------------------------------------------------------------ */ @@ -440,7 +437,7 @@ void ExposeCb(Widget w,XtPointer client_data, GLwDrawingAreaCallbackStruct *cb){ return; } - if(!BD_EXISTS || !EXPOSE) return; + if(!CTX.expose) return; Init(); Draw(); diff --git a/Graphics/Mesh.cpp b/Graphics/Mesh.cpp index 208eb6f4391072d37cf0e3ace32f97dd33d11f60..79ca607fef9196aca599daddc341a85febc01555 100644 --- a/Graphics/Mesh.cpp +++ b/Graphics/Mesh.cpp @@ -190,12 +190,15 @@ void Draw_Simplex_Volume (void *a, void *b){ if(!(*s)->V[3]) return; - /* - if(CTX.mesh.is_limit_gamma) - { - if((*s)->GammaShapeMeasure() > CTX.mesh.limit_gamma)return; + if(CTX.mesh.limit_gamma){ + if((*s)->GammaShapeMeasure() > CTX.mesh.limit_gamma) return; + } + if(CTX.mesh.limit_eta){ + if((*s)->EtaShapeMeasure() > CTX.mesh.limit_eta) return; + } + if(CTX.mesh.limit_rho){ + if((*s)->RhoShapeMeasure() > CTX.mesh.limit_rho) return; } - */ ColorSwitch((*s)->iEnt+1); diff --git a/Mesh/2D_Mesh.cpp b/Mesh/2D_Mesh.cpp index ec0b1d00fc6d3c0e73f026e62ac25a0705e6ed1f..b42bc5aaf30186922e3310958a42c332a811e794 100644 --- a/Mesh/2D_Mesh.cpp +++ b/Mesh/2D_Mesh.cpp @@ -25,9 +25,11 @@ extern Mesh *THEM; extern Context_T CTX; -extern int CurrentNodeNumber, LocalNewPoint; +extern int CurrentNodeNumber; extern double LC, FACTEUR_MULTIPLICATIF; +int LocalNewPoint; + PointRecord *gPointArray; DocRecord *BGMESH, *FGMESH; double qual, newqual, L; @@ -861,11 +863,8 @@ void Maillage_Automatique_VieuxCode (Surface * pS, Mesh * m, int ori){ liste[i] = cp; } - if (pS->Method){ - /* lets force this, since it's the only one that works... */ - LocalNewPoint = CENTER_CIRCCIRC; + if (pS->Method) mesh_domain (liste, List_Nbr (pS->Contours), &M, &N, NULL, 0); - } for (i = 0; i < M.numpoints; i++){ if (gPointArray[i].initial < 0){ @@ -1013,6 +1012,8 @@ void Maillage_Surface (void *data, void *dum){ THESUPPORT = s->Support; THESURFACE = s; + LocalNewPoint = CTX.mesh.point_insertion; + if (Tree_Nbr (s->Simplexes)) Tree_Delete (s->Simplexes); s->Simplexes = Tree_Create (sizeof (Simplex *), compareQuality); diff --git a/Mesh/2D_Mesh_Aniso.cpp b/Mesh/2D_Mesh_Aniso.cpp index cc0e5435a3160ee1c3e50680f632d259c90d075a..d34e3c4bb2c99a15b5c301c924e591ecb177d756 100644 --- a/Mesh/2D_Mesh_Aniso.cpp +++ b/Mesh/2D_Mesh_Aniso.cpp @@ -31,7 +31,6 @@ MeshParameters:: MeshParameters (): extern Simplex MyNewBoundary; extern Mesh *THEM; -extern int SPEED_MAX; extern int CurrentNodeNumber; extern double MAXIMUM_LC_FOR_SURFACE, LC, FACTEUR_MULTIPLICATIF; extern int Alerte_Point_Scabreux; @@ -588,7 +587,7 @@ bool Bowyer_Watson_2D (Surface * sur, Vertex * v, Simplex * S, int force){ /* calcul des volumes des simplexes crees */ - if (Alerte_Point_Scabreux || !SPEED_MAX){ + if (Alerte_Point_Scabreux || !CTX.mesh.speed_max){ volume = 0.0; for (i = 0; i < List_Nbr (Simplexes_Destroyed); i++){ VSIM_2D (List_Pointer (Simplexes_Destroyed, i), NULL); @@ -977,7 +976,6 @@ int AlgorithmeMaillage2DAnisotropeModeJF (Surface * s){ FACE_DIMENSION = 1; SURF = s; - SPEED_MAX = 0; LOCAL = NULL; if (s->Typ == MSH_SURF_PLAN || s->Typ == MSH_SURF_REGL || s->Typ == MSH_SURF_TRIC) diff --git a/Mesh/2D_Util.cpp b/Mesh/2D_Util.cpp index bc4b99190ddb591d0464d51ee6b8b6c2339887de..ab00d83bf99882887753961d7a2ba2163a1d86d0 100644 --- a/Mesh/2D_Util.cpp +++ b/Mesh/2D_Util.cpp @@ -4,7 +4,7 @@ #include "Mesh.h" #include "2D_Mesh.h" -extern int LocalNewPoint, FindQualityMethod; +extern int LocalNewPoint; extern PointRecord *gPointArray; extern Mesh *THEM; diff --git a/Mesh/3D_BGMesh.cpp b/Mesh/3D_BGMesh.cpp index 6bce95e3f0237b035b3e1a11122298fb03776a4d..30248238aca3f4eb537fffc384a1f2fd8e2be9f3 100644 --- a/Mesh/3D_BGMesh.cpp +++ b/Mesh/3D_BGMesh.cpp @@ -7,7 +7,6 @@ #include "Views.h" #include "Numeric.h" -extern int Alerte_Point_Exterieur; extern double FACTEUR_MULTIPLICATIF; static Mesh m; @@ -104,7 +103,7 @@ double Lc_XYZ (double X, double Y, double Z, Mesh * m){ else if (Pt_In_Volume (X, Y, Z, m, &l, 0.2)); else if (Pt_In_Volume (X, Y, Z, m, &l, 0.5)); else{ - Alerte_Point_Exterieur = 1; + Msg(WARNING, "Exterior Point"); l = 1.e-25; } break; diff --git a/Mesh/3D_Extrude.cpp b/Mesh/3D_Extrude.cpp index db75cca95cf2517ef60193051ef3eadf67c7a427..7ea26a558e5f2d44bfde57a5ddb79081ba599918 100644 --- a/Mesh/3D_Extrude.cpp +++ b/Mesh/3D_Extrude.cpp @@ -8,15 +8,12 @@ #include "Create.h" extern Mesh *THEM; -extern Context_T CTX; extern int CurrentNodeNumber; static Tree_T *Tree_Ares = NULL, *Tree_Swaps = NULL; - -Surface *THES; -Volume *THEV; -int TEST_IS_ALL_OK; - +static int TEST_IS_ALL_OK; +static Surface *THES; +static Volume *THEV; static ExtrudeParams *ep; typedef struct{ @@ -112,7 +109,7 @@ void Extrude_Simplex_Phase3 (void *data, void *dum){ pS = (Simplex **) data; s = *pS; - if(s->V[3] && !CTX.mesh.reco_extrude){ + if(s->V[3] && !ep->mesh.Recombine){ Msg(ERROR, "Use '-recombine' to extrude with quadrangles"); } @@ -142,7 +139,7 @@ void Extrude_Simplex_Phase3 (void *data, void *dum){ k++; if (ep->mesh.ZonLayer[i]){ - if(CTX.mesh.reco_extrude){ + if(ep->mesh.Recombine){ if(s->V[3]){ newh = Create_Hexahedron(v1,v2,v3,v4,v5,v6,v7,v8); newh->iEnt = ep->mesh.ZonLayer[i]; @@ -349,7 +346,7 @@ void Extrude_Vertex (void *data, void *dum){ void Extrude_Surface1 (Surface * s){ THES = s; Tree_Action (s->Vertices, Extrude_Vertex); - if(!CTX.mesh.reco_extrude) Tree_Action (s->Simplexes, Extrude_Simplex_Phase1); + if(!ep->mesh.Recombine) Tree_Action (s->Simplexes, Extrude_Simplex_Phase1); } void Extrude_Surface2 (Surface * s){ @@ -376,7 +373,7 @@ void Extrude_Seg (Vertex * V1, Vertex * V2){ List_Read (V2->Extruded_Points, k, &v2); List_Read (V1->Extruded_Points, k + 1, &v3); List_Read (V2->Extruded_Points, k + 1, &v4); - if(CTX.mesh.reco_extrude){ + if(ep->mesh.Recombine){ s = Create_Quadrangle(v1,v2,v4,v3); s->iEnt = THES->Num; Tree_Add(THES->Simplexes,&s); @@ -628,7 +625,7 @@ int Extrude_Mesh (Volume * v){ List_Delete (list); Extrude_Surface1 (s); - if(!CTX.mesh.reco_extrude){ + if(!ep->mesh.Recombine){ j = TEST_IS_ALL_OK; do{ TEST_IS_ALL_OK = 0; diff --git a/Mesh/3D_Mesh.cpp b/Mesh/3D_Mesh.cpp index 15d8e5bccd3e535af2c9a47c7c80d7f23a72a5dd..30f08b9c261d69cc46982def6b6d0317f06e713b 100644 --- a/Mesh/3D_Mesh.cpp +++ b/Mesh/3D_Mesh.cpp @@ -22,25 +22,22 @@ #include "Numeric.h" #include "Context.h" -extern Mesh *THEM, *LOCAL; -extern Context_T CTX; -extern int TYPBGMESH, SPEED_MAX; -extern int CurrentNodeNumber; -extern int Alerte_Point_Scabreux; -extern int NbComplexVolumes, FACE_DIMENSION; -extern double LC; +extern Mesh *THEM, *LOCAL; +extern Context_T CTX; +extern int TYPBGMESH, CurrentNodeNumber, FACE_DIMENSION; +extern double LC; static Tree_T *Tsd, *Sim_Sur_Le_Bord, *POINTS_TREE; static List_T *Simplexes_Destroyed, *Simplexes_New, *Suppress; static List_T *LLL, *POINTS; static Simplex *THES; static Vertex *THEV; - static Tree_T *SimXFac; static double volume; static int ZONEELIMINEE, Methode = 0; -Simplex MyNewBoundary; +Simplex MyNewBoundary; +int Alerte_Point_Scabreux; void DebugSimplexe (Simplex * s){ int i; @@ -513,7 +510,7 @@ bool Bowyer_Watson (Mesh * m, Vertex * v, Simplex * S, int force){ /* calcul des volumes des simplexes crees */ - if (Alerte_Point_Scabreux || !SPEED_MAX){ + if (Alerte_Point_Scabreux || !CTX.mesh.speed_max){ volume = 0.0; for (i = 0; i < List_Nbr (Simplexes_Destroyed); i++){ VSIM (List_Pointer (Simplexes_Destroyed, i), NULL); diff --git a/Mesh/Create.cpp b/Mesh/Create.cpp index 13173d35ee8a9ad78c04c810d926489c3f30f6b8..18223c3ca1c5c13c5801b2685bdc6f658521ea9e 100644 --- a/Mesh/Create.cpp +++ b/Mesh/Create.cpp @@ -7,8 +7,7 @@ #include "Numeric.h" extern Mesh *THEM; -extern int Alerte_Point_Scabreux; -extern int CurrentSimplexNumber; +extern int CurrentSimplexNumber, FLAG_OLD_CIRCLE; //static double CIRC_GRAN = 2.2; @@ -262,19 +261,19 @@ void End_Curve (Curve * c){ mat[0][1] = Curve->Circle.invmat[1][0] = dir12[1]; mat[0][2] = Curve->Circle.invmat[2][0] = dir12[2]; - /* + if(FLAG_OLD_CIRCLE){ if(n[0] == 0.0 && n[1] == 0.0){ - mat[2][0] = Curve->Circle.invmat[0][2] = 0; - mat[2][1] = Curve->Circle.invmat[1][2] = 0; - mat[2][2] = Curve->Circle.invmat[2][2] = 1; - mat[1][0] = Curve->Circle.invmat[0][1] = 0; - mat[1][1] = Curve->Circle.invmat[1][1] = 1; - mat[1][2] = Curve->Circle.invmat[2][1] = 0; - mat[0][0] = Curve->Circle.invmat[0][0] = 1; - mat[0][1] = Curve->Circle.invmat[1][0] = 0; - mat[0][2] = Curve->Circle.invmat[2][0] = 0; + mat[2][0] = Curve->Circle.invmat[0][2] = 0; + mat[2][1] = Curve->Circle.invmat[1][2] = 0; + mat[2][2] = Curve->Circle.invmat[2][2] = 1; + mat[1][0] = Curve->Circle.invmat[0][1] = 0; + mat[1][1] = Curve->Circle.invmat[1][1] = 1; + mat[1][2] = Curve->Circle.invmat[2][1] = 0; + mat[0][0] = Curve->Circle.invmat[0][0] = 1; + mat[0][1] = Curve->Circle.invmat[1][0] = 0; + mat[0][2] = Curve->Circle.invmat[2][0] = 0; } - */ + } Projette (&v1, mat); Projette (&v3, mat); diff --git a/Mesh/Generator.cpp b/Mesh/Generator.cpp index 9bdaeed63a23c1db19c7c1b275075f6d1c2f2d3f..8db55a46f64668406aae85124601cd4a1947a406 100644 --- a/Mesh/Generator.cpp +++ b/Mesh/Generator.cpp @@ -8,8 +8,7 @@ extern Mesh *THEM; extern Context_T CTX; -extern int TYPBGMESH,LocalNewPoint; -extern int Alerte_Point_Exterieur; +extern int TYPBGMESH; extern int CurrentNodeNumber, CurrentSimplexNumber; static List_T *Curves; @@ -155,15 +154,12 @@ void Init_Mesh (Mesh * M, int all){ M->Metric = new GMSHMetric; M->BGM.bgm = NULL; - /* Dirt */ - - LocalNewPoint = CENTER_CIRCCIRC; - Alerte_Point_Exterieur = 0; CurrentNodeNumber = 1; CurrentSimplexNumber = 0; M->MeshParams.DelaunayAlgorithm = CTX.mesh.algo ; M->MeshParams.NbSmoothing = CTX.mesh.nb_smoothing ; + M->MeshParams.InteractiveDelaunay = CTX.mesh.interactive ; M->status = 0; } diff --git a/Mesh/Mesh.h b/Mesh/Mesh.h index 54dbc528e149f5ea5289e344f93e6e8f06228d54..23298bf05c713cadb19bf61394c563ac4d005a7c 100644 --- a/Mesh/Mesh.h +++ b/Mesh/Mesh.h @@ -12,9 +12,6 @@ #define CONV_VALUE 0.8 -#define GREEN_INTERPOLATION 1 -#define FEM_INTERPOLATION 2 - #define NOTTOLINK 1 #define TOLINK 2 diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp index 6831e1452840358e79820ab9f0f6183e37c5dac6..dc1cf43fb5078696017ad288e604045c49a18d26 100644 --- a/Parser/Gmsh.tab.cpp +++ b/Parser/Gmsh.tab.cpp @@ -1,148 +1,149 @@ /* A Bison parser, made from Gmsh.y - by GNU Bison version 1.28 */ + by GNU Bison version 1.25 + */ #define YYBISON 1 /* Identify Bison output. */ -#define tDOUBLE 257 -#define tSTRING 258 -#define tBIGSTR 259 -#define tEND 260 -#define tAFFECT 261 -#define tDOTS 262 -#define tPi 263 -#define tExp 264 -#define tLog 265 -#define tLog10 266 -#define tSqrt 267 -#define tSin 268 -#define tAsin 269 -#define tCos 270 -#define tAcos 271 -#define tTan 272 -#define tAtan 273 -#define tAtan2 274 -#define tSinh 275 -#define tCosh 276 -#define tTanh 277 -#define tFabs 278 -#define tFloor 279 -#define tCeil 280 -#define tFmod 281 -#define tModulo 282 -#define tHypot 283 -#define tPoint 284 -#define tCircle 285 -#define tEllipsis 286 -#define tLine 287 -#define tSurface 288 -#define tSpline 289 -#define tVolume 290 -#define tCharacteristic 291 -#define tLength 292 -#define tParametric 293 -#define tElliptic 294 -#define tPlane 295 -#define tRuled 296 -#define tTransfinite 297 -#define tComplex 298 -#define tPhysical 299 -#define tUsing 300 -#define tPower 301 -#define tBump 302 -#define tProgression 303 -#define tAssociation 304 -#define tRotate 305 -#define tTranslate 306 -#define tSymetry 307 -#define tDilate 308 -#define tExtrude 309 -#define tDuplicata 310 -#define tLoop 311 -#define tInclude 312 -#define tRecombine 313 -#define tDelete 314 -#define tCoherence 315 -#define tView 316 -#define tOffset 317 -#define tAttractor 318 -#define tLayers 319 -#define tScalarSimplex 320 -#define tVectorSimplex 321 -#define tTensorSimplex 322 -#define tScalarTriangle 323 -#define tVectorTriangle 324 -#define tTensorTriangle 325 -#define tScalarLine 326 -#define tVectorLine 327 -#define tTensorLine 328 -#define tScalarPoint 329 -#define tVectorPoint 330 -#define tTensorPoint 331 -#define tBSpline 332 -#define tNurbs 333 -#define tOrder 334 -#define tWith 335 -#define tBounds 336 -#define tKnots 337 -#define tColor 338 -#define tGeneral 339 -#define tGeometry 340 -#define tMesh 341 -#define tB_SPLINE_SURFACE_WITH_KNOTS 342 -#define tB_SPLINE_CURVE_WITH_KNOTS 343 -#define tCARTESIAN_POINT 344 -#define tTRUE 345 -#define tFALSE 346 -#define tUNSPECIFIED 347 -#define tU 348 -#define tV 349 -#define tEDGE_CURVE 350 -#define tVERTEX_POINT 351 -#define tORIENTED_EDGE 352 -#define tPLANE 353 -#define tFACE_OUTER_BOUND 354 -#define tEDGE_LOOP 355 -#define tADVANCED_FACE 356 -#define tVECTOR 357 -#define tDIRECTION 358 -#define tAXIS2_PLACEMENT_3D 359 -#define tISO 360 -#define tENDISO 361 -#define tENDSEC 362 -#define tDATA 363 -#define tHEADER 364 -#define tFILE_DESCRIPTION 365 -#define tFILE_SCHEMA 366 -#define tFILE_NAME 367 -#define tMANIFOLD_SOLID_BREP 368 -#define tCLOSED_SHELL 369 -#define tADVANCED_BREP_SHAPE_REPRESENTATION 370 -#define tFACE_BOUND 371 -#define tCYLINDRICAL_SURFACE 372 -#define tCONICAL_SURFACE 373 -#define tCIRCLE 374 -#define tTRIMMED_CURVE 375 -#define tGEOMETRIC_SET 376 -#define tCOMPOSITE_CURVE_SEGMENT 377 -#define tCONTINUOUS 378 -#define tCOMPOSITE_CURVE 379 -#define tTOROIDAL_SURFACE 380 -#define tPRODUCT_DEFINITION 381 -#define tPRODUCT_DEFINITION_SHAPE 382 -#define tSHAPE_DEFINITION_REPRESENTATION 383 -#define tELLIPSE 384 -#define tTrimmed 385 -#define tSolid 386 -#define tEndSolid 387 -#define tVertex 388 -#define tFacet 389 -#define tNormal 390 -#define tOuter 391 -#define tLoopSTL 392 -#define tEndLoop 393 -#define tEndFacet 394 -#define UMINUS 395 +#define tDOUBLE 258 +#define tSTRING 259 +#define tBIGSTR 260 +#define tEND 261 +#define tAFFECT 262 +#define tDOTS 263 +#define tPi 264 +#define tExp 265 +#define tLog 266 +#define tLog10 267 +#define tSqrt 268 +#define tSin 269 +#define tAsin 270 +#define tCos 271 +#define tAcos 272 +#define tTan 273 +#define tAtan 274 +#define tAtan2 275 +#define tSinh 276 +#define tCosh 277 +#define tTanh 278 +#define tFabs 279 +#define tFloor 280 +#define tCeil 281 +#define tFmod 282 +#define tModulo 283 +#define tHypot 284 +#define tPoint 285 +#define tCircle 286 +#define tEllipsis 287 +#define tLine 288 +#define tSurface 289 +#define tSpline 290 +#define tVolume 291 +#define tCharacteristic 292 +#define tLength 293 +#define tParametric 294 +#define tElliptic 295 +#define tPlane 296 +#define tRuled 297 +#define tTransfinite 298 +#define tComplex 299 +#define tPhysical 300 +#define tUsing 301 +#define tPower 302 +#define tBump 303 +#define tProgression 304 +#define tAssociation 305 +#define tRotate 306 +#define tTranslate 307 +#define tSymetry 308 +#define tDilate 309 +#define tExtrude 310 +#define tDuplicata 311 +#define tLoop 312 +#define tInclude 313 +#define tRecombine 314 +#define tDelete 315 +#define tCoherence 316 +#define tView 317 +#define tOffset 318 +#define tAttractor 319 +#define tLayers 320 +#define tScalarSimplex 321 +#define tVectorSimplex 322 +#define tTensorSimplex 323 +#define tScalarTriangle 324 +#define tVectorTriangle 325 +#define tTensorTriangle 326 +#define tScalarLine 327 +#define tVectorLine 328 +#define tTensorLine 329 +#define tScalarPoint 330 +#define tVectorPoint 331 +#define tTensorPoint 332 +#define tBSpline 333 +#define tNurbs 334 +#define tOrder 335 +#define tWith 336 +#define tBounds 337 +#define tKnots 338 +#define tColor 339 +#define tGeneral 340 +#define tGeometry 341 +#define tMesh 342 +#define tB_SPLINE_SURFACE_WITH_KNOTS 343 +#define tB_SPLINE_CURVE_WITH_KNOTS 344 +#define tCARTESIAN_POINT 345 +#define tTRUE 346 +#define tFALSE 347 +#define tUNSPECIFIED 348 +#define tU 349 +#define tV 350 +#define tEDGE_CURVE 351 +#define tVERTEX_POINT 352 +#define tORIENTED_EDGE 353 +#define tPLANE 354 +#define tFACE_OUTER_BOUND 355 +#define tEDGE_LOOP 356 +#define tADVANCED_FACE 357 +#define tVECTOR 358 +#define tDIRECTION 359 +#define tAXIS2_PLACEMENT_3D 360 +#define tISO 361 +#define tENDISO 362 +#define tENDSEC 363 +#define tDATA 364 +#define tHEADER 365 +#define tFILE_DESCRIPTION 366 +#define tFILE_SCHEMA 367 +#define tFILE_NAME 368 +#define tMANIFOLD_SOLID_BREP 369 +#define tCLOSED_SHELL 370 +#define tADVANCED_BREP_SHAPE_REPRESENTATION 371 +#define tFACE_BOUND 372 +#define tCYLINDRICAL_SURFACE 373 +#define tCONICAL_SURFACE 374 +#define tCIRCLE 375 +#define tTRIMMED_CURVE 376 +#define tGEOMETRIC_SET 377 +#define tCOMPOSITE_CURVE_SEGMENT 378 +#define tCONTINUOUS 379 +#define tCOMPOSITE_CURVE 380 +#define tTOROIDAL_SURFACE 381 +#define tPRODUCT_DEFINITION 382 +#define tPRODUCT_DEFINITION_SHAPE 383 +#define tSHAPE_DEFINITION_REPRESENTATION 384 +#define tELLIPSE 385 +#define tTrimmed 386 +#define tSolid 387 +#define tEndSolid 388 +#define tVertex 389 +#define tFacet 390 +#define tNormal 391 +#define tOuter 392 +#define tLoopSTL 393 +#define tEndLoop 394 +#define tEndFacet 395 +#define UMINUS 396 #line 1 "Gmsh.y" @@ -162,12 +163,12 @@ #include "Parser.h" extern Mesh *THEM; -extern char ThePathForIncludes[NAME_STR_L]; +extern char *ThePathForIncludes; -FILE *yyinTab[20]; -int yylinenoTab[20]; -char yynameTab[20][256]; -char tmpstring[256]; +FILE *yyinTab[MAX_OPEN_FILES]; +int yylinenoTab[MAX_OPEN_FILES]; +char yynameTab[MAX_OPEN_FILES][NAME_STR_L]; +char tmpstring[NAME_STR_L]; Symbol TheSymbol; Surface *STL_Surf; Shape TheShape; @@ -207,11 +208,11 @@ typedef union { -#define YYFINAL 1273 +#define YYFINAL 1275 #define YYFLAG -32768 #define YYNTBASE 157 -#define YYTRANSLATE(x) ((unsigned)(x) <= 395 ? yytranslate[x] : 213) +#define YYTRANSLATE(x) ((unsigned)(x) <= 396 ? yytranslate[x] : 213) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -239,21 +240,21 @@ static const short yytranslate[] = { 0, 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, 1, 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, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 148 + 2, 2, 2, 2, 2, 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, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 148 }; #if YYDEBUG != 0 @@ -272,16 +273,16 @@ static const short yyprhs[] = { 0, 988, 998, 1007, 1030, 1051, 1060, 1069, 1075, 1084, 1092, 1101, 1109, 1121, 1129, 1139, 1141, 1143, 1145, 1146, 1149, 1154, 1159, 1163, 1171, 1180, 1192, 1205, 1218, 1227, 1240, - 1249, 1261, 1277, 1279, 1282, 1292, 1299, 1309, 1319, 1329, - 1338, 1347, 1356, 1363, 1368, 1377, 1380, 1385, 1386, 1389, - 1390, 1396, 1397, 1403, 1404, 1410, 1411, 1414, 1419, 1428, - 1433, 1443, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1467, - 1471, 1475, 1479, 1483, 1487, 1490, 1493, 1498, 1503, 1508, - 1513, 1518, 1523, 1528, 1533, 1538, 1543, 1550, 1555, 1560, - 1565, 1570, 1575, 1580, 1587, 1594, 1601, 1603, 1605, 1607, - 1611, 1618, 1630, 1640, 1648, 1656, 1657, 1661, 1663, 1667, - 1668, 1672, 1676, 1678, 1682, 1683, 1685, 1689, 1691, 1693, - 1697 + 1249, 1261, 1277, 1279, 1282, 1292, 1295, 1302, 1312, 1322, + 1332, 1341, 1350, 1359, 1366, 1371, 1380, 1383, 1388, 1389, + 1392, 1393, 1399, 1400, 1406, 1407, 1413, 1414, 1417, 1422, + 1431, 1436, 1446, 1454, 1456, 1458, 1460, 1462, 1464, 1466, + 1470, 1474, 1478, 1482, 1486, 1490, 1493, 1496, 1501, 1506, + 1511, 1516, 1521, 1526, 1531, 1536, 1541, 1546, 1553, 1558, + 1563, 1568, 1573, 1578, 1583, 1590, 1597, 1604, 1606, 1608, + 1610, 1614, 1621, 1633, 1643, 1651, 1659, 1660, 1664, 1666, + 1670, 1671, 1675, 1679, 1681, 1685, 1686, 1688, 1692, 1694, + 1696, 1700 }; static const short yyrhs[] = { 164, @@ -414,47 +415,48 @@ static const short yyrhs[] = { 164, 55, 34, 150, 203, 151, 206, 151, 206, 151, 203, 152, 153, 189, 154, 6, 0, 190, 0, 189, 190, 0, 65, 153, 211, 151, 211, 151, 211, 154, 6, - 0, 43, 33, 211, 7, 203, 6, 0, 43, 33, - 211, 7, 203, 46, 47, 203, 6, 0, 43, 33, - 211, 7, 203, 46, 48, 203, 6, 0, 43, 33, - 211, 7, 203, 46, 49, 203, 6, 0, 43, 34, - 153, 203, 154, 7, 211, 6, 0, 40, 34, 153, - 203, 154, 7, 211, 6, 0, 43, 36, 153, 203, - 154, 7, 211, 6, 0, 59, 34, 211, 7, 203, - 6, 0, 59, 34, 211, 6, 0, 45, 50, 150, - 203, 152, 7, 211, 6, 0, 61, 6, 0, 84, - 153, 194, 154, 0, 0, 194, 195, 0, 0, 85, - 196, 153, 199, 154, 0, 0, 86, 197, 153, 199, - 154, 0, 0, 87, 198, 153, 199, 154, 0, 0, - 200, 199, 0, 4, 7, 4, 6, 0, 4, 7, - 153, 4, 151, 203, 154, 6, 0, 4, 7, 201, - 6, 0, 153, 203, 151, 203, 151, 203, 151, 203, + 0, 59, 6, 0, 43, 33, 211, 7, 203, 6, + 0, 43, 33, 211, 7, 203, 46, 47, 203, 6, + 0, 43, 33, 211, 7, 203, 46, 48, 203, 6, + 0, 43, 33, 211, 7, 203, 46, 49, 203, 6, + 0, 43, 34, 153, 203, 154, 7, 211, 6, 0, + 40, 34, 153, 203, 154, 7, 211, 6, 0, 43, + 36, 153, 203, 154, 7, 211, 6, 0, 59, 34, + 211, 7, 203, 6, 0, 59, 34, 211, 6, 0, + 45, 50, 150, 203, 152, 7, 211, 6, 0, 61, + 6, 0, 84, 153, 194, 154, 0, 0, 194, 195, + 0, 0, 85, 196, 153, 199, 154, 0, 0, 86, + 197, 153, 199, 154, 0, 0, 87, 198, 153, 199, + 154, 0, 0, 200, 199, 0, 4, 7, 4, 6, + 0, 4, 7, 153, 4, 151, 203, 154, 6, 0, + 4, 7, 201, 6, 0, 153, 203, 151, 203, 151, + 203, 151, 203, 154, 0, 153, 203, 151, 203, 151, + 203, 154, 0, 91, 0, 92, 0, 93, 0, 94, + 0, 95, 0, 204, 0, 150, 203, 152, 0, 203, + 144, 203, 0, 203, 143, 203, 0, 203, 145, 203, + 0, 203, 146, 203, 0, 203, 149, 203, 0, 144, + 203, 0, 143, 203, 0, 10, 150, 203, 152, 0, + 11, 150, 203, 152, 0, 12, 150, 203, 152, 0, + 13, 150, 203, 152, 0, 14, 150, 203, 152, 0, + 15, 150, 203, 152, 0, 16, 150, 203, 152, 0, + 17, 150, 203, 152, 0, 18, 150, 203, 152, 0, + 19, 150, 203, 152, 0, 20, 150, 203, 151, 203, + 152, 0, 21, 150, 203, 152, 0, 22, 150, 203, + 152, 0, 23, 150, 203, 152, 0, 24, 150, 203, + 152, 0, 25, 150, 203, 152, 0, 26, 150, 203, + 152, 0, 27, 150, 203, 151, 203, 152, 0, 28, + 150, 203, 151, 203, 152, 0, 29, 150, 203, 151, + 203, 152, 0, 3, 0, 9, 0, 4, 0, 203, + 8, 203, 0, 203, 8, 155, 203, 156, 203, 0, + 153, 203, 151, 203, 151, 203, 151, 203, 151, 203, + 154, 0, 153, 203, 151, 203, 151, 203, 151, 203, 154, 0, 153, 203, 151, 203, 151, 203, 154, 0, - 91, 0, 92, 0, 93, 0, 94, 0, 95, 0, - 204, 0, 150, 203, 152, 0, 203, 144, 203, 0, - 203, 143, 203, 0, 203, 145, 203, 0, 203, 146, - 203, 0, 203, 149, 203, 0, 144, 203, 0, 143, - 203, 0, 10, 150, 203, 152, 0, 11, 150, 203, - 152, 0, 12, 150, 203, 152, 0, 13, 150, 203, - 152, 0, 14, 150, 203, 152, 0, 15, 150, 203, - 152, 0, 16, 150, 203, 152, 0, 17, 150, 203, - 152, 0, 18, 150, 203, 152, 0, 19, 150, 203, - 152, 0, 20, 150, 203, 151, 203, 152, 0, 21, - 150, 203, 152, 0, 22, 150, 203, 152, 0, 23, - 150, 203, 152, 0, 24, 150, 203, 152, 0, 25, - 150, 203, 152, 0, 26, 150, 203, 152, 0, 27, - 150, 203, 151, 203, 152, 0, 28, 150, 203, 151, - 203, 152, 0, 29, 150, 203, 151, 203, 152, 0, - 3, 0, 9, 0, 4, 0, 203, 8, 203, 0, - 203, 8, 155, 203, 156, 203, 0, 153, 203, 151, - 203, 151, 203, 151, 203, 151, 203, 154, 0, 153, - 203, 151, 203, 151, 203, 151, 203, 154, 0, 153, - 203, 151, 203, 151, 203, 154, 0, 150, 203, 151, - 203, 151, 203, 152, 0, 0, 150, 208, 152, 0, - 5, 0, 208, 151, 5, 0, 0, 153, 210, 154, - 0, 150, 210, 152, 0, 211, 0, 210, 151, 211, - 0, 0, 203, 0, 153, 212, 154, 0, 203, 0, - 205, 0, 212, 151, 203, 0, 212, 151, 205, 0 + 150, 203, 151, 203, 151, 203, 152, 0, 0, 150, + 208, 152, 0, 5, 0, 208, 151, 5, 0, 0, + 153, 210, 154, 0, 150, 210, 152, 0, 211, 0, + 210, 151, 211, 0, 0, 203, 0, 153, 212, 154, + 0, 203, 0, 205, 0, 212, 151, 203, 0, 212, + 151, 205, 0 }; #endif @@ -475,16 +477,16 @@ static const short yyrline[] = { 0, 674, 693, 712, 720, 726, 732, 738, 750, 756, 762, 774, 780, 785, 790, 797, 799, 800, 803, 808, 819, 837, 852, 883, 888, 892, 896, 900, 906, 911, 915, - 919, 924, 932, 936, 941, 965, 983, 1000, 1017, 1034, - 1054, 1073, 1092, 1107, 1122, 1133, 1144, 1148, 1150, 1153, - 1156, 1157, 1159, 1160, 1162, 1165, 1167, 1170, 1181, 1191, - 1201, 1209, 1285, 1287, 1288, 1289, 1290, 1293, 1295, 1296, - 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, - 1317, 1318, 1319, 1320, 1321, 1322, 1325, 1327, 1328, 1339, - 1346, 1359, 1368, 1376, 1384, 1394, 1398, 1403, 1407, 1412, - 1416, 1420, 1426, 1432, 1438, 1442, 1448, 1461, 1467, 1476, - 1480 + 919, 924, 932, 936, 941, 959, 969, 987, 1004, 1021, + 1038, 1058, 1077, 1096, 1111, 1126, 1137, 1148, 1152, 1154, + 1157, 1160, 1161, 1163, 1164, 1166, 1169, 1171, 1174, 1185, + 1195, 1205, 1213, 1289, 1291, 1292, 1293, 1294, 1297, 1299, + 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, + 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, + 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1329, 1331, 1332, + 1343, 1350, 1363, 1372, 1380, 1388, 1398, 1402, 1407, 1411, + 1416, 1420, 1424, 1430, 1436, 1442, 1446, 1452, 1465, 1471, + 1480, 1484 }; #endif @@ -541,16 +543,16 @@ static const short yyr1[] = { 0, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 182, 182, 182, 182, 183, 183, 183, 184, 184, 185, 186, 187, 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 189, 189, 190, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 192, 193, 194, 194, 196, - 195, 197, 195, 198, 195, 199, 199, 200, 200, 200, - 201, 201, 202, 202, 202, 202, 202, 203, 203, 203, + 188, 188, 189, 189, 190, 190, 191, 191, 191, 191, + 191, 191, 191, 191, 191, 191, 192, 193, 194, 194, + 196, 195, 197, 195, 198, 195, 199, 199, 200, 200, + 200, 201, 201, 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 204, 204, 204, 205, - 205, 206, 206, 206, 206, 207, 207, 208, 208, 209, - 209, 209, 210, 210, 211, 211, 211, 212, 212, 212, - 212 + 203, 203, 203, 203, 203, 203, 203, 204, 204, 204, + 205, 205, 206, 206, 206, 206, 207, 207, 208, 208, + 209, 209, 209, 210, 210, 211, 211, 211, 212, 212, + 212, 212 }; static const short yyr2[] = { 0, @@ -568,16 +570,16 @@ static const short yyr2[] = { 0, 9, 8, 22, 20, 8, 8, 5, 8, 7, 8, 7, 11, 7, 9, 1, 1, 1, 0, 2, 4, 4, 3, 7, 8, 11, 12, 12, 8, 12, 8, - 11, 15, 1, 2, 9, 6, 9, 9, 9, 8, - 8, 8, 6, 4, 8, 2, 4, 0, 2, 0, - 5, 0, 5, 0, 5, 0, 2, 4, 8, 4, - 9, 7, 1, 1, 1, 1, 1, 1, 3, 3, - 3, 3, 3, 3, 2, 2, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, - 4, 4, 4, 6, 6, 6, 1, 1, 1, 3, - 6, 11, 9, 7, 7, 0, 3, 1, 3, 0, - 3, 3, 1, 3, 0, 1, 3, 1, 1, 3, - 3 + 11, 15, 1, 2, 9, 2, 6, 9, 9, 9, + 8, 8, 8, 6, 4, 8, 2, 4, 0, 2, + 0, 5, 0, 5, 0, 5, 0, 2, 4, 8, + 4, 9, 7, 1, 1, 1, 1, 1, 1, 3, + 3, 3, 3, 3, 3, 2, 2, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, + 4, 4, 4, 4, 6, 6, 6, 1, 1, 1, + 3, 6, 11, 9, 7, 7, 0, 3, 1, 3, + 0, 3, 3, 1, 3, 0, 1, 3, 1, 1, + 3, 3 }; static const short yydefact[] = { 51, @@ -588,745 +590,747 @@ static const short yydefact[] = { 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 53, 54, 55, 56, 57, 58, 62, 59, 60, 61, 63, 0, 12, 0, 13, - 14, 16, 15, 17, 216, 216, 0, 64, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, - 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, + 14, 16, 15, 17, 217, 217, 0, 64, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, + 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 225, 128, 156, 0, 0, 0, 0, 0, - 0, 158, 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 226, 128, 157, 0, 0, 0, 0, 0, + 0, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 207, 209, - 208, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 208, 210, + 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 178, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, + 0, 0, 0, 0, 0, 179, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 186, 185, 0, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 187, 186, 0, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 130, 129, 154, + 0, 0, 0, 0, 0, 0, 0, 130, 129, 155, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 162, 164, 157, 159, 0, 0, 0, 0, 0, + 161, 163, 165, 158, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 217, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 179, 181, 180, 182, 183, 184, 97, 0, - 225, 225, 0, 107, 225, 0, 117, 225, 225, 0, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 180, 182, 181, 183, 184, 185, 97, 0, + 226, 226, 0, 107, 226, 0, 117, 226, 226, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 0, 0, 225, 0, 0, 225, 0, + 77, 78, 79, 0, 0, 226, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 225, 225, 0, 0, 0, 0, 225, - 225, 0, 0, 0, 0, 0, 225, 0, 225, 0, - 0, 0, 0, 0, 219, 0, 216, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 0, 198, 199, - 200, 201, 202, 203, 0, 0, 0, 0, 0, 0, - 225, 0, 225, 0, 0, 0, 210, 230, 231, 96, - 0, 225, 225, 225, 146, 0, 225, 225, 225, 225, - 225, 225, 225, 225, 0, 0, 0, 127, 0, 126, - 125, 0, 0, 0, 0, 0, 0, 0, 153, 0, + 0, 0, 0, 226, 226, 0, 0, 0, 0, 226, + 226, 0, 0, 0, 0, 0, 226, 0, 226, 0, + 0, 0, 0, 0, 220, 0, 217, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 0, 199, 200, + 201, 202, 203, 204, 0, 0, 0, 0, 0, 0, + 226, 0, 226, 0, 0, 0, 211, 231, 232, 96, + 0, 226, 226, 226, 147, 0, 226, 226, 226, 226, + 226, 226, 226, 226, 0, 0, 0, 127, 0, 126, + 125, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 65, 0, 0, 0, 0, 220, 0, 166, - 166, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 65, 0, 0, 0, 0, 221, 0, 167, + 167, 167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 173, 174, 175, - 176, 177, 0, 0, 0, 0, 0, 0, 0, 18, + 0, 0, 0, 0, 0, 0, 0, 174, 175, 176, + 177, 178, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 93, 101, 0, 104, 0, 98, 0, 99, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 123, 128, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, - 0, 225, 225, 0, 225, 0, 0, 166, 0, 0, - 225, 0, 0, 0, 225, 0, 0, 0, 0, 0, + 0, 226, 226, 0, 226, 0, 0, 167, 0, 0, + 226, 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, - 0, 0, 216, 197, 204, 205, 206, 0, 106, 116, - 0, 0, 151, 110, 112, 0, 0, 0, 150, 152, - 118, 94, 105, 115, 120, 155, 0, 0, 0, 0, + 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, + 0, 0, 217, 198, 205, 206, 207, 0, 106, 116, + 0, 0, 152, 110, 112, 0, 0, 0, 151, 153, + 118, 94, 105, 115, 120, 156, 0, 0, 0, 0, 0, 138, 0, 140, 0, 134, 0, 0, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 0, 223, 0, 0, 0, 0, - 161, 167, 163, 165, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 221, 0, 224, 0, 0, 0, 0, + 162, 168, 164, 166, 0, 0, 0, 0, 0, 0, 0, 21, 0, 30, 0, 34, 0, 28, 0, 0, 33, 0, 38, 36, 0, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 50, 0, 0, 102, - 211, 0, 147, 148, 149, 215, 0, 214, 128, 124, - 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, + 212, 0, 148, 149, 150, 216, 0, 215, 128, 124, + 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 222, 221, 225, 0, 0, 0, 0, - 181, 180, 111, 0, 0, 220, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, + 0, 0, 0, 226, 223, 222, 226, 0, 0, 0, + 0, 182, 181, 111, 0, 0, 221, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 225, 0, 144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 225, 225, - 0, 224, 0, 0, 168, 209, 0, 170, 0, 35, - 0, 0, 0, 0, 25, 0, 31, 0, 37, 26, - 39, 0, 42, 0, 46, 47, 0, 0, 49, 0, - 0, 0, 0, 213, 122, 0, 0, 0, 0, 141, - 135, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 225, 225, 109, 0, 0, + 0, 0, 0, 146, 226, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 137, 139, 136, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, - 225, 225, 95, 100, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 32, 40, 0, 41, 48, 43, - 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, + 226, 226, 0, 225, 0, 0, 169, 210, 0, 171, + 0, 35, 0, 0, 0, 0, 25, 0, 31, 0, + 37, 26, 39, 0, 42, 0, 46, 47, 0, 0, + 49, 0, 0, 0, 0, 214, 122, 0, 0, 0, + 0, 141, 135, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 226, 226, 109, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89, 90, 91, 0, 0, 169, 0, 0, 0, 0, - 24, 27, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 137, 139, 136, + 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 226, 226, 226, 95, 100, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 29, 32, 40, 0, 41, + 48, 43, 0, 0, 213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 44, 20, 103, 145, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 171, 0, 0, - 225, 0, 0, 0, 0, 0, 0, 225, 225, 225, + 0, 0, 226, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 89, 90, 91, 0, 0, 170, 0, 0, + 0, 0, 24, 27, 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 225, 0, 0, - 0, 0, 0, 0, 0, 86, 87, 88, 0, 114, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, - 0, 0, 0, 0, 0, 0, 0, 113, 0, 22, - 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, - 225, 225, 225, 0, 0, 0, 0, 0, 0, 0, - 225, 0, 0, 0, 83, 84, 85, 0, 0, 0, + 0, 173, 0, 0, 226, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 44, 20, 103, 145, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 0, 0, 226, 0, 0, 0, 0, 0, 0, 226, + 226, 226, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 5, 226, + 0, 0, 0, 0, 0, 0, 0, 86, 87, 88, + 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 226, 0, 0, 0, 0, 0, 0, 0, 113, + 0, 22, 0, 0, 0, 0, 0, 0, 226, 0, + 0, 0, 226, 226, 226, 0, 0, 0, 0, 0, + 0, 0, 226, 0, 0, 0, 83, 84, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 225, 225, 225, 23, 0, 0, 0, 80, 81, 82, - 0, 0, 0 + 0, 0, 226, 226, 226, 23, 0, 0, 0, 80, + 81, 82, 0, 0, 0 }; -static const short yydefgoto[] = { 1271, +static const short yydefgoto[] = { 1273, 4, 5, 18, 19, 20, 21, 6, 55, 56, 344, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 57, 339, 578, 579, 580, 581, 61, 62, - 63, 865, 866, 64, 65, 66, 234, 355, 490, 491, - 492, 717, 718, 890, 643, 197, 186, 311, 214, 156, + 63, 866, 867, 64, 65, 66, 234, 355, 490, 491, + 492, 717, 718, 891, 643, 197, 186, 311, 214, 156, 268, 714, 805, 806, 312 }; -static const short yypact[] = { 472, --32768,-32768, -109,-32768, 525, 1180, 33, 67, 105, 73, - 108, 114, 208, 222, 85, 87, 94,-32768,-32768,-32768, --32768, 224, 263, 110, 154, 182, -34, -31, 191, 199, - 243, 225, 340, 350, 351, 323, 355, 379, 242, 245, - 250, 251, -14, 233, 389, 370, 257, 405, 414, -1, - 270, -12, 268, 392,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 424,-32768, 1172,-32768, --32768,-32768,-32768,-32768, 285, 285, 432,-32768, 40, 40, - 40, 40, 297, 40, 301, 40, 40, 40, 296, 40, - 305, 302, 304, 296, 311, 316, 306, 321, 324, 326, - 328, 329, 39, 39, 39, 39, 330, 331, 345, 40, --32768, 491, 296,-32768,-32768, -38, 349, 374, 40, -40, - 40,-32768, 377, 526, 382, 385, 407, 412, 420, 422, - 423, 425, 426, 427, 436, 439, 440, 444, 445, 447, - 449, 451, 456, 458, 467, 469, 475, 476, 477, 478, - 489, 490, 492, 494, 560, 471, 495, 501,-32768,-32768, --32768, 496, 503, 510, 511, 515, 516, 517, 518, 522, - 524, 528, 529, 530, 534, 535, 536, 537, 538, 539, - 548, 40, 40, 40, 42,-32768, 120, 657, 669, 40, - 680, 40, 694, 717, 727, 40, 885, 567, 737, 40, - 40, 40, 634, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 549, 523, 551, 555, 40, 40, 40, - 287, 303,-32768, 65, 579, 39,-32768, 40, 40, 761, - 594, 40, 773, -48, 40, 570, 703, 718, 720, 721, - 722, 723, 729, 740, 741, 748, 755, 762, 769, 771, - 772, 774, 776, 780, 785, 793, 800, 802, 806, 692, - 812, 814, 817, 822, 827, 826,-32768, -44, 829, 835, - 830, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 693, 693, 783,-32768, 40, 40, 40, 40, 40, - 236, 837, 838, 809, 282, 821, 841, 857, 858, 279, --32768, 100, 40, 860, 586, 831, 869, 40, 598, 605, - 915, 927, 946, 956, 974, 996, 851, 1352, 39, 715, - 724, 40, 1553, 1685, 1694, 39, 44,-32768,-32768,-32768, - 40,-32768, 725, 417, 1703, 1712, 867, 734, 1009, 868, --32768,-32768,-32768,-32768,-32768, 1042, 747, 736, 739, 742, - 746, 749, 750, 757, 758, 760, 763, 764, 779, 782, - 786, 787, 788, 789, 790, 805, 808, 811, 818, 820, - 836, 839, 847, 848, 850, 865, 866, 883,-32768, 784, --32768, 871, 1057, 1102, 1160, 1170, 1181, 1191, 1201, 1218, - 1228, 1241, 1721, 1255, 1266, 1276, 1286, 1296, 1306, 1730, - 1739, 1748,-32768, 122, 122, 693, 693, 693,-32768, 39, - 296, 296, 884,-32768, 296, 891,-32768, 296, 296, 72, - 40,-32768, 103, 781, 905, 916, 917, 227, 944, 950, - 961, 965, 975, 979, 981, 982, 40, 40, 872, 409, - 409, 1316, 39, 39, 39, 3, 112,-32768, 870, 874, - 876, 882, 912, 913, 918, 919, 924, 925, 930, 931, - 886,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 40, 40, 296, 40, 1012, 296, 828, - 880, 929, 1028, 932, 1062, 40, 40, 39, 1090, 1091, - 951, 1094, 1100, 296, 296, 1101, 39, 1104, 1106, 296, - 296, 1107, 1118, 1119, 1121, 1122, 296, 53, 296, 1124, - 1123, 1125, 1126, 1128,-32768, 928, 285,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 40,-32768,-32768, --32768,-32768,-32768,-32768, 40, 40, 40, 1137, 29, 1138, - 296, 1140, 296, 1141, 1150, 40, 885, 279,-32768,-32768, - 40, 296, 296, 296,-32768, -2, 296, 296, 296, 296, - 296, 296, 296, 296, 1757, 1766, 40,-32768, 978, 660, --32768, 1003, 1006, 144, 151, 209, 39, 1154,-32768, 434, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40,-32768, 1775, 1784, 1156, 1329, 178, 1083, 1163, - 1163, 1163, 40, 1165, 1018, 1793, 1802, 1019, 1021, 1025, - 1022, 1026, 1031, 1027, 1032, 1039, 1040, 1045, 1041, 1046, - 1053, 1056, 1075, 1076, 1077, 1078, 1085,-32768,-32768,-32768, --32768,-32768, 1079, 1092, 1098, 1099, 1105, 1103, 1112,-32768, - 1114, 1339, 1364, 1374, 1384,-32768,-32768, 39,-32768, 1164, --32768, 1202,-32768,-32768, 80, 1811, 1246, 1247, 1251, 40, - 40, 40, 1260, 1261, 1272, 1273, 1274, 1275, 1277, 1278, - 40, 40, 1394,-32768,-32768, 409, 39, 1279, 39, 1290, - 39, 27, 1131,-32768, 1301, 1820, 1829, 1838, 1847, 1856, - 1865, 1874, 1883, 1892, 1901, 1910, 1919, 40, 40,-32768, - 1190, 296, 296, 1225, 296, 1303, 1166, 1163, 1167, 1169, - 148, 1314, 1315, 40, 296, 1322, 1326, 1325, 1187, 1332, - 53, 1333, 1338, 40, 1336, 1345, 1343, 1346, 1348, 53, - 40, 40, 40, 296, 1349, 1351, 53, 40, 1353, 1355, - 1359, 40, 285,-32768,-32768,-32768,-32768, 1360,-32768,-32768, - 40, 40,-32768,-32768,-32768, 131, 234, 244,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1404, 299, 1206, 1214, - 1224,-32768, 1227,-32768, 1230,-32768, 1304, 40,-32768, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, - 40, 1414, 1424, 178, 214,-32768, 192, 1223, 1299, 26, --32768,-32768,-32768,-32768, 40, 40, 1376, 1385, 1237, 1928, - 1240,-32768, 1243,-32768, 1244,-32768, 1250,-32768, 1245, 1434, --32768, 1252,-32768,-32768, 1253, 1254, 1444, 1937, 1455, 1257, --32768, 1264, 1265, 1946, 1282, 1271,-32768, 1955, 1283,-32768, - 885, 1964,-32768,-32768,-32768,-32768, 40,-32768, 409,-32768, - 40, 40, 40, 1239, 77,-32768, 1465, 1973, 1982, 1991, - 2000, 2009, 2018, 2027, 2036, 2045, 2054, 2063, 2072, 1417, - 1419, 1344, 296,-32768,-32768, 296, 40, 1430, 527, 1431, - 133, 181,-32768, 1309, 1438, 178, 53, 1443, 40, 1441, - 53, 1447, 1451, 1450, 1457, 1458, 40, 1460, 296, 1461, - 1463, 40, 1454, 1470, 40, 1472, 1474, 415, 1335, 1475, - 1485, 1502, 296, 1480,-32768, 1481, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, 296, 296, - 1327,-32768, 1341, 253,-32768, 1342, 2081,-32768, 1487,-32768, - 1361, 1363, 1370, 2090,-32768, 1347,-32768, 1350,-32768,-32768, --32768, 1512,-32768, 1371,-32768,-32768, 1522, 1372,-32768, 1533, - 1380, 1381, 40,-32768,-32768, 1494, 1505, 28, 1383,-32768, --32768, 2099, 2108, 2117, 2126, 2135, 2144, 2153, 2162, 2171, - 1543, 1565, 1575, 1509, 1519, 296, 296,-32768, 40, 40, - 1532, 53, 53, 53, 53, 1535, 1538, 1539, 53, 1545, - 1546, 1548, 1556, 1557, 612,-32768,-32768,-32768, 1304, 296, - 40, 40, 40, 40, 40, 40, 40, 40, 40, 296, - 296, 296,-32768,-32768, 1413, 1411, 619, 2180, 1568, 1421, - 1423, 1429, 1432,-32768,-32768,-32768, 1440,-32768,-32768,-32768, - 1452, 1462,-32768, 78, 1464, 2189, 2198, 2207, 2216, 2225, - 2234, 2243, 2252, 2261, 1569, 1576, 1579, 296, 1514, 1586, - 40, 1468, 53, 53, 1589, 1599, 53, 1601, 1607, 1610, - 296, 40, 40, 40, 40, 40, 40, 40, 40, 40, --32768,-32768,-32768, 1469, 1473,-32768, 505, 1619, 1482, 1488, --32768,-32768, 1484, 1486, 1489,-32768, 1471, 2270, 2279, 2288, - 2297, 2306, 2315, 2324, 2333, 2342, 1552, 40, 40,-32768, - 1637, 53, 296, 1643, 1644, 1646, 1647, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 1506, 2351, 626, 1657, - 1518, 1521,-32768,-32768,-32768,-32768, 2360, 2369, 2378, 2387, - 2396, 2405, 1595, 1605, 1615, 40, 40,-32768, 1524, 53, - 296, 40, 40, 40, 40, 40, 40, 296, 296, 296, - 2414, 643, 1530, 1529, 1540, 2423, 2432, 2441, 2450, 2459, - 2468, 1667, 1669, 1677, 40, 1684,-32768, 296, 53, 40, - 40, 40, 40, 40, 40,-32768,-32768,-32768, 650,-32768, - 1542, 1551, 2477, 2486, 2495, 2504, 2513, 2522, 1688, 296, - 1706, 40, 40, 40, 40, 40, 40,-32768, 1549,-32768, - 2531, 2540, 2549, 1625, 1635, 1645, 296, 40, 40, 40, - 296, 296, 296, 1562, 2558, 2567, 2576, 1710, 1716, 1717, - 296, 40, 40, 40,-32768,-32768,-32768, 1574, 2585, 2594, - 2603, 53, 40, 40, 40, 1577, 1655, 1665, 1675, 1720, - 296, 296, 296,-32768, 1722, 1724, 1725,-32768,-32768,-32768, - 1681, 1732,-32768 +static const short yypact[] = { 451, +-32768,-32768, -111,-32768, 157, 1182, 31, 23, 34, 59, + 66, 108, 110, 114, -26, -13, -6,-32768,-32768,-32768, +-32768, 168, 184, 64, 74, 78, 9, 12, 80, 92, + 206, 141, 226, 246, 248, 37, 280, 193, 178, 217, + 236, 241, -12, 239, 393, 365, 249, 395, 399, 82, + 263, -7, 267, 385,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 418,-32768, 1174,-32768, +-32768,-32768,-32768,-32768, 273, 273, 419,-32768, 321, 321, + 321, 321, 275, 321, 276, 321, 321, 321, 72, 321, + 278, 282, 285, 72, 283, 286, 288, 290, 296, 297, + 306, 307, 101, 101, 101, 101, 310, 311, 312, 321, +-32768, 443, 72,-32768,-32768, -43, 313, 319, 321, -48, + 321,-32768, 326, 455, 330, 345, 347, 361, 374, 375, + 416, 422, 423, 428, 429, 438, 440, 444, 445, 447, + 449, 462, 464, 467, 474, 475, 482, 487, 498, 499, + 500, 504, 510, 515, 563, 328, 495, 430,-32768,-32768, +-32768, 516, 517, 518, 522, 524, 525, 526, 528, 529, + 530, 539, 540, 541, 550, 552, 558, 560, 573, 575, + 577, 321, 321, 321, 103,-32768, 2, 329, 383, 321, + 586, 321, 622, 719, 729, 321, 43, 562, 739, 321, + 321, 321, 594, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 582, 572, 587, 583, 321, 321, 321, + 853, 574,-32768, 265, 662, 101,-32768, 321, 321, 763, + 545, 321, 775, 21, 321, 613, 747, 750, 757, 758, + 765, 767, 768, 770, 772, 774, 776, 780, 789, 790, + 791, 793, 798, 799, 801, 802, 803, 812, 814, 696, + 817, 826, 827, 828, 777, 831,-32768, -73, 837, 822, + 840, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 697, 697, 785,-32768, 321, 321, 321, 321, 321, + 308, 841, 859, 811, 315, 823, 861, 862, 863, 251, +-32768, 1, 321, 869, 490, 833, 871, 321, 497, 615, + 917, 929, 948, 958, 976, 998, 1557, 1669, 101, 694, + 724, 321, 1678, 1687, 1696, 101, 323,-32768,-32768,-32768, + 321,-32768, 726, 417, 1705, 1714, 873, 736, 1011, 880, +-32768,-32768,-32768,-32768,-32768, 1044, 751, 741, 742, 743, + 744, 748, 749, 752, 759, 760, 762, 766, 781, 782, + 784, 787, 788, 792, 807, 808, 810, 813, 819, 820, + 832, 838, 839, 849, 850, 852, 867, 885,-32768, 764, +-32768, 868, 1059, 1104, 1162, 1172, 1183, 1193, 1203, 1213, + 1223, 1233, 1723, 1244, 1254, 1264, 1276, 1286, 1296, 1732, + 1741, 1750,-32768, 27, 27, 697, 697, 697,-32768, 101, + 72, 72, 895,-32768, 72, 907,-32768, 72, 72, 35, + 321,-32768, 112, 786, 918, 919, 933, 22, 934, 935, + 946, 966, 967, 977, 981, 984, 321, 321, 870, 605, + 605, 1306, 101, 101, 101, 85, 130,-32768, 842, 872, + 874, 875, 876, 878, 881, 882, 883, 884, 886, 887, + 1024,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 321, 321, 72, 321, 1028, 72, 911, + 912, 914, 1061, 936, 1068, 321, 321, 101, 1073, 1074, + 937, 1080, 1081, 72, 72, 1092, 101, 1093, 1095, 72, + 72, 1096, 1102, 1103, 1106, 1108, 72, 593, 72, 1109, + 1118, 1119, 1123, 1124,-32768, 1125, 273,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 321,-32768,-32768, +-32768,-32768,-32768,-32768, 321, 321, 321, 1126, 26, 1127, + 72, 1128, 72, 1139, 1140, 321, 43, 251,-32768,-32768, + 321, 72, 72, 72,-32768, 135, 72, 72, 72, 72, + 72, 72, 72, 72, 1759, 1768, 321,-32768, 975, 712, +-32768, 994, 996, 175, 209, 214, 101, 1152,-32768, 433, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 321,-32768, 1777, 1786, 1153, 1316, 139, 1047, 1157, + 1157, 1157, 321, 1159, 1013, 1795, 1804, 1016, 1018, 1019, + 1021, 1022, 1029, 1023, 1030, 1033, 1027, 1034, 1040, 1042, + 1048, 1049, 1055, 1058, 1077, 1078, 1043,-32768,-32768,-32768, +-32768,-32768, 1079, 1088, 1094, 1100, 1101, 1046, 1107,-32768, + 1114, 1327, 1337, 1347, 1368,-32768,-32768, 101,-32768, 1164, +-32768, 1167,-32768,-32768, 266, 1813, 1204, 1225, 1226, 321, + 321, 321, 1248, 1249, 1251, 1253, 1261, 1262, 1263, 1274, + 321, 321, 1378,-32768,-32768, 605, 101, 1275, 101, 1277, + 101, 10, 1131,-32768, 1278, 1822, 1831, 1840, 1849, 1858, + 1867, 1876, 1885, 1894, 1903, 1912, 1921, 321, 321,-32768, + 1279, 72, 72, 1202, 72, 1280, 1144, 1157, 1155, 1156, + 284, 1309, 1317, 321, 72, 1313, 1319, 1324, 1178, 1325, + 593, 1328, 1322, 321, 1334, 1330, 1335, 1338, 1340, 593, + 321, 321, 321, 72, 1344, 1348, 593, 321, 1350, 1351, + 1355, 321, 273,-32768,-32768,-32768,-32768, 1358,-32768,-32768, + 321, 321,-32768,-32768,-32768, 174, 227, 234,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 1388, 299, 1217, 1219, + 1220,-32768, 1229,-32768, 1230,-32768, -22, 321,-32768, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 1398, 1408, 139, 223,-32768, 230, 1221, 1303, 8, +-32768,-32768,-32768,-32768, 321, 321, 1385, 1381, 1240, 1930, + 1243,-32768, 1260,-32768, 1272,-32768, 1250,-32768, 1273, 1418, +-32768, 1282,-32768,-32768, 1252, 1284, 1428, 1939, 1438, 1283, +-32768, 1285, 1291, 1948, 1293, 1294,-32768, 1957, 1302,-32768, + 43, 1966,-32768,-32768,-32768,-32768, 321,-32768, 605,-32768, + 321, 321, 321, 1389, 1259, -35,-32768, 1448, 1975, 1984, + 1993, 2002, 2011, 2020, 2029, 2038, 2047, 2056, 2065, 2074, + 1407, 1419, 1332, 72,-32768,-32768, 72, 321, 1399, 527, + 1421, 86, 132,-32768, 1320, 1441, 139, 593, 1453, 321, + 1451, 593, 1457, 1461, 1460, 1463, 1471, 321, 1472, 72, + 1478, 1481, 321, 1464, 1482, 321, 1480, 1490, 431, 1343, + 1459, 1469, 1479,-32768, 72, 1488,-32768, 1494, 321, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, + 72, 72, 1349,-32768, 1352, 244,-32768, 1353, 2083,-32768, + 1498,-32768, 1354, 1356, 1364, 2092,-32768, 1366,-32768, 1367, +-32768,-32768,-32768, 1489,-32768, 1365,-32768,-32768, 1506, 1373, +-32768, 1516, 1375, 1377, 321,-32768,-32768, 1500, 1523, 11, + 1384,-32768,-32768, 2101, 2110, 2119, 2128, 2137, 2146, 2155, + 2164, 2173, 1526, 1537, 1547, 1530, 1532, 72, 72,-32768, + 321, 321, 1536, 593, 593, 593, 593, 1539, 1542, 1543, + 593, 1549, 1550, 1552, 1560, 1561, 643,-32768,-32768,-32768, + -22, 72, 321, 321, 321, 321, 321, 321, 321, 321, + 321, 72, 72, 72,-32768,-32768, 1417, 1415, 656, 2182, + 1572, 1425, 1427, 1433, 1434,-32768,-32768,-32768, 1437,-32768, +-32768,-32768, 1444, 1445,-32768, 15, 1447, 2191, 2200, 2209, + 2218, 2227, 2236, 2245, 2254, 2263, 1573, 1583, 1593, 72, + 1527, 1600, 321, 1475, 593, 593, 1604, 1610, 593, 1612, + 1614, 1620, 72, 321, 321, 321, 321, 321, 321, 321, + 321, 321,-32768,-32768,-32768, 1466, 1474,-32768, 477, 1626, + 1485, 1486,-32768,-32768, 1491, 1492, 1493,-32768, 1476, 2272, + 2281, 2290, 2299, 2308, 2317, 2326, 2335, 2344, 1562, 321, + 321,-32768, 1637, 593, 72, 1647, 1648, 1650, 1651, 321, + 321, 321, 321, 321, 321, 321, 321, 321, 1510, 2353, + 669, 1661, 1522, 1525,-32768,-32768,-32768,-32768, 2362, 2371, + 2380, 2389, 2398, 2407, 1569, 1579, 1599, 321, 321,-32768, + 1528, 593, 72, 321, 321, 321, 321, 321, 321, 72, + 72, 72, 2416, 681, 1534, 1533, 1544, 2425, 2434, 2443, + 2452, 2461, 2470, 1671, 1673, 1679, 321, 1681,-32768, 72, + 593, 321, 321, 321, 321, 321, 321,-32768,-32768,-32768, + 695,-32768, 1546, 1555, 2479, 2488, 2497, 2506, 2515, 2524, + 1688, 72, 1692, 321, 321, 321, 321, 321, 321,-32768, + 1553,-32768, 2533, 2542, 2551, 1609, 1619, 1629, 72, 321, + 321, 321, 72, 72, 72, 1565, 2560, 2569, 2578, 1711, + 1720, 1721, 72, 321, 321, 321,-32768,-32768,-32768, 1578, + 2587, 2596, 2605, 593, 321, 321, 321, 1568, 1639, 1649, + 1659, 1724, 72, 72, 72,-32768, 1726, 1727, 1728,-32768, +-32768,-32768, 1735, 1736,-32768 }; static const short yypgoto[] = {-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1284, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1288, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1727, 1728, -445, 239, 1737,-32768,-32768, --32768, 726, -841,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -594,-32768,-32768, -719, -79,-32768, 1321, -91, -72, --32768, -794, 1033, 474,-32768 +-32768,-32768,-32768, 1731, 1743, -445, 271, 1744,-32768,-32768, +-32768, 717, -843,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, -576,-32768,-32768, -721, -79,-32768, 1326, -91, -72, +-32768, -727, 1053, 476,-32768 }; -#define YYLAST 2754 +#define YYLAST 2756 static const short yytable[] = { 185, - 187, 188, 189, 157, 191, 582, 193, 194, 195, 882, - 199, 827, 215, 216, 217, 107, 719, 720, 108, 109, - 836, 120, 83, 925, 226, 85, 7, 843, 117, 888, - 221, 118, 786, 1018, 657, 67, 351, 352, 353, 230, - 231, 233, 159, 160, 670, 671, 672, 295, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 658, - 340, 341, 68, 98, 159, 160, 99, 100, 70, 101, + 187, 188, 189, 157, 191, 582, 193, 194, 195, 827, + 199, 889, 215, 216, 217, 786, 1020, 107, 836, 226, + 108, 109, 927, 864, 7, 843, 120, 565, 68, 865, + 221, 657, 231, 67, 719, 720, 864, 159, 160, 230, + 69, 233, 865, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 70, 83, 658, 566, 85, 94, + 95, 71, 96, 864, 159, 160, 883, 388, 389, 865, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 951, 292, 293, 294, 354, 388, 389, 560, 232, - 304, 69, 306, 71, 227, 84, 310, 589, 86, 72, - 315, 316, 317, 812, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 343, 110, 853, 121, 333, 334, - 335, 864, 864, 638, 639, 640, 641, 642, 345, 346, - 159, 160, 349, 587, 588, 356, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 952, 889, 787, - 1019, 956, 182, 183, 296, 297, 298, 299, 212, 184, - 300, 213, 393, 394, 395, 396, 397, 398, 399, 400, + 181, 232, 292, 293, 294, 351, 352, 353, 295, 227, + 304, 117, 306, 72, 118, 73, 310, 560, 926, 74, + 315, 316, 317, 75, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 343, 589, 76, 110, 333, 334, + 335, 812, 121, 77, 296, 297, 298, 299, 345, 346, + 300, 431, 349, 301, 432, 356, -2, 8, 84, 9, + 890, 86, 787, 1021, 296, 297, 298, 299, 1082, 953, + 300, 298, 299, 78, 354, 300, 954, 182, 183, 853, + 958, 670, 671, 672, 184, 296, 297, 298, 299, 556, + 79, 300, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 925, 73, 182, 183, 414, 415, 416, 417, - 418, 184, 296, 297, 298, 299, 556, 74, 300, 78, - 924, 1080, 565, 433, 75, 761, 76, 449, 438, 854, - 780, 419, 420, 77, 456, 296, 297, 298, 299, 855, - 431, 300, 452, 432, 296, 297, 298, 299, 998, 80, - 300, 457, 296, 297, 298, 299, 298, 299, 300, 79, - 300, 301, 566, 296, 297, 298, 299, -186, -186, 300, - 89, 300, 1040, 1041, 1042, 1043, 430, 424, 425, 1047, - 815, 816, 298, 299, 687, 688, 300, 184, 159, 160, - 196, 689, 690, 81, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, -185, -185, 712, 548, 300, - 713, 82, 24, 25, 26, 27, 28, 29, 30, 31, - 87, 32, 883, 34, 35, 885, 37, 337, 88, 222, - 557, 558, 225, 1099, 1100, 94, 95, 1103, 96, 691, - 692, 584, 585, 586, 883, 884, 50, 575, 576, 296, - 297, 298, 299, 91, 90, 300, 296, 297, 298, 299, - 51, 52, 300, 92, 93, 111, 296, 297, 298, 299, - 97, 103, 300, 112, 104, 296, 297, 298, 299, 105, - 106, 300, 1141, 113, 604, 605, 618, 607, 98, 114, - 115, 99, 100, 919, 101, 627, 616, 617, 116, 119, - 122, 296, 297, 298, 299, 123, 124, 300, 102, 296, - 297, 298, 299, 54, 155, 300, 158, 336, 182, 183, - 1174, 296, 297, 298, 299, 184, 190, 300, 196, 857, - 192, 201, 858, 202, 651, 206, 338, 200, 652, 39, - 40, 41, 42, 204, 44, 653, 654, 655, 205, 1202, - 207, -7, -7, 208, -7, 209, 665, 210, 211, 218, - 219, 666, 459, 460, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 220, 693, 223, 683, 228, 459, - 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 229, -2, 8, 235, 9, 236, 159, - 946, 237, 1256, 721, 238, 161, 162, 163, 164, 165, + 411, 412, 927, 80, 182, 183, 414, 415, 416, 417, + 418, 184, 98, 81, 196, 99, 100, 82, 101, 87, + -187, -187, 854, 433, 300, 587, 588, 449, 438, 855, + 780, 88, 102, 89, 456, 296, 297, 298, 299, 1000, + 212, 300, 452, 213, 296, 297, 298, 299, 430, 91, + 300, 457, 10, 11, 12, 13, 14, 15, 16, 17, + 340, 341, 296, 297, 298, 299, -186, -186, 300, 92, + 300, 93, 1042, 1043, 1044, 1045, 159, 160, 712, 1049, + 90, 713, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 419, 420, 97, 296, 297, 298, 299, + 424, 425, 300, 159, 160, 687, 688, 103, 548, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 557, 558, 98, 1101, 1102, 99, 100, 1105, 101, 689, + 690, 584, 585, 586, 691, 692, 104, 575, 576, 296, + 297, 298, 299, 884, 885, 300, 296, 297, 298, 299, + 884, 222, 300, 886, 225, 105, 296, 297, 298, 299, + 106, 111, 300, 296, 297, 298, 299, 112, 113, 300, + 115, 114, 1143, 116, 604, 605, 618, 607, 296, 297, + 298, 299, 119, 920, 300, 627, 616, 617, 123, 122, + 124, 761, 155, 158, 190, 192, 815, 816, 298, 299, + 200, 201, 300, 184, 202, 204, 196, 206, 205, 207, + 1176, 296, 297, 298, 299, 208, 209, 300, 223, 857, + -7, -7, 858, -7, 651, 210, 211, 236, 652, 218, + 219, 220, 228, 182, 183, 653, 654, 655, 229, 1204, + 184, 296, 297, 298, 299, 235, 665, 300, 269, 237, + 302, 666, 459, 460, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 238, 693, 239, 683, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 240, 696, 697, 698, 699, 700, 701, 702, 703, 704, + 705, 706, 707, 241, 242, 296, 297, 298, 299, 159, + 948, 300, 1258, 721, 303, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 239, 296, 297, 298, - 299, 240, 198, 300, 267, 973, 758, 203, 974, 241, - 471, 242, 243, 313, 244, 245, 246, -7, -7, -7, - -7, -7, -7, -7, -7, 247, 224, 695, 248, 249, + 176, 177, 178, 179, 180, 181, -7, -7, -7, -7, + -7, -7, -7, -7, 198, 243, 758, 267, 313, 203, + 471, 244, 245, 296, 297, 298, 299, 246, 247, 300, + 271, 975, 1, 2, 976, 3, 695, 248, 224, 249, 766, 767, 768, 250, 251, 781, 252, 783, 253, 785, - 254, 777, 778, 1, 2, 255, 3, 256, 24, 25, - 26, 27, 28, 29, 30, 31, 257, 32, 258, 34, - 35, 269, 37, 337, 259, 260, 261, 262, 802, 803, - 10, 11, 12, 13, 14, 15, 16, 17, 263, 264, - 318, 265, 50, 266, 820, 272, 270, 296, 297, 298, - 299, 271, 273, 300, 830, 1119, 51, 52, 1120, 274, - 275, 837, 838, 839, 276, 277, 278, 279, 844, 182, - 183, 280, 848, 281, 330, 348, 184, 282, 283, 284, - 849, 851, 852, 285, 286, 287, 288, 289, 290, 24, - 25, 26, 27, 28, 29, 30, 31, 291, 32, 329, - 34, 35, 331, 37, 337, 332, 357, 358, 867, 54, - 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, - 878, 879, 359, 50, 360, 361, 362, 363, 296, 297, - 298, 299, 342, 364, 300, 891, 892, 51, 52, 435, - 296, 297, 298, 299, 365, 366, 300, 296, 297, 298, - 299, 439, 367, 300, 296, 297, 298, 299, 440, 368, - 300, 296, 297, 298, 299, 1053, 369, 300, 296, 297, - 298, 299, 1070, 370, 300, 371, 372, 918, 373, 1158, - 374, 920, 921, 922, 375, 296, 297, 298, 299, 376, - 54, 300, 296, 297, 298, 299, 1186, 377, 300, 296, - 297, 298, 299, 1209, 378, 300, 379, 944, 302, 947, - 380, 296, 297, 298, 299, 381, 382, 300, 383, 954, - 303, 384, 296, 297, 298, 299, 385, 962, 300, 386, - 387, 305, 967, 390, 392, 970, 296, 297, 298, 299, - 391, 300, 300, 421, 422, 307, 427, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, 993, 296, - 297, 298, 299, 428, 429, 300, 434, 450, 308, 296, - 297, 298, 299, 486, 489, 300, 451, 458, 309, 296, - 297, 298, 299, 487, 494, 300, 495, 525, 314, 496, - 551, 603, 497, 1015, 549, 550, 498, 553, 552, 499, - 500, 554, 555, 296, 297, 298, 299, 501, 502, 300, - 503, 562, 347, 504, 505, 296, 297, 298, 299, 1037, - 1038, 300, 563, 564, 350, 296, 297, 298, 299, 506, - 561, 300, 507, 650, 413, 526, 508, 509, 510, 511, - 512, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, - 567, 296, 297, 298, 299, 513, 568, 300, 514, 606, - 423, 515, 609, 296, 297, 298, 299, 569, 516, 300, - 517, 570, 426, 296, 297, 298, 299, 624, 625, 300, - 610, 571, 436, 630, 631, 572, 518, 573, 574, 519, - 637, 1097, 644, 296, 297, 298, 299, 520, 521, 300, - 522, 447, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, - 1116, 296, 297, 298, 299, 523, 524, 300, 608, 591, - 437, 527, 577, 592, 660, 593, 662, 296, 297, 298, - 299, 594, 611, 300, 613, 667, 668, 669, 1138, 1139, - 673, 674, 675, 676, 677, 678, 679, 680, 1147, 1148, - 1149, 1150, 1151, 1152, 1153, 1154, 1155, 296, 297, 298, - 299, 595, 596, 300, 615, 614, 441, 597, 598, 296, - 297, 298, 299, 599, 600, 300, 1171, 1172, 442, 601, - 602, 612, 1176, 1177, 1178, 1179, 1180, 1181, 296, 297, - 298, 299, 619, 620, 300, 621, 622, 443, 296, 297, - 298, 299, 623, 626, 300, 1199, 628, 444, 629, 632, - 1203, 1204, 1205, 1206, 1207, 1208, 296, 297, 298, 299, - 633, 634, 300, 635, 636, 445, 645, 646, 648, 647, - 649, 684, 1221, 1222, 1223, 1224, 1225, 1226, 296, 297, - 298, 299, 656, 659, 300, 661, 663, 446, 1235, 1236, - 1237, 296, 297, 298, 299, 664, 685, 300, 686, 694, - 488, 710, 1249, 1250, 1251, 715, 716, 722, 723, 759, - 726, 727, 729, 1257, 1258, 1259, 728, 730, 732, -1, - 22, 731, 733, 23, 296, 297, 298, 299, 809, 734, - 300, 735, 737, 493, 817, 736, 804, 738, 821, 296, - 297, 298, 299, 739, 125, 300, 740, 760, 528, 24, - 25, 26, 27, 28, 29, 30, 31, 840, 32, 33, - 34, 35, 36, 37, 38, 741, 742, 743, 744, 746, - 39, 40, 41, 42, 43, 44, 745, 45, 46, 47, - 48, 49, 747, 50, 296, 297, 298, 299, 748, 749, - 300, 763, 764, 529, 751, 750, 765, 51, 52, 126, - 127, 128, 752, 53, 753, 769, 770, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 771, 772, 773, - 774, 788, 775, 776, 782, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 784, 149, 150, 151, 152, - 153, 154, 296, 297, 298, 299, 789, 808, 300, 810, - 54, 530, 296, 297, 298, 299, 818, 819, 300, 811, - 813, 531, 814, 296, 297, 298, 299, 822, 823, 300, - 824, 825, 532, 296, 297, 298, 299, 826, 828, 300, - 829, 831, 533, 296, 297, 298, 299, 832, 833, 300, - 835, 834, 534, 842, 841, 845, 942, 846, 859, 943, - 296, 297, 298, 299, 847, 850, 300, 860, 864, 535, - 296, 297, 298, 299, 861, 886, 300, 862, 887, 536, - 863, 893, 964, 296, 297, 298, 299, 894, 895, 300, - 897, 923, 537, 898, 899, 901, 979, 296, 297, 298, - 299, 900, 903, 300, 904, 905, 539, 909, 296, 297, - 298, 299, 994, 995, 300, 910, 911, 540, 296, 297, - 298, 299, 914, 939, 300, 940, 941, 541, 296, 297, - 298, 299, 913, 916, 300, 945, 948, 542, 296, 297, - 298, 299, 949, 950, 300, 953, 955, 543, 296, 297, - 298, 299, 957, 958, 300, 959, 968, 544, 296, 297, - 298, 299, 960, 961, 300, 963, 965, 583, 966, 1035, - 1036, 296, 297, 298, 299, 969, 971, 300, 972, 996, - 711, 296, 297, 298, 299, 980, 981, 300, 975, 1001, - 754, 997, 999, 1055, 296, 297, 298, 299, 1006, 1016, - 300, 1007, 448, 1065, 1066, 1067, 296, 297, 298, 299, - 1017, 1002, 300, 1003, 1033, 755, 296, 297, 298, 299, - 1004, 1009, 300, 1011, 1034, 756, 296, 297, 298, 299, - 1013, 1014, 300, 1020, 1039, 757, 296, 297, 298, 299, - 1044, 1094, 300, 1045, 1046, 779, 296, 297, 298, 299, - 1048, 1049, 300, 1050, 1107, 856, 296, 297, 298, 299, - 1051, 1052, 300, 1068, 1069, 880, 296, 297, 298, 299, - 1072, 1073, 300, 1074, 1091, 881, 296, 297, 298, 299, - 1075, 1092, 300, 1076, 1093, 902, 296, 297, 298, 299, - 1077, 1096, 300, 1095, 1101, 906, 1142, 296, 297, 298, - 299, 1098, 1078, 300, 1102, 1104, 908, 296, 297, 298, - 299, 1105, 1079, 300, 1081, 1106, 926, 296, 297, 298, - 299, 1121, 1117, 300, 1127, 1118, 976, 296, 297, 298, - 299, 1137, 1122, 300, 1175, 1124, 977, 1125, 1123, 1140, - 1126, 1182, 1183, 1184, 296, 297, 298, 299, 1143, 1144, - 300, 1145, 1146, 978, 296, 297, 298, 299, 1156, 1159, - 300, 1201, 1173, 1008, 296, 297, 298, 299, 1160, 1187, - 300, 1161, 1196, 1010, 1197, 296, 297, 298, 299, 1188, - 1272, 300, 1198, 1219, 1012, 296, 297, 298, 299, 1200, - 1189, 300, 1210, 1218, 1030, 296, 297, 298, 299, 1227, - 1234, 300, 1211, 453, 1238, 1239, 1240, 296, 297, 298, - 299, 1220, 1241, 300, 1248, 1245, 1031, 296, 297, 298, - 299, 1246, 1247, 300, 1252, 1264, 1032, 1268, 1260, 1269, - 1270, 1273, 58, 59, 1265, 1266, 1267, 296, 297, 298, - 299, 590, 60, 300, 1054, 807, 1168, 296, 297, 298, - 299, 559, 0, 300, 0, 0, 1169, 296, 297, 298, - 299, 0, 0, 300, 0, 0, 1170, 296, 297, 298, - 299, 0, 0, 300, 0, 0, 1231, 296, 297, 298, - 299, 0, 0, 300, 0, 0, 1232, 296, 297, 298, - 299, 0, 0, 300, 0, 0, 1233, 296, 297, 298, - 299, 0, 0, 300, 0, 0, 1261, 296, 297, 298, - 299, 0, 0, 300, 0, 0, 1262, 296, 297, 298, - 299, 0, 0, 300, 0, 0, 1263, 296, 297, 298, - 299, 0, 0, 300, 0, 454, 296, 297, 298, 299, - 0, 0, 300, 0, 455, 296, 297, 298, 299, 0, - 0, 300, 0, 484, 296, 297, 298, 299, 0, 0, - 300, 0, 485, 296, 297, 298, 299, 0, 0, 300, - 0, 538, 296, 297, 298, 299, 0, 0, 300, 0, - 545, 296, 297, 298, 299, 0, 0, 300, 0, 546, - 296, 297, 298, 299, 0, 0, 300, 0, 547, 296, - 297, 298, 299, 0, 0, 300, 0, 681, 296, 297, - 298, 299, 0, 0, 300, 0, 682, 296, 297, 298, - 299, 0, 0, 300, 0, 708, 296, 297, 298, 299, - 0, 0, 300, 0, 709, 296, 297, 298, 299, 0, - 0, 300, 0, 724, 296, 297, 298, 299, 0, 0, - 300, 0, 725, 296, 297, 298, 299, 0, 0, 300, - 0, 762, 296, 297, 298, 299, 0, 0, 300, 0, - 790, 296, 297, 298, 299, 0, 0, 300, 0, 791, - 296, 297, 298, 299, 0, 0, 300, 0, 792, 296, - 297, 298, 299, 0, 0, 300, 0, 793, 296, 297, - 298, 299, 0, 0, 300, 0, 794, 296, 297, 298, - 299, 0, 0, 300, 0, 795, 296, 297, 298, 299, - 0, 0, 300, 0, 796, 296, 297, 298, 299, 0, - 0, 300, 0, 797, 296, 297, 298, 299, 0, 0, - 300, 0, 798, 296, 297, 298, 299, 0, 0, 300, - 0, 799, 296, 297, 298, 299, 0, 0, 300, 0, - 800, 296, 297, 298, 299, 0, 0, 300, 0, 801, - 296, 297, 298, 299, 0, 0, 300, 0, 896, 296, - 297, 298, 299, 0, 0, 300, 0, 907, 296, 297, - 298, 299, 0, 0, 300, 0, 912, 296, 297, 298, - 299, 0, 0, 300, 0, 915, 296, 297, 298, 299, - 0, 0, 300, 0, 917, 296, 297, 298, 299, 0, - 0, 300, 0, 927, 296, 297, 298, 299, 0, 0, - 300, 0, 928, 296, 297, 298, 299, 0, 0, 300, - 0, 929, 296, 297, 298, 299, 0, 0, 300, 0, - 930, 296, 297, 298, 299, 0, 0, 300, 0, 931, - 296, 297, 298, 299, 0, 0, 300, 0, 932, 296, - 297, 298, 299, 0, 0, 300, 0, 933, 296, 297, - 298, 299, 0, 0, 300, 0, 934, 296, 297, 298, - 299, 0, 0, 300, 0, 935, 296, 297, 298, 299, - 0, 0, 300, 0, 936, 296, 297, 298, 299, 0, - 0, 300, 0, 937, 296, 297, 298, 299, 0, 0, - 300, 0, 938, 296, 297, 298, 299, 0, 0, 300, - 0, 1000, 296, 297, 298, 299, 0, 0, 300, 0, - 1005, 296, 297, 298, 299, 0, 0, 300, 0, 1021, - 296, 297, 298, 299, 0, 0, 300, 0, 1022, 296, - 297, 298, 299, 0, 0, 300, 0, 1023, 296, 297, - 298, 299, 0, 0, 300, 0, 1024, 296, 297, 298, - 299, 0, 0, 300, 0, 1025, 296, 297, 298, 299, - 0, 0, 300, 0, 1026, 296, 297, 298, 299, 0, - 0, 300, 0, 1027, 296, 297, 298, 299, 0, 0, - 300, 0, 1028, 296, 297, 298, 299, 0, 0, 300, - 0, 1029, 296, 297, 298, 299, 0, 0, 300, 0, - 1071, 296, 297, 298, 299, 0, 0, 300, 0, 1082, - 296, 297, 298, 299, 0, 0, 300, 0, 1083, 296, - 297, 298, 299, 0, 0, 300, 0, 1084, 296, 297, - 298, 299, 0, 0, 300, 0, 1085, 296, 297, 298, - 299, 0, 0, 300, 0, 1086, 296, 297, 298, 299, - 0, 0, 300, 0, 1087, 296, 297, 298, 299, 0, - 0, 300, 0, 1088, 296, 297, 298, 299, 0, 0, - 300, 0, 1089, 296, 297, 298, 299, 0, 0, 300, - 0, 1090, 296, 297, 298, 299, 0, 0, 300, 0, - 1128, 296, 297, 298, 299, 0, 0, 300, 0, 1129, - 296, 297, 298, 299, 0, 0, 300, 0, 1130, 296, - 297, 298, 299, 0, 0, 300, 0, 1131, 296, 297, - 298, 299, 0, 0, 300, 0, 1132, 296, 297, 298, - 299, 0, 0, 300, 0, 1133, 296, 297, 298, 299, - 0, 0, 300, 0, 1134, 296, 297, 298, 299, 0, - 0, 300, 0, 1135, 296, 297, 298, 299, 0, 0, - 300, 0, 1136, 296, 297, 298, 299, 0, 0, 300, - 0, 1157, 296, 297, 298, 299, 0, 0, 300, 0, - 1162, 296, 297, 298, 299, 0, 0, 300, 0, 1163, - 296, 297, 298, 299, 0, 0, 300, 0, 1164, 296, - 297, 298, 299, 0, 0, 300, 0, 1165, 296, 297, - 298, 299, 0, 0, 300, 0, 1166, 296, 297, 298, - 299, 0, 0, 300, 0, 1167, 296, 297, 298, 299, - 0, 0, 300, 0, 1185, 296, 297, 298, 299, 0, - 0, 300, 0, 1190, 296, 297, 298, 299, 0, 0, - 300, 0, 1191, 296, 297, 298, 299, 0, 0, 300, - 0, 1192, 296, 297, 298, 299, 0, 0, 300, 0, - 1193, 296, 297, 298, 299, 0, 0, 300, 0, 1194, - 296, 297, 298, 299, 0, 0, 300, 0, 1195, 296, - 297, 298, 299, 0, 0, 300, 0, 1212, 296, 297, - 298, 299, 0, 0, 300, 0, 1213, 296, 297, 298, - 299, 0, 0, 300, 0, 1214, 296, 297, 298, 299, - 0, 0, 300, 0, 1215, 296, 297, 298, 299, 0, - 0, 300, 0, 1216, 296, 297, 298, 299, 0, 0, - 300, 0, 1217, 296, 297, 298, 299, 0, 0, 300, - 0, 1228, 296, 297, 298, 299, 0, 0, 300, 0, - 1229, 296, 297, 298, 299, 0, 0, 300, 0, 1230, - 296, 297, 298, 299, 0, 0, 300, 0, 1242, 296, - 297, 298, 299, 0, 0, 300, 0, 1243, 296, 297, - 298, 299, 0, 0, 300, 0, 1244, 296, 297, 298, - 299, 0, 0, 300, 0, 1253, 296, 297, 298, 299, - 0, 0, 300, 0, 1254, 296, 297, 298, 299, 0, - 0, 300, 0, 1255 + 318, 777, 778, 24, 25, 26, 27, 28, 29, 30, + 31, 254, 32, 255, 34, 35, 256, 37, 337, 296, + 297, 298, 299, 257, 258, 300, 348, 1121, 802, 803, + 1122, 259, 296, 297, 298, 299, 260, 50, 300, 296, + 297, 298, 299, 435, 820, 300, 270, 261, 262, 263, + 439, 51, 52, 264, 830, 39, 40, 41, 42, 265, + 44, 837, 838, 839, 266, 272, 273, 274, 844, 182, + 183, 275, 848, 276, 277, 278, 184, 279, 280, 281, + 849, 851, 852, 638, 639, 640, 641, 642, 282, 283, + 284, 24, 25, 26, 27, 28, 29, 30, 31, 285, + 32, 286, 34, 35, 54, 37, 337, 287, 868, 288, + 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, + 879, 880, 289, 330, 290, 50, 291, 338, 296, 297, + 298, 299, 329, 332, 300, 892, 893, 305, 331, 51, + 52, 24, 25, 26, 27, 28, 29, 30, 31, 357, + 32, 358, 34, 35, 359, 37, 337, 296, 297, 298, + 299, 360, 361, 300, 296, 297, 298, 299, 440, 362, + 300, 363, 364, 307, 365, 50, 366, 919, 367, 386, + 368, 921, 922, 923, 369, 296, 297, 298, 299, 51, + 52, 300, 54, 370, 371, 372, 1055, 373, 296, 297, + 298, 299, 374, 375, 300, 376, 377, 378, 946, 1072, + 949, 296, 297, 298, 299, 342, 379, 300, 380, 381, + 956, 382, 1160, 296, 297, 298, 299, 391, 964, 300, + 383, 384, 385, 969, 1188, 387, 972, 296, 297, 298, + 299, 390, 54, 300, 392, 300, 450, 421, 1211, 984, + 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, + 995, 296, 297, 298, 299, 422, 427, 300, 428, 429, + 308, 296, 297, 298, 299, 434, 451, 300, 458, 486, + 309, 296, 297, 298, 299, 487, 489, 300, 494, 525, + 314, 495, 496, 497, 498, 1017, 549, 550, 499, 500, + 552, 551, 501, 554, 555, 296, 297, 298, 299, 502, + 503, 300, 504, 553, 347, 526, 505, 296, 297, 298, + 299, 1039, 1040, 300, 562, 563, 350, 296, 297, 298, + 299, 506, 507, 300, 508, 561, 413, 509, 510, 564, + 567, 568, 511, 1058, 1059, 1060, 1061, 1062, 1063, 1064, + 1065, 1066, 569, 296, 297, 298, 299, 512, 513, 300, + 514, 606, 423, 515, 609, 296, 297, 298, 299, 516, + 517, 300, 570, 571, 426, 296, 297, 298, 299, 624, + 625, 300, 518, 572, 436, 630, 631, 573, 519, 520, + 574, 591, 637, 1099, 644, 296, 297, 298, 299, 521, + 522, 300, 523, 336, 1110, 1111, 1112, 1113, 1114, 1115, + 1116, 1117, 1118, 296, 297, 298, 299, 524, 527, 300, + 577, 592, 437, 593, 594, 595, 660, 596, 662, 603, + 597, 598, 599, 600, 608, 601, 602, 667, 668, 669, + 1140, 1141, 673, 674, 675, 676, 677, 678, 679, 680, + 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 296, + 297, 298, 299, 610, 611, 300, 612, 613, 441, 614, + 615, 296, 297, 298, 299, 619, 620, 300, 1173, 1174, + 442, 621, 622, 623, 1178, 1179, 1180, 1181, 1182, 1183, + 296, 297, 298, 299, 626, 628, 300, 629, 632, 443, + 296, 297, 298, 299, 633, 634, 300, 1201, 635, 444, + 636, 645, 1205, 1206, 1207, 1208, 1209, 1210, 296, 297, + 298, 299, 646, 647, 300, 648, 649, 445, 684, 715, + 650, 656, 659, 661, 1223, 1224, 1225, 1226, 1227, 1228, + 296, 297, 298, 299, 663, 664, 300, 685, 686, 446, + 1237, 1238, 1239, 296, 297, 298, 299, 694, 710, 300, + 716, 722, 488, 723, 1251, 1252, 1253, 726, 727, 759, + 728, 729, 760, 730, 732, 1259, 1260, 1261, 735, 731, + 733, -1, 22, 734, 736, 23, 296, 297, 298, 299, + 809, 737, 300, 738, 745, 493, 817, 751, 739, 740, + 821, 296, 297, 298, 299, 741, 125, 300, 742, 763, + 528, 24, 25, 26, 27, 28, 29, 30, 31, 840, + 32, 33, 34, 35, 36, 37, 38, 743, 744, 746, + 764, 765, 39, 40, 41, 42, 43, 44, 747, 45, + 46, 47, 48, 49, 748, 50, 296, 297, 298, 299, + 749, 750, 300, 769, 770, 529, 771, 752, 772, 51, + 52, 126, 127, 128, 753, 53, 773, 774, 775, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 776, + 782, 788, 784, 789, 808, 804, 810, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 811, 149, 150, + 151, 152, 153, 154, 296, 297, 298, 299, 813, 814, + 300, 818, 54, 530, 296, 297, 298, 299, 822, 819, + 300, 823, 825, 531, 829, 296, 297, 298, 299, 824, + 826, 300, 832, 828, 532, 296, 297, 298, 299, 831, + 833, 300, 835, 834, 533, 296, 297, 298, 299, 841, + 842, 300, 845, 846, 534, 296, 297, 298, 299, 944, + 847, 300, 945, 850, 535, 296, 297, 298, 299, 859, + 861, 300, 860, 887, 536, 296, 297, 298, 299, 862, + 863, 300, 888, 895, 537, 966, 296, 297, 298, 299, + 894, 896, 300, 898, 924, 539, 296, 297, 298, 299, + 981, 901, 300, 905, 947, 540, 296, 297, 298, 299, + 899, 925, 300, 941, 943, 541, 996, 997, 296, 297, + 298, 299, 900, 902, 300, 942, 950, 542, 296, 297, + 298, 299, 904, 910, 300, 906, 911, 543, 296, 297, + 298, 299, 912, 914, 300, 915, 952, 544, 296, 297, + 298, 299, 917, 951, 300, 955, 957, 583, 296, 297, + 298, 299, 959, 960, 300, 961, 970, 711, 962, 296, + 297, 298, 299, 1037, 1038, 300, 963, 965, 754, 296, + 297, 298, 299, 967, 973, 300, 968, 971, 755, 296, + 297, 298, 299, 982, 974, 300, 977, 1057, 756, 983, + 1003, 998, 999, 1001, 1004, 1018, 1005, 1067, 1068, 1069, + 296, 297, 298, 299, 1006, 1011, 300, 1008, 1009, 757, + 296, 297, 298, 299, 1013, 1015, 300, 1016, 1019, 779, + 296, 297, 298, 299, 1022, 1035, 300, 1036, 1041, 856, + 296, 297, 298, 299, 1046, 1096, 300, 1047, 1048, 881, + 296, 297, 298, 299, 1050, 1051, 300, 1052, 1109, 882, + 296, 297, 298, 299, 1053, 1054, 300, 1070, 1071, 903, + 296, 297, 298, 299, 1074, 1075, 300, 1076, 1093, 907, + 296, 297, 298, 299, 1077, 1078, 300, 1079, 1094, 909, + 296, 297, 298, 299, 1080, 1081, 300, 1083, 1095, 928, + 1144, 296, 297, 298, 299, 1098, 1097, 300, 1100, 1103, + 978, 296, 297, 298, 299, 1104, 1106, 300, 1107, 1119, + 979, 296, 297, 298, 299, 1108, 1120, 300, 1123, 1129, + 980, 296, 297, 298, 299, 1124, 1125, 300, 1177, 1142, + 1010, 1139, 1126, 1127, 1128, 1184, 1185, 1186, 296, 297, + 298, 299, 1145, 1146, 300, 1147, 1148, 1012, 296, 297, + 298, 299, 1158, 1161, 300, 1203, 1175, 1014, 296, 297, + 298, 299, 1162, 1189, 300, 1163, 1198, 1032, 1199, 296, + 297, 298, 299, 1190, 1200, 300, 1202, 1221, 1033, 296, + 297, 298, 299, 1220, 1191, 300, 1212, 1222, 1034, 296, + 297, 298, 299, 1229, 1236, 300, 1213, 447, 1240, 1241, + 1242, 296, 297, 298, 299, 1243, 1247, 300, 1250, 1262, + 1170, 296, 297, 298, 299, 1248, 1249, 300, 1254, 1266, + 1171, 1270, 1271, 1272, 1274, 1275, 58, 1056, 1267, 1268, + 1269, 296, 297, 298, 299, 590, 0, 300, 59, 60, + 1172, 296, 297, 298, 299, 0, 559, 300, 0, 0, + 1233, 296, 297, 298, 299, 807, 0, 300, 0, 0, + 1234, 296, 297, 298, 299, 0, 0, 300, 0, 0, + 1235, 296, 297, 298, 299, 0, 0, 300, 0, 0, + 1263, 296, 297, 298, 299, 0, 0, 300, 0, 0, + 1264, 296, 297, 298, 299, 0, 0, 300, 0, 0, + 1265, 296, 297, 298, 299, 0, 0, 300, 0, 448, + 296, 297, 298, 299, 0, 0, 300, 0, 453, 296, + 297, 298, 299, 0, 0, 300, 0, 454, 296, 297, + 298, 299, 0, 0, 300, 0, 455, 296, 297, 298, + 299, 0, 0, 300, 0, 484, 296, 297, 298, 299, + 0, 0, 300, 0, 485, 296, 297, 298, 299, 0, + 0, 300, 0, 538, 296, 297, 298, 299, 0, 0, + 300, 0, 545, 296, 297, 298, 299, 0, 0, 300, + 0, 546, 296, 297, 298, 299, 0, 0, 300, 0, + 547, 296, 297, 298, 299, 0, 0, 300, 0, 681, + 296, 297, 298, 299, 0, 0, 300, 0, 682, 296, + 297, 298, 299, 0, 0, 300, 0, 708, 296, 297, + 298, 299, 0, 0, 300, 0, 709, 296, 297, 298, + 299, 0, 0, 300, 0, 724, 296, 297, 298, 299, + 0, 0, 300, 0, 725, 296, 297, 298, 299, 0, + 0, 300, 0, 762, 296, 297, 298, 299, 0, 0, + 300, 0, 790, 296, 297, 298, 299, 0, 0, 300, + 0, 791, 296, 297, 298, 299, 0, 0, 300, 0, + 792, 296, 297, 298, 299, 0, 0, 300, 0, 793, + 296, 297, 298, 299, 0, 0, 300, 0, 794, 296, + 297, 298, 299, 0, 0, 300, 0, 795, 296, 297, + 298, 299, 0, 0, 300, 0, 796, 296, 297, 298, + 299, 0, 0, 300, 0, 797, 296, 297, 298, 299, + 0, 0, 300, 0, 798, 296, 297, 298, 299, 0, + 0, 300, 0, 799, 296, 297, 298, 299, 0, 0, + 300, 0, 800, 296, 297, 298, 299, 0, 0, 300, + 0, 801, 296, 297, 298, 299, 0, 0, 300, 0, + 897, 296, 297, 298, 299, 0, 0, 300, 0, 908, + 296, 297, 298, 299, 0, 0, 300, 0, 913, 296, + 297, 298, 299, 0, 0, 300, 0, 916, 296, 297, + 298, 299, 0, 0, 300, 0, 918, 296, 297, 298, + 299, 0, 0, 300, 0, 929, 296, 297, 298, 299, + 0, 0, 300, 0, 930, 296, 297, 298, 299, 0, + 0, 300, 0, 931, 296, 297, 298, 299, 0, 0, + 300, 0, 932, 296, 297, 298, 299, 0, 0, 300, + 0, 933, 296, 297, 298, 299, 0, 0, 300, 0, + 934, 296, 297, 298, 299, 0, 0, 300, 0, 935, + 296, 297, 298, 299, 0, 0, 300, 0, 936, 296, + 297, 298, 299, 0, 0, 300, 0, 937, 296, 297, + 298, 299, 0, 0, 300, 0, 938, 296, 297, 298, + 299, 0, 0, 300, 0, 939, 296, 297, 298, 299, + 0, 0, 300, 0, 940, 296, 297, 298, 299, 0, + 0, 300, 0, 1002, 296, 297, 298, 299, 0, 0, + 300, 0, 1007, 296, 297, 298, 299, 0, 0, 300, + 0, 1023, 296, 297, 298, 299, 0, 0, 300, 0, + 1024, 296, 297, 298, 299, 0, 0, 300, 0, 1025, + 296, 297, 298, 299, 0, 0, 300, 0, 1026, 296, + 297, 298, 299, 0, 0, 300, 0, 1027, 296, 297, + 298, 299, 0, 0, 300, 0, 1028, 296, 297, 298, + 299, 0, 0, 300, 0, 1029, 296, 297, 298, 299, + 0, 0, 300, 0, 1030, 296, 297, 298, 299, 0, + 0, 300, 0, 1031, 296, 297, 298, 299, 0, 0, + 300, 0, 1073, 296, 297, 298, 299, 0, 0, 300, + 0, 1084, 296, 297, 298, 299, 0, 0, 300, 0, + 1085, 296, 297, 298, 299, 0, 0, 300, 0, 1086, + 296, 297, 298, 299, 0, 0, 300, 0, 1087, 296, + 297, 298, 299, 0, 0, 300, 0, 1088, 296, 297, + 298, 299, 0, 0, 300, 0, 1089, 296, 297, 298, + 299, 0, 0, 300, 0, 1090, 296, 297, 298, 299, + 0, 0, 300, 0, 1091, 296, 297, 298, 299, 0, + 0, 300, 0, 1092, 296, 297, 298, 299, 0, 0, + 300, 0, 1130, 296, 297, 298, 299, 0, 0, 300, + 0, 1131, 296, 297, 298, 299, 0, 0, 300, 0, + 1132, 296, 297, 298, 299, 0, 0, 300, 0, 1133, + 296, 297, 298, 299, 0, 0, 300, 0, 1134, 296, + 297, 298, 299, 0, 0, 300, 0, 1135, 296, 297, + 298, 299, 0, 0, 300, 0, 1136, 296, 297, 298, + 299, 0, 0, 300, 0, 1137, 296, 297, 298, 299, + 0, 0, 300, 0, 1138, 296, 297, 298, 299, 0, + 0, 300, 0, 1159, 296, 297, 298, 299, 0, 0, + 300, 0, 1164, 296, 297, 298, 299, 0, 0, 300, + 0, 1165, 296, 297, 298, 299, 0, 0, 300, 0, + 1166, 296, 297, 298, 299, 0, 0, 300, 0, 1167, + 296, 297, 298, 299, 0, 0, 300, 0, 1168, 296, + 297, 298, 299, 0, 0, 300, 0, 1169, 296, 297, + 298, 299, 0, 0, 300, 0, 1187, 296, 297, 298, + 299, 0, 0, 300, 0, 1192, 296, 297, 298, 299, + 0, 0, 300, 0, 1193, 296, 297, 298, 299, 0, + 0, 300, 0, 1194, 296, 297, 298, 299, 0, 0, + 300, 0, 1195, 296, 297, 298, 299, 0, 0, 300, + 0, 1196, 296, 297, 298, 299, 0, 0, 300, 0, + 1197, 296, 297, 298, 299, 0, 0, 300, 0, 1214, + 296, 297, 298, 299, 0, 0, 300, 0, 1215, 296, + 297, 298, 299, 0, 0, 300, 0, 1216, 296, 297, + 298, 299, 0, 0, 300, 0, 1217, 296, 297, 298, + 299, 0, 0, 300, 0, 1218, 296, 297, 298, 299, + 0, 0, 300, 0, 1219, 296, 297, 298, 299, 0, + 0, 300, 0, 1230, 296, 297, 298, 299, 0, 0, + 300, 0, 1231, 296, 297, 298, 299, 0, 0, 300, + 0, 1232, 296, 297, 298, 299, 0, 0, 300, 0, + 1244, 296, 297, 298, 299, 0, 0, 300, 0, 1245, + 296, 297, 298, 299, 0, 0, 300, 0, 1246, 296, + 297, 298, 299, 0, 0, 300, 0, 1255, 296, 297, + 298, 299, 0, 0, 300, 0, 1256, 296, 297, 298, + 299, 0, 0, 300, 0, 1257 }; static const short yycheck[] = { 79, - 80, 81, 82, 76, 84, 451, 86, 87, 88, 804, - 90, 731, 104, 105, 106, 30, 611, 612, 33, 34, - 740, 34, 57, 865, 63, 57, 136, 747, 30, 4, - 110, 33, 6, 6, 6, 3, 85, 86, 87, 119, - 81, 121, 3, 4, 47, 48, 49, 6, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, - 6, 7, 6, 30, 3, 4, 33, 34, 6, 36, + 80, 81, 82, 76, 84, 451, 86, 87, 88, 731, + 90, 4, 104, 105, 106, 6, 6, 30, 740, 63, + 33, 34, 866, 59, 136, 747, 34, 6, 6, 65, + 110, 6, 81, 3, 611, 612, 59, 3, 4, 119, + 7, 121, 65, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 6, 57, 41, 46, 57, 33, + 34, 6, 36, 59, 3, 4, 804, 151, 152, 65, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 896, 182, 183, 184, 154, 151, 152, 6, 150, - 190, 7, 192, 6, 153, 150, 196, 6, 150, 6, - 200, 201, 202, 718, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 226, 150, 6, 150, 218, 219, - 220, 65, 65, 91, 92, 93, 94, 95, 228, 229, - 3, 4, 232, 151, 152, 235, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 897, 153, 153, - 153, 901, 143, 144, 143, 144, 145, 146, 150, 150, - 149, 153, 272, 273, 274, 275, 276, 277, 278, 279, + 29, 150, 182, 183, 184, 85, 86, 87, 6, 153, + 190, 30, 192, 6, 33, 6, 196, 6, 154, 6, + 200, 201, 202, 150, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 226, 6, 150, 150, 218, 219, + 220, 718, 150, 150, 143, 144, 145, 146, 228, 229, + 149, 151, 232, 152, 154, 235, 0, 1, 150, 3, + 153, 150, 153, 153, 143, 144, 145, 146, 154, 897, + 149, 145, 146, 6, 154, 149, 898, 143, 144, 6, + 902, 47, 48, 49, 150, 143, 144, 145, 146, 155, + 7, 149, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 1054, 6, 143, 144, 296, 297, 298, 299, - 300, 150, 143, 144, 145, 146, 155, 6, 149, 6, - 154, 154, 6, 313, 150, 156, 150, 329, 318, 6, - 686, 6, 7, 150, 336, 143, 144, 145, 146, 6, - 151, 149, 332, 154, 143, 144, 145, 146, 6, 150, - 149, 341, 143, 144, 145, 146, 145, 146, 149, 7, - 149, 152, 46, 143, 144, 145, 146, 145, 146, 149, - 38, 149, 1002, 1003, 1004, 1005, 8, 6, 7, 1009, - 143, 144, 145, 146, 151, 152, 149, 150, 3, 4, - 153, 151, 152, 150, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 145, 146, 150, 420, 149, - 153, 150, 30, 31, 32, 33, 34, 35, 36, 37, - 150, 39, 151, 41, 42, 154, 44, 45, 150, 111, - 430, 431, 114, 1073, 1074, 33, 34, 1077, 36, 151, - 152, 453, 454, 455, 151, 152, 64, 447, 448, 143, - 144, 145, 146, 34, 150, 149, 143, 144, 145, 146, - 78, 79, 149, 34, 34, 153, 143, 144, 145, 146, - 36, 150, 149, 5, 150, 143, 144, 145, 146, 150, - 150, 149, 1122, 34, 484, 485, 498, 487, 30, 153, - 6, 33, 34, 859, 36, 507, 496, 497, 5, 150, - 153, 143, 144, 145, 146, 34, 3, 149, 50, 143, - 144, 145, 146, 131, 150, 149, 5, 151, 143, 144, - 1160, 143, 144, 145, 146, 150, 150, 149, 153, 151, - 150, 150, 154, 150, 527, 150, 154, 153, 538, 51, - 52, 53, 54, 153, 56, 545, 546, 547, 153, 1189, - 150, 0, 1, 150, 3, 150, 556, 150, 150, 150, - 150, 561, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 150, 587, 6, 577, 150, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 591, 592, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 602, 150, 0, 1, 150, 3, 3, 3, - 4, 150, 1252, 613, 150, 9, 10, 11, 12, 13, + 290, 291, 1056, 150, 143, 144, 296, 297, 298, 299, + 300, 150, 30, 150, 153, 33, 34, 150, 36, 150, + 145, 146, 6, 313, 149, 151, 152, 329, 318, 6, + 686, 150, 50, 38, 336, 143, 144, 145, 146, 6, + 150, 149, 332, 153, 143, 144, 145, 146, 8, 34, + 149, 341, 106, 107, 108, 109, 110, 111, 112, 113, + 6, 7, 143, 144, 145, 146, 145, 146, 149, 34, + 149, 34, 1004, 1005, 1006, 1007, 3, 4, 150, 1011, + 150, 153, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 6, 7, 36, 143, 144, 145, 146, + 6, 7, 149, 3, 4, 151, 152, 150, 420, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 430, 431, 30, 1075, 1076, 33, 34, 1079, 36, 151, + 152, 453, 454, 455, 151, 152, 150, 447, 448, 143, + 144, 145, 146, 151, 152, 149, 143, 144, 145, 146, + 151, 111, 149, 154, 114, 150, 143, 144, 145, 146, + 150, 153, 149, 143, 144, 145, 146, 5, 34, 149, + 6, 153, 1124, 5, 484, 485, 498, 487, 143, 144, + 145, 146, 150, 859, 149, 507, 496, 497, 34, 153, + 3, 156, 150, 5, 150, 150, 143, 144, 145, 146, + 153, 150, 149, 150, 150, 153, 153, 150, 153, 150, + 1162, 143, 144, 145, 146, 150, 150, 149, 6, 151, + 0, 1, 154, 3, 527, 150, 150, 3, 538, 150, + 150, 150, 150, 143, 144, 545, 546, 547, 150, 1191, + 150, 143, 144, 145, 146, 150, 556, 149, 151, 150, + 152, 561, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 150, 587, 150, 577, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 150, 591, 592, 593, 594, 595, 596, 597, 598, 599, + 600, 601, 602, 150, 150, 143, 144, 145, 146, 3, + 4, 149, 1254, 613, 152, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 150, 143, 144, 145, - 146, 150, 89, 149, 5, 151, 658, 94, 154, 150, - 154, 150, 150, 7, 150, 150, 150, 106, 107, 108, - 109, 110, 111, 112, 113, 150, 113, 154, 150, 150, + 24, 25, 26, 27, 28, 29, 106, 107, 108, 109, + 110, 111, 112, 113, 89, 150, 658, 5, 7, 94, + 154, 150, 150, 143, 144, 145, 146, 150, 150, 149, + 151, 151, 132, 133, 154, 135, 154, 150, 113, 150, 670, 671, 672, 150, 150, 687, 150, 689, 150, 691, - 150, 681, 682, 132, 133, 150, 135, 150, 30, 31, - 32, 33, 34, 35, 36, 37, 150, 39, 150, 41, - 42, 151, 44, 45, 150, 150, 150, 150, 708, 709, - 106, 107, 108, 109, 110, 111, 112, 113, 150, 150, - 7, 150, 64, 150, 724, 150, 152, 143, 144, 145, - 146, 151, 150, 149, 734, 151, 78, 79, 154, 150, - 150, 741, 742, 743, 150, 150, 150, 150, 748, 143, - 144, 150, 752, 150, 152, 82, 150, 150, 150, 150, - 753, 761, 762, 150, 150, 150, 150, 150, 150, 30, - 31, 32, 33, 34, 35, 36, 37, 150, 39, 151, - 41, 42, 152, 44, 45, 151, 137, 5, 788, 131, + 7, 681, 682, 30, 31, 32, 33, 34, 35, 36, + 37, 150, 39, 150, 41, 42, 150, 44, 45, 143, + 144, 145, 146, 150, 150, 149, 82, 151, 708, 709, + 154, 150, 143, 144, 145, 146, 150, 64, 149, 143, + 144, 145, 146, 154, 724, 149, 152, 150, 150, 150, + 154, 78, 79, 150, 734, 51, 52, 53, 54, 150, + 56, 741, 742, 743, 150, 150, 150, 150, 748, 143, + 144, 150, 752, 150, 150, 150, 150, 150, 150, 150, + 753, 761, 762, 91, 92, 93, 94, 95, 150, 150, + 150, 30, 31, 32, 33, 34, 35, 36, 37, 150, + 39, 150, 41, 42, 131, 44, 45, 150, 788, 150, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, - 800, 801, 5, 64, 5, 5, 5, 5, 143, 144, - 145, 146, 154, 5, 149, 815, 816, 78, 79, 154, - 143, 144, 145, 146, 5, 5, 149, 143, 144, 145, - 146, 154, 5, 149, 143, 144, 145, 146, 154, 5, - 149, 143, 144, 145, 146, 154, 5, 149, 143, 144, - 145, 146, 154, 5, 149, 5, 5, 857, 5, 154, - 5, 861, 862, 863, 5, 143, 144, 145, 146, 5, - 131, 149, 143, 144, 145, 146, 154, 5, 149, 143, - 144, 145, 146, 154, 5, 149, 5, 887, 152, 889, - 5, 143, 144, 145, 146, 124, 5, 149, 5, 899, - 152, 5, 143, 144, 145, 146, 5, 907, 149, 3, - 5, 152, 912, 5, 5, 915, 143, 144, 145, 146, - 6, 149, 149, 7, 7, 152, 6, 927, 928, 929, - 930, 931, 932, 933, 934, 935, 936, 937, 938, 143, - 144, 145, 146, 7, 7, 149, 7, 153, 152, 143, - 144, 145, 146, 7, 7, 149, 153, 153, 152, 143, - 144, 145, 146, 150, 138, 149, 151, 5, 152, 151, - 7, 6, 151, 973, 421, 422, 151, 7, 425, 151, - 151, 428, 429, 143, 144, 145, 146, 151, 151, 149, - 151, 7, 152, 151, 151, 143, 144, 145, 146, 999, - 1000, 149, 7, 7, 152, 143, 144, 145, 146, 151, - 150, 149, 151, 6, 152, 152, 151, 151, 151, 151, - 151, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, - 7, 143, 144, 145, 146, 151, 7, 149, 151, 486, - 152, 151, 489, 143, 144, 145, 146, 7, 151, 149, - 151, 7, 152, 143, 144, 145, 146, 504, 505, 149, - 153, 7, 152, 510, 511, 7, 151, 7, 7, 151, - 517, 1071, 519, 143, 144, 145, 146, 151, 151, 149, - 151, 151, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, - 1090, 143, 144, 145, 146, 151, 151, 149, 7, 150, - 152, 151, 151, 150, 551, 150, 553, 143, 144, 145, - 146, 150, 153, 149, 7, 562, 563, 564, 1118, 1119, - 567, 568, 569, 570, 571, 572, 573, 574, 1128, 1129, - 1130, 1131, 1132, 1133, 1134, 1135, 1136, 143, 144, 145, - 146, 150, 150, 149, 3, 134, 152, 150, 150, 143, - 144, 145, 146, 150, 150, 149, 1156, 1157, 152, 150, - 150, 153, 1162, 1163, 1164, 1165, 1166, 1167, 143, 144, - 145, 146, 3, 3, 149, 145, 3, 152, 143, 144, - 145, 146, 3, 3, 149, 1185, 3, 152, 3, 3, - 1190, 1191, 1192, 1193, 1194, 1195, 143, 144, 145, 146, - 3, 3, 149, 3, 3, 152, 3, 5, 3, 5, - 3, 154, 1212, 1213, 1214, 1215, 1216, 1217, 143, 144, - 145, 146, 6, 6, 149, 6, 6, 152, 1228, 1229, - 1230, 143, 144, 145, 146, 6, 154, 149, 153, 6, - 152, 6, 1242, 1243, 1244, 83, 4, 3, 151, 6, - 152, 151, 151, 1253, 1254, 1255, 152, 152, 152, 0, - 1, 151, 151, 4, 143, 144, 145, 146, 715, 151, - 149, 152, 152, 152, 721, 151, 7, 152, 725, 143, - 144, 145, 146, 151, 33, 149, 151, 6, 152, 30, - 31, 32, 33, 34, 35, 36, 37, 744, 39, 40, - 41, 42, 43, 44, 45, 151, 151, 151, 151, 151, - 51, 52, 53, 54, 55, 56, 152, 58, 59, 60, - 61, 62, 151, 64, 143, 144, 145, 146, 151, 151, - 149, 6, 6, 152, 152, 151, 6, 78, 79, 88, - 89, 90, 151, 84, 151, 6, 6, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 6, 6, 6, - 6, 151, 6, 6, 6, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 6, 125, 126, 127, 128, - 129, 130, 143, 144, 145, 146, 6, 83, 149, 7, - 131, 152, 143, 144, 145, 146, 3, 3, 149, 154, - 154, 152, 154, 143, 144, 145, 146, 6, 3, 149, - 6, 145, 152, 143, 144, 145, 146, 6, 6, 149, - 3, 6, 152, 143, 144, 145, 146, 3, 6, 149, - 3, 6, 152, 3, 6, 3, 883, 3, 153, 886, - 143, 144, 145, 146, 6, 6, 149, 154, 65, 152, - 143, 144, 145, 146, 151, 153, 149, 151, 80, 152, - 151, 6, 909, 143, 144, 145, 146, 3, 152, 149, - 151, 153, 152, 151, 151, 151, 923, 143, 144, 145, - 146, 152, 151, 149, 152, 152, 152, 151, 143, 144, - 145, 146, 939, 940, 149, 152, 152, 152, 143, 144, - 145, 146, 152, 7, 149, 7, 83, 152, 143, 144, - 145, 146, 151, 151, 149, 6, 6, 152, 143, 144, - 145, 146, 134, 6, 149, 3, 6, 152, 143, 144, - 145, 146, 6, 3, 149, 6, 3, 152, 143, 144, - 145, 146, 6, 6, 149, 6, 6, 152, 6, 996, - 997, 143, 144, 145, 146, 6, 5, 149, 5, 153, - 152, 143, 144, 145, 146, 6, 6, 149, 154, 3, - 152, 151, 151, 1020, 143, 144, 145, 146, 152, 6, - 149, 152, 151, 1030, 1031, 1032, 143, 144, 145, 146, - 6, 151, 149, 151, 6, 152, 143, 144, 145, 146, - 151, 151, 149, 152, 6, 152, 143, 144, 145, 146, - 151, 151, 149, 151, 3, 152, 143, 144, 145, 146, - 6, 1068, 149, 6, 6, 152, 143, 144, 145, 146, - 6, 6, 149, 6, 1081, 152, 143, 144, 145, 146, - 5, 5, 149, 151, 154, 152, 143, 144, 145, 146, - 3, 151, 149, 151, 6, 152, 143, 144, 145, 146, - 152, 6, 149, 152, 6, 152, 143, 144, 145, 146, - 151, 6, 149, 80, 6, 152, 1123, 143, 144, 145, - 146, 134, 151, 149, 6, 5, 152, 143, 144, 145, - 146, 5, 151, 149, 151, 6, 152, 143, 144, 145, - 146, 3, 154, 149, 154, 153, 152, 143, 144, 145, - 146, 80, 151, 149, 1161, 152, 152, 152, 151, 3, - 152, 1168, 1169, 1170, 143, 144, 145, 146, 6, 6, - 149, 6, 6, 152, 143, 144, 145, 146, 153, 3, - 149, 1188, 139, 152, 143, 144, 145, 146, 151, 140, - 149, 151, 6, 152, 6, 143, 144, 145, 146, 151, - 0, 149, 6, 1210, 152, 143, 144, 145, 146, 6, - 151, 149, 151, 6, 152, 143, 144, 145, 146, 151, - 1227, 149, 152, 151, 1231, 1232, 1233, 143, 144, 145, - 146, 6, 151, 149, 1241, 6, 152, 143, 144, 145, - 146, 6, 6, 149, 151, 6, 152, 6, 152, 6, - 6, 0, 6, 6, 1261, 1262, 1263, 143, 144, 145, - 146, 458, 6, 149, 1019, 713, 152, 143, 144, 145, - 146, 431, -1, 149, -1, -1, 152, 143, 144, 145, - 146, -1, -1, 149, -1, -1, 152, 143, 144, 145, - 146, -1, -1, 149, -1, -1, 152, 143, 144, 145, - 146, -1, -1, 149, -1, -1, 152, 143, 144, 145, - 146, -1, -1, 149, -1, -1, 152, 143, 144, 145, - 146, -1, -1, 149, -1, -1, 152, 143, 144, 145, - 146, -1, -1, 149, -1, -1, 152, 143, 144, 145, - 146, -1, -1, 149, -1, -1, 152, 143, 144, 145, + 800, 801, 150, 152, 150, 64, 150, 154, 143, 144, + 145, 146, 151, 151, 149, 815, 816, 152, 152, 78, + 79, 30, 31, 32, 33, 34, 35, 36, 37, 137, + 39, 5, 41, 42, 5, 44, 45, 143, 144, 145, + 146, 5, 5, 149, 143, 144, 145, 146, 154, 5, + 149, 5, 5, 152, 5, 64, 5, 857, 5, 3, + 5, 861, 862, 863, 5, 143, 144, 145, 146, 78, + 79, 149, 131, 5, 5, 5, 154, 5, 143, 144, + 145, 146, 5, 5, 149, 5, 5, 5, 888, 154, + 890, 143, 144, 145, 146, 154, 5, 149, 5, 124, + 900, 5, 154, 143, 144, 145, 146, 6, 908, 149, + 5, 5, 5, 913, 154, 5, 916, 143, 144, 145, + 146, 5, 131, 149, 5, 149, 153, 7, 154, 929, + 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, + 940, 143, 144, 145, 146, 7, 6, 149, 7, 7, + 152, 143, 144, 145, 146, 7, 153, 149, 153, 7, + 152, 143, 144, 145, 146, 150, 7, 149, 138, 5, + 152, 151, 151, 151, 151, 975, 421, 422, 151, 151, + 425, 7, 151, 428, 429, 143, 144, 145, 146, 151, + 151, 149, 151, 7, 152, 152, 151, 143, 144, 145, + 146, 1001, 1002, 149, 7, 7, 152, 143, 144, 145, + 146, 151, 151, 149, 151, 150, 152, 151, 151, 7, + 7, 7, 151, 1023, 1024, 1025, 1026, 1027, 1028, 1029, + 1030, 1031, 7, 143, 144, 145, 146, 151, 151, 149, + 151, 486, 152, 151, 489, 143, 144, 145, 146, 151, + 151, 149, 7, 7, 152, 143, 144, 145, 146, 504, + 505, 149, 151, 7, 152, 510, 511, 7, 151, 151, + 7, 150, 517, 1073, 519, 143, 144, 145, 146, 151, + 151, 149, 151, 151, 1084, 1085, 1086, 1087, 1088, 1089, + 1090, 1091, 1092, 143, 144, 145, 146, 151, 151, 149, + 151, 150, 152, 150, 150, 150, 551, 150, 553, 6, + 150, 150, 150, 150, 7, 150, 150, 562, 563, 564, + 1120, 1121, 567, 568, 569, 570, 571, 572, 573, 574, + 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 143, + 144, 145, 146, 153, 153, 149, 153, 7, 152, 134, + 3, 143, 144, 145, 146, 3, 3, 149, 1158, 1159, + 152, 145, 3, 3, 1164, 1165, 1166, 1167, 1168, 1169, + 143, 144, 145, 146, 3, 3, 149, 3, 3, 152, + 143, 144, 145, 146, 3, 3, 149, 1187, 3, 152, + 3, 3, 1192, 1193, 1194, 1195, 1196, 1197, 143, 144, + 145, 146, 5, 5, 149, 3, 3, 152, 154, 83, + 6, 6, 6, 6, 1214, 1215, 1216, 1217, 1218, 1219, + 143, 144, 145, 146, 6, 6, 149, 154, 153, 152, + 1230, 1231, 1232, 143, 144, 145, 146, 6, 6, 149, + 4, 3, 152, 151, 1244, 1245, 1246, 152, 151, 6, + 152, 151, 6, 152, 152, 1255, 1256, 1257, 152, 151, + 151, 0, 1, 151, 151, 4, 143, 144, 145, 146, + 715, 152, 149, 152, 152, 152, 721, 152, 151, 151, + 725, 143, 144, 145, 146, 151, 33, 149, 151, 6, + 152, 30, 31, 32, 33, 34, 35, 36, 37, 744, + 39, 40, 41, 42, 43, 44, 45, 151, 151, 151, + 6, 6, 51, 52, 53, 54, 55, 56, 151, 58, + 59, 60, 61, 62, 151, 64, 143, 144, 145, 146, + 151, 151, 149, 6, 6, 152, 6, 151, 6, 78, + 79, 88, 89, 90, 151, 84, 6, 6, 6, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 6, + 6, 151, 6, 6, 83, 7, 7, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 154, 125, 126, + 127, 128, 129, 130, 143, 144, 145, 146, 154, 154, + 149, 3, 131, 152, 143, 144, 145, 146, 6, 3, + 149, 3, 145, 152, 3, 143, 144, 145, 146, 6, + 6, 149, 3, 6, 152, 143, 144, 145, 146, 6, + 6, 149, 3, 6, 152, 143, 144, 145, 146, 6, + 3, 149, 3, 3, 152, 143, 144, 145, 146, 884, + 6, 149, 887, 6, 152, 143, 144, 145, 146, 153, + 151, 149, 154, 153, 152, 143, 144, 145, 146, 151, + 151, 149, 80, 3, 152, 910, 143, 144, 145, 146, + 6, 152, 149, 151, 6, 152, 143, 144, 145, 146, + 925, 152, 149, 152, 6, 152, 143, 144, 145, 146, + 151, 153, 149, 7, 83, 152, 941, 942, 143, 144, + 145, 146, 151, 151, 149, 7, 6, 152, 143, 144, + 145, 146, 151, 151, 149, 152, 152, 152, 143, 144, + 145, 146, 152, 151, 149, 152, 6, 152, 143, 144, + 145, 146, 151, 134, 149, 3, 6, 152, 143, 144, + 145, 146, 6, 3, 149, 6, 3, 152, 6, 143, + 144, 145, 146, 998, 999, 149, 6, 6, 152, 143, + 144, 145, 146, 6, 5, 149, 6, 6, 152, 143, + 144, 145, 146, 6, 5, 149, 154, 1022, 152, 6, + 3, 153, 151, 151, 151, 6, 151, 1032, 1033, 1034, + 143, 144, 145, 146, 151, 151, 149, 152, 152, 152, + 143, 144, 145, 146, 152, 151, 149, 151, 6, 152, + 143, 144, 145, 146, 151, 6, 149, 6, 3, 152, + 143, 144, 145, 146, 6, 1070, 149, 6, 6, 152, + 143, 144, 145, 146, 6, 6, 149, 6, 1083, 152, + 143, 144, 145, 146, 5, 5, 149, 151, 154, 152, + 143, 144, 145, 146, 3, 151, 149, 151, 6, 152, + 143, 144, 145, 146, 152, 152, 149, 151, 6, 152, + 143, 144, 145, 146, 151, 151, 149, 151, 6, 152, + 1125, 143, 144, 145, 146, 6, 80, 149, 134, 6, + 152, 143, 144, 145, 146, 6, 5, 149, 5, 154, + 152, 143, 144, 145, 146, 6, 153, 149, 3, 154, + 152, 143, 144, 145, 146, 151, 151, 149, 1163, 3, + 152, 80, 152, 152, 152, 1170, 1171, 1172, 143, 144, + 145, 146, 6, 6, 149, 6, 6, 152, 143, 144, + 145, 146, 153, 3, 149, 1190, 139, 152, 143, 144, + 145, 146, 151, 140, 149, 151, 6, 152, 6, 143, + 144, 145, 146, 151, 6, 149, 6, 1212, 152, 143, + 144, 145, 146, 6, 151, 149, 151, 6, 152, 143, + 144, 145, 146, 151, 1229, 149, 152, 151, 1233, 1234, + 1235, 143, 144, 145, 146, 151, 6, 149, 1243, 152, + 152, 143, 144, 145, 146, 6, 6, 149, 151, 6, + 152, 6, 6, 6, 0, 0, 6, 1021, 1263, 1264, + 1265, 143, 144, 145, 146, 458, -1, 149, 6, 6, + 152, 143, 144, 145, 146, -1, 431, 149, -1, -1, + 152, 143, 144, 145, 146, 713, -1, 149, -1, -1, + 152, 143, 144, 145, 146, -1, -1, 149, -1, -1, + 152, 143, 144, 145, 146, -1, -1, 149, -1, -1, + 152, 143, 144, 145, 146, -1, -1, 149, -1, -1, + 152, 143, 144, 145, 146, -1, -1, 149, -1, -1, + 152, 143, 144, 145, 146, -1, -1, 149, -1, 151, + 143, 144, 145, 146, -1, -1, 149, -1, 151, 143, + 144, 145, 146, -1, -1, 149, -1, 151, 143, 144, + 145, 146, -1, -1, 149, -1, 151, 143, 144, 145, 146, -1, -1, 149, -1, 151, 143, 144, 145, 146, -1, -1, 149, -1, 151, 143, 144, 145, 146, -1, -1, 149, -1, 151, 143, 144, 145, 146, -1, -1, @@ -1417,13 +1421,10 @@ static const short yycheck[] = { 79, 143, 144, 145, 146, -1, -1, 149, -1, 151, 143, 144, 145, 146, -1, -1, 149, -1, 151, 143, 144, 145, 146, -1, -1, 149, -1, 151, 143, 144, 145, - 146, -1, -1, 149, -1, 151, 143, 144, 145, 146, - -1, -1, 149, -1, 151, 143, 144, 145, 146, -1, - -1, 149, -1, 151 + 146, -1, -1, 149, -1, 151 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.28. */ +#line 3 "/usr/local/share/bison.simple" /* Skeleton output parser for bison, Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. @@ -1440,66 +1441,46 @@ static const short yycheck[] = { 79, You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ +#ifndef alloca #ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA #define alloca __builtin_alloca #else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) #include <alloca.h> #else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ +#if defined (MSDOS) && !defined (__TURBOC__) #include <malloc.h> -#endif #else /* not MSDOS, or __TURBOC__ */ #if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include <malloc.h> */ +#include <malloc.h> #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca +#else /* not MSDOS, __TURBOC__, or _AIX */ +#ifdef __hpux +#ifdef __cplusplus +extern "C" { +void *alloca (unsigned int); +}; +#else /* not __cplusplus */ +void *alloca (); +#endif /* not __cplusplus */ #endif /* __hpux */ -#endif #endif /* not _AIX */ #endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ +#endif /* not sparc. */ +#endif /* not GNU C. */ +#endif /* alloca not defined. */ -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ /* Note: there must be only one dollar sign in this file. It is replaced by the list of actions, each action @@ -1509,8 +1490,8 @@ static const short yycheck[] = { 79, #define yyclearin (yychar = YYEMPTY) #define YYEMPTY -2 #define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab +#define YYACCEPT return(0) +#define YYABORT return(1) #define YYERROR goto yyerrlab1 /* Like YYERROR except do call yyerror. This remains here temporarily to ease the @@ -1591,12 +1572,12 @@ int yydebug; /* nonzero means print parse trace */ #ifndef YYMAXDEPTH #define YYMAXDEPTH 10000 #endif - -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +int yyparse (void); +#endif + #if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ #define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) #else /* not GNU C or C++ */ @@ -1608,7 +1589,7 @@ static void __yy_memcpy (to, from, count) char *to; char *from; - unsigned int count; + int count; { register char *f = from; register char *t = to; @@ -1623,10 +1604,10 @@ __yy_memcpy (to, from, count) /* This is the most reliable way to avoid incompatibilities in available built-in functions on various systems. */ static void -__yy_memcpy (char *to, char *from, unsigned int count) +__yy_memcpy (char *to, char *from, int count) { - register char *t = to; register char *f = from; + register char *t = to; register int i = count; while (i-- > 0) @@ -1636,7 +1617,7 @@ __yy_memcpy (char *to, char *from, unsigned int count) #endif #endif -#line 217 "/usr/lib/bison.simple" +#line 196 "/usr/local/share/bison.simple" /* The user can define YYPARSE_PARAM as the name of an argument to be passed into yyparse. The argument should have type void *. @@ -1657,15 +1638,6 @@ __yy_memcpy (char *to, char *from, unsigned int count) #define YYPARSE_PARAM_DECL #endif /* not YYPARSE_PARAM */ -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - int yyparse(YYPARSE_PARAM_ARG) YYPARSE_PARAM_DECL @@ -1694,7 +1666,6 @@ yyparse(YYPARSE_PARAM_ARG) #endif int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; #ifdef YYPURE int yychar; @@ -1779,32 +1750,18 @@ yynewstate: if (yystacksize >= YYMAXDEPTH) { yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } return 2; } yystacksize *= 2; if (yystacksize > YYMAXDEPTH) yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); + yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp)); + yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp)); #ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); + yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp)); #endif #endif /* no yyoverflow */ @@ -2859,7 +2816,13 @@ case 145: ; break;} case 146: -#line 967 "Gmsh.y" +#line 960 "Gmsh.y" +{ + extr.mesh.Recombine = true; + ; + break;} +case 147: +#line 971 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -2877,8 +2840,8 @@ case 146: } ; break;} -case 147: -#line 984 "Gmsh.y" +case 148: +#line 988 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -2896,8 +2859,8 @@ case 147: } ; break;} -case 148: -#line 1001 "Gmsh.y" +case 149: +#line 1005 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -2915,8 +2878,8 @@ case 148: } ; break;} -case 149: -#line 1018 "Gmsh.y" +case 150: +#line 1022 "Gmsh.y" { Curve *c; for(i=0;i<List_Nbr(yyvsp[-6].l);i++){ @@ -2934,8 +2897,8 @@ case 149: } ; break;} -case 150: -#line 1035 "Gmsh.y" +case 151: +#line 1039 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -2956,8 +2919,8 @@ case 150: } ; break;} -case 151: -#line 1055 "Gmsh.y" +case 152: +#line 1059 "Gmsh.y" { Surface *s = FindSurface((int)yyvsp[-4].d,THEM); if(!s) @@ -2977,8 +2940,8 @@ case 151: } ; break;} -case 152: -#line 1074 "Gmsh.y" +case 153: +#line 1078 "Gmsh.y" { Volume *v = FindVolume((int)yyvsp[-4].d,THEM); if(!v) @@ -2998,8 +2961,8 @@ case 152: } ; break;} -case 153: -#line 1093 "Gmsh.y" +case 154: +#line 1097 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-3].l);i++){ @@ -3015,8 +2978,8 @@ case 153: } ; break;} -case 154: -#line 1108 "Gmsh.y" +case 155: +#line 1112 "Gmsh.y" { Surface *s; for(i=0;i<List_Nbr(yyvsp[-1].l);i++){ @@ -3032,32 +2995,32 @@ case 154: } ; break;} -case 155: -#line 1123 "Gmsh.y" +case 156: +#line 1127 "Gmsh.y" { Msg(PARSER_ERROR, "Physical Associations do not exist anymore!"); ; break;} -case 156: -#line 1135 "Gmsh.y" +case 157: +#line 1139 "Gmsh.y" { Coherence_PS(); ; break;} -case 160: -#line 1155 "Gmsh.y" +case 161: +#line 1159 "Gmsh.y" { ColorField = ColorGeneral; ; break;} -case 162: -#line 1158 "Gmsh.y" +case 163: +#line 1162 "Gmsh.y" { ColorField = ColorGeometry; ; break;} -case 164: -#line 1161 "Gmsh.y" +case 165: +#line 1165 "Gmsh.y" { ColorField = ColorMesh; ; break;} -case 168: -#line 1172 "Gmsh.y" +case 169: +#line 1176 "Gmsh.y" { i = Get_ColorForString(ColorString, -1, yyvsp[-1].c, &flag); if(flag) vyyerror("Unknown Color: %s", yyvsp[-1].c); @@ -3068,8 +3031,8 @@ case 168: *ptr = i ; ; break;} -case 169: -#line 1182 "Gmsh.y" +case 170: +#line 1186 "Gmsh.y" { i = Get_ColorForString(ColorString, (int)yyvsp[-2].d, yyvsp[-4].c, &flag); if(flag) vyyerror("Unknown Color: %s", yyvsp[-4].c); @@ -3080,8 +3043,8 @@ case 169: *ptr = i ; ; break;} -case 170: -#line 1192 "Gmsh.y" +case 171: +#line 1196 "Gmsh.y" { Get_ColorPointerForString(ColorField, yyvsp[-3].c, &flag, &ptr); if(flag) @@ -3090,8 +3053,8 @@ case 170: *ptr = PACK_COLOR((int)yyvsp[-1].v[0], (int)yyvsp[-1].v[1], (int)yyvsp[-1].v[2], (int)yyvsp[-1].v[3]); ; break;} -case 171: -#line 1203 "Gmsh.y" +case 172: +#line 1207 "Gmsh.y" { yyval.v[0]=yyvsp[-7].d; yyval.v[1]=yyvsp[-5].d; @@ -3099,8 +3062,8 @@ case 171: yyval.v[3]=yyvsp[-1].d; ; break;} -case 172: -#line 1210 "Gmsh.y" +case 173: +#line 1214 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; @@ -3108,152 +3071,152 @@ case 172: yyval.v[3]=255.; ; break;} -case 173: -#line 1286 "Gmsh.y" -{yyval.i = 1;; - break;} case 174: -#line 1287 "Gmsh.y" -{yyval.i = 0;; +#line 1290 "Gmsh.y" +{yyval.i = 1;; break;} case 175: -#line 1288 "Gmsh.y" -{yyval.i = -1;; +#line 1291 "Gmsh.y" +{yyval.i = 0;; break;} case 176: -#line 1289 "Gmsh.y" +#line 1292 "Gmsh.y" {yyval.i = -1;; break;} case 177: -#line 1290 "Gmsh.y" +#line 1293 "Gmsh.y" {yyval.i = -1;; break;} case 178: #line 1294 "Gmsh.y" -{ yyval.d = yyvsp[0].d; ; +{yyval.i = -1;; break;} case 179: -#line 1295 "Gmsh.y" -{ yyval.d = yyvsp[-1].d; ; +#line 1298 "Gmsh.y" +{ yyval.d = yyvsp[0].d; ; break;} case 180: -#line 1296 "Gmsh.y" -{ yyval.d = yyvsp[-2].d - yyvsp[0].d; ; +#line 1299 "Gmsh.y" +{ yyval.d = yyvsp[-1].d; ; break;} case 181: -#line 1297 "Gmsh.y" -{ yyval.d = yyvsp[-2].d + yyvsp[0].d; ; +#line 1300 "Gmsh.y" +{ yyval.d = yyvsp[-2].d - yyvsp[0].d; ; break;} case 182: -#line 1298 "Gmsh.y" -{ yyval.d = yyvsp[-2].d * yyvsp[0].d; ; +#line 1301 "Gmsh.y" +{ yyval.d = yyvsp[-2].d + yyvsp[0].d; ; break;} case 183: -#line 1299 "Gmsh.y" -{ yyval.d = yyvsp[-2].d / yyvsp[0].d; ; +#line 1302 "Gmsh.y" +{ yyval.d = yyvsp[-2].d * yyvsp[0].d; ; break;} case 184: -#line 1300 "Gmsh.y" -{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; +#line 1303 "Gmsh.y" +{ yyval.d = yyvsp[-2].d / yyvsp[0].d; ; break;} case 185: -#line 1301 "Gmsh.y" -{ yyval.d = - yyvsp[0].d; ; +#line 1304 "Gmsh.y" +{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ; break;} case 186: -#line 1302 "Gmsh.y" -{ yyval.d = yyvsp[0].d; ; +#line 1305 "Gmsh.y" +{ yyval.d = - yyvsp[0].d; ; break;} case 187: -#line 1303 "Gmsh.y" -{ yyval.d = exp(yyvsp[-1].d); ; +#line 1306 "Gmsh.y" +{ yyval.d = yyvsp[0].d; ; break;} case 188: -#line 1304 "Gmsh.y" -{ yyval.d = log(yyvsp[-1].d); ; +#line 1307 "Gmsh.y" +{ yyval.d = exp(yyvsp[-1].d); ; break;} case 189: -#line 1305 "Gmsh.y" -{ yyval.d = log10(yyvsp[-1].d); ; +#line 1308 "Gmsh.y" +{ yyval.d = log(yyvsp[-1].d); ; break;} case 190: -#line 1306 "Gmsh.y" -{ yyval.d = sqrt(yyvsp[-1].d); ; +#line 1309 "Gmsh.y" +{ yyval.d = log10(yyvsp[-1].d); ; break;} case 191: -#line 1307 "Gmsh.y" -{ yyval.d = sin(yyvsp[-1].d); ; +#line 1310 "Gmsh.y" +{ yyval.d = sqrt(yyvsp[-1].d); ; break;} case 192: -#line 1308 "Gmsh.y" -{ yyval.d = asin(yyvsp[-1].d); ; +#line 1311 "Gmsh.y" +{ yyval.d = sin(yyvsp[-1].d); ; break;} case 193: -#line 1309 "Gmsh.y" -{ yyval.d = cos(yyvsp[-1].d); ; +#line 1312 "Gmsh.y" +{ yyval.d = asin(yyvsp[-1].d); ; break;} case 194: -#line 1310 "Gmsh.y" -{ yyval.d = acos(yyvsp[-1].d); ; +#line 1313 "Gmsh.y" +{ yyval.d = cos(yyvsp[-1].d); ; break;} case 195: -#line 1311 "Gmsh.y" -{ yyval.d = tan(yyvsp[-1].d); ; +#line 1314 "Gmsh.y" +{ yyval.d = acos(yyvsp[-1].d); ; break;} case 196: -#line 1312 "Gmsh.y" -{ yyval.d = atan(yyvsp[-1].d); ; +#line 1315 "Gmsh.y" +{ yyval.d = tan(yyvsp[-1].d); ; break;} case 197: -#line 1313 "Gmsh.y" -{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ; +#line 1316 "Gmsh.y" +{ yyval.d = atan(yyvsp[-1].d); ; break;} case 198: -#line 1314 "Gmsh.y" -{ yyval.d = sinh(yyvsp[-1].d); ; +#line 1317 "Gmsh.y" +{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 199: -#line 1315 "Gmsh.y" -{ yyval.d = cosh(yyvsp[-1].d); ; +#line 1318 "Gmsh.y" +{ yyval.d = sinh(yyvsp[-1].d); ; break;} case 200: -#line 1316 "Gmsh.y" -{ yyval.d = tanh(yyvsp[-1].d); ; +#line 1319 "Gmsh.y" +{ yyval.d = cosh(yyvsp[-1].d); ; break;} case 201: -#line 1317 "Gmsh.y" -{ yyval.d = fabs(yyvsp[-1].d); ; +#line 1320 "Gmsh.y" +{ yyval.d = tanh(yyvsp[-1].d); ; break;} case 202: -#line 1318 "Gmsh.y" -{ yyval.d = floor(yyvsp[-1].d); ; +#line 1321 "Gmsh.y" +{ yyval.d = fabs(yyvsp[-1].d); ; break;} case 203: -#line 1319 "Gmsh.y" -{ yyval.d = ceil(yyvsp[-1].d); ; +#line 1322 "Gmsh.y" +{ yyval.d = floor(yyvsp[-1].d); ; break;} case 204: -#line 1320 "Gmsh.y" -{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; +#line 1323 "Gmsh.y" +{ yyval.d = ceil(yyvsp[-1].d); ; break;} case 205: -#line 1321 "Gmsh.y" +#line 1324 "Gmsh.y" { yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 206: -#line 1322 "Gmsh.y" -{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; +#line 1325 "Gmsh.y" +{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ; break;} case 207: #line 1326 "Gmsh.y" -{ yyval.d = yyvsp[0].d; ; +{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ; break;} case 208: -#line 1327 "Gmsh.y" -{ yyval.d = 3.141592653589793; ; +#line 1330 "Gmsh.y" +{ yyval.d = yyvsp[0].d; ; break;} case 209: -#line 1329 "Gmsh.y" +#line 1331 "Gmsh.y" +{ yyval.d = 3.141592653589793; ; + break;} +case 210: +#line 1333 "Gmsh.y" { TheSymbol.Name = yyvsp[0].c ; if (!List_Query(Symbol_L, &TheSymbol, CompareSymbols)) { @@ -3263,16 +3226,16 @@ case 209: Free(yyvsp[0].c); ; break;} -case 210: -#line 1341 "Gmsh.y" +case 211: +#line 1345 "Gmsh.y" { ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.)) List_Add(ListOfDouble2_L, &d) ; ; break;} -case 211: -#line 1347 "Gmsh.y" +case 212: +#line 1351 "Gmsh.y" { ListOfDouble2_L = List_Create(2,1,sizeof(double)) ; if(!yyvsp[-2].d || (yyvsp[-5].d<yyvsp[0].d && yyvsp[-2].d<0) || (yyvsp[-5].d>yyvsp[0].d && yyvsp[-2].d>0)){ @@ -3284,8 +3247,8 @@ case 211: List_Add(ListOfDouble2_L, &d) ; ; break;} -case 212: -#line 1361 "Gmsh.y" +case 213: +#line 1365 "Gmsh.y" { yyval.v[0]=yyvsp[-9].d; yyval.v[1]=yyvsp[-7].d; @@ -3294,8 +3257,8 @@ case 212: yyval.v[4]=yyvsp[-1].d; ; break;} -case 213: -#line 1369 "Gmsh.y" +case 214: +#line 1373 "Gmsh.y" { yyval.v[0]=yyvsp[-7].d; yyval.v[1]=yyvsp[-5].d; @@ -3304,8 +3267,8 @@ case 213: yyval.v[4]=1.0; ; break;} -case 214: -#line 1377 "Gmsh.y" +case 215: +#line 1381 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; @@ -3314,8 +3277,8 @@ case 214: yyval.v[4]=1.0; ; break;} -case 215: -#line 1385 "Gmsh.y" +case 216: +#line 1389 "Gmsh.y" { yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; @@ -3324,35 +3287,29 @@ case 215: yyval.v[4]=1.0; ; break;} -case 216: -#line 1396 "Gmsh.y" -{ - ; - break;} case 217: -#line 1399 "Gmsh.y" +#line 1400 "Gmsh.y" { ; break;} case 218: -#line 1405 "Gmsh.y" +#line 1403 "Gmsh.y" { ; break;} case 219: -#line 1408 "Gmsh.y" +#line 1409 "Gmsh.y" { ; break;} case 220: -#line 1414 "Gmsh.y" +#line 1412 "Gmsh.y" { ; break;} case 221: -#line 1417 "Gmsh.y" +#line 1418 "Gmsh.y" { - yyval.l=ListOfListOfDouble_L; ; break;} case 222: @@ -3362,46 +3319,52 @@ case 222: ; break;} case 223: -#line 1428 "Gmsh.y" +#line 1425 "Gmsh.y" { - ListOfListOfDouble_L = List_Create(2,1,sizeof(List_T*)) ; - List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ; + yyval.l=ListOfListOfDouble_L; ; break;} case 224: -#line 1433 "Gmsh.y" +#line 1432 "Gmsh.y" { + ListOfListOfDouble_L = List_Create(2,1,sizeof(List_T*)) ; List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ; ; break;} case 225: -#line 1440 "Gmsh.y" +#line 1437 "Gmsh.y" { + List_Add(ListOfListOfDouble_L, &(yyvsp[0].l)) ; ; break;} case 226: -#line 1443 "Gmsh.y" +#line 1444 "Gmsh.y" +{ + ; + break;} +case 227: +#line 1447 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; yyval.l=ListOfDouble_L; ; break;} -case 227: -#line 1449 "Gmsh.y" +case 228: +#line 1453 "Gmsh.y" { yyval.l=ListOfDouble_L; ; break;} -case 228: -#line 1463 "Gmsh.y" +case 229: +#line 1467 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; ; break;} -case 229: -#line 1468 "Gmsh.y" +case 230: +#line 1472 "Gmsh.y" { ListOfDouble_L = List_Create(2,1,sizeof(double)) ; for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){ @@ -3411,14 +3374,14 @@ case 229: List_Delete(ListOfDouble2_L); ; break;} -case 230: -#line 1477 "Gmsh.y" +case 231: +#line 1481 "Gmsh.y" { List_Add(ListOfDouble_L, &(yyvsp[0].d)) ; ; break;} -case 231: -#line 1481 "Gmsh.y" +case 232: +#line 1485 "Gmsh.y" { for(i=0 ; i<List_Nbr(ListOfDouble2_L) ; i++){ List_Read(ListOfDouble2_L, i, &d) ; @@ -3429,7 +3392,7 @@ case 231: break;} } /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/lib/bison.simple" +#line 498 "/usr/local/share/bison.simple" yyvsp -= yylen; yyssp -= yylen; @@ -3624,32 +3587,8 @@ yyerrhandle: yystate = yyn; goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; } -#line 1491 "Gmsh.y" +#line 1495 "Gmsh.y" void InitSymbols(void){ diff --git a/Parser/Gmsh.tab.cpp.h b/Parser/Gmsh.tab.cpp.h index 50f123565a41e0740b22759660fa47a20efafebe..6e6866a3384ff1d519f39159d714c2254bdd69eb 100644 --- a/Parser/Gmsh.tab.cpp.h +++ b/Parser/Gmsh.tab.cpp.h @@ -6,145 +6,145 @@ typedef union { Shape s; List_T *l; } YYSTYPE; -#define tDOUBLE 257 -#define tSTRING 258 -#define tBIGSTR 259 -#define tEND 260 -#define tAFFECT 261 -#define tDOTS 262 -#define tPi 263 -#define tExp 264 -#define tLog 265 -#define tLog10 266 -#define tSqrt 267 -#define tSin 268 -#define tAsin 269 -#define tCos 270 -#define tAcos 271 -#define tTan 272 -#define tAtan 273 -#define tAtan2 274 -#define tSinh 275 -#define tCosh 276 -#define tTanh 277 -#define tFabs 278 -#define tFloor 279 -#define tCeil 280 -#define tFmod 281 -#define tModulo 282 -#define tHypot 283 -#define tPoint 284 -#define tCircle 285 -#define tEllipsis 286 -#define tLine 287 -#define tSurface 288 -#define tSpline 289 -#define tVolume 290 -#define tCharacteristic 291 -#define tLength 292 -#define tParametric 293 -#define tElliptic 294 -#define tPlane 295 -#define tRuled 296 -#define tTransfinite 297 -#define tComplex 298 -#define tPhysical 299 -#define tUsing 300 -#define tPower 301 -#define tBump 302 -#define tProgression 303 -#define tAssociation 304 -#define tRotate 305 -#define tTranslate 306 -#define tSymetry 307 -#define tDilate 308 -#define tExtrude 309 -#define tDuplicata 310 -#define tLoop 311 -#define tInclude 312 -#define tRecombine 313 -#define tDelete 314 -#define tCoherence 315 -#define tView 316 -#define tOffset 317 -#define tAttractor 318 -#define tLayers 319 -#define tScalarSimplex 320 -#define tVectorSimplex 321 -#define tTensorSimplex 322 -#define tScalarTriangle 323 -#define tVectorTriangle 324 -#define tTensorTriangle 325 -#define tScalarLine 326 -#define tVectorLine 327 -#define tTensorLine 328 -#define tScalarPoint 329 -#define tVectorPoint 330 -#define tTensorPoint 331 -#define tBSpline 332 -#define tNurbs 333 -#define tOrder 334 -#define tWith 335 -#define tBounds 336 -#define tKnots 337 -#define tColor 338 -#define tGeneral 339 -#define tGeometry 340 -#define tMesh 341 -#define tB_SPLINE_SURFACE_WITH_KNOTS 342 -#define tB_SPLINE_CURVE_WITH_KNOTS 343 -#define tCARTESIAN_POINT 344 -#define tTRUE 345 -#define tFALSE 346 -#define tUNSPECIFIED 347 -#define tU 348 -#define tV 349 -#define tEDGE_CURVE 350 -#define tVERTEX_POINT 351 -#define tORIENTED_EDGE 352 -#define tPLANE 353 -#define tFACE_OUTER_BOUND 354 -#define tEDGE_LOOP 355 -#define tADVANCED_FACE 356 -#define tVECTOR 357 -#define tDIRECTION 358 -#define tAXIS2_PLACEMENT_3D 359 -#define tISO 360 -#define tENDISO 361 -#define tENDSEC 362 -#define tDATA 363 -#define tHEADER 364 -#define tFILE_DESCRIPTION 365 -#define tFILE_SCHEMA 366 -#define tFILE_NAME 367 -#define tMANIFOLD_SOLID_BREP 368 -#define tCLOSED_SHELL 369 -#define tADVANCED_BREP_SHAPE_REPRESENTATION 370 -#define tFACE_BOUND 371 -#define tCYLINDRICAL_SURFACE 372 -#define tCONICAL_SURFACE 373 -#define tCIRCLE 374 -#define tTRIMMED_CURVE 375 -#define tGEOMETRIC_SET 376 -#define tCOMPOSITE_CURVE_SEGMENT 377 -#define tCONTINUOUS 378 -#define tCOMPOSITE_CURVE 379 -#define tTOROIDAL_SURFACE 380 -#define tPRODUCT_DEFINITION 381 -#define tPRODUCT_DEFINITION_SHAPE 382 -#define tSHAPE_DEFINITION_REPRESENTATION 383 -#define tELLIPSE 384 -#define tTrimmed 385 -#define tSolid 386 -#define tEndSolid 387 -#define tVertex 388 -#define tFacet 389 -#define tNormal 390 -#define tOuter 391 -#define tLoopSTL 392 -#define tEndLoop 393 -#define tEndFacet 394 -#define UMINUS 395 +#define tDOUBLE 258 +#define tSTRING 259 +#define tBIGSTR 260 +#define tEND 261 +#define tAFFECT 262 +#define tDOTS 263 +#define tPi 264 +#define tExp 265 +#define tLog 266 +#define tLog10 267 +#define tSqrt 268 +#define tSin 269 +#define tAsin 270 +#define tCos 271 +#define tAcos 272 +#define tTan 273 +#define tAtan 274 +#define tAtan2 275 +#define tSinh 276 +#define tCosh 277 +#define tTanh 278 +#define tFabs 279 +#define tFloor 280 +#define tCeil 281 +#define tFmod 282 +#define tModulo 283 +#define tHypot 284 +#define tPoint 285 +#define tCircle 286 +#define tEllipsis 287 +#define tLine 288 +#define tSurface 289 +#define tSpline 290 +#define tVolume 291 +#define tCharacteristic 292 +#define tLength 293 +#define tParametric 294 +#define tElliptic 295 +#define tPlane 296 +#define tRuled 297 +#define tTransfinite 298 +#define tComplex 299 +#define tPhysical 300 +#define tUsing 301 +#define tPower 302 +#define tBump 303 +#define tProgression 304 +#define tAssociation 305 +#define tRotate 306 +#define tTranslate 307 +#define tSymetry 308 +#define tDilate 309 +#define tExtrude 310 +#define tDuplicata 311 +#define tLoop 312 +#define tInclude 313 +#define tRecombine 314 +#define tDelete 315 +#define tCoherence 316 +#define tView 317 +#define tOffset 318 +#define tAttractor 319 +#define tLayers 320 +#define tScalarSimplex 321 +#define tVectorSimplex 322 +#define tTensorSimplex 323 +#define tScalarTriangle 324 +#define tVectorTriangle 325 +#define tTensorTriangle 326 +#define tScalarLine 327 +#define tVectorLine 328 +#define tTensorLine 329 +#define tScalarPoint 330 +#define tVectorPoint 331 +#define tTensorPoint 332 +#define tBSpline 333 +#define tNurbs 334 +#define tOrder 335 +#define tWith 336 +#define tBounds 337 +#define tKnots 338 +#define tColor 339 +#define tGeneral 340 +#define tGeometry 341 +#define tMesh 342 +#define tB_SPLINE_SURFACE_WITH_KNOTS 343 +#define tB_SPLINE_CURVE_WITH_KNOTS 344 +#define tCARTESIAN_POINT 345 +#define tTRUE 346 +#define tFALSE 347 +#define tUNSPECIFIED 348 +#define tU 349 +#define tV 350 +#define tEDGE_CURVE 351 +#define tVERTEX_POINT 352 +#define tORIENTED_EDGE 353 +#define tPLANE 354 +#define tFACE_OUTER_BOUND 355 +#define tEDGE_LOOP 356 +#define tADVANCED_FACE 357 +#define tVECTOR 358 +#define tDIRECTION 359 +#define tAXIS2_PLACEMENT_3D 360 +#define tISO 361 +#define tENDISO 362 +#define tENDSEC 363 +#define tDATA 364 +#define tHEADER 365 +#define tFILE_DESCRIPTION 366 +#define tFILE_SCHEMA 367 +#define tFILE_NAME 368 +#define tMANIFOLD_SOLID_BREP 369 +#define tCLOSED_SHELL 370 +#define tADVANCED_BREP_SHAPE_REPRESENTATION 371 +#define tFACE_BOUND 372 +#define tCYLINDRICAL_SURFACE 373 +#define tCONICAL_SURFACE 374 +#define tCIRCLE 375 +#define tTRIMMED_CURVE 376 +#define tGEOMETRIC_SET 377 +#define tCOMPOSITE_CURVE_SEGMENT 378 +#define tCONTINUOUS 379 +#define tCOMPOSITE_CURVE 380 +#define tTOROIDAL_SURFACE 381 +#define tPRODUCT_DEFINITION 382 +#define tPRODUCT_DEFINITION_SHAPE 383 +#define tSHAPE_DEFINITION_REPRESENTATION 384 +#define tELLIPSE 385 +#define tTrimmed 386 +#define tSolid 387 +#define tEndSolid 388 +#define tVertex 389 +#define tFacet 390 +#define tNormal 391 +#define tOuter 392 +#define tLoopSTL 393 +#define tEndLoop 394 +#define tEndFacet 395 +#define UMINUS 396 extern YYSTYPE yylval; diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y index 236e2dd8c6626e193694d4880e2d32ca7b851e5f..edad4c8b4d0efc9fc14cb03d3b0b9128ca8302c6 100644 --- a/Parser/Gmsh.y +++ b/Parser/Gmsh.y @@ -15,12 +15,12 @@ #include "Parser.h" extern Mesh *THEM; -extern char ThePathForIncludes[NAME_STR_L]; +extern char *ThePathForIncludes; -FILE *yyinTab[20]; -int yylinenoTab[20]; -char yynameTab[20][256]; -char tmpstring[256]; +FILE *yyinTab[MAX_OPEN_FILES]; +int yylinenoTab[MAX_OPEN_FILES]; +char yynameTab[MAX_OPEN_FILES][NAME_STR_L]; +char tmpstring[NAME_STR_L]; Symbol TheSymbol; Surface *STL_Surf; Shape TheShape; @@ -956,6 +956,10 @@ ExtrudeParameter : extr.mesh.hLayer[i] = d; } } + | tRecombine tEND + { + extr.mesh.Recombine = true; + } ; /* ------------------- diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp index 11248c6662222803b5f42a2be7bb509588b428a6..487c3b81e7e1d9353f92c444bed1e8caa34ba2b7 100644 --- a/Parser/Gmsh.yy.cpp +++ b/Parser/Gmsh.yy.cpp @@ -2,7 +2,7 @@ /* A lexical scanner generated by flex */ /* Scanner skeleton version: - * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.1.1.1 2000-11-23 09:22:47 geuzaine Exp $ + * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.2 2000-11-23 14:08:47 geuzaine Exp $ */ #define FLEX_SCANNER @@ -1133,7 +1133,7 @@ YY_MALLOC_DECL YY_DECL { register yy_state_type yy_current_state; - register char *yy_cp = NULL, *yy_bp = NULL; + register char *yy_cp, *yy_bp; register int yy_act; #line 59 "Gmsh.l" diff --git a/Parser/Parser.h b/Parser/Parser.h index e571192aa6697824fe9b3c560c455d1258c04d1a..82cdc06f10d0d5b1ed5b55ecf5159a6ec2ac1272 100644 --- a/Parser/Parser.h +++ b/Parser/Parser.h @@ -17,7 +17,7 @@ int yylex (); extern FILE *yyin; extern int yylineno; -extern char yyname[256]; +extern char yyname[NAME_STR_L]; extern char *yytext; extern int yyerrorstate; diff --git a/Unix/CbFile.cpp b/Unix/CbFile.cpp index 64b2f51a3734d4cb090f0347953dbf36efc5d72b..ad3b777cdfc7f75a336e3bfb1f1536d7978b533e 100644 --- a/Unix/CbFile.cpp +++ b/Unix/CbFile.cpp @@ -22,14 +22,14 @@ extern Context_T CTX; extern XContext_T XCTX; extern Widgets_T WID; extern Mesh M; -extern int WARNING_OVERRIDE; + +static int WARNING_OVERRIDE = 0; +static char KeepFileName[256]; /* ------------------------------------------------------------------------ */ /* C r e a t e I m a g e */ /* ------------------------------------------------------------------------ */ -static char KeepFileName[256]; - void SaveToDisk (char *FileName, Widget warning, void (*function)(FILE *file)){ FILE *fp ; diff --git a/Unix/CbOptions.cpp b/Unix/CbOptions.cpp index ef771d3cfb7c8559d2e3f48a87ebdacdd983b14d..e112fd4b25cbb47a2362287f957347878b88e70d 100644 --- a/Unix/CbOptions.cpp +++ b/Unix/CbOptions.cpp @@ -27,9 +27,10 @@ extern Pixmaps_T PIX; extern Mesh M; extern Tree_T *EntitesVisibles; extern double LC; -extern int ACTUAL_ENTITY, SHOW_ALL; -static int stop_anim ; +int SHOW_ALL_ENTITIES ; + +static int stop_anim ; static long anim_time ; /* ------------------------------------------------------------------------ @@ -214,6 +215,8 @@ void OptionsCb (Widget w, XtPointer client_data, XtPointer call_data){ (CTX.mesh.algo==DELAUNAY_OLDALGO) ? CTX.mesh.algo=DELAUNAY_NEWALGO : CTX.mesh.algo=DELAUNAY_OLDALGO; break ; + case OPTIONS_MESH_INTERACTIVE : + CTX.mesh.interactive = !CTX.mesh.interactive; break ; case OPTIONS_MESH_SMOOTHING_SCALE : XmScaleGetValue(WID.OD.meshSmoothingScale, &e); CTX.mesh.nb_smoothing = e ; sprintf(label,"%d",CTX.mesh.nb_smoothing); @@ -288,19 +291,19 @@ void OptionsCb (Widget w, XtPointer client_data, XtPointer call_data){ case OPTIONS_MESH_HIDE_SHOW : c = XmTextGetString(w); if (!strcmp(c,"all") || !strcmp(c,"*")){ - if(SHOW_ALL){ - RemplirEntitesVisibles(0); SHOW_ALL = 0; + if(SHOW_ALL_ENTITIES){ + RemplirEntitesVisibles(0); SHOW_ALL_ENTITIES = 0; } else { - RemplirEntitesVisibles(1); SHOW_ALL = 1; + RemplirEntitesVisibles(1); SHOW_ALL_ENTITIES = 1; } } else{ - ACTUAL_ENTITY = atoi(c); - if(EntiteEstElleVisible(ACTUAL_ENTITY)) - ToutesLesEntitesRelatives(ACTUAL_ENTITY,EntitesVisibles,0); + i = atoi(c); + if(EntiteEstElleVisible(i)) + ToutesLesEntitesRelatives(i,EntitesVisibles,0); else - ToutesLesEntitesRelatives(ACTUAL_ENTITY,EntitesVisibles,1); + ToutesLesEntitesRelatives(i,EntitesVisibles,1); } break; diff --git a/Unix/CbOptions.h b/Unix/CbOptions.h index e30741453e3a4cafa5acc8d8a54dfa395050fce1..4d4af3bd146d87ecfc4a45de8b81f80318e1b83f 100644 --- a/Unix/CbOptions.h +++ b/Unix/CbOptions.h @@ -79,8 +79,9 @@ #define OPTIONS_MESH_SMOOTHING_TEXT 219 #define OPTIONS_MESH_DEGRE2 220 #define OPTIONS_MESH_ANISOTROPIC 221 -#define OPTIONS_MESH_VISIBILITY_ENTITY 222 -#define OPTIONS_MESH_VISIBILITY_NUMBER 223 +#define OPTIONS_MESH_INTERACTIVE 222 +#define OPTIONS_MESH_VISIBILITY_ENTITY 223 +#define OPTIONS_MESH_VISIBILITY_NUMBER 224 /* options post */ diff --git a/Unix/Main.cpp b/Unix/Main.cpp index ad3b9ee75ff9420013500643310a39ce9eeb48b6..c1f03b4e4fdb3727b330676e8a159c05c8b45a18 100644 --- a/Unix/Main.cpp +++ b/Unix/Main.cpp @@ -27,6 +27,9 @@ #include "Static.h" #include "XStatic.h" +char *TheFileNameTab[MAX_OPEN_FILES]; +char *ThePathForIncludes=NULL, *TheBgmFileName=NULL; + /* ------------------------------------------------------------------------ */ /* P a r s e */ /* ------------------------------------------------------------------------ */ @@ -68,6 +71,8 @@ void ParseFile(char *f){ fclose(yyin); } +extern int SHOW_ALL_ENTITIES ; + void MergeProblem(char *name){ Msg(INFOS, "Merging %s",name); @@ -76,7 +81,7 @@ void MergeProblem(char *name){ if (!EntitesVisibles) { RemplirEntitesVisibles(1); - SHOW_ALL=1; + SHOW_ALL_ENTITIES = 1; } } @@ -85,7 +90,6 @@ void OpenProblem(char *name){ InitSymbols(); Init_Mesh(&M, 1); - BD_EXISTS = 1; strncpy(TheFileName,name,NAME_STR_L); strncpy(TheBaseFileName,name,NAME_STR_L); @@ -120,7 +124,7 @@ void OpenProblem(char *name){ CalculateMinMax(THEM->Points); if (!EntitesVisibles) { RemplirEntitesVisibles(1); - SHOW_ALL=1; + SHOW_ALL_ENTITIES = 1; } } @@ -130,10 +134,11 @@ void OpenProblem(char *name){ /* G e t _ O p t i o n s */ /* ------------------------------------------------------------------------ */ -void Get_Options (int argc, char *argv[]) { +void Get_Options (int argc, char *argv[], int *nbfiles) { int i=1; - strncpy(TheFileNameTab[0], "unnamed.geo",NAME_STR_L); + TheFileNameTab[0] = "unnamed.geo" ; + *nbfiles = 0; while (i < argc) { @@ -153,16 +158,11 @@ void Get_Options (int argc, char *argv[]) { } else if(!strcmp(argv[i]+1, "path")){ i++; - if(argv[i] != NULL){ - strncpy(ThePathForIncludes,argv[i++],NAME_STR_L); - } + if(argv[i] != NULL) ThePathForIncludes = argv[i++]; } else if(!strcmp(argv[i]+1, "bgm")){ i++; - if(argv[i] != NULL){ - strncpy(TheBgmFileName,argv[i++],NAME_STR_L); - INITIALBGMESH = ONFILE; - } + if(argv[i] != NULL) TheBgmFileName = argv[i++]; } else if(!strcmp(argv[i]+1, "alpha")){ CTX.alpha = 1; i++; @@ -176,9 +176,6 @@ void Get_Options (int argc, char *argv[]) { else if(!strcmp(argv[i]+1, "dual")){ CTX.mesh.dual = 1; i++; } - else if(!strcmp(argv[i]+1, "recombine")){ - CTX.mesh.reco_extrude = 1; i++; - } else if(!strcmp(argv[i]+1, "samevisual")){ CTX.same_visual = 1; i++; } @@ -186,17 +183,20 @@ void Get_Options (int argc, char *argv[]) { i++; FACTEUR_MULTIPLICATIF = atof(argv[i]); i++; } + else if(!strcmp(argv[i]+1, "interactive")){ + CTX.mesh.interactive = 1; i++; + } else if(!strcmp(argv[i]+1, "scale") || !strcmp(argv[i]+1, "scaling")){ i++; GLOBALSCALINGFACTOR = atof(argv[i]); i++; } else if(!strcmp(argv[i]+1, "raw")){ - LISSAGE = 0; i++; + CTX.mesh.nb_smoothing = 0; i++; } else if(!strcmp(argv[i]+1, "smooth")){ i++; - LISSAGE = atoi(argv[i]); i++; + CTX.mesh.nb_smoothing = atoi(argv[i]); i++; } else if(!strcmp(argv[i]+1, "degree")){ i++; @@ -246,9 +246,9 @@ void Get_Options (int argc, char *argv[]) { i++; if(argv[i]!=NULL){ if(!strcmp(argv[i],"iso")) - CTX.mesh.algo = DELAUNAT_OLDALGO ; + CTX.mesh.algo = DELAUNAY_OLDALGO ; else if(!strcmp(argv[i],"aniso")) - CTX.mesh.algo = DELAUNAT_NEWALGO ; + CTX.mesh.algo = DELAUNAY_NEWALGO ; else{ fprintf(stderr, "Error: Unknown mesh algorithm\n"); exit(1); @@ -354,9 +354,8 @@ void Get_Options (int argc, char *argv[]) { } else { - if(NbFileName<MAX_OPEN_FILES){ - strncpy(TheFileNameTab[NbFileName++], argv[i++], NAME_STR_L); - } + if(*nbfiles < MAX_OPEN_FILES) + TheFileNameTab[(*nbfiles)++] = argv[i++]; else{ fprintf(stderr, "Error: Too many input files\n"); exit(1); @@ -384,16 +383,17 @@ char* ShowVisualClass(int cls){ /* ------------------------------------------------------------------------ */ int main(int argc, char *argv[]){ - int i; + int i, nbf; XColor ov_color_def, ov_color_exact; - + extern char *TextBuffer, TextAbout[1024]; + /* Gmsh default context options */ InitContext(&CTX); /* Command line options */ - Get_Options(argc, argv); + Get_Options(argc, argv, &nbf); /* Initialize the static Mesh */ @@ -422,10 +422,10 @@ int main(int argc, char *argv[]){ if(yyerrorstate) exit(1); else{ - if(NbFileName>1){ - for(i=1;i<NbFileName;i++) MergeProblem(TheFileNameTab[i]); + if(nbf > 1){ + for(i=1;i<nbf;i++) MergeProblem(TheFileNameTab[i]); } - if(INITIALBGMESH == ONFILE){ + if(TheBgmFileName){ MergeProblem(TheBgmFileName); if(List_Nbr(Post_ViewList)){ BGMWithView((Post_View*)List_Pointer(Post_ViewList, List_Nbr(Post_ViewList)-1)); @@ -556,7 +556,7 @@ int main(int argc, char *argv[]){ #endif if(CTX.overlay){ - Msg(INFO,"Overlay Visual id=%lx depth=%d screen=%d bits/rgb=%d class=%s\n", + Msg(INFO,"Overlay Visual id=%lx depth=%d screen=%d bits/rgb=%d class=%s", XCTX.glo.visinfo->visualid, XCTX.glo.visinfo->depth, XCTX.glo.visinfo->screen, XCTX.glo.visinfo->bits_per_rgb, #if defined(__cplusplus) || defined(c_plusplus) @@ -722,8 +722,8 @@ int main(int argc, char *argv[]){ /* Merge all Input Files if any, then init first context (geometry or post) */ - if(NbFileName>1){ - for(i=1;i<NbFileName;i++) MergeProblem(TheFileNameTab[i]); + if(nbf > 1){ + for(i=1;i<nbf;i++) MergeProblem(TheFileNameTab[i]); ActualizeContextCb (NULL,(XtPointer)CONTEXT_POST,NULL); } else { @@ -732,7 +732,7 @@ int main(int argc, char *argv[]){ /* Read background mesh on disk if any */ - if(INITIALBGMESH == ONFILE){ + if(TheBgmFileName){ MergeProblem(TheBgmFileName); if(List_Nbr(Post_ViewList)){ BGMWithView((Post_View*)List_Pointer(Post_ViewList, List_Nbr(Post_ViewList)-1)); @@ -745,7 +745,7 @@ int main(int argc, char *argv[]){ } /* Compute viewport and Draw */ - EXPOSE = 1; + CTX.expose = 1 ; Init(); Draw(); diff --git a/Unix/Message.cpp b/Unix/Message.cpp index 52543d16e9c05dcc8bbefdec9ee6c70eb0897adc..d088829fad25125822db2c9a232860318f83a21a 100644 --- a/Unix/Message.cpp +++ b/Unix/Message.cpp @@ -26,11 +26,11 @@ char clargs[] = " -1, -2, -3 batch 1-, 2- or 3-dimensional mesh\n" " -format msh|unv mesh format (default: msh)\n" " -algo iso|aniso mesh algorithm (default: iso)\n" - " -smooth int mesh smoothing (default: 3)\n" + " -smooth int mesh smoothing (default: 0)\n" " -degree int mesh degree (default: 1)\n" " -scale float scaling factor (default: 1.0)\n" " -bgm file load backround mesh from file\n" - " -recombine recombine extruded meshes\n" + " -interactive display the mesh construction\n" "Post Processing options:\n" " -dl enable display lists\n" " -noview hide all views at startup\n" @@ -104,7 +104,7 @@ void Signal (int sig_num){ /* M s g */ /* ------------------------------------------------------------------------ */ -extern char *TextBuffer; +char *TextBuffer; #define PUT_IN_COMMAND_WIN \ vsprintf(TextBuffer, fmt, args); \ diff --git a/Unix/Register.cpp b/Unix/Register.cpp index a4bccb36ddaa6516860d580ea7877cea69c4eeca..7c9756a7ff50a0e00836cbd895b7695a08094c50 100644 --- a/Unix/Register.cpp +++ b/Unix/Register.cpp @@ -182,6 +182,7 @@ void RegisterCallbacks_OD(Widgets_T *w){ register_cancel_cb (w->OD.meshDialog, ManageCb, w->OD.meshDialog); register_valchg_cb (w->OD.meshAlgoButt[0], OptionsCb, OPTIONS_MESH_DEGRE2); register_valchg_cb (w->OD.meshAlgoButt[1], OptionsCb, OPTIONS_MESH_ANISOTROPIC); + register_valchg_cb (w->OD.meshAlgoButt[2], OptionsCb, OPTIONS_MESH_INTERACTIVE); register_valchg_cb (w->OD.meshSmoothingScale, OptionsCb, OPTIONS_MESH_SMOOTHING_SCALE); register_drag_cb (w->OD.meshSmoothingScale, OptionsCb, OPTIONS_MESH_SMOOTHING_SCALE); register_activate_cb(w->OD.meshSmoothingText, OptionsCb, OPTIONS_MESH_SMOOTHING_TEXT); diff --git a/Unix/Widgets.cpp b/Unix/Widgets.cpp index c2614bb008b3f36b67f9e65c9e892ab348129716..c066d44adf54b43fc24e4456dbcd1fbbe534fcb8 100644 --- a/Unix/Widgets.cpp +++ b/Unix/Widgets.cpp @@ -954,6 +954,12 @@ void CreateWidgets_OD(Widgets_T *w){ w->OD.meshAlgoButt[1] = XmCreateToggleButton(w->OD.meshAlgoCheck, "ODmeshAlgoButt1", arg, i); XtManageChild(w->OD.meshAlgoButt[1]); + i=0; + XtSetArg(arg[i], XmNlabelString, XmStringCreateSimple("Interactive")); i++; + XtSetArg(arg[i], XmNset, CTX.mesh.interactive?True:False); i++; + w->OD.meshAlgoButt[2] = XmCreateToggleButton(w->OD.meshAlgoCheck, "ODmeshAlgoButt2", arg, i); + XtManageChild(w->OD.meshAlgoButt[2]); + /* Mesh - smoothing */ i=0; @@ -1703,7 +1709,7 @@ void CreateWidgets_OD(Widgets_T *w){ HELP DIALOGS ------------------------------------------------------------------------ */ -extern char TextAbout[1024]; +char TextAbout[1024]; void CreateWidgets_HD(Widgets_T *w){ int i; diff --git a/benchmarks/3d/Cube-01-ExtrMesh.geo b/benchmarks/3d/Cube-01-ExtrMesh.geo index 167d77eed86f903e6e50e5c8442de606849da0b4..026b0a261bed3c3ffa867cab7b4ea6907262faa1 100644 --- a/benchmarks/3d/Cube-01-ExtrMesh.geo +++ b/benchmarks/3d/Cube-01-ExtrMesh.geo @@ -14,6 +14,9 @@ Line Loop(5) = {2,3,4,1}; Plane Surface(6) = {5}; Extrude Surface (6, {0,0.0,1}) { - Layers {{10,5,10},{100,200,300},{.1,.9,1.}}; -} ; + Layers {{10,5,10},{100,200,300},{.1,.9,1.}}; + Recombine; +} ; + + diff --git a/demos/ex10.geo b/demos/ex10.geo index fd65390d5df3d3abc22e6df16bd400ed26f21eba..7237e6b095ed3593e24d7fdc21cda323466138db 100644 --- a/demos/ex10.geo +++ b/demos/ex10.geo @@ -105,9 +105,6 @@ Coherence; Extrude(31, {0,0,hg} ); Coherence; -Surface Loop(127) = {60,-27,-43,61,46,49,52,55,58}; -Complex Volume(128) = {127}; - Extrude (105, {0,0,hcav-hg} ); Coherence; @@ -116,12 +113,6 @@ Coherence; Characteristic Length {58,71} = 0.01; -Surface Loop(196) = {31,-115,-117,-96,-99,-102,-104,-173,-184,-186,-165,-168,-171,-195}; -Complex Volume(197) = {196}; - -Surface Loop(198) = {93,-29,-76,104,173,-144,174,-147,-60,-81,-150,-153,-84,-87,-156,-159,-90,162,165,96,99,102,171,168}; - -Complex Volume(199) = {198}; GO = 1 ; CAV = 2 ; @@ -135,5 +126,3 @@ Physical Volume (DIS) = 197; Physical Volume (CLDSRC) = 46; Physical Volume (CLD) = {61,49,27,52,55,58,81,150,147,84,153,87,156,90,159,29,31,174,195}; - -Point(85) = {0.0,0.0,0.0,1.0};