00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 #define YYBISON 1
00047
00048
00049 #define YYBISON_VERSION "2.4.1"
00050
00051
00052 #define YYSKELETON_NAME "yacc.c"
00053
00054
00055 #define YYPURE 0
00056
00057
00058 #define YYPUSH 0
00059
00060
00061 #define YYPULL 1
00062
00063
00064 #define YYLSP_NEEDED 0
00065
00066
00067
00068
00069
00070
00071 #line 6 "UnitsApi.y"
00072
00073 #define YYSTYPE double
00074 #define yyparse Unit_yyparse
00075 #define yyerror Unit_yyerror
00076
00077
00078
00079 #line 80 "UnitsApi.tab.c"
00080
00081
00082 #ifndef YYDEBUG
00083 # define YYDEBUG 0
00084 #endif
00085
00086
00087 #ifdef YYERROR_VERBOSE
00088 # undef YYERROR_VERBOSE
00089 # define YYERROR_VERBOSE 1
00090 #else
00091 # define YYERROR_VERBOSE 0
00092 #endif
00093
00094
00095 #ifndef YYTOKEN_TABLE
00096 # define YYTOKEN_TABLE 0
00097 #endif
00098
00099
00100
00101 #ifndef YYTOKENTYPE
00102 # define YYTOKENTYPE
00103
00104
00105 enum yytokentype {
00106 ACOS = 258,
00107 ASIN = 259,
00108 ATAN = 260,
00109 ATAN2 = 261,
00110 COS = 262,
00111 EXP = 263,
00112 ABS = 264,
00113 MOD = 265,
00114 LOG = 266,
00115 LOG10 = 267,
00116 POW = 268,
00117 SIN = 269,
00118 SINH = 270,
00119 TAN = 271,
00120 TANH = 272,
00121 SQRT = 273,
00122 UNIT = 274,
00123 NUM = 275,
00124 NEG = 276
00125 };
00126 #endif
00127
00128
00129
00130 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00131 typedef int YYSTYPE;
00132 # define YYSTYPE_IS_TRIVIAL 1
00133 # define yystype YYSTYPE
00134 # define YYSTYPE_IS_DECLARED 1
00135 #endif
00136
00137
00138
00139
00140
00141
00142 #line 143 "UnitsApi.tab.c"
00143
00144 #ifdef short
00145 # undef short
00146 #endif
00147
00148 #ifdef YYTYPE_UINT8
00149 typedef YYTYPE_UINT8 yytype_uint8;
00150 #else
00151 typedef unsigned char yytype_uint8;
00152 #endif
00153
00154 #ifdef YYTYPE_INT8
00155 typedef YYTYPE_INT8 yytype_int8;
00156 #elif (defined __STDC__ || defined __C99__FUNC__ \
00157 || defined __cplusplus || defined _MSC_VER)
00158 typedef signed char yytype_int8;
00159 #else
00160 typedef short int yytype_int8;
00161 #endif
00162
00163 #ifdef YYTYPE_UINT16
00164 typedef YYTYPE_UINT16 yytype_uint16;
00165 #else
00166 typedef unsigned short int yytype_uint16;
00167 #endif
00168
00169 #ifdef YYTYPE_INT16
00170 typedef YYTYPE_INT16 yytype_int16;
00171 #else
00172 typedef short int yytype_int16;
00173 #endif
00174
00175 #ifndef YYSIZE_T
00176 # ifdef __SIZE_TYPE__
00177 # define YYSIZE_T __SIZE_TYPE__
00178 # elif defined size_t
00179 # define YYSIZE_T size_t
00180 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00181 || defined __cplusplus || defined _MSC_VER)
00182 # include <stddef.h>
00183 # define YYSIZE_T size_t
00184 # else
00185 # define YYSIZE_T unsigned int
00186 # endif
00187 #endif
00188
00189 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00190
00191 #ifndef YY_
00192 # if YYENABLE_NLS
00193 # if ENABLE_NLS
00194 # include <libintl.h>
00195 # define YY_(msgid) dgettext ("bison-runtime", msgid)
00196 # endif
00197 # endif
00198 # ifndef YY_
00199 # define YY_(msgid) msgid
00200 # endif
00201 #endif
00202
00203
00204 #if ! defined lint || defined __GNUC__
00205 # define YYUSE(e) ((void) (e))
00206 #else
00207 # define YYUSE(e)
00208 #endif
00209
00210
00211 #ifndef lint
00212 # define YYID(n) (n)
00213 #else
00214 #if (defined __STDC__ || defined __C99__FUNC__ \
00215 || defined __cplusplus || defined _MSC_VER)
00216 static int
00217 YYID (int yyi)
00218 #else
00219 static int
00220 YYID (yyi)
00221 int yyi;
00222 #endif
00223 {
00224 return yyi;
00225 }
00226 #endif
00227
00228 #if ! defined yyoverflow || YYERROR_VERBOSE
00229
00230
00231
00232 # ifdef YYSTACK_USE_ALLOCA
00233 # if YYSTACK_USE_ALLOCA
00234 # ifdef __GNUC__
00235 # define YYSTACK_ALLOC __builtin_alloca
00236 # elif defined __BUILTIN_VA_ARG_INCR
00237 # include <alloca.h>
00238 # elif defined _AIX
00239 # define YYSTACK_ALLOC __alloca
00240 # elif defined _MSC_VER
00241 # include <malloc.h>
00242 # define alloca _alloca
00243 # else
00244 # define YYSTACK_ALLOC alloca
00245 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00246 || defined __cplusplus || defined _MSC_VER)
00247 # include <stdlib.h>
00248 # ifndef _STDLIB_H
00249 # define _STDLIB_H 1
00250 # endif
00251 # endif
00252 # endif
00253 # endif
00254 # endif
00255
00256 # ifdef YYSTACK_ALLOC
00257
00258 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
00259 # ifndef YYSTACK_ALLOC_MAXIMUM
00260
00261
00262
00263
00264 # define YYSTACK_ALLOC_MAXIMUM 4032
00265 # endif
00266 # else
00267 # define YYSTACK_ALLOC YYMALLOC
00268 # define YYSTACK_FREE YYFREE
00269 # ifndef YYSTACK_ALLOC_MAXIMUM
00270 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00271 # endif
00272 # if (defined __cplusplus && ! defined _STDLIB_H \
00273 && ! ((defined YYMALLOC || defined malloc) \
00274 && (defined YYFREE || defined free)))
00275 # include <stdlib.h>
00276 # ifndef _STDLIB_H
00277 # define _STDLIB_H 1
00278 # endif
00279 # endif
00280 # ifndef YYMALLOC
00281 # define YYMALLOC malloc
00282 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00283 || defined __cplusplus || defined _MSC_VER)
00284 void *malloc (YYSIZE_T);
00285 # endif
00286 # endif
00287 # ifndef YYFREE
00288 # define YYFREE free
00289 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00290 || defined __cplusplus || defined _MSC_VER)
00291 void free (void *);
00292 # endif
00293 # endif
00294 # endif
00295 #endif
00296
00297
00298 #if (! defined yyoverflow \
00299 && (! defined __cplusplus \
00300 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00301
00302
00303 union yyalloc
00304 {
00305 yytype_int16 yyss_alloc;
00306 YYSTYPE yyvs_alloc;
00307 };
00308
00309
00310 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00311
00312
00313
00314 # define YYSTACK_BYTES(N) \
00315 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
00316 + YYSTACK_GAP_MAXIMUM)
00317
00318
00319
00320 # ifndef YYCOPY
00321 # if defined __GNUC__ && 1 < __GNUC__
00322 # define YYCOPY(To, From, Count) \
00323 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00324 # else
00325 # define YYCOPY(To, From, Count) \
00326 do \
00327 { \
00328 YYSIZE_T yyi; \
00329 for (yyi = 0; yyi < (Count); yyi++) \
00330 (To)[yyi] = (From)[yyi]; \
00331 } \
00332 while (YYID (0))
00333 # endif
00334 # endif
00335
00336
00337
00338
00339
00340
00341 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
00342 do \
00343 { \
00344 YYSIZE_T yynewbytes; \
00345 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
00346 Stack = &yyptr->Stack_alloc; \
00347 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00348 yyptr += yynewbytes / sizeof (*yyptr); \
00349 } \
00350 while (YYID (0))
00351
00352 #endif
00353
00354
00355 #define YYFINAL 42
00356
00357 #define YYLAST 702
00358
00359
00360 #define YYNTOKENS 30
00361
00362 #define YYNNTS 3
00363
00364 #define YYNRULES 29
00365
00366 #define YYNSTATES 93
00367
00368
00369 #define YYUNDEFTOK 2
00370 #define YYMAXUTOK 276
00371
00372 #define YYTRANSLATE(YYX) \
00373 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00374
00375
00376 static const yytype_uint8 yytranslate[] =
00377 {
00378 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00379 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00380 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00381 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00382 27, 28, 23, 22, 29, 21, 2, 24, 2, 2,
00383 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00384 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00385 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00386 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00387 2, 2, 2, 2, 26, 2, 2, 2, 2, 2,
00388 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00389 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00390 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00391 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00392 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00393 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00394 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00395 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00396 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00397 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00398 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00399 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00400 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00401 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00402 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00403 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
00404 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00405 15, 16, 17, 18, 19, 20, 25
00406 };
00407
00408 #if YYDEBUG
00409
00410
00411 static const yytype_uint8 yyprhs[] =
00412 {
00413 0, 0, 3, 5, 7, 9, 12, 16, 20, 24,
00414 28, 31, 35, 39, 44, 49, 54, 61, 66, 71,
00415 78, 83, 88, 95, 100, 105, 110, 115, 120, 125
00416 };
00417
00418
00419 static const yytype_int8 yyrhs[] =
00420 {
00421 31, 0, -1, 32, -1, 20, -1, 19, -1, 20,
00422 19, -1, 32, 22, 32, -1, 32, 21, 32, -1,
00423 32, 23, 32, -1, 32, 24, 32, -1, 21, 32,
00424 -1, 32, 26, 32, -1, 27, 32, 28, -1, 3,
00425 27, 32, 28, -1, 4, 27, 32, 28, -1, 5,
00426 27, 32, 28, -1, 6, 27, 32, 29, 32, 28,
00427 -1, 9, 27, 32, 28, -1, 8, 27, 32, 28,
00428 -1, 10, 27, 32, 29, 32, 28, -1, 11, 27,
00429 32, 28, -1, 12, 27, 32, 28, -1, 13, 27,
00430 32, 29, 32, 28, -1, 14, 27, 32, 28, -1,
00431 15, 27, 32, 28, -1, 16, 27, 32, 28, -1,
00432 17, 27, 32, 28, -1, 18, 27, 32, 28, -1,
00433 7, 27, 32, 28, -1, 32, 32, -1
00434 };
00435
00436
00437 static const yytype_uint8 yyrline[] =
00438 {
00439 0, 26, 26, 29, 30, 31, 32, 33, 34, 35,
00440 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
00441 46, 47, 48, 49, 50, 51, 52, 53, 54, 55
00442 };
00443 #endif
00444
00445 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00446
00447
00448 static const char *const yytname[] =
00449 {
00450 "$end", "error", "$undefined", "ACOS", "ASIN", "ATAN", "ATAN2", "COS",
00451 "EXP", "ABS", "MOD", "LOG", "LOG10", "POW", "SIN", "SINH", "TAN", "TANH",
00452 "SQRT", "UNIT", "NUM", "'-'", "'+'", "'*'", "'/'", "NEG", "'^'", "'('",
00453 "')'", "','", "$accept", "input", "exp", 0
00454 };
00455 #endif
00456
00457 # ifdef YYPRINT
00458
00459
00460 static const yytype_uint16 yytoknum[] =
00461 {
00462 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
00463 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
00464 275, 45, 43, 42, 47, 276, 94, 40, 41, 44
00465 };
00466 # endif
00467
00468
00469 static const yytype_uint8 yyr1[] =
00470 {
00471 0, 30, 31, 32, 32, 32, 32, 32, 32, 32,
00472 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
00473 32, 32, 32, 32, 32, 32, 32, 32, 32, 32
00474 };
00475
00476
00477 static const yytype_uint8 yyr2[] =
00478 {
00479 0, 2, 1, 1, 1, 2, 3, 3, 3, 3,
00480 2, 3, 3, 4, 4, 4, 6, 4, 4, 6,
00481 4, 4, 6, 4, 4, 4, 4, 4, 4, 2
00482 };
00483
00484
00485
00486
00487 static const yytype_uint8 yydefact[] =
00488 {
00489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00490 0, 0, 0, 0, 0, 0, 0, 4, 3, 0,
00491 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
00492 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
00493 10, 0, 1, 0, 0, 0, 0, 0, 29, 0,
00494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00495 0, 0, 0, 0, 0, 12, 7, 6, 8, 9,
00496 11, 13, 14, 15, 0, 28, 18, 17, 0, 20,
00497 21, 0, 23, 24, 25, 26, 27, 0, 0, 0,
00498 16, 19, 22
00499 };
00500
00501
00502 static const yytype_int8 yydefgoto[] =
00503 {
00504 -1, 21, 48
00505 };
00506
00507
00508
00509 #define YYPACT_NINF -27
00510 static const yytype_int16 yypact[] =
00511 {
00512 650, -26, -25, -24, -23, -22, -21, -20, -19, -18,
00513 -17, -16, -15, -14, -13, -12, -11, -27, -2, 650,
00514 650, 18, 575, 650, 650, 650, 650, 650, 650, 650,
00515 650, 650, 650, 650, 650, 650, 650, 650, 650, -27,
00516 675, 133, -27, 650, 650, 650, 650, 650, 575, 159,
00517 185, 211, 46, 237, 263, 289, 79, 315, 341, 106,
00518 367, 393, 419, 445, 471, -27, 600, 625, 675, 675,
00519 675, -27, -27, -27, 650, -27, -27, -27, 650, -27,
00520 -27, 650, -27, -27, -27, -27, -27, 497, 523, 549,
00521 -27, -27, -27
00522 };
00523
00524
00525 static const yytype_int8 yypgoto[] =
00526 {
00527 -27, -27, 0
00528 };
00529
00530
00531
00532
00533
00534 #define YYTABLE_NINF -11
00535 static const yytype_int8 yytable[] =
00536 {
00537 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
00538 32, 33, 34, 35, 36, 37, 38, 39, 42, 40,
00539 41, 0, 0, 49, 50, 51, 52, 53, 54, 55,
00540 56, 57, 58, 59, 60, 61, 62, 63, 64, 0,
00541 0, 0, 0, 66, 67, 68, 69, 70, 0, 1,
00542 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
00543 12, 13, 14, 15, 16, 17, 18, 43, 44, 45,
00544 46, 0, 47, 20, 87, 74, 0, 0, 88, 0,
00545 0, 89, 1, 2, 3, 4, 5, 6, 7, 8,
00546 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00547 43, 44, 45, 46, 0, 47, 20, 0, 78, 1,
00548 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
00549 12, 13, 14, 15, 16, 17, 18, 43, 44, 45,
00550 46, 0, 47, 20, 0, 81, 1, 2, 3, 4,
00551 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00552 15, 16, 17, 18, 43, 44, 45, 46, 0, 47,
00553 20, 65, 1, 2, 3, 4, 5, 6, 7, 8,
00554 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00555 43, 44, 45, 46, 0, 47, 20, 71, 1, 2,
00556 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00557 13, 14, 15, 16, 17, 18, 43, 44, 45, 46,
00558 0, 47, 20, 72, 1, 2, 3, 4, 5, 6,
00559 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00560 17, 18, 43, 44, 45, 46, 0, 47, 20, 73,
00561 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
00562 11, 12, 13, 14, 15, 16, 17, 18, 43, 44,
00563 45, 46, 0, 47, 20, 75, 1, 2, 3, 4,
00564 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00565 15, 16, 17, 18, 43, 44, 45, 46, 0, 47,
00566 20, 76, 1, 2, 3, 4, 5, 6, 7, 8,
00567 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00568 43, 44, 45, 46, 0, 47, 20, 77, 1, 2,
00569 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00570 13, 14, 15, 16, 17, 18, 43, 44, 45, 46,
00571 0, 47, 20, 79, 1, 2, 3, 4, 5, 6,
00572 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00573 17, 18, 43, 44, 45, 46, 0, 47, 20, 80,
00574 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
00575 11, 12, 13, 14, 15, 16, 17, 18, 43, 44,
00576 45, 46, 0, 47, 20, 82, 1, 2, 3, 4,
00577 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00578 15, 16, 17, 18, 43, 44, 45, 46, 0, 47,
00579 20, 83, 1, 2, 3, 4, 5, 6, 7, 8,
00580 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00581 43, 44, 45, 46, 0, 47, 20, 84, 1, 2,
00582 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00583 13, 14, 15, 16, 17, 18, 43, 44, 45, 46,
00584 0, 47, 20, 85, 1, 2, 3, 4, 5, 6,
00585 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00586 17, 18, 43, 44, 45, 46, 0, 47, 20, 86,
00587 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
00588 11, 12, 13, 14, 15, 16, 17, 18, 43, 44,
00589 45, 46, 0, 47, 20, 90, 1, 2, 3, 4,
00590 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00591 15, 16, 17, 18, 43, 44, 45, 46, 0, 47,
00592 20, 91, 1, 2, 3, 4, 5, 6, 7, 8,
00593 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00594 43, 44, 45, 46, 0, 47, 20, 92, 1, 2,
00595 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00596 13, 14, 15, 16, 17, 18, 43, 44, 45, 46,
00597 0, 47, 20, 1, 2, 3, 4, 5, 6, 7,
00598 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
00599 18, 0, 0, -10, -10, 0, 47, 20, 1, 2,
00600 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00601 13, 14, 15, 16, 17, 18, 0, 0, 45, 46,
00602 0, 47, 20, 1, 2, 3, 4, 5, 6, 7,
00603 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
00604 18, 19, 0, 0, 0, 0, 0, 20, 1, 2,
00605 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00606 13, 14, 15, 16, 17, 18, 0, 0, 0, 0,
00607 0, 47, 20
00608 };
00609
00610 static const yytype_int8 yycheck[] =
00611 {
00612 0, 27, 27, 27, 27, 27, 27, 27, 27, 27,
00613 27, 27, 27, 27, 27, 27, 27, 19, 0, 19,
00614 20, -1, -1, 23, 24, 25, 26, 27, 28, 29,
00615 30, 31, 32, 33, 34, 35, 36, 37, 38, -1,
00616 -1, -1, -1, 43, 44, 45, 46, 47, -1, 3,
00617 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
00618 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
00619 24, -1, 26, 27, 74, 29, -1, -1, 78, -1,
00620 -1, 81, 3, 4, 5, 6, 7, 8, 9, 10,
00621 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
00622 21, 22, 23, 24, -1, 26, 27, -1, 29, 3,
00623 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
00624 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
00625 24, -1, 26, 27, -1, 29, 3, 4, 5, 6,
00626 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00627 17, 18, 19, 20, 21, 22, 23, 24, -1, 26,
00628 27, 28, 3, 4, 5, 6, 7, 8, 9, 10,
00629 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
00630 21, 22, 23, 24, -1, 26, 27, 28, 3, 4,
00631 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00632 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00633 -1, 26, 27, 28, 3, 4, 5, 6, 7, 8,
00634 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00635 19, 20, 21, 22, 23, 24, -1, 26, 27, 28,
00636 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00637 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
00638 23, 24, -1, 26, 27, 28, 3, 4, 5, 6,
00639 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00640 17, 18, 19, 20, 21, 22, 23, 24, -1, 26,
00641 27, 28, 3, 4, 5, 6, 7, 8, 9, 10,
00642 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
00643 21, 22, 23, 24, -1, 26, 27, 28, 3, 4,
00644 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00645 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00646 -1, 26, 27, 28, 3, 4, 5, 6, 7, 8,
00647 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00648 19, 20, 21, 22, 23, 24, -1, 26, 27, 28,
00649 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00650 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
00651 23, 24, -1, 26, 27, 28, 3, 4, 5, 6,
00652 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00653 17, 18, 19, 20, 21, 22, 23, 24, -1, 26,
00654 27, 28, 3, 4, 5, 6, 7, 8, 9, 10,
00655 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
00656 21, 22, 23, 24, -1, 26, 27, 28, 3, 4,
00657 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00658 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00659 -1, 26, 27, 28, 3, 4, 5, 6, 7, 8,
00660 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
00661 19, 20, 21, 22, 23, 24, -1, 26, 27, 28,
00662 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
00663 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
00664 23, 24, -1, 26, 27, 28, 3, 4, 5, 6,
00665 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
00666 17, 18, 19, 20, 21, 22, 23, 24, -1, 26,
00667 27, 28, 3, 4, 5, 6, 7, 8, 9, 10,
00668 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
00669 21, 22, 23, 24, -1, 26, 27, 28, 3, 4,
00670 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00671 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
00672 -1, 26, 27, 3, 4, 5, 6, 7, 8, 9,
00673 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
00674 20, -1, -1, 23, 24, -1, 26, 27, 3, 4,
00675 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00676 15, 16, 17, 18, 19, 20, -1, -1, 23, 24,
00677 -1, 26, 27, 3, 4, 5, 6, 7, 8, 9,
00678 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
00679 20, 21, -1, -1, -1, -1, -1, 27, 3, 4,
00680 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
00681 15, 16, 17, 18, 19, 20, -1, -1, -1, -1,
00682 -1, 26, 27
00683 };
00684
00685
00686
00687 static const yytype_uint8 yystos[] =
00688 {
00689 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
00690 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
00691 27, 31, 32, 27, 27, 27, 27, 27, 27, 27,
00692 27, 27, 27, 27, 27, 27, 27, 27, 27, 19,
00693 32, 32, 0, 21, 22, 23, 24, 26, 32, 32,
00694 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
00695 32, 32, 32, 32, 32, 28, 32, 32, 32, 32,
00696 32, 28, 28, 28, 29, 28, 28, 28, 29, 28,
00697 28, 29, 28, 28, 28, 28, 28, 32, 32, 32,
00698 28, 28, 28
00699 };
00700
00701 #define yyerrok (yyerrstatus = 0)
00702 #define yyclearin (yychar = YYEMPTY)
00703 #define YYEMPTY (-2)
00704 #define YYEOF 0
00705
00706 #define YYACCEPT goto yyacceptlab
00707 #define YYABORT goto yyabortlab
00708 #define YYERROR goto yyerrorlab
00709
00710
00711
00712
00713
00714
00715 #define YYFAIL goto yyerrlab
00716
00717 #define YYRECOVERING() (!!yyerrstatus)
00718
00719 #define YYBACKUP(Token, Value) \
00720 do \
00721 if (yychar == YYEMPTY && yylen == 1) \
00722 { \
00723 yychar = (Token); \
00724 yylval = (Value); \
00725 yytoken = YYTRANSLATE (yychar); \
00726 YYPOPSTACK (1); \
00727 goto yybackup; \
00728 } \
00729 else \
00730 { \
00731 yyerror (YY_("syntax error: cannot back up")); \
00732 YYERROR; \
00733 } \
00734 while (YYID (0))
00735
00736
00737 #define YYTERROR 1
00738 #define YYERRCODE 256
00739
00740
00741
00742
00743
00744
00745 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
00746 #ifndef YYLLOC_DEFAULT
00747 # define YYLLOC_DEFAULT(Current, Rhs, N) \
00748 do \
00749 if (YYID (N)) \
00750 { \
00751 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
00752 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
00753 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
00754 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
00755 } \
00756 else \
00757 { \
00758 (Current).first_line = (Current).last_line = \
00759 YYRHSLOC (Rhs, 0).last_line; \
00760 (Current).first_column = (Current).last_column = \
00761 YYRHSLOC (Rhs, 0).last_column; \
00762 } \
00763 while (YYID (0))
00764 #endif
00765
00766
00767
00768
00769
00770
00771 #ifndef YY_LOCATION_PRINT
00772 # if YYLTYPE_IS_TRIVIAL
00773 # define YY_LOCATION_PRINT(File, Loc) \
00774 fprintf (File, "%d.%d-%d.%d", \
00775 (Loc).first_line, (Loc).first_column, \
00776 (Loc).last_line, (Loc).last_column)
00777 # else
00778 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
00779 # endif
00780 #endif
00781
00782
00783
00784
00785 #ifdef YYLEX_PARAM
00786 # define YYLEX yylex (YYLEX_PARAM)
00787 #else
00788 # define YYLEX yylex ()
00789 #endif
00790
00791
00792 #if YYDEBUG
00793
00794 # ifndef YYFPRINTF
00795 # include <stdio.h>
00796 # define YYFPRINTF fprintf
00797 # endif
00798
00799 # define YYDPRINTF(Args) \
00800 do { \
00801 if (yydebug) \
00802 YYFPRINTF Args; \
00803 } while (YYID (0))
00804
00805 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
00806 do { \
00807 if (yydebug) \
00808 { \
00809 YYFPRINTF (stderr, "%s ", Title); \
00810 yy_symbol_print (stderr, \
00811 Type, Value); \
00812 YYFPRINTF (stderr, "\n"); \
00813 } \
00814 } while (YYID (0))
00815
00816
00817
00818
00819
00820
00821
00822 #if (defined __STDC__ || defined __C99__FUNC__ \
00823 || defined __cplusplus || defined _MSC_VER)
00824 static void
00825 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
00826 #else
00827 static void
00828 yy_symbol_value_print (yyoutput, yytype, yyvaluep)
00829 FILE *yyoutput;
00830 int yytype;
00831 YYSTYPE const * const yyvaluep;
00832 #endif
00833 {
00834 if (!yyvaluep)
00835 return;
00836 # ifdef YYPRINT
00837 if (yytype < YYNTOKENS)
00838 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
00839 # else
00840 YYUSE (yyoutput);
00841 # endif
00842 switch (yytype)
00843 {
00844 default:
00845 break;
00846 }
00847 }
00848
00849
00850
00851
00852
00853
00854 #if (defined __STDC__ || defined __C99__FUNC__ \
00855 || defined __cplusplus || defined _MSC_VER)
00856 static void
00857 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
00858 #else
00859 static void
00860 yy_symbol_print (yyoutput, yytype, yyvaluep)
00861 FILE *yyoutput;
00862 int yytype;
00863 YYSTYPE const * const yyvaluep;
00864 #endif
00865 {
00866 if (yytype < YYNTOKENS)
00867 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
00868 else
00869 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
00870
00871 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
00872 YYFPRINTF (yyoutput, ")");
00873 }
00874
00875
00876
00877
00878
00879
00880 #if (defined __STDC__ || defined __C99__FUNC__ \
00881 || defined __cplusplus || defined _MSC_VER)
00882 static void
00883 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
00884 #else
00885 static void
00886 yy_stack_print (yybottom, yytop)
00887 yytype_int16 *yybottom;
00888 yytype_int16 *yytop;
00889 #endif
00890 {
00891 YYFPRINTF (stderr, "Stack now");
00892 for (; yybottom <= yytop; yybottom++)
00893 {
00894 int yybot = *yybottom;
00895 YYFPRINTF (stderr, " %d", yybot);
00896 }
00897 YYFPRINTF (stderr, "\n");
00898 }
00899
00900 # define YY_STACK_PRINT(Bottom, Top) \
00901 do { \
00902 if (yydebug) \
00903 yy_stack_print ((Bottom), (Top)); \
00904 } while (YYID (0))
00905
00906
00907
00908
00909
00910
00911 #if (defined __STDC__ || defined __C99__FUNC__ \
00912 || defined __cplusplus || defined _MSC_VER)
00913 static void
00914 yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
00915 #else
00916 static void
00917 yy_reduce_print (yyvsp, yyrule)
00918 YYSTYPE *yyvsp;
00919 int yyrule;
00920 #endif
00921 {
00922 int yynrhs = yyr2[yyrule];
00923 int yyi;
00924 unsigned long int yylno = yyrline[yyrule];
00925 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
00926 yyrule - 1, yylno);
00927
00928 for (yyi = 0; yyi < yynrhs; yyi++)
00929 {
00930 YYFPRINTF (stderr, " $%d = ", yyi + 1);
00931 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
00932 &(yyvsp[(yyi + 1) - (yynrhs)])
00933 );
00934 YYFPRINTF (stderr, "\n");
00935 }
00936 }
00937
00938 # define YY_REDUCE_PRINT(Rule) \
00939 do { \
00940 if (yydebug) \
00941 yy_reduce_print (yyvsp, Rule); \
00942 } while (YYID (0))
00943
00944
00945
00946 int yydebug;
00947 #else
00948 # define YYDPRINTF(Args)
00949 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
00950 # define YY_STACK_PRINT(Bottom, Top)
00951 # define YY_REDUCE_PRINT(Rule)
00952 #endif
00953
00954
00955
00956 #ifndef YYINITDEPTH
00957 # define YYINITDEPTH 200
00958 #endif
00959
00960
00961
00962
00963
00964
00965
00966
00967 #ifndef YYMAXDEPTH
00968 # define YYMAXDEPTH 10000
00969 #endif
00970
00971
00972
00973 #if YYERROR_VERBOSE
00974
00975 # ifndef yystrlen
00976 # if defined __GLIBC__ && defined _STRING_H
00977 # define yystrlen strlen
00978 # else
00979
00980 #if (defined __STDC__ || defined __C99__FUNC__ \
00981 || defined __cplusplus || defined _MSC_VER)
00982 static YYSIZE_T
00983 yystrlen (const char *yystr)
00984 #else
00985 static YYSIZE_T
00986 yystrlen (yystr)
00987 const char *yystr;
00988 #endif
00989 {
00990 YYSIZE_T yylen;
00991 for (yylen = 0; yystr[yylen]; yylen++)
00992 continue;
00993 return yylen;
00994 }
00995 # endif
00996 # endif
00997
00998 # ifndef yystpcpy
00999 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
01000 # define yystpcpy stpcpy
01001 # else
01002
01003
01004 #if (defined __STDC__ || defined __C99__FUNC__ \
01005 || defined __cplusplus || defined _MSC_VER)
01006 static char *
01007 yystpcpy (char *yydest, const char *yysrc)
01008 #else
01009 static char *
01010 yystpcpy (yydest, yysrc)
01011 char *yydest;
01012 const char *yysrc;
01013 #endif
01014 {
01015 char *yyd = yydest;
01016 const char *yys = yysrc;
01017
01018 while ((*yyd++ = *yys++) != '\0')
01019 continue;
01020
01021 return yyd - 1;
01022 }
01023 # endif
01024 # endif
01025
01026 # ifndef yytnamerr
01027
01028
01029
01030
01031
01032
01033
01034 static YYSIZE_T
01035 yytnamerr (char *yyres, const char *yystr)
01036 {
01037 if (*yystr == '"')
01038 {
01039 YYSIZE_T yyn = 0;
01040 char const *yyp = yystr;
01041
01042 for (;;)
01043 switch (*++yyp)
01044 {
01045 case '\'':
01046 case ',':
01047 goto do_not_strip_quotes;
01048
01049 case '\\':
01050 if (*++yyp != '\\')
01051 goto do_not_strip_quotes;
01052
01053 default:
01054 if (yyres)
01055 yyres[yyn] = *yyp;
01056 yyn++;
01057 break;
01058
01059 case '"':
01060 if (yyres)
01061 yyres[yyn] = '\0';
01062 return yyn;
01063 }
01064 do_not_strip_quotes: ;
01065 }
01066
01067 if (! yyres)
01068 return yystrlen (yystr);
01069
01070 return yystpcpy (yyres, yystr) - yyres;
01071 }
01072 # endif
01073
01074
01075
01076
01077
01078
01079
01080
01081 static YYSIZE_T
01082 yysyntax_error (char *yyresult, int yystate, int yychar)
01083 {
01084 int yyn = yypact[yystate];
01085
01086 if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
01087 return 0;
01088 else
01089 {
01090 int yytype = YYTRANSLATE (yychar);
01091 YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
01092 YYSIZE_T yysize = yysize0;
01093 YYSIZE_T yysize1;
01094 int yysize_overflow = 0;
01095 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
01096 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
01097 int yyx;
01098
01099 # if 0
01100
01101
01102 YY_("syntax error, unexpected %s");
01103 YY_("syntax error, unexpected %s, expecting %s");
01104 YY_("syntax error, unexpected %s, expecting %s or %s");
01105 YY_("syntax error, unexpected %s, expecting %s or %s or %s");
01106 YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
01107 # endif
01108 char *yyfmt;
01109 char const *yyf;
01110 static char const yyunexpected[] = "syntax error, unexpected %s";
01111 static char const yyexpecting[] = ", expecting %s";
01112 static char const yyor[] = " or %s";
01113 char yyformat[sizeof yyunexpected
01114 + sizeof yyexpecting - 1
01115 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
01116 * (sizeof yyor - 1))];
01117 char const *yyprefix = yyexpecting;
01118
01119
01120
01121 int yyxbegin = yyn < 0 ? -yyn : 0;
01122
01123
01124 int yychecklim = YYLAST - yyn + 1;
01125 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
01126 int yycount = 1;
01127
01128 yyarg[0] = yytname[yytype];
01129 yyfmt = yystpcpy (yyformat, yyunexpected);
01130
01131 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
01132 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
01133 {
01134 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
01135 {
01136 yycount = 1;
01137 yysize = yysize0;
01138 yyformat[sizeof yyunexpected - 1] = '\0';
01139 break;
01140 }
01141 yyarg[yycount++] = yytname[yyx];
01142 yysize1 = yysize + yytnamerr (0, yytname[yyx]);
01143 yysize_overflow |= (yysize1 < yysize);
01144 yysize = yysize1;
01145 yyfmt = yystpcpy (yyfmt, yyprefix);
01146 yyprefix = yyor;
01147 }
01148
01149 yyf = YY_(yyformat);
01150 yysize1 = yysize + yystrlen (yyf);
01151 yysize_overflow |= (yysize1 < yysize);
01152 yysize = yysize1;
01153
01154 if (yysize_overflow)
01155 return YYSIZE_MAXIMUM;
01156
01157 if (yyresult)
01158 {
01159
01160
01161
01162 char *yyp = yyresult;
01163 int yyi = 0;
01164 while ((*yyp = *yyf) != '\0')
01165 {
01166 if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
01167 {
01168 yyp += yytnamerr (yyp, yyarg[yyi++]);
01169 yyf += 2;
01170 }
01171 else
01172 {
01173 yyp++;
01174 yyf++;
01175 }
01176 }
01177 }
01178 return yysize;
01179 }
01180 }
01181 #endif
01182
01183
01184
01185
01186
01187
01188
01189 #if (defined __STDC__ || defined __C99__FUNC__ \
01190 || defined __cplusplus || defined _MSC_VER)
01191 static void
01192 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
01193 #else
01194 static void
01195 yydestruct (yymsg, yytype, yyvaluep)
01196 const char *yymsg;
01197 int yytype;
01198 YYSTYPE *yyvaluep;
01199 #endif
01200 {
01201 YYUSE (yyvaluep);
01202
01203 if (!yymsg)
01204 yymsg = "Deleting";
01205 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
01206
01207 switch (yytype)
01208 {
01209
01210 default:
01211 break;
01212 }
01213 }
01214
01215
01216 #ifdef YYPARSE_PARAM
01217 #if defined __STDC__ || defined __cplusplus
01218 int yyparse (void *YYPARSE_PARAM);
01219 #else
01220 int yyparse ();
01221 #endif
01222 #else
01223 #if defined __STDC__ || defined __cplusplus
01224 int yyparse (void);
01225 #else
01226 int yyparse ();
01227 #endif
01228 #endif
01229
01230
01231
01232 int yychar;
01233
01234
01235 YYSTYPE yylval;
01236
01237
01238 int yynerrs;
01239
01240
01241
01242
01243
01244
01245
01246 #ifdef YYPARSE_PARAM
01247 #if (defined __STDC__ || defined __C99__FUNC__ \
01248 || defined __cplusplus || defined _MSC_VER)
01249 int
01250 yyparse (void *YYPARSE_PARAM)
01251 #else
01252 int
01253 yyparse (YYPARSE_PARAM)
01254 void *YYPARSE_PARAM;
01255 #endif
01256 #else
01257 #if (defined __STDC__ || defined __C99__FUNC__ \
01258 || defined __cplusplus || defined _MSC_VER)
01259 int
01260 yyparse (void)
01261 #else
01262 int
01263 yyparse ()
01264
01265 #endif
01266 #endif
01267 {
01268
01269
01270 int yystate;
01271
01272 int yyerrstatus;
01273
01274
01275
01276
01277
01278
01279
01280
01281
01282 yytype_int16 yyssa[YYINITDEPTH];
01283 yytype_int16 *yyss;
01284 yytype_int16 *yyssp;
01285
01286
01287 YYSTYPE yyvsa[YYINITDEPTH];
01288 YYSTYPE *yyvs;
01289 YYSTYPE *yyvsp;
01290
01291 YYSIZE_T yystacksize;
01292
01293 int yyn;
01294 int yyresult;
01295
01296 int yytoken;
01297
01298
01299 YYSTYPE yyval;
01300
01301 #if YYERROR_VERBOSE
01302
01303 char yymsgbuf[128];
01304 char *yymsg = yymsgbuf;
01305 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
01306 #endif
01307
01308 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
01309
01310
01311
01312 int yylen = 0;
01313
01314 yytoken = 0;
01315 yyss = yyssa;
01316 yyvs = yyvsa;
01317 yystacksize = YYINITDEPTH;
01318
01319 YYDPRINTF ((stderr, "Starting parse\n"));
01320
01321 yystate = 0;
01322 yyerrstatus = 0;
01323 yynerrs = 0;
01324 yychar = YYEMPTY;
01325
01326
01327
01328
01329
01330 yyssp = yyss;
01331 yyvsp = yyvs;
01332
01333 goto yysetstate;
01334
01335
01336
01337
01338 yynewstate:
01339
01340
01341 yyssp++;
01342
01343 yysetstate:
01344 *yyssp = yystate;
01345
01346 if (yyss + yystacksize - 1 <= yyssp)
01347 {
01348
01349 YYSIZE_T yysize = yyssp - yyss + 1;
01350
01351 #ifdef yyoverflow
01352 {
01353
01354
01355
01356 YYSTYPE *yyvs1 = yyvs;
01357 yytype_int16 *yyss1 = yyss;
01358
01359
01360
01361
01362
01363 yyoverflow (YY_("memory exhausted"),
01364 &yyss1, yysize * sizeof (*yyssp),
01365 &yyvs1, yysize * sizeof (*yyvsp),
01366 &yystacksize);
01367
01368 yyss = yyss1;
01369 yyvs = yyvs1;
01370 }
01371 #else
01372 # ifndef YYSTACK_RELOCATE
01373 goto yyexhaustedlab;
01374 # else
01375
01376 if (YYMAXDEPTH <= yystacksize)
01377 goto yyexhaustedlab;
01378 yystacksize *= 2;
01379 if (YYMAXDEPTH < yystacksize)
01380 yystacksize = YYMAXDEPTH;
01381
01382 {
01383 yytype_int16 *yyss1 = yyss;
01384 union yyalloc *yyptr =
01385 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01386 if (! yyptr)
01387 goto yyexhaustedlab;
01388 YYSTACK_RELOCATE (yyss_alloc, yyss);
01389 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
01390 # undef YYSTACK_RELOCATE
01391 if (yyss1 != yyssa)
01392 YYSTACK_FREE (yyss1);
01393 }
01394 # endif
01395 #endif
01396
01397 yyssp = yyss + yysize - 1;
01398 yyvsp = yyvs + yysize - 1;
01399
01400 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01401 (unsigned long int) yystacksize));
01402
01403 if (yyss + yystacksize - 1 <= yyssp)
01404 YYABORT;
01405 }
01406
01407 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01408
01409 if (yystate == YYFINAL)
01410 YYACCEPT;
01411
01412 goto yybackup;
01413
01414
01415
01416
01417 yybackup:
01418
01419
01420
01421
01422
01423 yyn = yypact[yystate];
01424 if (yyn == YYPACT_NINF)
01425 goto yydefault;
01426
01427
01428
01429
01430 if (yychar == YYEMPTY)
01431 {
01432 YYDPRINTF ((stderr, "Reading a token: "));
01433 yychar = YYLEX;
01434 }
01435
01436 if (yychar <= YYEOF)
01437 {
01438 yychar = yytoken = YYEOF;
01439 YYDPRINTF ((stderr, "Now at end of input.\n"));
01440 }
01441 else
01442 {
01443 yytoken = YYTRANSLATE (yychar);
01444 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
01445 }
01446
01447
01448
01449 yyn += yytoken;
01450 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01451 goto yydefault;
01452 yyn = yytable[yyn];
01453 if (yyn <= 0)
01454 {
01455 if (yyn == 0 || yyn == YYTABLE_NINF)
01456 goto yyerrlab;
01457 yyn = -yyn;
01458 goto yyreduce;
01459 }
01460
01461
01462
01463 if (yyerrstatus)
01464 yyerrstatus--;
01465
01466
01467 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
01468
01469
01470 yychar = YYEMPTY;
01471
01472 yystate = yyn;
01473 *++yyvsp = yylval;
01474
01475 goto yynewstate;
01476
01477
01478
01479
01480
01481 yydefault:
01482 yyn = yydefact[yystate];
01483 if (yyn == 0)
01484 goto yyerrlab;
01485 goto yyreduce;
01486
01487
01488
01489
01490
01491 yyreduce:
01492
01493 yylen = yyr2[yyn];
01494
01495
01496
01497
01498
01499
01500
01501
01502
01503 yyval = yyvsp[1-yylen];
01504
01505
01506 YY_REDUCE_PRINT (yyn);
01507 switch (yyn)
01508 {
01509 case 2:
01510
01511
01512 #line 26 "UnitsApi.y"
01513 { ScanResult = (yyvsp[(1) - (1)]) ; ;}
01514 break;
01515
01516 case 3:
01517
01518
01519 #line 29 "UnitsApi.y"
01520 { (yyval) = (yyvsp[(1) - (1)]); ;}
01521 break;
01522
01523 case 4:
01524
01525
01526 #line 30 "UnitsApi.y"
01527 { (yyval) = (yyvsp[(1) - (1)]);UU=true; ;}
01528 break;
01529
01530 case 5:
01531
01532
01533 #line 31 "UnitsApi.y"
01534 { (yyval) = (yyvsp[(1) - (2)])*(yyvsp[(2) - (2)]);UU=true; ;}
01535 break;
01536
01537 case 6:
01538
01539
01540 #line 32 "UnitsApi.y"
01541 { (yyval) = (yyvsp[(1) - (3)]) + (yyvsp[(3) - (3)]); ;}
01542 break;
01543
01544 case 7:
01545
01546
01547 #line 33 "UnitsApi.y"
01548 { (yyval) = (yyvsp[(1) - (3)]) - (yyvsp[(3) - (3)]); ;}
01549 break;
01550
01551 case 8:
01552
01553
01554 #line 34 "UnitsApi.y"
01555 { (yyval) = (yyvsp[(1) - (3)]) * (yyvsp[(3) - (3)]); ;}
01556 break;
01557
01558 case 9:
01559
01560
01561 #line 35 "UnitsApi.y"
01562 { (yyval) = (yyvsp[(1) - (3)]) / (yyvsp[(3) - (3)]); ;}
01563 break;
01564
01565 case 10:
01566
01567
01568 #line 36 "UnitsApi.y"
01569 { (yyval) = -(yyvsp[(2) - (2)]); ;}
01570 break;
01571
01572 case 11:
01573
01574
01575 #line 37 "UnitsApi.y"
01576 { (yyval) = pow ((yyvsp[(1) - (3)]), (yyvsp[(3) - (3)]));;}
01577 break;
01578
01579 case 12:
01580
01581
01582 #line 38 "UnitsApi.y"
01583 { (yyval) = (yyvsp[(2) - (3)]); ;}
01584 break;
01585
01586 case 13:
01587
01588
01589 #line 39 "UnitsApi.y"
01590 { (yyval) = acos((yyvsp[(3) - (4)])); ;}
01591 break;
01592
01593 case 14:
01594
01595
01596 #line 40 "UnitsApi.y"
01597 { (yyval) = asin((yyvsp[(3) - (4)])); ;}
01598 break;
01599
01600 case 15:
01601
01602
01603 #line 41 "UnitsApi.y"
01604 { (yyval) = atan((yyvsp[(3) - (4)])); ;}
01605 break;
01606
01607 case 16:
01608
01609
01610 #line 42 "UnitsApi.y"
01611 { (yyval) = atan2((yyvsp[(3) - (6)]),(yyvsp[(5) - (6)]));;}
01612 break;
01613
01614 case 17:
01615
01616
01617 #line 43 "UnitsApi.y"
01618 { (yyval) = fabs((yyvsp[(3) - (4)])); ;}
01619 break;
01620
01621 case 18:
01622
01623
01624 #line 44 "UnitsApi.y"
01625 { (yyval) = exp((yyvsp[(3) - (4)])); ;}
01626 break;
01627
01628 case 19:
01629
01630
01631 #line 45 "UnitsApi.y"
01632 { (yyval) = fmod((yyvsp[(3) - (6)]),(yyvsp[(5) - (6)])); ;}
01633 break;
01634
01635 case 20:
01636
01637
01638 #line 46 "UnitsApi.y"
01639 { (yyval) = log((yyvsp[(3) - (4)])); ;}
01640 break;
01641
01642 case 21:
01643
01644
01645 #line 47 "UnitsApi.y"
01646 { (yyval) = log10((yyvsp[(3) - (4)])); ;}
01647 break;
01648
01649 case 22:
01650
01651
01652 #line 48 "UnitsApi.y"
01653 { (yyval) = pow((yyvsp[(3) - (6)]),(yyvsp[(5) - (6)])); ;}
01654 break;
01655
01656 case 23:
01657
01658
01659 #line 49 "UnitsApi.y"
01660 { (yyval) = sin((yyvsp[(3) - (4)])); ;}
01661 break;
01662
01663 case 24:
01664
01665
01666 #line 50 "UnitsApi.y"
01667 { (yyval) = sinh((yyvsp[(3) - (4)])); ;}
01668 break;
01669
01670 case 25:
01671
01672
01673 #line 51 "UnitsApi.y"
01674 { (yyval) = tan((yyvsp[(3) - (4)])); ;}
01675 break;
01676
01677 case 26:
01678
01679
01680 #line 52 "UnitsApi.y"
01681 { (yyval) = tanh((yyvsp[(3) - (4)])); ;}
01682 break;
01683
01684 case 27:
01685
01686
01687 #line 53 "UnitsApi.y"
01688 { (yyval) = tanh((yyvsp[(3) - (4)])); ;}
01689 break;
01690
01691 case 28:
01692
01693
01694 #line 54 "UnitsApi.y"
01695 { (yyval) = cos((yyvsp[(3) - (4)])); ;}
01696 break;
01697
01698 case 29:
01699
01700
01701 #line 55 "UnitsApi.y"
01702 { (yyval) = (yyvsp[(1) - (2)]) * (yyvsp[(2) - (2)]); ;}
01703 break;
01704
01705
01706
01707
01708 #line 1709 "UnitsApi.tab.c"
01709 default: break;
01710 }
01711 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
01712
01713 YYPOPSTACK (yylen);
01714 yylen = 0;
01715 YY_STACK_PRINT (yyss, yyssp);
01716
01717 *++yyvsp = yyval;
01718
01719
01720
01721
01722
01723 yyn = yyr1[yyn];
01724
01725 yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
01726 if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
01727 yystate = yytable[yystate];
01728 else
01729 yystate = yydefgoto[yyn - YYNTOKENS];
01730
01731 goto yynewstate;
01732
01733
01734
01735
01736
01737 yyerrlab:
01738
01739 if (!yyerrstatus)
01740 {
01741 ++yynerrs;
01742 #if ! YYERROR_VERBOSE
01743 yyerror (YY_("syntax error"));
01744 #else
01745 {
01746 YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
01747 if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
01748 {
01749 YYSIZE_T yyalloc = 2 * yysize;
01750 if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
01751 yyalloc = YYSTACK_ALLOC_MAXIMUM;
01752 if (yymsg != yymsgbuf)
01753 YYSTACK_FREE (yymsg);
01754 yymsg = (char *) YYSTACK_ALLOC (yyalloc);
01755 if (yymsg)
01756 yymsg_alloc = yyalloc;
01757 else
01758 {
01759 yymsg = yymsgbuf;
01760 yymsg_alloc = sizeof yymsgbuf;
01761 }
01762 }
01763
01764 if (0 < yysize && yysize <= yymsg_alloc)
01765 {
01766 (void) yysyntax_error (yymsg, yystate, yychar);
01767 yyerror (yymsg);
01768 }
01769 else
01770 {
01771 yyerror (YY_("syntax error"));
01772 if (yysize != 0)
01773 goto yyexhaustedlab;
01774 }
01775 }
01776 #endif
01777 }
01778
01779
01780
01781 if (yyerrstatus == 3)
01782 {
01783
01784
01785
01786 if (yychar <= YYEOF)
01787 {
01788
01789 if (yychar == YYEOF)
01790 YYABORT;
01791 }
01792 else
01793 {
01794 yydestruct ("Error: discarding",
01795 yytoken, &yylval);
01796 yychar = YYEMPTY;
01797 }
01798 }
01799
01800
01801
01802 goto yyerrlab1;
01803
01804
01805
01806
01807
01808 yyerrorlab:
01809
01810
01811
01812
01813 if ( 0)
01814 goto yyerrorlab;
01815
01816
01817
01818 YYPOPSTACK (yylen);
01819 yylen = 0;
01820 YY_STACK_PRINT (yyss, yyssp);
01821 yystate = *yyssp;
01822 goto yyerrlab1;
01823
01824
01825
01826
01827
01828 yyerrlab1:
01829 yyerrstatus = 3;
01830
01831 for (;;)
01832 {
01833 yyn = yypact[yystate];
01834 if (yyn != YYPACT_NINF)
01835 {
01836 yyn += YYTERROR;
01837 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
01838 {
01839 yyn = yytable[yyn];
01840 if (0 < yyn)
01841 break;
01842 }
01843 }
01844
01845
01846 if (yyssp == yyss)
01847 YYABORT;
01848
01849
01850 yydestruct ("Error: popping",
01851 yystos[yystate], yyvsp);
01852 YYPOPSTACK (1);
01853 yystate = *yyssp;
01854 YY_STACK_PRINT (yyss, yyssp);
01855 }
01856
01857 *++yyvsp = yylval;
01858
01859
01860
01861 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
01862
01863 yystate = yyn;
01864 goto yynewstate;
01865
01866
01867
01868
01869
01870 yyacceptlab:
01871 yyresult = 0;
01872 goto yyreturn;
01873
01874
01875
01876
01877 yyabortlab:
01878 yyresult = 1;
01879 goto yyreturn;
01880
01881 #if !defined(yyoverflow) || YYERROR_VERBOSE
01882
01883
01884
01885 yyexhaustedlab:
01886 yyerror (YY_("memory exhausted"));
01887 yyresult = 2;
01888
01889 #endif
01890
01891 yyreturn:
01892 if (yychar != YYEMPTY)
01893 yydestruct ("Cleanup: discarding lookahead",
01894 yytoken, &yylval);
01895
01896
01897 YYPOPSTACK (yylen);
01898 YY_STACK_PRINT (yyss, yyssp);
01899 while (yyssp != yyss)
01900 {
01901 yydestruct ("Cleanup: popping",
01902 yystos[*yyssp], yyvsp);
01903 YYPOPSTACK (1);
01904 }
01905 #ifndef yyoverflow
01906 if (yyss != yyssa)
01907 YYSTACK_FREE (yyss);
01908 #endif
01909 #if YYERROR_VERBOSE
01910 if (yymsg != yymsgbuf)
01911 YYSTACK_FREE (yymsg);
01912 #endif
01913
01914 return YYID (yyresult);
01915 }
01916
01917
01918
01919
01920 #line 59 "UnitsApi.y"
01921
01922