52 #define YYBISON_VERSION "3.7.4"
55 #define YYSKELETON_NAME "yacc.c"
76 #include "factory/factoryconf.h"
78 #if defined(WINNT) && ! defined(__GNUC__)
81 # define alloca _alloca
93 # define ISTREAM std::istream
94 # define CERR std::cerr
95 #elif defined(HAVE_IOSTREAM_H)
96 # include <iostream.h>
97 # define ISTREAM istream
111 # define YYSTYPE ParseUtil
113 # define YY_parse_USE_GOTO 1
114 # define YY_parse_STYPE ParseUtil
129 #line 130 "readcf.cc"
133 # define YY_CAST(Type, Val) static_cast<Type> (Val)
134 # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
136 # define YY_CAST(Type, Val) ((Type) (Val))
137 # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
141 # if defined __cplusplus
142 # if 201103L <= __cplusplus
143 # define YY_NULLPTR nullptr
145 # define YY_NULLPTR 0
148 # define YY_NULLPTR ((void*)0)
184 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
186 # define YYSTYPE_IS_TRIVIAL 1
187 # define YYSTYPE_IS_DECLARED 1
231 #ifndef __PTRDIFF_MAX__
233 # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
244 #ifdef __INT_LEAST8_MAX__
246 #elif defined YY_STDINT_H
252 #ifdef __INT_LEAST16_MAX__
254 #elif defined YY_STDINT_H
260 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
262 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
263 && UINT_LEAST8_MAX <= INT_MAX)
265 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
271 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
273 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
274 && UINT_LEAST16_MAX <= INT_MAX)
276 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
283 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
284 # define YYPTRDIFF_T __PTRDIFF_TYPE__
285 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
286 # elif defined PTRDIFF_MAX
290 # define YYPTRDIFF_T ptrdiff_t
291 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
293 # define YYPTRDIFF_T long
294 # define YYPTRDIFF_MAXIMUM LONG_MAX
299 # ifdef __SIZE_TYPE__
300 # define YYSIZE_T __SIZE_TYPE__
301 # elif defined size_t
302 # define YYSIZE_T size_t
303 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
305 # define YYSIZE_T size_t
307 # define YYSIZE_T unsigned
311 #define YYSIZE_MAXIMUM \
312 YY_CAST (YYPTRDIFF_T, \
313 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
314 ? YYPTRDIFF_MAXIMUM \
315 : YY_CAST (YYSIZE_T, -1)))
317 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
327 # if defined YYENABLE_NLS && YYENABLE_NLS
329 # include <libintl.h>
330 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
334 # define YY_(Msgid) Msgid
339 #ifndef YY_ATTRIBUTE_PURE
340 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
341 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
343 # define YY_ATTRIBUTE_PURE
347 #ifndef YY_ATTRIBUTE_UNUSED
348 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
349 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
351 # define YY_ATTRIBUTE_UNUSED
356 #if ! defined lint || defined __GNUC__
357 # define YYUSE(E) ((void) (E))
362 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
364 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
365 _Pragma ("GCC diagnostic push") \
366 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
367 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
368 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
369 _Pragma ("GCC diagnostic pop")
371 # define YY_INITIAL_VALUE(Value) Value
373 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
374 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
375 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
377 #ifndef YY_INITIAL_VALUE
378 # define YY_INITIAL_VALUE(Value)
381 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
382 # define YY_IGNORE_USELESS_CAST_BEGIN \
383 _Pragma ("GCC diagnostic push") \
384 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
385 # define YY_IGNORE_USELESS_CAST_END \
386 _Pragma ("GCC diagnostic pop")
388 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
389 # define YY_IGNORE_USELESS_CAST_BEGIN
390 # define YY_IGNORE_USELESS_CAST_END
394 #define YY_ASSERT(E) ((void) (0 && (E)))
396 #if !defined yyoverflow
400 # ifdef YYSTACK_USE_ALLOCA
401 # if YYSTACK_USE_ALLOCA
403 # define YYSTACK_ALLOC __builtin_alloca
404 # elif defined __BUILTIN_VA_ARG_INCR
407 # define YYSTACK_ALLOC __alloca
408 # elif defined _MSC_VER
410 # define alloca _alloca
412 # define YYSTACK_ALLOC alloca
413 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
416 # ifndef EXIT_SUCCESS
417 # define EXIT_SUCCESS 0
424 # ifdef YYSTACK_ALLOC
426 # define YYSTACK_FREE(Ptr) do { ; } while (0)
427 # ifndef YYSTACK_ALLOC_MAXIMUM
432 # define YYSTACK_ALLOC_MAXIMUM 4032
435 # define YYSTACK_ALLOC YYMALLOC
436 # define YYSTACK_FREE YYFREE
437 # ifndef YYSTACK_ALLOC_MAXIMUM
438 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
440 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
441 && ! ((defined YYMALLOC || defined malloc) \
442 && (defined YYFREE || defined free)))
444 # ifndef EXIT_SUCCESS
445 # define EXIT_SUCCESS 0
449 # define YYMALLOC malloc
450 # if ! defined malloc && ! defined EXIT_SUCCESS
456 # if ! defined free && ! defined EXIT_SUCCESS
463 #if (! defined yyoverflow \
464 && (! defined __cplusplus \
465 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
475 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
479 # define YYSTACK_BYTES(N) \
480 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
481 + YYSTACK_GAP_MAXIMUM)
483 # define YYCOPY_NEEDED 1
490 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
493 YYPTRDIFF_T yynewbytes; \
494 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
495 Stack = &yyptr->Stack_alloc; \
496 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
497 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
503 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
507 # if defined __GNUC__ && 1 < __GNUC__
508 # define YYCOPY(Dst, Src, Count) \
509 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
511 # define YYCOPY(Dst, Src, Count) \
515 for (yyi = 0; yyi < (Count); yyi++) \
516 (Dst)[yyi] = (Src)[yyi]; \
538 #define YYMAXUTOK 259
543 #define YYTRANSLATE(YYX) \
544 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
545 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
552 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
553 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
554 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
555 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
556 11, 12, 6, 5, 2, 4, 2, 7, 2, 2,
557 2, 2, 2, 2, 2, 2, 2, 2, 2, 10,
558 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
559 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
560 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
561 2, 2, 2, 2, 9, 2, 2, 2, 2, 2,
562 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
563 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
564 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
565 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
566 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
567 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
568 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
569 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
570 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
571 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
572 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
573 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
574 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
575 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
576 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
577 2, 2, 2, 2, 2, 2, 1, 2, 3, 8
584 0, 73, 73, 74, 77, 78, 81, 82, 83, 84,
590 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
599 static const char *
const yytname[] =
601 "\"end of file\"",
"error",
"\"invalid token\"",
"NUM",
"'-'",
"'+'",
602 "'*'",
"'/'",
"NEG",
"'^'",
"';'",
"'('",
"')'",
"$accept",
"input",
618 0, 256, 257, 258, 45, 43, 42, 47, 259, 94,
623 #define YYPACT_NINF (-8)
625 #define yypact_value_is_default(Yyn) \
626 ((Yyn) == YYPACT_NINF)
628 #define YYTABLE_NINF (-1)
630 #define yytable_value_is_error(Yyn) \
637 -8, 13, -8, -8, 3, 3, -8, 3, -8, 30,
638 -7, -7, 21, 3, 3, 3, 3, 1, -8, -8,
647 2, 0, 1, 6, 0, 0, 4, 0, 3, 0,
648 11, 12, 0, 0, 0, 0, 0, 0, 5, 14,
669 10, 11, 17, 12, 24, 0, 3, 4, 5, 20,
670 21, 22, 23, 2, 7, 0, 3, 4, 5, 0,
671 0, 0, 0, 6, 7, 13, 14, 15, 16, 0,
672 17, 0, 0, 19, 13, 14, 15, 16, 0, 17,
678 4, 5, 9, 7, 3, -1, 3, 4, 5, 13,
679 14, 15, 16, 0, 11, -1, 3, 4, 5, -1,
680 -1, -1, -1, 10, 11, 4, 5, 6, 7, -1,
681 9, -1, -1, 12, 4, 5, 6, 7, -1, 9,
689 0, 14, 0, 3, 4, 5, 10, 11, 15, 16,
690 16, 16, 16, 4, 5, 6, 7, 9, 10, 12,
697 0, 13, 14, 14, 15, 15, 16, 16, 16, 16,
704 0, 2, 0, 2, 1, 2, 1, 3, 3, 3,
711 #define yyerrok (yyerrstatus = 0)
712 #define yyclearin (yychar = YYEMPTY)
714 #define YYACCEPT goto yyacceptlab
715 #define YYABORT goto yyabortlab
716 #define YYERROR goto yyerrorlab
719 #define YYRECOVERING() (!!yyerrstatus)
721 #define YYBACKUP(Token, Value) \
723 if (yychar == YYEMPTY) \
727 YYPOPSTACK (yylen); \
733 yyerror (YY_("syntax error: cannot back up")); \
740 #define YYERRCODE YYUNDEF
748 # define YYFPRINTF fprintf
751 # define YYDPRINTF(Args) \
758 # ifndef YY_LOCATION_PRINT
759 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
763 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
767 YYFPRINTF (stderr, "%s ", Title); \
768 yy_symbol_print (stderr, \
770 YYFPRINTF (stderr, "\n"); \
783 FILE *yyoutput = yyo;
789 YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
806 yykind <
YYNTOKENS ?
"token" :
"nterm", yysymbol_name (yykind));
821 for (; yybottom <= yytop; yybottom++)
823 int yybot = *yybottom;
829 # define YY_STACK_PRINT(Bottom, Top) \
832 yy_stack_print ((Bottom), (Top)); \
845 int yynrhs =
yyr2[yyrule];
847 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %d):\n",
850 for (yyi = 0; yyi < yynrhs; yyi++)
855 &yyvsp[(yyi + 1) - (yynrhs)]);
860 # define YY_REDUCE_PRINT(Rule) \
863 yy_reduce_print (yyssp, yyvsp, Rule); \
870 # define YYDPRINTF(Args) ((void) 0)
871 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
872 # define YY_STACK_PRINT(Bottom, Top)
873 # define YY_REDUCE_PRINT(Rule)
879 # define YYINITDEPTH 200
890 # define YYMAXDEPTH 10000
966 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
972 YYDPRINTF ((stderr,
"Starting parse\n"));
991 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
998 if (yyss + yystacksize - 1 <= yyssp)
999 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1000 goto yyexhaustedlab;
1006 # if defined yyoverflow
1018 yyoverflow (
YY_(
"memory exhausted"),
1019 &yyss1, yysize *
YYSIZEOF (*yyssp),
1020 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
1028 goto yyexhaustedlab;
1035 union yyalloc *yyptr =
1039 goto yyexhaustedlab;
1040 YYSTACK_RELOCATE (yyss_alloc, yyss);
1041 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1042 # undef YYSTACK_RELOCATE
1048 yyssp = yyss + yysize - 1;
1049 yyvsp = yyvs + yysize - 1;
1052 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1053 YY_CAST (
long, yystacksize)));
1056 if (yyss + yystacksize - 1 <= yyssp)
1084 YYDPRINTF ((stderr,
"Reading a token\n"));
1092 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1166 yyval = yyvsp[1-yylen];
1173 #line 78 "readcf.yy"
1175 #line 1176 "readcf.cc"
1179 #line 81 "readcf.yy"
1180 { yyval = yyvsp[0]; }
1181 #line 1182 "readcf.cc"
1185 #line 82 "readcf.yy"
1186 { yyval = yyvsp[-2].getval() + yyvsp[0].getval(); }
1187 #line 1188 "readcf.cc"
1191 #line 83 "readcf.yy"
1192 { yyval = yyvsp[-2].getval() - yyvsp[0].getval(); }
1193 #line 1194 "readcf.cc"
1197 #line 84 "readcf.yy"
1198 { yyval = yyvsp[-2].getval() * yyvsp[0].getval(); }
1199 #line 1200 "readcf.cc"
1203 #line 85 "readcf.yy"
1204 { yyval = yyvsp[-2].getval() / yyvsp[0].getval(); }
1205 #line 1206 "readcf.cc"
1209 #line 86 "readcf.yy"
1210 { yyval = -yyvsp[0].getval(); }
1211 #line 1212 "readcf.cc"
1215 #line 87 "readcf.yy"
1216 { yyval = yyvsp[0].getval(); }
1217 #line 1218 "readcf.cc"
1221 #line 88 "readcf.yy"
1222 { yyval =
power( yyvsp[-2].getval(), yyvsp[0].getintval() ); }
1223 #line 1224 "readcf.cc"
1227 #line 89 "readcf.yy"
1228 { yyval = yyvsp[-1].getval(); }
1229 #line 1230 "readcf.cc"
1233 #line 1234 "readcf.cc"
1260 const int yyi =
yypgoto[yylhs] + *yyssp;
1261 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
1283 if (yyerrstatus == 3)
1386 #if !defined yyoverflow
1413 while (yyssp != yyss)
1427 #line 92 "readcf.yy"
1447 while ((c =
defaultin->get()) ==
' ' || c ==
'\t' || c ==
'\n' ) ;
1448 if ( isdigit( c ) ) {
1453 else if ( isalpha( c ) ) {
1476 this->yylval =
Variable( (
char)c );
1484 this->yylval =
Variable( (
char)c );
1499 YY_parse_CLASS my_parser;
1501 if ( my_parser.yyparse() == 0 ) {
1526 static char * buffer = 0;
1527 static int bufsize = 0;
1529 if ( buffer == 0 ) {
1531 buffer =
new char[bufsize];
1533 int i = 0, c, goon = 1;
1535 while ( isdigit( c =
s.get() ) &&
i < bufsize - 2 ) {
1539 if ( isdigit( c ) ) {
1541 char * newbuffer = (
char*)memcpy(
new char[bufsize], buffer, bufsize - 1000 );
factory's class for variables
const CanonicalForm int s
Operations in GF, where GF is a finite field of size less than 2^16 represented by a root of Conway p...
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule)
static const yytype_uint16 yyrline[]
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep)
static const char *const yytname[]
void * malloc(size_t size)
static int index(p_Length length, p_Ord ord)
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
static const yytype_int8 yytranslate[]
static ISTREAM * defaultin
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
static const yytype_int8 yydefact[]
#define YY_IGNORE_USELESS_CAST_END
static const yytype_int8 yycheck[]
#define YY_REDUCE_PRINT(Rule)
#define YY_CAST(Type, Val)
static void yydestruct(const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
static const yytype_int8 yypact[]
#define YY_ACCESSING_SYMBOL(State)
Accessing symbol of state STATE.
#define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
unsigned char yytype_uint8
#define YY_STACK_PRINT(Bottom, Top)
#define YY_IGNORE_USELESS_CAST_BEGIN
static const yytype_int8 yyr2[]
static const yytype_int8 yytable[]
#define yytable_value_is_error(Yyn)
static char * readString(ISTREAM &)
static const yytype_int8 yystos[]
#define YY_ATTRIBUTE_UNUSED
static const yytype_int8 yypgoto[]
CanonicalForm readCF(ISTREAM &str)
static const yytype_int8 yyr1[]
enum yytokentype yytoken_kind_t
unsigned short yytype_uint16
static const yytype_int8 yydefgoto[]
static CanonicalForm * retvalue
#define yypact_value_is_default(Yyn)