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 ::= triples EOF",
346 "triples ::= triple eol",
347 "triples ::= triples 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"
492#line 39 "grammar_nt.y"
494#line 519 "../../build/grammar_nt.c"
500#line 44 "grammar_nt.y"
502#line 527 "../../build/grammar_nt.c"
516static void yy_pop_parser_stack(
yyParser *pParser){
518 assert( pParser->
yytos!=0 );
523 fprintf(yyTraceFILE,
"%sPopping %s\n",
536 while( pParser->
yytos>pParser->
yystack ) yy_pop_parser_stack(pParser);
542#ifndef NTParse_ENGINEALWAYSONSTACK
553 void (*freeProc)(
void*)
555#ifndef YYPARSEFREENEVERNULL
566#ifdef YYTRACKMAXSTACKDEPTH
567int NTParseStackPeak(
void *p){
569 return pParser->yyhwm;
578#if defined(YYCOVERAGE)
590#if defined(YYCOVERAGE)
591int NTParseCoverage(FILE *out){
592 int stateno, iLookAhead, i;
594 for(stateno=0; stateno<
YYNSTATE; stateno++){
595 i = yy_shift_ofst[stateno];
596 for(iLookAhead=0; iLookAhead<
YYNTOKEN; iLookAhead++){
597 if( yy_lookahead[i+iLookAhead]!=iLookAhead )
continue;
598 if( yycoverage[stateno][iLookAhead]==0 ) nMissed++;
600 fprintf(out,
"State %d lookahead %s %s\n", stateno,
601 yyTokenName[iLookAhead],
602 yycoverage[stateno][iLookAhead] ?
"ok" :
"missed");
622#if defined(YYCOVERAGE)
623 yycoverage[stateno][iLookAhead] = 1;
626 i = yy_shift_ofst[stateno];
634 if( yy_lookahead[i]!=iLookAhead ){
637 assert( iLookAhead<
sizeof(yyFallback)/
sizeof(yyFallback[0]) );
638 iFallback = yyFallback[iLookAhead];
642 fprintf(yyTraceFILE,
"%sFALLBACK %s => %s\n",
643 yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
646 assert( yyFallback[iFallback]==0 );
647 iLookAhead = iFallback;
653 int j = i - iLookAhead + YYWILDCARD;
654 assert( j<(
int)(
sizeof(yy_lookahead)/
sizeof(yy_lookahead[0])) );
655 if( yy_lookahead[j]==YYWILDCARD && iLookAhead>0 ){
658 fprintf(yyTraceFILE,
"%sWILDCARD %s => %s\n",
659 yyTracePrompt, yyTokenName[iLookAhead],
660 yyTokenName[YYWILDCARD]);
667 return yy_default[stateno];
669 assert( i>=0 && i<(
int)(
sizeof(yy_action)/
sizeof(yy_action[0])) );
686 return yy_default[stateno];
691 i = yy_reduce_ofst[stateno];
696 return yy_default[stateno];
700 assert( yy_lookahead[i]==iLookAhead );
708static void yyStackOverflow(
yyParser *yypParser){
713 fprintf(yyTraceFILE,
"%sStack Overflow!\n",yyTracePrompt);
716 while( yypParser->
yytos>yypParser->
yystack ) yy_pop_parser_stack(yypParser);
729static void yyTraceShift(
yyParser *yypParser,
int yyNewState,
const char *zTag){
732 fprintf(yyTraceFILE,
"%s%s '%s', go to state %d\n",
733 yyTracePrompt, zTag, yyTokenName[yypParser->
yytos->
major],
736 fprintf(yyTraceFILE,
"%s%s '%s', pending reduce %d\n",
737 yyTracePrompt, zTag, yyTokenName[yypParser->
yytos->
major],
743# define yyTraceShift(X,Y,Z)
757#ifdef YYTRACKMAXSTACKDEPTH
758 if( (
int)(yypParser->
yytos - yypParser->
yystack)>yypParser->yyhwm ){
760 assert( yypParser->yyhwm == (
int)(yypParser->
yytos - yypParser->
yystack) );
766 yyStackOverflow(yypParser);
770 if( yypParser->
yytos>=&yypParser->
yystack[yypParser->yystksz] ){
771 if( yyGrowStack(yypParser) ){
773 yyStackOverflow(yypParser);
785 yyTraceShift(yypParser, yyNewState,
"Shift");
810static const signed char yyRuleInfoNRhs[] = {
842 unsigned int yyruleno,
853 (void)yyLookaheadToken;
854 yymsp = yypParser->
yytos;
867#line 33 "grammar_nt.y"
872#line 897 "../../build/grammar_nt.c"
875{ yy_destructor(yypParser,11,&yymsp[-1].minor);
876#line 28 "grammar_nt.y"
879#line 904 "../../build/grammar_nt.c"
883#line 29 "grammar_nt.y"
886#line 911 "../../build/grammar_nt.c"
887 yy_destructor(yypParser,11,&yymsp[-1].minor);
905 assert( yyruleno<
sizeof(yyRuleInfoLhs)/
sizeof(yyRuleInfoLhs[0]) );
906 yygoto = yyRuleInfoLhs[yyruleno];
907 yysize = yyRuleInfoNRhs[yyruleno];
908 yyact = yy_find_reduce_action(yymsp[yysize].stateno,(
YYCODETYPE)yygoto);
918 yypParser->
yytos = yymsp;
921 yyTraceShift(yypParser, yyact,
"... then shift");
928#ifndef YYNOERRORRECOVERY
929static void yy_parse_failed(
936 fprintf(yyTraceFILE,
"%sFail!\n",yyTracePrompt);
939 while( yypParser->
yytos>yypParser->
yystack ) yy_pop_parser_stack(yypParser);
952static void yy_syntax_error(
969static void yy_accept(
976 fprintf(yyTraceFILE,
"%sAccept!\n",yyTracePrompt);
979#ifndef YYNOERRORRECOVERY
1018#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
1028 assert( yypParser->
yytos!=0 );
1029#if !defined(YYERRORSYMBOL) && !defined(YYNOERRORRECOVERY)
1030 yyendofinput = (yymajor==0);
1037 fprintf(yyTraceFILE,
"%sInput '%s' in state %d\n",
1038 yyTracePrompt,yyTokenName[yymajor],yyact);
1040 fprintf(yyTraceFILE,
"%sInput '%s' with pending reduce %d\n",
1049 yyact = yy_find_shift_action((
YYCODETYPE)yymajor,yyact);
1053 assert( yyruleno<(
int)(
sizeof(yyRuleName)/
sizeof(yyRuleName[0])) );
1055 int yysize = yyRuleInfoNRhs[yyruleno];
1057 fprintf(yyTraceFILE,
"%sReduce %d [%s]%s, pop back to state %d.\n",
1059 yyruleno, yyRuleName[yyruleno],
1063 fprintf(yyTraceFILE,
"%sReduce %d [%s]%s.\n",
1064 yyTracePrompt, yyruleno, yyRuleName[yyruleno],
1073 if( yyRuleInfoNRhs[yyruleno]==0 ){
1074#ifdef YYTRACKMAXSTACKDEPTH
1075 if( (
int)(yypParser->
yytos - yypParser->
yystack)>yypParser->yyhwm ){
1077 assert( yypParser->yyhwm ==
1083 yyStackOverflow(yypParser);
1087 if( yypParser->
yytos>=&yypParser->
yystack[yypParser->yystksz-1] ){
1088 if( yyGrowStack(yypParser) ){
1089 yyStackOverflow(yypParser);
1097 yy_shift(yypParser,yyact,(
YYCODETYPE)yymajor,yyminor);
1098#ifndef YYNOERRORRECOVERY
1104 yy_accept(yypParser);
1108 yyminorunion.
yy0 = yyminor;
1114 fprintf(yyTraceFILE,
"%sSyntax Error!\n",yyTracePrompt);
1138 yy_syntax_error(yypParser,yymajor,yyminor);
1141 if( yymx==YYERRORSYMBOL || yyerrorhit ){
1144 fprintf(yyTraceFILE,
"%sDiscard input token %s\n",
1145 yyTracePrompt,yyTokenName[yymajor]);
1148 yy_destructor(yypParser, (
YYCODETYPE)yymajor, &yyminorunion);
1152 yyact = yy_find_reduce_action(yypParser->
yytos->
stateno,
1155 yy_pop_parser_stack(yypParser);
1157 if( yypParser->
yytos <= yypParser->
yystack || yymajor==0 ){
1158 yy_destructor(yypParser,(
YYCODETYPE)yymajor,&yyminorunion);
1159 yy_parse_failed(yypParser);
1160#ifndef YYNOERRORRECOVERY
1164 }
else if( yymx!=YYERRORSYMBOL ){
1165 yy_shift(yypParser,yyact,YYERRORSYMBOL,yyminor);
1172#elif defined(YYNOERRORRECOVERY)
1180 yy_syntax_error(yypParser,yymajor, yyminor);
1181 yy_destructor(yypParser,(
YYCODETYPE)yymajor,&yyminorunion);
1194 yy_syntax_error(yypParser,yymajor, yyminor);
1197 yy_destructor(yypParser,(
YYCODETYPE)yymajor,&yyminorunion);
1199 yy_parse_failed(yypParser);
1200#ifndef YYNOERRORRECOVERY
1212 fprintf(yyTraceFILE,
"%sReturn. Stack=",yyTracePrompt);
1213 for(i=&yypParser->
yystack[1]; i<=yypParser->
yytos; i++){
1214 fprintf(yyTraceFILE,
"%c%s", cDiv, yyTokenName[i->
major]);
1217 fprintf(yyTraceFILE,
"]\n");
1229 assert( iToken<(
int)(
sizeof(yyFallback)/
sizeof(yyFallback[0])) );
1230 return yyFallback[iToken];
void NTParseTrace(FILE *TraceFILE, char *zTracePrompt)
#define YY_MIN_SHIFTREDUCE
void NTParseInit(void *yypRawParser NTParseCTX_PDECL)
void NTParseFinalize(void *p)
#define YY_MAX_SHIFTREDUCE
int NTParseFallback(int iToken)
#define YYNRULE_WITH_ACTION
VOLK_rc VOLK_graph_add_iter(VOLK_GraphIterator *it, const VOLK_Triple *spo)
Add a single triple to the store.
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.
NTParseARG_SDECL NTParseCTX_SDECL yyStackEntry yystack[YYSTACKDEPTH]
yyStackEntry * yystackEnd