42 #define YYSKELETON_NAME "yacc.c"
48 #define YYLSP_NEEDED 0
52 #define yyparse newickparse
53 #define yylex newicklex
54 #define yyerror newickerror
55 #define yylval newicklval
56 #define yychar newickchar
57 #define yydebug newickdebug
58 #define yynerrs newicknerrs
131 #define YYINITDEPTH 10000
140 #ifdef YYERROR_VERBOSE
141 # undef YYERROR_VERBOSE
142 # define YYERROR_VERBOSE 1
144 # define YYERROR_VERBOSE 0
147 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
148 #line 56 "newick.ypp"
155 #line 153 "newick.tab.cpp"
156 # define yystype YYSTYPE
157 # define YYSTYPE_IS_DECLARED 1
158 # define YYSTYPE_IS_TRIVIAL 1
167 #line 165 "newick.tab.cpp"
169 #if ! defined (yyoverflow) || YYERROR_VERBOSE
173 # if YYSTACK_USE_ALLOCA
174 # define YYSTACK_ALLOC alloca
176 # ifndef YYSTACK_USE_ALLOCA
177 # if defined (alloca) || defined (_ALLOCA_H)
178 # define YYSTACK_ALLOC alloca
181 # define YYSTACK_ALLOC __builtin_alloca
187 # ifdef YYSTACK_ALLOC
189 # define YYSTACK_FREE(Ptr) do { ; } while (0)
191 # if defined (__STDC__) || defined (__cplusplus)
193 # define YYSIZE_T size_t
195 # define YYSTACK_ALLOC malloc
196 # define YYSTACK_FREE free
201 #if (! defined (yyoverflow) \
202 && (! defined (__cplusplus) \
203 || (YYSTYPE_IS_TRIVIAL)))
213 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
217 # define YYSTACK_BYTES(N) \
218 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
219 + YYSTACK_GAP_MAXIMUM)
225 # define YYCOPY(To, From, Count) \
226 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
228 # define YYCOPY(To, From, Count) \
232 for (yyi = 0; yyi < (Count); yyi++) \
233 (To)[yyi] = (From)[yyi]; \
244 # define YYSTACK_RELOCATE(Stack) \
247 YYSIZE_T yynewbytes; \
248 YYCOPY (&yyptr->Stack, Stack, yysize); \
249 Stack = &yyptr->Stack; \
250 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
251 yyptr += yynewbytes / sizeof (*yyptr); \
257 #if defined (__STDC__) || defined (__cplusplus)
279 #define YYMAXUTOK 259
281 #define YYTRANSLATE(YYX) \
282 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
287 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
288 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
289 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
290 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
291 6, 7, 2, 2, 9, 2, 2, 2, 2, 2,
292 2, 2, 2, 2, 2, 2, 2, 2, 8, 5,
293 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
294 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
295 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
296 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
297 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
298 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
299 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
300 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
301 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
302 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
303 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
304 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
305 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
307 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
310 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
311 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
312 2, 2, 2, 2, 2, 2, 1, 2, 3, 4
318 static const unsigned char yyprhs[] =
320 0, 0, 3, 6, 12, 16, 23, 28, 32, 35,
327 11, 0, -1, 12, 5, -1, 6, 13, 7, 8,
328 4, -1, 6, 13, 7, -1, 6, 13, 7, 3,
329 8, 4, -1, 6, 13, 7, 3, -1, 3, 8,
330 4, -1, 8, 4, -1, 3, -1, -1, 12, -1,
335 static const unsigned char yyrline[] =
337 0, 70, 70, 76, 83, 89, 97, 104, 112, 120,
342 #if YYDEBUG || YYERROR_VERBOSE
345 static const char *
const yytname[] =
347 "$end",
"error",
"$undefined",
"LABEL",
"NUM",
"';'",
"'('",
"')'",
"':'",
348 "','",
"$accept",
"tree",
"node",
"nodelist", 0
355 static const unsigned short yytoknum[] =
357 0, 256, 257, 258, 259, 59, 40, 41, 58, 44
362 static const unsigned char yyr1[] =
364 0, 10, 11, 12, 12, 12, 12, 12, 12, 12,
369 static const unsigned char yyr2[] =
371 0, 2, 2, 5, 3, 6, 4, 3, 2, 1,
380 10, 9, 10, 0, 0, 0, 0, 11, 0, 8,
381 1, 2, 7, 4, 10, 6, 0, 12, 0, 3,
393 #define YYPACT_NINF -8
396 -1, -7, -1, 5, 10, 6, 9, -8, -3, -8,
397 -8, -8, -8, 0, -1, 7, 12, -8, 13, -8,
411 #define YYTABLE_NINF -1
414 7, 6, 1, 15, 13, 2, 14, 3, 16, 9,
415 10, 11, 17, 12, 0, 18, 19, 20
420 2, 8, 3, 3, 7, 6, 9, 8, 8, 4,
421 0, 5, 14, 4, -1, 8, 4, 4
428 0, 3, 6, 8, 11, 12, 8, 12, 13, 4,
429 0, 5, 4, 7, 9, 3, 8, 12, 8, 4,
433 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
434 # define YYSIZE_T __SIZE_TYPE__
436 #if ! defined (YYSIZE_T) && defined (size_t)
437 # define YYSIZE_T size_t
439 #if ! defined (YYSIZE_T)
440 # if defined (__STDC__) || defined (__cplusplus)
442 # define YYSIZE_T size_t
445 #if ! defined (YYSIZE_T)
446 # define YYSIZE_T unsigned int
449 #define yyerrok (yyerrstatus = 0)
450 #define yyclearin (yychar = YYEMPTY)
454 #define YYACCEPT goto yyacceptlab
455 #define YYABORT goto yyabortlab
456 #define YYERROR goto yyerrlab1
462 #define YYFAIL goto yyerrlab
464 #define YYRECOVERING() (!!yyerrstatus)
466 #define YYBACKUP(Token, Value) \
468 if (yychar == YYEMPTY && yylen == 1) \
472 yytoken = YYTRANSLATE (yychar); \
478 yyerror ("syntax error: cannot back up");\
484 #define YYERRCODE 256
489 #ifndef YYLLOC_DEFAULT
490 # define YYLLOC_DEFAULT(Current, Rhs, N) \
491 Current.first_line = Rhs[1].first_line; \
492 Current.first_column = Rhs[1].first_column; \
493 Current.last_line = Rhs[N].last_line; \
494 Current.last_column = Rhs[N].last_column;
500 # define YYLEX yylex (YYLEX_PARAM)
502 # define YYLEX yylex ()
510 # define YYFPRINTF fprintf
513 # define YYDPRINTF(Args) \
519 # define YYDSYMPRINT(Args) \
525 # define YYDSYMPRINTF(Title, Token, Value, Location) \
529 YYFPRINTF (stderr, "%s ", Title); \
530 yysymprint (stderr, \
532 YYFPRINTF (stderr, "\n"); \
541 #if defined (__STDC__) || defined (__cplusplus)
552 for (; bottom <= top; ++bottom)
557 # define YY_STACK_PRINT(Bottom, Top) \
560 yy_stack_print ((Bottom), (Top)); \
568 #if defined (__STDC__) || defined (__cplusplus)
578 unsigned int yylineno =
yyrline[yyrule];
579 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %u), ",
580 yyrule - 1, yylineno);
587 # define YY_REDUCE_PRINT(Rule) \
590 yy_reduce_print (Rule); \
597 # define YYDPRINTF(Args)
598 # define YYDSYMPRINT(Args)
599 # define YYDSYMPRINTF(Title, Token, Value, Location)
600 # define YY_STACK_PRINT(Bottom, Top)
601 # define YY_REDUCE_PRINT(Rule)
607 # define YYINITDEPTH 200
622 # define YYMAXDEPTH 10000
630 # if defined (__GLIBC__) && defined (_STRING_H)
631 # define yystrlen strlen
635 # if defined (__STDC__) || defined (__cplusplus)
642 const char *yys = yystr;
644 while (*yys++ !=
'\0')
647 return yys - yystr - 1;
653 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
654 # define yystpcpy stpcpy
659 # if defined (__STDC__) || defined (__cplusplus)
660 yystpcpy (
char *yydest,
const char *yysrc)
668 const char *yys = yysrc;
670 while ((*yyd++ = *yys++) !=
'\0')
687 #if defined (__STDC__) || defined (__cplusplus)
705 YYPRINT (yyoutput, yytoknum[yytype], *
yyvaluep);
724 #if defined (__STDC__) || defined (__cplusplus)
749 # if defined (__STDC__) || defined (__cplusplus)
755 #if defined (__STDC__) || defined (__cplusplus)
780 # if defined (__STDC__) || defined (__cplusplus)
787 #if defined (__STDC__) || defined (__cplusplus)
826 #define YYPOPSTACK (yyvsp--, yyssp--)
839 YYDPRINTF ((stderr,
"Starting parse\n"));
868 if (yyss + yystacksize - 1 <= yyssp)
886 yyoverflow (
"parser stack overflow",
887 &yyss1, yysize *
sizeof (*yyssp),
888 &yyvs1, yysize *
sizeof (*yyvsp),
896 # ifndef YYSTACK_RELOCATE
915 # undef YYSTACK_RELOCATE
922 yyssp =
yyss + yysize - 1;
923 yyvsp =
yyvs + yysize - 1;
926 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
927 (
unsigned long int) yystacksize));
929 if (
yyss + yystacksize - 1 <= yyssp)
933 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
957 YYDPRINTF ((stderr,
"Reading a token: "));
964 YYDPRINTF ((stderr,
"Now at end of input.\n"));
1033 yyval = yyvsp[1-yylen];
1040 #line 70 "newick.ypp"
1047 #line 76 "newick.ypp"
1057 #line 83 "newick.ypp"
1066 #line 89 "newick.ypp"
1077 #line 97 "newick.ypp"
1087 #line 104 "newick.ypp"
1098 #line 112 "newick.ypp"
1109 #line 120 "newick.ypp"
1119 #line 127 "newick.ypp"
1129 #line 136 "newick.ypp"
1137 #line 141 "newick.ypp"
1148 #line 1146 "newick.tab.cpp"
1166 if (0 <= yystate && yystate <=
YYLAST &&
yycheck[yystate] == *yyssp)
1195 for (yyx = yyn < 0 ? -yyn : 0;
1196 yyx < (
int) (
sizeof (
yytname) /
sizeof (
char *)); yyx++)
1199 yysize +=
yystrlen (
"syntax error, unexpected ") + 1;
1204 char *yyp =
yystpcpy (yymsg,
"syntax error, unexpected ");
1210 for (yyx = yyn < 0 ? -yyn : 0;
1211 yyx < (
int) (
sizeof (
yytname) /
sizeof (
char *));
1215 const char *yyq = ! yycount ?
", expecting " :
" or ";
1225 yyerror (
"syntax error; also virtual memory exhausted");
1234 if (yyerrstatus == 3)
1245 while (
yyss < yyssp)
1272 #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \
1273 && !defined __cplusplus
1274 __attribute__ ((__unused__))
1316 YYDPRINTF ((stderr,
"Shifting error token, "));
1344 yyerror (
"parser stack overflow");
1358 #line 148 "newick.ypp"
1367 vector<TPhyTreeNode*> del_list;
1369 if (!(*iter)->GetParent()) {
1370 del_list.push_back(*iter);
1373 ITERATE (vector<TPhyTreeNode*>, iter, del_list) {
1378 throw runtime_error(
string(
"error parsing Newick format tree file: ")
static void yy_reduce_print(int yyrule)
static void yysymprint(FILE *yyoutput, int yytype, CBDB_Query::TQueryClause **yyvaluep)
static const unsigned char yyrline[]
static void yy_stack_print(short *bottom, short *top)
static const yysigned_char yyrhs[]
static const char *const yytname[]
static const unsigned char yyprhs[]
definition of a Culling tree
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
IO_PREFIX::istream CNcbiIstream
Portable alias for istream.
void AddNode(TTreeType *subnode)
Add new subnode.
const TValue & GetValue(void) const
Return node's value.
unsigned int
A callback function used to compare two keys in a database.
Magic spell ;-) needed for some weird compilers... very empiric.
static TPhyTreeNode * g_Tree
void newick_flex_reset(void)
#define YYDSYMPRINTF(Title, Token, Value, Location)
static const unsigned char yytable[]
vector< TPhyTreeNode * > g_NodeList
static const unsigned char yydefact[]
static void yydestruct(yytype, yyvaluep) int yytype
#define YY_REDUCE_PRINT(Rule)
static const yysigned_char yypact[]
#define YY_STACK_PRINT(Bottom, Top)
static const unsigned char yyr2[]
static const unsigned char yytranslate[]
static const yysigned_char yypgoto[]
static const yysigned_char yycheck[]
static const yysigned_char yydefgoto[]
static const unsigned char yystos[]
#define YYSTACK_RELOCATE(Stack)
CNcbiIstream * g_NewickIstr
static const unsigned char yyr1[]
TPhyTreeNode * ReadNewickTree(CNcbiIstream &is)
Newick format input.
CTreeNode< CPhyNodeData > TPhyTreeNode
static char * yystpcpy(char *yydest, const char *yysrc)
static unsigned int yystrlen(char *yystr) const