52 #define YYBISON_VERSION "3.7.6"
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
266 # undef UINT_LEAST8_MAX
267 # undef UINT_LEAST16_MAX
268 # define UINT_LEAST8_MAX 255
269 # define UINT_LEAST16_MAX 65535
272 #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
274 #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
275 && UINT_LEAST8_MAX <= INT_MAX)
277 #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
283 #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
285 #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
286 && UINT_LEAST16_MAX <= INT_MAX)
288 #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
295 # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
296 # define YYPTRDIFF_T __PTRDIFF_TYPE__
297 # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
298 # elif defined PTRDIFF_MAX
302 # define YYPTRDIFF_T ptrdiff_t
303 # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
305 # define YYPTRDIFF_T long
306 # define YYPTRDIFF_MAXIMUM LONG_MAX
311 # ifdef __SIZE_TYPE__
312 # define YYSIZE_T __SIZE_TYPE__
313 # elif defined size_t
314 # define YYSIZE_T size_t
315 # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
317 # define YYSIZE_T size_t
319 # define YYSIZE_T unsigned
323 #define YYSIZE_MAXIMUM \
324 YY_CAST (YYPTRDIFF_T, \
325 (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
326 ? YYPTRDIFF_MAXIMUM \
327 : YY_CAST (YYSIZE_T, -1)))
329 #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
339 # if defined YYENABLE_NLS && YYENABLE_NLS
341 # include <libintl.h>
342 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
346 # define YY_(Msgid) Msgid
351 #ifndef YY_ATTRIBUTE_PURE
352 # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
353 # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
355 # define YY_ATTRIBUTE_PURE
359 #ifndef YY_ATTRIBUTE_UNUSED
360 # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
361 # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
363 # define YY_ATTRIBUTE_UNUSED
368 #if ! defined lint || defined __GNUC__
369 # define YY_USE(E) ((void) (E))
374 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
376 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
377 _Pragma ("GCC diagnostic push") \
378 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
379 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
380 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
381 _Pragma ("GCC diagnostic pop")
383 # define YY_INITIAL_VALUE(Value) Value
385 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
386 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
387 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
389 #ifndef YY_INITIAL_VALUE
390 # define YY_INITIAL_VALUE(Value)
393 #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
394 # define YY_IGNORE_USELESS_CAST_BEGIN \
395 _Pragma ("GCC diagnostic push") \
396 _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
397 # define YY_IGNORE_USELESS_CAST_END \
398 _Pragma ("GCC diagnostic pop")
400 #ifndef YY_IGNORE_USELESS_CAST_BEGIN
401 # define YY_IGNORE_USELESS_CAST_BEGIN
402 # define YY_IGNORE_USELESS_CAST_END
406 #define YY_ASSERT(E) ((void) (0 && (E)))
408 #if !defined yyoverflow
412 # ifdef YYSTACK_USE_ALLOCA
413 # if YYSTACK_USE_ALLOCA
415 # define YYSTACK_ALLOC __builtin_alloca
416 # elif defined __BUILTIN_VA_ARG_INCR
419 # define YYSTACK_ALLOC __alloca
420 # elif defined _MSC_VER
422 # define alloca _alloca
424 # define YYSTACK_ALLOC alloca
425 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
428 # ifndef EXIT_SUCCESS
429 # define EXIT_SUCCESS 0
436 # ifdef YYSTACK_ALLOC
438 # define YYSTACK_FREE(Ptr) do { ; } while (0)
439 # ifndef YYSTACK_ALLOC_MAXIMUM
444 # define YYSTACK_ALLOC_MAXIMUM 4032
447 # define YYSTACK_ALLOC YYMALLOC
448 # define YYSTACK_FREE YYFREE
449 # ifndef YYSTACK_ALLOC_MAXIMUM
450 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
452 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
453 && ! ((defined YYMALLOC || defined malloc) \
454 && (defined YYFREE || defined free)))
456 # ifndef EXIT_SUCCESS
457 # define EXIT_SUCCESS 0
461 # define YYMALLOC malloc
462 # if ! defined malloc && ! defined EXIT_SUCCESS
468 # if ! defined free && ! defined EXIT_SUCCESS
475 #if (! defined yyoverflow \
476 && (! defined __cplusplus \
477 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
487 # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
491 # define YYSTACK_BYTES(N) \
492 ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
493 + YYSTACK_GAP_MAXIMUM)
495 # define YYCOPY_NEEDED 1
502 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
505 YYPTRDIFF_T yynewbytes; \
506 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
507 Stack = &yyptr->Stack_alloc; \
508 yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
509 yyptr += yynewbytes / YYSIZEOF (*yyptr); \
515 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
519 # if defined __GNUC__ && 1 < __GNUC__
520 # define YYCOPY(Dst, Src, Count) \
521 __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
523 # define YYCOPY(Dst, Src, Count) \
527 for (yyi = 0; yyi < (Count); yyi++) \
528 (Dst)[yyi] = (Src)[yyi]; \
550 #define YYMAXUTOK 259
555 #define YYTRANSLATE(YYX) \
556 (0 <= (YYX) && (YYX) <= YYMAXUTOK \
557 ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
564 0, 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 11, 12, 6, 5, 2, 4, 2, 7, 2, 2,
569 2, 2, 2, 2, 2, 2, 2, 2, 2, 10,
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, 9, 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, 2, 2, 2, 2,
578 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
579 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
580 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
581 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
582 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
583 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
584 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
585 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
586 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
587 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
588 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
589 2, 2, 2, 2, 2, 2, 1, 2, 3, 8
596 0, 73, 73, 74, 77, 78, 81, 82, 83, 84,
602 #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
611 static const char *
const yytname[] =
613 "\"end of file\"",
"error",
"\"invalid token\"",
"NUM",
"'-'",
"'+'",
614 "'*'",
"'/'",
"NEG",
"'^'",
"';'",
"'('",
"')'",
"$accept",
"input",
630 0, 256, 257, 258, 45, 43, 42, 47, 259, 94,
635 #define YYPACT_NINF (-8)
637 #define yypact_value_is_default(Yyn) \
638 ((Yyn) == YYPACT_NINF)
640 #define YYTABLE_NINF (-1)
642 #define yytable_value_is_error(Yyn) \
649 -8, 13, -8, -8, 3, 3, -8, 3, -8, 30,
650 -7, -7, 21, 3, 3, 3, 3, 1, -8, -8,
659 2, 0, 1, 6, 0, 0, 4, 0, 3, 0,
660 11, 12, 0, 0, 0, 0, 0, 0, 5, 14,
681 10, 11, 17, 12, 24, 0, 3, 4, 5, 20,
682 21, 22, 23, 2, 7, 0, 3, 4, 5, 0,
683 0, 0, 0, 6, 7, 13, 14, 15, 16, 0,
684 17, 0, 0, 19, 13, 14, 15, 16, 0, 17,
690 4, 5, 9, 7, 3, -1, 3, 4, 5, 13,
691 14, 15, 16, 0, 11, -1, 3, 4, 5, -1,
692 -1, -1, -1, 10, 11, 4, 5, 6, 7, -1,
693 9, -1, -1, 12, 4, 5, 6, 7, -1, 9,
701 0, 14, 0, 3, 4, 5, 10, 11, 15, 16,
702 16, 16, 16, 4, 5, 6, 7, 9, 10, 12,
709 0, 13, 14, 14, 15, 15, 16, 16, 16, 16,
716 0, 2, 0, 2, 1, 2, 1, 3, 3, 3,
723 #define yyerrok (yyerrstatus = 0)
724 #define yyclearin (yychar = YYEMPTY)
726 #define YYACCEPT goto yyacceptlab
727 #define YYABORT goto yyabortlab
728 #define YYERROR goto yyerrorlab
731 #define YYRECOVERING() (!!yyerrstatus)
733 #define YYBACKUP(Token, Value) \
735 if (yychar == YYEMPTY) \
739 YYPOPSTACK (yylen); \
745 yyerror (YY_("syntax error: cannot back up")); \
752 #define YYERRCODE YYUNDEF
760 # define YYFPRINTF fprintf
763 # define YYDPRINTF(Args) \
770 # ifndef YY_LOCATION_PRINT
771 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
775 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
779 YYFPRINTF (stderr, "%s ", Title); \
780 yy_symbol_print (stderr, \
782 YYFPRINTF (stderr, "\n"); \
795 FILE *yyoutput = yyo;
801 YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
818 yykind <
YYNTOKENS ?
"token" :
"nterm", yysymbol_name (yykind));
833 for (; yybottom <= yytop; yybottom++)
835 int yybot = *yybottom;
841 # define YY_STACK_PRINT(Bottom, Top) \
844 yy_stack_print ((Bottom), (Top)); \
857 int yynrhs =
yyr2[yyrule];
859 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %d):\n",
862 for (yyi = 0; yyi < yynrhs; yyi++)
867 &yyvsp[(yyi + 1) - (yynrhs)]);
872 # define YY_REDUCE_PRINT(Rule) \
875 yy_reduce_print (yyssp, yyvsp, Rule); \
882 # define YYDPRINTF(Args) ((void) 0)
883 # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
884 # define YY_STACK_PRINT(Bottom, Top)
885 # define YY_REDUCE_PRINT(Rule)
891 # define YYINITDEPTH 200
902 # define YYMAXDEPTH 10000
978 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
984 YYDPRINTF ((stderr,
"Starting parse\n"));
1003 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
1010 if (yyss + yystacksize - 1 <= yyssp)
1011 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
1012 goto yyexhaustedlab;
1018 # if defined yyoverflow
1030 yyoverflow (
YY_(
"memory exhausted"),
1031 &yyss1, yysize *
YYSIZEOF (*yyssp),
1032 &yyvs1, yysize *
YYSIZEOF (*yyvsp),
1040 goto yyexhaustedlab;
1047 union yyalloc *yyptr =
1051 goto yyexhaustedlab;
1052 YYSTACK_RELOCATE (yyss_alloc, yyss);
1053 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1054 # undef YYSTACK_RELOCATE
1060 yyssp = yyss + yysize - 1;
1061 yyvsp = yyvs + yysize - 1;
1064 YYDPRINTF ((stderr,
"Stack size increased to %ld\n",
1065 YY_CAST (
long, yystacksize)));
1068 if (yyss + yystacksize - 1 <= yyssp)
1096 YYDPRINTF ((stderr,
"Reading a token\n"));
1104 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1178 yyval = yyvsp[1-yylen];
1185 #line 78 "readcf.yy"
1187 #line 1188 "readcf.cc"
1191 #line 81 "readcf.yy"
1192 { yyval = yyvsp[0]; }
1193 #line 1194 "readcf.cc"
1197 #line 82 "readcf.yy"
1198 { yyval = yyvsp[-2].getval() + yyvsp[0].getval(); }
1199 #line 1200 "readcf.cc"
1203 #line 83 "readcf.yy"
1204 { yyval = yyvsp[-2].getval() - yyvsp[0].getval(); }
1205 #line 1206 "readcf.cc"
1209 #line 84 "readcf.yy"
1210 { yyval = yyvsp[-2].getval() * yyvsp[0].getval(); }
1211 #line 1212 "readcf.cc"
1215 #line 85 "readcf.yy"
1216 { yyval = yyvsp[-2].getval() / yyvsp[0].getval(); }
1217 #line 1218 "readcf.cc"
1221 #line 86 "readcf.yy"
1222 { yyval = -yyvsp[0].getval(); }
1223 #line 1224 "readcf.cc"
1227 #line 87 "readcf.yy"
1228 { yyval = yyvsp[0].getval(); }
1229 #line 1230 "readcf.cc"
1233 #line 88 "readcf.yy"
1234 { yyval =
power( yyvsp[-2].getval(), yyvsp[0].getintval() ); }
1235 #line 1236 "readcf.cc"
1239 #line 89 "readcf.yy"
1240 { yyval = yyvsp[-1].getval(); }
1241 #line 1242 "readcf.cc"
1245 #line 1246 "readcf.cc"
1272 const int yyi =
yypgoto[yylhs] + *yyssp;
1273 yystate = (0 <= yyi && yyi <=
YYLAST &&
yycheck[yyi] == *yyssp
1295 if (yyerrstatus == 3)
1398 #if !defined yyoverflow
1425 while (yyssp != yyss)
1439 #line 92 "readcf.yy"
1459 while ((c =
defaultin->get()) ==
' ' || c ==
'\t' || c ==
'\n' ) ;
1460 if ( isdigit( c ) ) {
1465 else if ( isalpha( c ) ) {
1488 this->yylval =
Variable( (
char)c );
1496 this->yylval =
Variable( (
char)c );
1511 YY_parse_CLASS my_parser;
1513 if ( my_parser.yyparse() == 0 ) {
1538 static char * buffer = 0;
1539 static int bufsize = 0;
1541 if ( buffer == 0 ) {
1543 buffer =
new char[bufsize];
1545 int i = 0, c, goon = 1;
1547 while ( isdigit( c =
s.get() ) &&
i < bufsize - 2 ) {
1551 if ( isdigit( c ) ) {
1553 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)