12#line 38 "../../build/grammar_nt.c"
82#define YYCODETYPE unsigned char
84#define YYACTIONTYPE unsigned char
85#define NTParseTOKENTYPE VOLK_Term *
94#define YYSTACKDEPTH 100
96#define NTParseARG_SDECL VOLK_GraphIterator *it ;
97#define NTParseARG_PDECL , VOLK_GraphIterator *it
98#define NTParseARG_PARAM ,it
99#define NTParseARG_FETCH VOLK_GraphIterator *it =yypParser->it ;
100#define NTParseARG_STORE yypParser->it =it ;
101#define NTParseCTX_SDECL
102#define NTParseCTX_PDECL
103#define NTParseCTX_PARAM
104#define NTParseCTX_FETCH
105#define NTParseCTX_STORE
108#define YYNRULE_WITH_ACTION 1
110#define YY_MAX_SHIFT 14
111#define YY_MIN_SHIFTREDUCE 25
112#define YY_MAX_SHIFTREDUCE 39
113#define YY_ERROR_ACTION 40
114#define YY_ACCEPT_ACTION 41
115#define YY_NO_ACTION 42
116#define YY_MIN_REDUCE 43
117#define YY_MAX_REDUCE 57
119#define YY_NLOOKAHEAD ((int)(sizeof(yy_lookahead)/sizeof(yy_lookahead[0])))
130# define yytestcase(X)
184#define YY_ACTTAB_COUNT (31)
186 41, 1, 11, 4, 3, 33, 34, 35, 14, 36,
187 39, 9, 3, 5, 39, 30, 31, 8, 10, 36,
188 32, 39, 12, 2, 37, 25, 44, 42, 7, 6,
192 8, 9, 10, 11, 12, 3, 4, 5, 1, 6,
193 7, 11, 12, 15, 7, 3, 4, 13, 10, 6,
194 3, 7, 12, 12, 6, 2, 0, 16, 12, 14,
195 10, 16, 16, 16, 16, 8, 8, 8, 8,
197#define YY_SHIFT_COUNT (14)
198#define YY_SHIFT_MIN (0)
199#define YY_SHIFT_MAX (26)
200static const unsigned char yy_shift_ofst[] = {
201 3, 7, 2, 12, 13, 14, 14, 17, 14, 13,
204#define YY_REDUCE_COUNT (9)
205#define YY_REDUCE_MIN (-8)
206#define YY_REDUCE_MAX (20)
207static const signed char yy_reduce_ofst[] = {
208 -8, 0, -2, 4, 8, 10, 11, 15, 16, 20,
211 56, 56, 40, 40, 40, 56, 56, 40, 56, 40,
264#ifdef YYTRACKMAXSTACKDEPTH
267#ifndef YYNOERRORRECOVERY
286static FILE *yyTraceFILE = 0;
287static char *yyTracePrompt = 0;
309 yyTraceFILE = TraceFILE;
310 yyTracePrompt = zTracePrompt;
311 if( yyTraceFILE==0 ) yyTracePrompt = 0;
312 else if( yyTracePrompt==0 ) yyTraceFILE = 0;
316#if defined(YYCOVERAGE) || !defined(NDEBUG)
319static const char *
const yyTokenName[] = {
342static const char *
const yyRuleName[] = {
343 "triple ::= ws subject ws predicate ws object ws DOT",
344 "ntriplesDoc ::= statements EOF",
345 "statements ::= eol",
346 "statements ::= triple eol",
347 "statements ::= statements triple eol",
348 "subject ::= IRIREF",
350 "predicate ::= IRIREF",
353 "object ::= LITERAL",
372 newSize = p->yystksz*2 + 100;
375 pNew = malloc(newSize*
sizeof(pNew[0]));
376 if( pNew ) pNew[0] = p->yystk0;
378 pNew = realloc(p->
yystack, newSize*
sizeof(pNew[0]));
385 fprintf(yyTraceFILE,
"%sStack grows from %d to %d entries.\n",
386 yyTracePrompt, p->yystksz, newSize);
389 p->yystksz = newSize;
400#ifndef YYMALLOCARGTYPE
401# define YYMALLOCARGTYPE size_t
409#ifdef YYTRACKMAXSTACKDEPTH
410 yypParser->yyhwm = 0;
413 yypParser->
yytos = NULL;
415 yypParser->yystksz = 0;
416 if( yyGrowStack(yypParser) ){
417 yypParser->
yystack = &yypParser->yystk0;
418 yypParser->yystksz = 1;
421#ifndef YYNOERRORRECOVERY
432#ifndef NTParse_ENGINEALWAYSONSTACK
452 return (
void*)yypParser;
464static void yy_destructor(
485#line 32 "grammar_nt.y"
487#line 512 "../../build/grammar_nt.c"
494#line 39 "grammar_nt.y"
496#line 521 "../../build/grammar_nt.c"
510static void yy_pop_parser_stack(
yyParser *pParser){
512 assert( pParser->
yytos!=0 );
517 fprintf(yyTraceFILE,
"%sPopping %s\n",
530 while( pParser->
yytos>pParser->
yystack ) yy_pop_parser_stack(pParser);
536#ifndef NTParse_ENGINEALWAYSONSTACK
547 void (*freeProc)(
void*)
549#ifndef YYPARSEFREENEVERNULL
560#ifdef YYTRACKMAXSTACKDEPTH
561int NTParseStackPeak(
void *p){
563 return pParser->yyhwm;
572#if defined(YYCOVERAGE)
584#if defined(YYCOVERAGE)
585int NTParseCoverage(FILE *out){
586 int stateno, iLookAhead, i;
588 for(stateno=0; stateno<
YYNSTATE; stateno++){
589 i = yy_shift_ofst[stateno];
590 for(iLookAhead=0; iLookAhead<
YYNTOKEN; iLookAhead++){
591 if( yy_lookahead[i+iLookAhead]!=iLookAhead )
continue;
592 if( yycoverage[stateno][iLookAhead]==0 ) nMissed++;
594 fprintf(out,
"State %d lookahead %s %s\n", stateno,
595 yyTokenName[iLookAhead],
596 yycoverage[stateno][iLookAhead] ?
"ok" :
"missed");
616#if defined(YYCOVERAGE)
617 yycoverage[stateno][iLookAhead] = 1;
620 i = yy_shift_ofst[stateno];
628 if( yy_lookahead[i]!=iLookAhead ){
631 assert( iLookAhead<
sizeof(yyFallback)/
sizeof(yyFallback[0]) );
632 iFallback = yyFallback[iLookAhead];
636 fprintf(yyTraceFILE,
"%sFALLBACK %s => %s\n",
637 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
640 assert( yyFallback[iFallback]==0 );
641 iLookAhead = iFallback;
647 int j = i - iLookAhead + YYWILDCARD;
648 assert( j<(
int)(
sizeof(yy_lookahead)/
sizeof(yy_lookahead[0])) );
649 if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
652 fprintf(yyTraceFILE,
"%sWILDCARD %s => %s\n",
653 yyTracePrompt, yyTokenName[iLookAhead],
654 yyTokenName[YYWILDCARD]);
661 return yy_default[stateno];
663 assert( i>=0 && i<(
int)(
sizeof(yy_action)/
sizeof(yy_action[0])) );
680 return yy_default[stateno];
685 i = yy_reduce_ofst[stateno];
690 return yy_default[stateno];
694 assert( yy_lookahead[i]==iLookAhead );
702static void yyStackOverflow(
yyParser *yypParser){
707 fprintf(yyTraceFILE,
"%sStack Overflow!\n",yyTracePrompt);
710 while( yypParser->
yytos>yypParser->
yystack ) yy_pop_parser_stack(yypParser);
723static void yyTraceShift(
yyParser *yypParser,
int yyNewState,
const char *zTag){
726 fprintf(yyTraceFILE,
"%s%s '%s', go to state %d\n",
727 yyTracePrompt, zTag, yyTokenName[yypParser->
yytos->
major],
730 fprintf(yyTraceFILE,
"%s%s '%s', pending reduce %d\n",
731 yyTracePrompt, zTag, yyTokenName[yypParser->
yytos->
major],
737# define yyTraceShift(X,Y,Z)
751#ifdef YYTRACKMAXSTACKDEPTH
752 if( (
int)(yypParser->
yytos - yypParser->
yystack)>yypParser->yyhwm ){
754 assert( yypParser->yyhwm == (
int)(yypParser->
yytos - yypParser->
yystack) );
760 yyStackOverflow(yypParser);
764 if( yypParser->
yytos>=&yypParser->
yystack[yypParser->yystksz] ){
765 if( yyGrowStack(yypParser) ){
767 yyStackOverflow(yypParser);
779 yyTraceShift(yypParser, yyNewState,
"Shift");
804static const signed char yyRuleInfoNRhs[] = {
836 unsigned int yyruleno,
847 (void)yyLookaheadToken;
848 yymsp = yypParser->
yytos;
861#line 33 "grammar_nt.y"
866#line 891 "../../build/grammar_nt.c"
869{ yy_destructor(yypParser,11,&yymsp[-1].minor);
870#line 28 "grammar_nt.y"
873#line 898 "../../build/grammar_nt.c"
877#line 29 "grammar_nt.y"
880#line 905 "../../build/grammar_nt.c"
881 yy_destructor(yypParser,11,&yymsp[-1].minor);
899 assert( yyruleno<
sizeof(yyRuleInfoLhs)/
sizeof(yyRuleInfoLhs[0]) );
900 yygoto = yyRuleInfoLhs[yyruleno];
901 yysize = yyRuleInfoNRhs[yyruleno];
902 yyact = yy_find_reduce_action(yymsp[yysize].stateno,(
YYCODETYPE)yygoto);
912 yypParser->
yytos = yymsp;
915 yyTraceShift(yypParser, yyact,
"... then shift");
922#ifndef YYNOERRORRECOVERY
923static void yy_parse_failed(
930 fprintf(yyTraceFILE,
"%sFail!\n",yyTracePrompt);
933 while( yypParser->
yytos>yypParser->
yystack ) yy_pop_parser_stack(yypParser);
946static void yy_syntax_error(
963static void yy_accept(
970 fprintf(yyTraceFILE,
"%sAccept!\n",yyTracePrompt);
973#ifndef YYNOERRORRECOVERY
1012#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
1022 assert( yypParser->
yytos!=0 );
1023#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
1024 yyendofinput = (yymajor==0);
1031 fprintf(yyTraceFILE,
"%sInput '%s' in state %d\n",
1032 yyTracePrompt,yyTokenName[yymajor],yyact);
1034 fprintf(yyTraceFILE,
"%sInput '%s' with pending reduce %d\n",
1043 yyact = yy_find_shift_action((
YYCODETYPE)yymajor,yyact);
1047 assert( yyruleno<(
int)(
sizeof(yyRuleName)/
sizeof(yyRuleName[0])) );
1049 int yysize = yyRuleInfoNRhs[yyruleno];
1051 fprintf(yyTraceFILE,
"%sReduce %d [%s]%s, pop back to state %d.\n",
1053 yyruleno, yyRuleName[yyruleno],
1057 fprintf(yyTraceFILE,
"%sReduce %d [%s]%s.\n",
1058 yyTracePrompt, yyruleno, yyRuleName[yyruleno],
1067 if( yyRuleInfoNRhs[yyruleno]==0 ){
1068#ifdef YYTRACKMAXSTACKDEPTH
1069 if( (
int)(yypParser->
yytos - yypParser->
yystack)>yypParser->yyhwm ){
1071 assert( yypParser->yyhwm ==
1077 yyStackOverflow(yypParser);
1081 if( yypParser->
yytos>=&yypParser->
yystack[yypParser->yystksz-1] ){
1082 if( yyGrowStack(yypParser) ){
1083 yyStackOverflow(yypParser);
1091 yy_shift(yypParser,yyact,(
YYCODETYPE)yymajor,yyminor);
1092#ifndef YYNOERRORRECOVERY
1098 yy_accept(yypParser);
1102 yyminorunion.
yy0 = yyminor;
1108 fprintf(yyTraceFILE,
"%sSyntax Error!\n",yyTracePrompt);
1132 yy_syntax_error(yypParser,yymajor,yyminor);
1135 if( yymx==YYERRORSYMBOL || yyerrorhit ){
1138 fprintf(yyTraceFILE,
"%sDiscard input token %s\n",
1139 yyTracePrompt,yyTokenName[yymajor]);
1142 yy_destructor(yypParser, (
YYCODETYPE)yymajor, &yyminorunion);
1146 yyact = yy_find_reduce_action(yypParser->
yytos->
stateno,
1149 yy_pop_parser_stack(yypParser);
1151 if( yypParser->
yytos <= yypParser->
yystack || yymajor==0 ){
1152 yy_destructor(yypParser,(
YYCODETYPE)yymajor,&yyminorunion);
1153 yy_parse_failed(yypParser);
1154#ifndef YYNOERRORRECOVERY
1158 }
else if( yymx!=YYERRORSYMBOL ){
1159 yy_shift(yypParser,yyact,YYERRORSYMBOL,yyminor);
1166#elif defined(YYNOERRORRECOVERY)
1174 yy_syntax_error(yypParser,yymajor, yyminor);
1175 yy_destructor(yypParser,(
YYCODETYPE)yymajor,&yyminorunion);
1188 yy_syntax_error(yypParser,yymajor, yyminor);
1191 yy_destructor(yypParser,(
YYCODETYPE)yymajor,&yyminorunion);
1193 yy_parse_failed(yypParser);
1194#ifndef YYNOERRORRECOVERY
1206 fprintf(yyTraceFILE,
"%sReturn. Stack=",yyTracePrompt);
1207 for(i=&yypParser->
yystack[1]; i<=yypParser->
yytos; i++){
1208 fprintf(yyTraceFILE,
"%c%s", cDiv, yyTokenName[i->
major]);
1211 fprintf(yyTraceFILE,
"]\n");
1223 assert( iToken<(
int)(
sizeof(yyFallback)/
sizeof(yyFallback[0])) );
1224 return yyFallback[iToken];
#define YY_MIN_SHIFTREDUCE
#define YY_MAX_SHIFTREDUCE
#define YYNRULE_WITH_ACTION
void NTParseTrace(FILE *TraceFILE, char *zTracePrompt)
void NTParseFinalize(void *p)
int NTParseFallback(int iToken)
void NTParseInit(void *yypRawParser)
VOLK_Triple * VOLK_triple_new(VOLK_Term *s, VOLK_Term *p, VOLK_Term *o)
Create a new triple from three terms.
void VOLK_term_free(VOLK_Term *term)
void VOLK_triple_free(VOLK_Triple *spo)
Free a triple and all its internal pointers.
VOLK_rc VOLK_graph_add_iter(VOLK_GraphIterator *it, const VOLK_Triple *spo)
Add a single triple to the store.
yyStackEntry * yystackEnd
yyStackEntry yystack[100]