Newer
Older
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
-1, 198, 176, 177, 178, 179, 180, -1, 182, 183,
184, 185, 186, 187, 188, 189, 190, -1, -1, -1,
-1, -1, 196, -1, 198, 176, 177, 178, 179, 180,
-1, 182, 183, 184, 185, 186, 187, 188, 189, 190,
-1, -1, -1, -1, -1, 196, -1, 198, 176, 177,
178, 179, 180, -1, 182, 183, 184, 185, 186, 187,
188, 189, 190, -1, -1, -1, -1, -1, 196, -1,
198, 176, 177, 178, 179, 180, -1, 182, 183, 184,
185, 186, 187, 188, 189, 190, -1, -1, -1, -1,
-1, 196, -1, 198, 176, 177, 178, 179, 180, -1,
182, 183, 184, 185, 186, 187, 188, 189, 190, -1,
-1, -1, -1, -1, 196, -1, 198, 176, 177, 178,
179, 180, -1, 182, 183, 184, 185, 186, 187, 188,
189, 190, -1, -1, -1, -1, -1, 196, -1, 198,
176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
186, 187, 188, 189, 190, -1, -1, -1, -1, -1,
196, -1, 198, 176, 177, 178, 179, 180, -1, 182,
183, 184, 185, 186, 187, 188, 189, 190, -1, -1,
-1, -1, -1, 196, -1, 198, 176, 177, 178, 179,
180, -1, 182, 183, 184, 185, 186, 187, 188, 189,
190, -1, -1, -1, -1, -1, 196, -1, 198, 176,
177, 178, 179, 180, -1, 182, 183, 184, 185, 186,
187, 188, 189, 190, -1, -1, -1, -1, -1, 196,
-1, 198, 176, 177, 178, 179, 180, -1, 182, 183,
184, 185, 186, 187, 188, 189, 190, -1, -1, -1,
-1, -1, 196, -1, 198, 176, 177, 178, 179, 180,
-1, 182, 183, 184, 185, 186, 187, 188, 189, 190,
-1, -1, -1, -1, -1, 196, -1, 198, 176, 177,
178, 179, 180, -1, 182, 183, 184, 185, 186, 187,
188, 189, 190, -1, -1, -1, -1, -1, 196, -1,
198, 176, 177, 178, 179, 180, -1, 182, 183, 184,
185, 186, 187, 188, 189, 190, -1, -1, -1, -1,
-1, 196, -1, 198, 176, 177, 178, 179, 180, -1,
182, 183, 184, 185, 186, 187, 188, 189, 190, -1,
-1, -1, -1, -1, 196, -1, 198, 176, 177, 178,
179, 180, -1, 182, 183, 184, 185, 186, 187, 188,
189, 190, -1, -1, -1, -1, -1, 196, -1, 198,
176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
186, 187, 188, 189, 190, -1, -1, -1, -1, -1,
196, -1, 198, 176, 177, 178, 179, 180, -1, 182,
183, 184, 185, 186, 187, 188, 189, 190, -1, -1,
-1, -1, -1, 196, -1, 198, 176, 177, 178, 179,
180, -1, 182, 183, 184, 185, 186, 187, 188, 189,
190, -1, -1, -1, -1, -1, 196, -1, 198, 176,
177, 178, 179, 180, -1, 182, 183, 184, 185, 186,
187, 188, 189, 190, -1, -1, -1, -1, -1, 196,
-1, 198, 176, 177, 178, 179, 180, -1, 182, 183,
184, 185, 186, 187, 188, 189, 190, -1, -1, -1,
-1, -1, 196, -1, 198, 176, 177, 178, 179, 180,
-1, 182, 183, 184, 185, 186, 187, 188, 189, 190,
-1, -1, -1, -1, -1, 196, -1, 198, 176, 177,
178, 179, 180, -1, 182, 183, 184, 185, 186, 187,
188, 189, 190, -1, -1, -1, -1, -1, 196, -1,
198, 176, 177, 178, 179, 180, -1, 182, 183, 184,
185, 186, 187, 188, 189, 190, -1, -1, -1, -1,
-1, 196, -1, 198, 176, 177, 178, 179, 180, -1,
182, 183, 184, 185, 186, 187, 188, 189, 190, -1,
-1, -1, -1, -1, 196, -1, 198, 176, 177, 178,
179, 180, -1, 182, 183, 184, 185, 186, 187, 188,
189, 190, -1, -1, -1, -1, -1, 196, -1, 198,
176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
186, 187, 188, 189, 190, -1, -1, -1, -1, -1,
196, -1, 198, 176, 177, 178, 179, 180, -1, 182,
183, 184, 185, 186, 187, 188, 189, 190, -1, -1,
-1, -1, -1, 196, -1, 198, 176, 177, 178, 179,
180, -1, 182, 183, 184, 185, 186, 187, 188, 189,
190, -1, -1, -1, -1, -1, 196, -1, 198, 176,
177, 178, 179, 180, -1, 182, 183, 184, 185, 186,
187, 188, 189, 190, -1, -1, -1, -1, -1, 196,
-1, 198, 176, 177, 178, 179, 180, -1, 182, 183,
184, 185, 186, 187, 188, 189, 190, -1, -1, -1,
-1, -1, 196, -1, 198, 176, 177, 178, 179, 180,
-1, 182, 183, 184, 185, 186, 187, 188, 189, 190,
-1, -1, -1, -1, -1, 196, -1, 198, 176, 177,
178, 179, 180, -1, 182, 183, 184, 185, 186, 187,
188, 189, 190, -1, -1, -1, -1, -1, 196, -1,
198, 176, 177, 178, 179, 180, -1, 182, 183, 184,
185, 186, 187, 188, 189, 190, -1, -1, -1, -1,
-1, 196, -1, 198, 176, 177, 178, 179, 180, -1,
182, 183, 184, 185, 186, 187, 188, 189, 190, -1,
-1, -1, -1, -1, 196, -1, 198, 176, 177, 178,
179, 180, -1, 182, 183, 184, 185, 186, 187, 188,
189, 190, -1, -1, -1, -1, -1, 196, -1, 198,
176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
186, 187, 188, 189, 190, -1, -1, -1, -1, -1,
196, -1, 198, 176, 177, 178, 179, 180, -1, 182,
183, 184, 185, 186, 187, 188, 189, 190, -1, -1,
-1, -1, -1, 196, -1, 198, 176, 177, 178, 179,
180, -1, 182, 183, 184, 185, 186, 187, 188, 189,
190, -1, -1, -1, -1, -1, 196, -1, 198, 176,
177, 178, 179, 180, -1, 182, 183, 184, 185, 186,
187, 188, 189, 190, -1, -1, -1, -1, -1, 196,
-1, 198, 176, 177, 178, 179, 180, -1, 182, 183,
184, 185, 186, 187, 188, 189, 190, -1, -1, -1,
-1, -1, 196, -1, 198, 176, 177, 178, 179, 180,
-1, 182, 183, 184, 185, 186, 187, 188, 189, 190,
-1, -1, -1, -1, -1, 196, -1, 198, 176, 177,
178, 179, 180, -1, 182, 183, 184, 185, 186, 187,
188, 189, 190, -1, -1, -1, -1, -1, 196, -1,
198, 176, 177, 178, 179, 180, -1, 182, 183, 184,
185, 186, 187, 188, 189, 190, -1, -1, -1, -1,
-1, 196, -1, 198, 176, 177, 178, 179, 180, -1,
182, 183, 184, 185, 186, 187, 188, 189, 190, -1,
-1, -1, -1, -1, 196, -1, 198, 176, 177, 178,
179, 180, -1, 182, 183, 184, 185, 186, 187, 188,
189, 190, -1, -1, -1, -1, -1, 196, -1, 198,
176, 177, 178, 179, 180, -1, 182, 183, 184, 185,
186, 187, 188, 189, 190, -1, -1, -1, -1, -1,
196, -1, 198, 176, 177, 178, 179, 180, -1, 182,
183, 184, 185, 186, 187, 188, 189, 190, -1, -1,
-1, -1, -1, 196, -1, 198, 176, 177, 178, 179,
180, -1, 182, 183, 184, 185, 186, 187, 188, 189,
190, -1, -1, -1, -1, -1, 196, -1, 198, 176,
177, 178, 179, 180, -1, 182, 183, 184, 185, 186,
187, 188, 189, 190, -1, -1, -1, -1, -1, 196,
-1, 198, 176, 177, 178, 179, 180, -1, 182, 183,
184, 185, 186, 187, 188, 189, 190, -1, -1, -1,
-1, -1, 196, -1, 198, 176, 177, 178, 179, 180,
-1, 182, 183, 184, 185, 186, 187, 188, 189, 190,
-1, -1, -1, -1, -1, 196, -1, 198, 176, 177,
178, 179, 180, -1, 182, 183, 184, 185, 186, 187,
188, 189, 190, -1, -1, -1, -1, -1, 196, -1,
198, 176, 177, 178, 179, 180, -1, 182, 183, 184,
185, 186, 187, 188, 189, 190, -1, -1, -1, -1,
-1, 196, -1, 198, 176, 177, 178, 179, 180, -1,
182, 183, 184, 185, 186, 187, 188, 189, 190, -1,
-1, -1, -1, -1, 196, -1, 198, 176, 177, 178,
179, 180, -1, 182, 183, 184, 185, 186, 187, 188,
189, 190, -1, -1, -1, -1, -1, 196, -1, 198
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
Foundation, Inc.
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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. */
/* 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. */
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
/* 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. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
/* The parser invokes alloca or malloc; define the necessary symbols. */
# if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
# else
# ifndef YYSTACK_USE_ALLOCA
# if defined (alloca) || defined (_ALLOCA_H)
# define YYSTACK_ALLOC alloca
# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# define YYSTACK_ALLOC malloc
# define YYSTACK_FREE free
# endif
#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
#if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \
|| (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{
short yyss;
YYSTYPE yyvs;
# if YYLSP_NEEDED
YYLTYPE yyls;
# endif
};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# if YYLSP_NEEDED
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+ 2 * YYSTACK_GAP_MAX)
# else
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAX)
# endif
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
register YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (0)
# endif
# endif
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__
#if ! defined (YYSIZE_T) && defined (size_t)
# define YYSIZE_T size_t
#endif
#if ! defined (YYSIZE_T)
# if defined (__STDC__) || defined (__cplusplus)
# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
#endif
#if ! defined (YYSIZE_T)
# define YYSIZE_T unsigned int
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
do \
if (yychar == YYEMPTY && yylen == 1) \
yychar1 = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
{ \
yyerror ("syntax error: cannot back up"); \
YYERROR; \
} \
while (0)
#define YYTERROR 1
#define YYERRCODE 256

Christophe Geuzaine
committed
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
are run).
When YYLLOC_DEFAULT is run, CURRENT is set the location of the
first token. By default, to implement support for ranges, extend
its range to the last symbol. */
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;

Christophe Geuzaine
committed
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
/* YYLEX -- calling `yylex' with the right arguments. */
#if YYPURE
# if YYLSP_NEEDED
# ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
# else
# define YYLEX yylex (&yylval, &yylloc)
# endif
# else /* !YYLSP_NEEDED */
# ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
# else
# define YYLEX yylex (&yylval)
# endif
# endif /* !YYLSP_NEEDED */
#else /* !YYPURE */
# define YYLEX yylex ()
#endif /* !YYPURE */
/* Enable debugging if requested. */
#if YYDEBUG
# ifndef YYFPRINTF
# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
# define YYFPRINTF fprintf
# endif
# define YYDPRINTF(Args) \
do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
#endif /* !YYDEBUG */
/* YYINITDEPTH -- initial size of the parser's stacks. */
/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
# ifndef yystrlen
# if defined (__GLIBC__) && defined (_STRING_H)
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
static YYSIZE_T
# if defined (__STDC__) || defined (__cplusplus)
yystrlen (const char *yystr)
# else
yystrlen (yystr)
const char *yystr;
# endif
{
register const char *yys = yystr;
while (*yys++ != '\0')
continue;
return yys - yystr - 1;

Christophe Geuzaine
committed
}
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
# endif
# endif
# ifndef yystpcpy
# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
# define yystpcpy stpcpy
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
static char *
# if defined (__STDC__) || defined (__cplusplus)
yystpcpy (char *yydest, const char *yysrc)
# else
yystpcpy (yydest, yysrc)
char *yydest;
const char *yysrc;
# endif
{
register char *yyd = yydest;
register const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
return yyd - 1;
}
# endif
# endif

Christophe Geuzaine
committed
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
It should actually point to an object.
Grammar actions can access the variable by casting it
to the proper pointer type. */
#ifdef YYPARSE_PARAM
# if defined (__STDC__) || defined (__cplusplus)
# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
# define YYPARSE_PARAM_DECL
# else
# define YYPARSE_PARAM_ARG YYPARSE_PARAM
# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
# endif
#else /* !YYPARSE_PARAM */
# define YYPARSE_PARAM_ARG
# define YYPARSE_PARAM_DECL
#endif /* !YYPARSE_PARAM */
/* Prevent warning if -Wstrict-prototypes. */
#ifdef __GNUC__
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
variables are global, or local to YYPARSE. */
#define YY_DECL_NON_LSP_VARIABLES \
/* The lookahead symbol. */ \
int yychar; \
\
/* The semantic value of the lookahead symbol. */ \
YYSTYPE yylval; \
\
/* Number of parse errors so far. */ \
int yynerrs;
#if YYLSP_NEEDED
# define YY_DECL_VARIABLES \
YY_DECL_NON_LSP_VARIABLES \
\
/* Location data for the lookahead symbol. */ \
YYLTYPE yylloc;
#else
# define YY_DECL_VARIABLES \
YY_DECL_NON_LSP_VARIABLES
/* If nonreentrant, generate the variables here. */
#if !YYPURE
YY_DECL_VARIABLES
#endif /* !YYPURE */
int
YYPARSE_PARAM_DECL
{
/* If reentrant, generate the variables here. */
#if YYPURE
YY_DECL_VARIABLES
#endif /* !YYPURE */
register int yystate;
register int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
/* Lookahead token as an internal (translated) token number. */
int yychar1 = 0;
/* Three stacks and their tools:
`yyss': related to states,
`yyvs': related to semantic values,
`yyls': related to locations.
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
short yyssa[YYINITDEPTH];
short *yyss = yyssa;
register short *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
register YYSTYPE *yyvsp;
#if YYLSP_NEEDED
/* The location stack. */
YYLTYPE yylsa[YYINITDEPTH];
#if YYLSP_NEEDED
# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)

Christophe Geuzaine
committed
/* The variables used to return semantic value and location from the
action routines. */
YYSTYPE yyval;
#if YYLSP_NEEDED
YYLTYPE yyloc;
#endif
/* When reducing, the number of symbols on the RHS of the reduced
rule. */
int yylen;
yystate = 0;
yyerrstatus = 0;
yynerrs = 0;
yychar = YYEMPTY; /* Cause a token to be read. */
/* Initialize stack pointers.
Waste one element of value and location stack
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
yyvsp = yyvs;
/*------------------------------------------------------------.
| yynewstate -- Push a new state, which is found in yystate. |
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
have just been pushed. so pushing a state here evens the stacks.
*/
yyssp++;
if (yyssp >= yyss + yystacksize - 1)
{
/* Get the current used size of the three stacks, in elements. */
#ifdef yyoverflow
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
{
/* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. */
# if YYLSP_NEEDED
YYLTYPE *yyls1 = yyls;
/* This used to be a conditional around just the two extra args,
but that might be undefined if yyoverflow is a macro. */
yyoverflow ("parser stack overflow",
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yyls1, yysize * sizeof (*yylsp),
&yystacksize);
yyls = yyls1;
# else
yyoverflow ("parser stack overflow",
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yystacksize);
# endif
yyss = yyss1;
yyvs = yyvs1;
}
#else /* no yyoverflow */
/* Extend the stack our own way. */
if (yystacksize >= YYMAXDEPTH)
yystacksize *= 2;
if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
{
short *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyoverflowlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
# if YYLSP_NEEDED
YYSTACK_RELOCATE (yyls);
# endif
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
# endif
#endif /* no yyoverflow */
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
#if YYLSP_NEEDED
yylsp = yyls + yysize - 1;
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
yybackup:
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
/* yyresume: */
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
/* yychar is either YYEMPTY or YYEOF
or a valid token in external form. */
if (yychar == YYEMPTY)
{
yychar = YYLEX;
}
/* Convert token to internal form (in yychar1) for indexing tables with */
{
yychar1 = 0;
}
else
{
#if YYDEBUG
/* We have to keep this `#if YYDEBUG', since we use variables
which are defined only if `YYDEBUG' is set. */
YYFPRINTF (stderr, "Next token is %d (%s",
yychar, yytname[yychar1]);
/* Give the individual parser a way to print the precise
meaning of a token, for further debugging info. */
# ifdef YYPRINT
}
yyn += yychar1;
goto yydefault;
yyn = yytable[yyn];
/* yyn is what to do for this token type in this state.
Negative => reduce, -yyn is rule number.
Positive => shift, yyn is new state.
New state is final state => don't bother to shift,
just return success.
0, or most negative number => error. */
if (yyn < 0)
{
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the lookahead token. */
YYDPRINTF ((stderr, "Shifting token %d (%s), ",
yychar, yytname[yychar1]));
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
*++yyvsp = yylval;
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
yystate = yyn;
goto yynewstate;
/*-----------------------------------------------------------.
| yydefault -- do the default action for the current state. |
`-----------------------------------------------------------*/
yydefault:
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
/*-----------------------------.
| yyreduce -- Do a reduction. |
`-----------------------------*/
yyreduce:
yylen = yyr2[yyn];
/* If YYLEN is nonzero, implement the default value of the action:
`$$ = $1'.
Otherwise, the following line sets YYVAL to the semantic value of
the lookahead token. This behavior is undocumented and Bison
users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */
yyval = yyvsp[1-yylen];
#if YYLSP_NEEDED
/* Similarly for the default location. Let the user run additional
commands if for instance locations are ranges. */
yyloc = yylsp[1-yylen];
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
#endif
#if YYDEBUG
/* We have to keep this `#if YYDEBUG', since we use variables which
are defined only if `YYDEBUG' is set. */
if (yydebug)
{
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
}
#endif
yymsg(INFO, "Reading STL solid");
STL_Surf = Create_Surface(NEWSURFACE(), MSH_SURF_STL);
STL_Surf->STL = new STL_Data;
return 1;
STL_Surf->STL->Add_Facet(yyvsp[-12].d, yyvsp[-11].d, yyvsp[-10].d,
yyvsp[-8].d, yyvsp[-7].d, yyvsp[-6].d,
yyvsp[-4].d, yyvsp[-3].d, yyvsp[-2].d, CTX.geom.stl_create_elementary);
return 1;
if(CTX.geom.stl_create_elementary){
STL_Surf->STL->ReplaceDuplicate();
if(CTX.geom.stl_create_physical)
STL_Surf->STL->CreatePhysicalSurface();
}
else{
Tree_Add(THEM->Surfaces, &STL_Surf);
}
yymsg(INFO, "Read STL solid");
return 1;
Create_Step_Solid_BRep();
Resolve_BREP ();
Add_Cartesian_Point((int)yyvsp[-8].d, yyvsp[-4].c, yyvsp[-2].v[0], yyvsp[-2].v[1], yyvsp[-2].v[2]);
Add_BSpline_Curve_With_Knots ((int)yyvsp[-22].d, yyvsp[-18].c, (int) yyvsp[-16].d, yyvsp[-14].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1.);
Add_BSpline_Surface_With_Knots ((int)yyvsp[-30].d, yyvsp[-26].c, (int) yyvsp[-24].d, (int) yyvsp[-22].d, yyvsp[-20].l, yyvsp[-10].l,
yyvsp[-8].l, yyvsp[-6].l, yyvsp[-4].l, 0., 1., 0., 1. );
Add_Edge_Curve ((int)yyvsp[-14].d, yyvsp[-10].c , (int)yyvsp[-8].d , (int)yyvsp[-6].d, (int)yyvsp[-4].d);
Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 1);
// check the norm! Face_Bound : hole outside surface!

Christophe Geuzaine
committed
yymsg(INFO, "Found a face bound");
Add_Face_Outer_Bound((int)yyvsp[-10].d, yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-2].i, 0);
Add_Oriented_Edge((int)yyvsp[-14].d, yyvsp[-10].c, (int)yyvsp[-4].d, yyvsp[-2].i);
Add_Advanced_Face((int)yyvsp[-12].d, yyvsp[-8].c, yyvsp[-6].l, (int)yyvsp[-4].d, yyvsp[-2].i);
Add_Vertex_Point((int)yyvsp[-8].d, yyvsp[-4].c, (int)yyvsp[-2].d);
Add_Axis2_Placement3D ((int)yyvsp[-12].d, (int)yyvsp[-4].d, (int)yyvsp[-2].d, (int)yyvsp[-6].d);