Back to index

lightning-sunbird  0.9+nobinonly
Classes | Defines | Typedefs | Functions | Variables
parse.c File Reference
#include <stdio.h>
#include "sqliteInt.h"
#include "parse.h"

Go to the source code of this file.

Classes

struct  LimitVal
struct  LikeOp
struct  TrigEvent
struct  AttachKey
union  YYMINORTYPE
struct  yyStackEntry
struct  yyParser
struct  YYMINORTYPE.yy13

Defines

#define INTERFACE   1
#define YYCODETYPE   unsigned char
#define YYNOCODE   240
#define YYACTIONTYPE   unsigned short int
#define sqlite3ParserTOKENTYPE   Token
#define YYSTACKDEPTH   100
#define sqlite3ParserARG_SDECL   Parse *pParse;
#define sqlite3ParserARG_PDECL   ,Parse *pParse
#define sqlite3ParserARG_FETCH   Parse *pParse = yypParser->pParse
#define sqlite3ParserARG_STORE   yypParser->pParse = pParse
#define YYNSTATE   559
#define YYNRULE   295
#define YYERRORSYMBOL   137
#define YYERRSYMDT   yy479
#define YYFALLBACK   1
#define YY_NO_ACTION   (YYNSTATE+YYNRULE+2)
#define YY_ACCEPT_ACTION   (YYNSTATE+YYNRULE+1)
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)
#define YY_SHIFT_USE_DFLT   (-98)
#define YY_SHIFT_MAX   369
#define YY_REDUCE_USE_DFLT   (-216)
#define YY_REDUCE_MAX   278
#define YY_SZ_ACTTAB   (sizeof(yy_action)/sizeof(yy_action[0]))
#define TOKEN   (yyminor.yy0)

Typedefs

typedef struct yyStackEntry
typedef struct yyParser

Functions

const char * sqlite3ParserTokenName (int tokenType)
voidsqlite3ParserAlloc (void *(*mallocProc)(size_t))
static void yy_destructor (YYCODETYPE yymajor, YYMINORTYPE *yypminor)
static int yy_pop_parser_stack (yyParser *pParser)
void sqlite3ParserFree (void *p, void(*freeProc)(void *))
static int yy_find_shift_action (yyParser *pParser, int iLookAhead)
static int yy_find_reduce_action (int stateno, int iLookAhead)
static void yy_shift (yyParser *yypParser, int yyNewState, int yyMajor, YYMINORTYPE *yypMinor)
static void yy_accept (yyParser *)
static void yy_reduce (yyParser *yypParser, int yyruleno)
static void yy_parse_failed (yyParser *yypParser)
static void yy_syntax_error (yyParser *yypParser, int yymajor, YYMINORTYPE yyminor)
void sqlite3Parser (void *yyp, int yymajor, sqlite3ParserTOKENTYPE yyminorsqlite3ParserARG_PDECL)

Variables

static const YYACTIONTYPE yy_action []
static const YYCODETYPE yy_lookahead []
static const short yy_shift_ofst []
static const short yy_reduce_ofst []
static const YYACTIONTYPE yy_default []
static const YYCODETYPE yyFallback []
struct {
YYCODETYPE lhs
unsigned char nrhs
yyRuleInfo []

Class Documentation

struct LimitVal

Definition at line 16 of file parse.c.

Collaboration diagram for LimitVal:
Class Members
Expr * pLimit
Expr * pOffset
struct LikeOp

Definition at line 25 of file parse.c.

Collaboration diagram for LikeOp:
Class Members
Token eOperator
int not
struct TrigEvent

Definition at line 39 of file parse.c.

Collaboration diagram for TrigEvent:
Class Members
int a
IdList * b
struct AttachKey

Definition at line 44 of file parse.c.

Collaboration diagram for AttachKey:
Class Members
Token key
int type
union YYMINORTYPE

Definition at line 99 of file parse.c.

Collaboration diagram for YYMINORTYPE:
Class Members
sqlite3ParserTOKENTYPE yy0
struct YYMINORTYPE yy13
IdList * yy160
Expr * yy178
int yy230
Select * yy239
TriggerStep * yy247
SrcList * yy285
Expr * yy292
Token yy384
ExprList * yy462
int yy479
struct yyStackEntry

Definition at line 734 of file parse.c.

Collaboration diagram for yyStackEntry:
Class Members
int major
YYMINORTYPE minor
int stateno
struct yyParser

Definition at line 745 of file parse.c.

Collaboration diagram for yyParser:
Class Members
int yyerrcnt
int yyidx
sqlite3ParserARG_SDECL yyStackEntry yystack
struct YYMINORTYPE.yy13

Definition at line 101 of file parse.c.

Class Members
int mask
int value

Define Documentation

#define INTERFACE   1

Definition at line 60 of file parse.c.

#define sqlite3ParserARG_FETCH   Parse *pParse = yypParser->pParse

Definition at line 119 of file parse.c.

Definition at line 118 of file parse.c.

Definition at line 117 of file parse.c.

#define sqlite3ParserARG_STORE   yypParser->pParse = pParse

Definition at line 120 of file parse.c.

Definition at line 98 of file parse.c.

#define TOKEN   (yyminor.yy0)

Definition at line 127 of file parse.c.

Definition at line 128 of file parse.c.

Definition at line 126 of file parse.c.

#define YY_REDUCE_MAX   278

Definition at line 479 of file parse.c.

#define YY_REDUCE_USE_DFLT   (-216)

Definition at line 478 of file parse.c.

#define YY_SHIFT_MAX   369

Definition at line 438 of file parse.c.

Definition at line 437 of file parse.c.

#define YY_SZ_ACTTAB   (sizeof(yy_action)/sizeof(yy_action[0]))

Definition at line 568 of file parse.c.

#define YYACTIONTYPE   unsigned short int

Definition at line 97 of file parse.c.

#define YYCODETYPE   unsigned char

Definition at line 95 of file parse.c.

#define YYERRORSYMBOL   137

Definition at line 123 of file parse.c.

#define YYERRSYMDT   yy479

Definition at line 124 of file parse.c.

#define YYFALLBACK   1

Definition at line 125 of file parse.c.

#define YYNOCODE   240

Definition at line 96 of file parse.c.

#define YYNRULE   295

Definition at line 122 of file parse.c.

#define YYNSTATE   559

Definition at line 121 of file parse.c.

#define YYSTACKDEPTH   100

Definition at line 116 of file parse.c.


Typedef Documentation

typedef struct yyParser

Definition at line 751 of file parse.c.

typedef struct yyStackEntry

Definition at line 741 of file parse.c.


Function Documentation

void sqlite3Parser ( void yyp,
int  yymajor,
sqlite3ParserTOKENTYPE yyminor  sqlite3ParserARG_PDECL 
)

Definition at line 3187 of file parse.c.

 {
  YYMINORTYPE yyminorunion;
  int yyact;            /* The parser action. */
  int yyendofinput;     /* True if we are at the end of input */
  int yyerrorhit = 0;   /* True if yymajor has invoked an error */
  yyParser *yypParser;  /* The parser */

  /* (re)initialize the parser, if necessary */
  yypParser = (yyParser*)yyp;
  if( yypParser->yyidx<0 ){
    /* if( yymajor==0 ) return; // not sure why this was here... */
    yypParser->yyidx = 0;
    yypParser->yyerrcnt = -1;
    yypParser->yystack[0].stateno = 0;
    yypParser->yystack[0].major = 0;
  }
  yyminorunion.yy0 = yyminor;
  yyendofinput = (yymajor==0);
  sqlite3ParserARG_STORE;

#ifndef NDEBUG
  if( yyTraceFILE ){
    fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]);
  }
#endif

  do{
    yyact = yy_find_shift_action(yypParser,yymajor);
    if( yyact<YYNSTATE ){
      yy_shift(yypParser,yyact,yymajor,&yyminorunion);
      yypParser->yyerrcnt--;
      if( yyendofinput && yypParser->yyidx>=0 ){
        yymajor = 0;
      }else{
        yymajor = YYNOCODE;
      }
    }else if( yyact < YYNSTATE + YYNRULE ){
      yy_reduce(yypParser,yyact-YYNSTATE);
    }else if( yyact == YY_ERROR_ACTION ){
      int yymx;
#ifndef NDEBUG
      if( yyTraceFILE ){
        fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt);
      }
#endif
#ifdef YYERRORSYMBOL
      /* A syntax error has occurred.
      ** The response to an error depends upon whether or not the
      ** grammar defines an error token "ERROR".  
      **
      ** This is what we do if the grammar does define ERROR:
      **
      **  * Call the %syntax_error function.
      **
      **  * Begin popping the stack until we enter a state where
      **    it is legal to shift the error symbol, then shift
      **    the error symbol.
      **
      **  * Set the error count to three.
      **
      **  * Begin accepting and shifting new tokens.  No new error
      **    processing will occur until three tokens have been
      **    shifted successfully.
      **
      */
      if( yypParser->yyerrcnt<0 ){
        yy_syntax_error(yypParser,yymajor,yyminorunion);
      }
      yymx = yypParser->yystack[yypParser->yyidx].major;
      if( yymx==YYERRORSYMBOL || yyerrorhit ){
#ifndef NDEBUG
        if( yyTraceFILE ){
          fprintf(yyTraceFILE,"%sDiscard input token %s\n",
             yyTracePrompt,yyTokenName[yymajor]);
        }
#endif
        yy_destructor(yymajor,&yyminorunion);
        yymajor = YYNOCODE;
      }else{
         while(
          yypParser->yyidx >= 0 &&
          yymx != YYERRORSYMBOL &&
          (yyact = yy_find_reduce_action(
                        yypParser->yystack[yypParser->yyidx].stateno,
                        YYERRORSYMBOL)) >= YYNSTATE
        ){
          yy_pop_parser_stack(yypParser);
        }
        if( yypParser->yyidx < 0 || yymajor==0 ){
          yy_destructor(yymajor,&yyminorunion);
          yy_parse_failed(yypParser);
          yymajor = YYNOCODE;
        }else if( yymx!=YYERRORSYMBOL ){
          YYMINORTYPE u2;
          u2.YYERRSYMDT = 0;
          yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2);
        }
      }
      yypParser->yyerrcnt = 3;
      yyerrorhit = 1;
#else  /* YYERRORSYMBOL is not defined */
      /* This is what we do if the grammar does not define ERROR:
      **
      **  * Report an error message, and throw away the input token.
      **
      **  * If the input token is $, then fail the parse.
      **
      ** As before, subsequent error messages are suppressed until
      ** three input tokens have been successfully shifted.
      */
      if( yypParser->yyerrcnt<=0 ){
        yy_syntax_error(yypParser,yymajor,yyminorunion);
      }
      yypParser->yyerrcnt = 3;
      yy_destructor(yymajor,&yyminorunion);
      if( yyendofinput ){
        yy_parse_failed(yypParser);
      }
      yymajor = YYNOCODE;
#endif
    }else{
      yy_accept(yypParser);
      yymajor = YYNOCODE;
    }
  }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 );
  return;
}

Here is the call graph for this function:

Here is the caller graph for this function:

void* sqlite3ParserAlloc ( void *(*)(size_t)  mallocProc)

Definition at line 1182 of file parse.c.

                                                     {
  yyParser *pParser;
  pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );
  if( pParser ){
    pParser->yyidx = -1;
  }
  return pParser;
}

Here is the caller graph for this function:

void sqlite3ParserFree ( void p,
void(*)(void *)  freeProc 
)

Definition at line 1326 of file parse.c.

 {
  yyParser *pParser = (yyParser*)p;
  if( pParser==0 ) return;
  while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser);
  (*freeProc)((void*)pParser);
}

Here is the call graph for this function:

Here is the caller graph for this function:

const char* sqlite3ParserTokenName ( int  tokenType)

Definition at line 1158 of file parse.c.

                                                 {
#ifndef NDEBUG
  if( tokenType>0 && tokenType<(sizeof(yyTokenName)/sizeof(yyTokenName[0])) ){
    return yyTokenName[tokenType];
  }else{
    return "Unknown";
  }
#else
  return "";
#endif
}
static void yy_accept ( yyParser yypParser) [static]

Definition at line 3153 of file parse.c.

 {
  sqlite3ParserARG_FETCH;
#ifndef NDEBUG
  if( yyTraceFILE ){
    fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
  }
#endif
  while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
  /* Here code is inserted which will be executed whenever the
  ** parser accepts */
  sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void yy_destructor ( YYCODETYPE  yymajor,
YYMINORTYPE yypminor 
) [static]

Definition at line 1196 of file parse.c.

                                                                    {
  switch( yymajor ){
    /* Here is inserted the actions which take place when a
    ** terminal or non-terminal is destroyed.  This can happen
    ** when the symbol is popped from the stack during a
    ** reduce or during error processing or when a parser is 
    ** being destroyed before it is finished parsing.
    **
    ** Note: during a reduce, the only symbols destroyed are those
    ** which appear on the RHS of the rule, but which are not used
    ** inside the C code.
    */
    case 154:
    case 188:
    case 205:
#line 371 "parse.y"
{sqlite3SelectDelete((yypminor->yy239));}
#line 1215 "parse.c"
      break;
    case 168:
    case 169:
    case 193:
    case 195:
    case 203:
    case 209:
    case 217:
    case 220:
    case 222:
    case 223:
    case 233:
#line 628 "parse.y"
{sqlite3ExprDelete((yypminor->yy178));}
#line 1230 "parse.c"
      break;
    case 173:
    case 181:
    case 191:
    case 194:
    case 196:
    case 198:
    case 208:
    case 211:
    case 212:
    case 215:
    case 221:
#line 859 "parse.y"
{sqlite3ExprListDelete((yypminor->yy462));}
#line 1245 "parse.c"
      break;
    case 187:
    case 192:
    case 200:
    case 201:
#line 499 "parse.y"
{sqlite3SrcListDelete((yypminor->yy285));}
#line 1253 "parse.c"
      break;
    case 197:
#line 560 "parse.y"
{
  sqlite3ExprDelete((yypminor->yy270).pLimit);
  sqlite3ExprDelete((yypminor->yy270).pOffset);
}
#line 1261 "parse.c"
      break;
    case 204:
    case 207:
    case 214:
#line 516 "parse.y"
{sqlite3IdListDelete((yypminor->yy160));}
#line 1268 "parse.c"
      break;
    case 229:
    case 234:
#line 953 "parse.y"
{sqlite3DeleteTriggerStep((yypminor->yy247));}
#line 1274 "parse.c"
      break;
    case 231:
#line 937 "parse.y"
{sqlite3IdListDelete((yypminor->yy132).b);}
#line 1279 "parse.c"
      break;
    case 236:
#line 1021 "parse.y"
{sqlite3ExprDelete((yypminor->yy292));}
#line 1284 "parse.c"
      break;
    default:  break;   /* If no destructor action specified: do nothing */
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

static int yy_find_reduce_action ( int  stateno,
int  iLookAhead 
) [static]

Definition at line 1386 of file parse.c.

 {
  int i;
  /* int stateno = pParser->yystack[pParser->yyidx].stateno; */
 
  if( stateno>YY_REDUCE_MAX ||
      (i = yy_reduce_ofst[stateno])==YY_REDUCE_USE_DFLT ){
    return yy_default[stateno];
  }
  if( iLookAhead==YYNOCODE ){
    return YY_NO_ACTION;
  }
  i += iLookAhead;
  if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){
    return yy_default[stateno];
  }else{
    return yy_action[i];
  }
}

Here is the caller graph for this function:

static int yy_find_shift_action ( yyParser pParser,
int  iLookAhead 
) [static]

Definition at line 1344 of file parse.c.

 {
  int i;
  int stateno = pParser->yystack[pParser->yyidx].stateno;
 
  if( stateno>YY_SHIFT_MAX || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){
    return yy_default[stateno];
  }
  if( iLookAhead==YYNOCODE ){
    return YY_NO_ACTION;
  }
  i += iLookAhead;
  if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){
#ifdef YYFALLBACK
    int iFallback;            /* Fallback token */
    if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
           && (iFallback = yyFallback[iLookAhead])!=0 ){
#ifndef NDEBUG
      if( yyTraceFILE ){
        fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
           yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
      }
#endif
      return yy_find_shift_action(pParser, iFallback);
    }
#endif
    return yy_default[stateno];
  }else{
    return yy_action[i];
  }
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void yy_parse_failed ( yyParser yypParser) [static]

Definition at line 3112 of file parse.c.

 {
  sqlite3ParserARG_FETCH;
#ifndef NDEBUG
  if( yyTraceFILE ){
    fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
  }
#endif
  while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
  /* Here code is inserted which will be executed whenever the
  ** parser fails */
  sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
}

Here is the call graph for this function:

Here is the caller graph for this function:

static int yy_pop_parser_stack ( yyParser pParser) [static]

Definition at line 1296 of file parse.c.

                                                 {
  YYCODETYPE yymajor;
  yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];

  if( pParser->yyidx<0 ) return 0;
#ifndef NDEBUG
  if( yyTraceFILE && pParser->yyidx>=0 ){
    fprintf(yyTraceFILE,"%sPopping %s\n",
      yyTracePrompt,
      yyTokenName[yytos->major]);
  }
#endif
  yymajor = yytos->major;
  yy_destructor( yymajor, &yytos->minor);
  pParser->yyidx--;
  return yymajor;
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void yy_reduce ( yyParser yypParser,
int  yyruleno 
) [static]

Definition at line 1763 of file parse.c.

 {
  int yygoto;                     /* The next state */
  int yyact;                      /* The next action */
  YYMINORTYPE yygotominor;        /* The LHS of the rule reduced */
  yyStackEntry *yymsp;            /* The top of the parser's stack */
  int yysize;                     /* Amount to pop the stack */
  sqlite3ParserARG_FETCH;
  yymsp = &yypParser->yystack[yypParser->yyidx];
#ifndef NDEBUG
  if( yyTraceFILE && yyruleno>=0 
        && yyruleno<sizeof(yyRuleName)/sizeof(yyRuleName[0]) ){
    fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt,
      yyRuleName[yyruleno]);
  }
#endif /* NDEBUG */

#ifndef NDEBUG
  /* Silence complaints from purify about yygotominor being uninitialized
  ** in some cases when it is copied into the stack after the following
  ** switch.  yygotominor is uninitialized when a rule reduces that does
  ** not set the value of its left-hand side nonterminal.  Leaving the
  ** value of the nonterminal uninitialized is utterly harmless as long
  ** as the value is never used.  So really the only thing this code
  ** accomplishes is to quieten purify.  
  */
  memset(&yygotominor, 0, sizeof(yygotominor));
#endif

  switch( yyruleno ){
  /* Beginning here are the reduction cases.  A typical example
  ** follows:
  **   case 0:
  **  #line <lineno> <grammarfile>
  **     { ... }           // User supplied code
  **  #line <lineno> <thisfile>
  **     break;
  */
      case 3:
#line 98 "parse.y"
{ sqlite3FinishCoding(pParse); }
#line 1809 "parse.c"
        break;
      case 6:
#line 101 "parse.y"
{ sqlite3BeginParse(pParse, 0); }
#line 1814 "parse.c"
        break;
      case 7:
#line 103 "parse.y"
{ sqlite3BeginParse(pParse, 1); }
#line 1819 "parse.c"
        break;
      case 8:
#line 104 "parse.y"
{ sqlite3BeginParse(pParse, 2); }
#line 1824 "parse.c"
        break;
      case 9:
#line 110 "parse.y"
{sqlite3BeginTransaction(pParse, yymsp[-1].minor.yy230);}
#line 1829 "parse.c"
        break;
      case 13:
#line 115 "parse.y"
{yygotominor.yy230 = TK_DEFERRED;}
#line 1834 "parse.c"
        break;
      case 14:
      case 15:
      case 16:
      case 107:
      case 109:
#line 116 "parse.y"
{yygotominor.yy230 = yymsp[0].major;}
#line 1843 "parse.c"
        break;
      case 17:
      case 18:
#line 119 "parse.y"
{sqlite3CommitTransaction(pParse);}
#line 1849 "parse.c"
        break;
      case 19:
#line 121 "parse.y"
{sqlite3RollbackTransaction(pParse);}
#line 1854 "parse.c"
        break;
      case 21:
#line 126 "parse.y"
{
   sqlite3StartTable(pParse,&yymsp[-1].minor.yy384,&yymsp[0].minor.yy384,yymsp[-4].minor.yy230,0,yymsp[-2].minor.yy230);
}
#line 1861 "parse.c"
        break;
      case 22:
      case 25:
      case 63:
      case 77:
      case 79:
      case 90:
      case 101:
      case 112:
      case 113:
      case 210:
      case 213:
#line 130 "parse.y"
{yygotominor.yy230 = 0;}
#line 1876 "parse.c"
        break;
      case 23:
      case 24:
      case 64:
      case 78:
      case 100:
      case 111:
      case 211:
      case 214:
#line 131 "parse.y"
{yygotominor.yy230 = 1;}
#line 1888 "parse.c"
        break;
      case 26:
#line 137 "parse.y"
{
  sqlite3EndTable(pParse,&yymsp[-1].minor.yy384,&yymsp[0].minor.yy0,0);
}
#line 1895 "parse.c"
        break;
      case 27:
#line 140 "parse.y"
{
  sqlite3EndTable(pParse,0,0,yymsp[0].minor.yy239);
  sqlite3SelectDelete(yymsp[0].minor.yy239);
}
#line 1903 "parse.c"
        break;
      case 30:
#line 152 "parse.y"
{
  yygotominor.yy384.z = yymsp[-2].minor.yy384.z;
  yygotominor.yy384.n = (pParse->sLastToken.z-yymsp[-2].minor.yy384.z) + pParse->sLastToken.n;
}
#line 1911 "parse.c"
        break;
      case 31:
#line 156 "parse.y"
{
  sqlite3AddColumn(pParse,&yymsp[0].minor.yy384);
  yygotominor.yy384 = yymsp[0].minor.yy384;
}
#line 1919 "parse.c"
        break;
      case 32:
      case 33:
      case 34:
      case 35:
      case 36:
      case 250:
#line 166 "parse.y"
{yygotominor.yy384 = yymsp[0].minor.yy0;}
#line 1929 "parse.c"
        break;
      case 38:
#line 225 "parse.y"
{sqlite3AddColumnType(pParse,&yymsp[0].minor.yy384);}
#line 1934 "parse.c"
        break;
      case 39:
      case 42:
      case 119:
      case 120:
      case 131:
      case 150:
      case 238:
      case 248:
      case 249:
#line 226 "parse.y"
{yygotominor.yy384 = yymsp[0].minor.yy384;}
#line 1947 "parse.c"
        break;
      case 40:
#line 227 "parse.y"
{
  yygotominor.yy384.z = yymsp[-3].minor.yy384.z;
  yygotominor.yy384.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-3].minor.yy384.z;
}
#line 1955 "parse.c"
        break;
      case 41:
#line 231 "parse.y"
{
  yygotominor.yy384.z = yymsp[-5].minor.yy384.z;
  yygotominor.yy384.n = &yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[-5].minor.yy384.z;
}
#line 1963 "parse.c"
        break;
      case 43:
#line 237 "parse.y"
{yygotominor.yy384.z=yymsp[-1].minor.yy384.z; yygotominor.yy384.n=yymsp[0].minor.yy384.n+(yymsp[0].minor.yy384.z-yymsp[-1].minor.yy384.z);}
#line 1968 "parse.c"
        break;
      case 44:
#line 239 "parse.y"
{ yygotominor.yy230 = atoi((char*)yymsp[0].minor.yy384.z); }
#line 1973 "parse.c"
        break;
      case 45:
#line 240 "parse.y"
{ yygotominor.yy230 = -atoi((char*)yymsp[0].minor.yy384.z); }
#line 1978 "parse.c"
        break;
      case 50:
      case 52:
#line 249 "parse.y"
{sqlite3AddDefaultValue(pParse,yymsp[0].minor.yy178);}
#line 1984 "parse.c"
        break;
      case 51:
#line 250 "parse.y"
{sqlite3AddDefaultValue(pParse,yymsp[-1].minor.yy178);}
#line 1989 "parse.c"
        break;
      case 53:
#line 252 "parse.y"
{
  Expr *p = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy178, 0, 0);
  sqlite3AddDefaultValue(pParse,p);
}
#line 1997 "parse.c"
        break;
      case 54:
#line 256 "parse.y"
{
  Expr *p = sqlite3Expr(TK_STRING, 0, 0, &yymsp[0].minor.yy384);
  sqlite3AddDefaultValue(pParse,p);
}
#line 2005 "parse.c"
        break;
      case 56:
#line 265 "parse.y"
{sqlite3AddNotNull(pParse, yymsp[0].minor.yy230);}
#line 2010 "parse.c"
        break;
      case 57:
#line 267 "parse.y"
{sqlite3AddPrimaryKey(pParse,0,yymsp[-1].minor.yy230,yymsp[0].minor.yy230,yymsp[-2].minor.yy230);}
#line 2015 "parse.c"
        break;
      case 58:
#line 268 "parse.y"
{sqlite3CreateIndex(pParse,0,0,0,0,yymsp[0].minor.yy230,0,0,0,0);}
#line 2020 "parse.c"
        break;
      case 59:
#line 269 "parse.y"
{sqlite3AddCheckConstraint(pParse,yymsp[-1].minor.yy178);}
#line 2025 "parse.c"
        break;
      case 60:
#line 271 "parse.y"
{sqlite3CreateForeignKey(pParse,0,&yymsp[-2].minor.yy384,yymsp[-1].minor.yy462,yymsp[0].minor.yy230);}
#line 2030 "parse.c"
        break;
      case 61:
#line 272 "parse.y"
{sqlite3DeferForeignKey(pParse,yymsp[0].minor.yy230);}
#line 2035 "parse.c"
        break;
      case 62:
#line 273 "parse.y"
{sqlite3AddCollateType(pParse, (char*)yymsp[0].minor.yy384.z, yymsp[0].minor.yy384.n);}
#line 2040 "parse.c"
        break;
      case 65:
#line 286 "parse.y"
{ yygotominor.yy230 = OE_Restrict * 0x010101; }
#line 2045 "parse.c"
        break;
      case 66:
#line 287 "parse.y"
{ yygotominor.yy230 = (yymsp[-1].minor.yy230 & yymsp[0].minor.yy13.mask) | yymsp[0].minor.yy13.value; }
#line 2050 "parse.c"
        break;
      case 67:
#line 289 "parse.y"
{ yygotominor.yy13.value = 0;     yygotominor.yy13.mask = 0x000000; }
#line 2055 "parse.c"
        break;
      case 68:
#line 290 "parse.y"
{ yygotominor.yy13.value = yymsp[0].minor.yy230;     yygotominor.yy13.mask = 0x0000ff; }
#line 2060 "parse.c"
        break;
      case 69:
#line 291 "parse.y"
{ yygotominor.yy13.value = yymsp[0].minor.yy230<<8;  yygotominor.yy13.mask = 0x00ff00; }
#line 2065 "parse.c"
        break;
      case 70:
#line 292 "parse.y"
{ yygotominor.yy13.value = yymsp[0].minor.yy230<<16; yygotominor.yy13.mask = 0xff0000; }
#line 2070 "parse.c"
        break;
      case 71:
#line 294 "parse.y"
{ yygotominor.yy230 = OE_SetNull; }
#line 2075 "parse.c"
        break;
      case 72:
#line 295 "parse.y"
{ yygotominor.yy230 = OE_SetDflt; }
#line 2080 "parse.c"
        break;
      case 73:
#line 296 "parse.y"
{ yygotominor.yy230 = OE_Cascade; }
#line 2085 "parse.c"
        break;
      case 74:
#line 297 "parse.y"
{ yygotominor.yy230 = OE_Restrict; }
#line 2090 "parse.c"
        break;
      case 75:
      case 76:
      case 91:
      case 93:
      case 95:
      case 96:
      case 167:
#line 299 "parse.y"
{yygotominor.yy230 = yymsp[0].minor.yy230;}
#line 2101 "parse.c"
        break;
      case 80:
#line 309 "parse.y"
{yygotominor.yy384.n = 0; yygotominor.yy384.z = 0;}
#line 2106 "parse.c"
        break;
      case 81:
#line 310 "parse.y"
{yygotominor.yy384 = yymsp[-1].minor.yy0;}
#line 2111 "parse.c"
        break;
      case 86:
#line 316 "parse.y"
{sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy462,yymsp[0].minor.yy230,yymsp[-2].minor.yy230,0);}
#line 2116 "parse.c"
        break;
      case 87:
#line 318 "parse.y"
{sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy462,yymsp[0].minor.yy230,0,0,0,0);}
#line 2121 "parse.c"
        break;
      case 88:
#line 319 "parse.y"
{sqlite3AddCheckConstraint(pParse,yymsp[-2].minor.yy178);}
#line 2126 "parse.c"
        break;
      case 89:
#line 321 "parse.y"
{
    sqlite3CreateForeignKey(pParse, yymsp[-6].minor.yy462, &yymsp[-3].minor.yy384, yymsp[-2].minor.yy462, yymsp[-1].minor.yy230);
    sqlite3DeferForeignKey(pParse, yymsp[0].minor.yy230);
}
#line 2134 "parse.c"
        break;
      case 92:
      case 94:
#line 335 "parse.y"
{yygotominor.yy230 = OE_Default;}
#line 2140 "parse.c"
        break;
      case 97:
#line 340 "parse.y"
{yygotominor.yy230 = OE_Ignore;}
#line 2145 "parse.c"
        break;
      case 98:
      case 168:
#line 341 "parse.y"
{yygotominor.yy230 = OE_Replace;}
#line 2151 "parse.c"
        break;
      case 99:
#line 345 "parse.y"
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy285, 0, yymsp[-1].minor.yy230);
}
#line 2158 "parse.c"
        break;
      case 102:
#line 355 "parse.y"
{
  sqlite3CreateView(pParse, &yymsp[-6].minor.yy0, &yymsp[-3].minor.yy384, &yymsp[-2].minor.yy384, yymsp[0].minor.yy239, yymsp[-5].minor.yy230);
}
#line 2165 "parse.c"
        break;
      case 103:
#line 358 "parse.y"
{
  sqlite3DropTable(pParse, yymsp[0].minor.yy285, 1, yymsp[-1].minor.yy230);
}
#line 2172 "parse.c"
        break;
      case 104:
#line 365 "parse.y"
{
  sqlite3Select(pParse, yymsp[0].minor.yy239, SRT_Callback, 0, 0, 0, 0, 0);
  sqlite3SelectDelete(yymsp[0].minor.yy239);
}
#line 2180 "parse.c"
        break;
      case 105:
      case 128:
#line 375 "parse.y"
{yygotominor.yy239 = yymsp[0].minor.yy239;}
#line 2186 "parse.c"
        break;
      case 106:
#line 377 "parse.y"
{
  if( yymsp[0].minor.yy239 ){
    yymsp[0].minor.yy239->op = yymsp[-1].minor.yy230;
    yymsp[0].minor.yy239->pPrior = yymsp[-2].minor.yy239;
  }
  yygotominor.yy239 = yymsp[0].minor.yy239;
}
#line 2197 "parse.c"
        break;
      case 108:
#line 386 "parse.y"
{yygotominor.yy230 = TK_ALL;}
#line 2202 "parse.c"
        break;
      case 110:
#line 390 "parse.y"
{
  yygotominor.yy239 = sqlite3SelectNew(yymsp[-6].minor.yy462,yymsp[-5].minor.yy285,yymsp[-4].minor.yy178,yymsp[-3].minor.yy462,yymsp[-2].minor.yy178,yymsp[-1].minor.yy462,yymsp[-7].minor.yy230,yymsp[0].minor.yy270.pLimit,yymsp[0].minor.yy270.pOffset);
}
#line 2209 "parse.c"
        break;
      case 114:
      case 235:
#line 411 "parse.y"
{yygotominor.yy462 = yymsp[-1].minor.yy462;}
#line 2215 "parse.c"
        break;
      case 115:
      case 141:
      case 151:
      case 234:
#line 412 "parse.y"
{yygotominor.yy462 = 0;}
#line 2223 "parse.c"
        break;
      case 116:
#line 413 "parse.y"
{
   yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-2].minor.yy462,yymsp[-1].minor.yy178,yymsp[0].minor.yy384.n?&yymsp[0].minor.yy384:0);
}
#line 2230 "parse.c"
        break;
      case 117:
#line 416 "parse.y"
{
  yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-1].minor.yy462, sqlite3Expr(TK_ALL, 0, 0, 0), 0);
}
#line 2237 "parse.c"
        break;
      case 118:
#line 419 "parse.y"
{
  Expr *pRight = sqlite3Expr(TK_ALL, 0, 0, 0);
  Expr *pLeft = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy384);
  yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-3].minor.yy462, sqlite3Expr(TK_DOT, pLeft, pRight, 0), 0);
}
#line 2246 "parse.c"
        break;
      case 121:
#line 431 "parse.y"
{yygotominor.yy384.n = 0;}
#line 2251 "parse.c"
        break;
      case 122:
#line 443 "parse.y"
{yygotominor.yy285 = sqliteMalloc(sizeof(*yygotominor.yy285));}
#line 2256 "parse.c"
        break;
      case 123:
#line 444 "parse.y"
{yygotominor.yy285 = yymsp[0].minor.yy285;}
#line 2261 "parse.c"
        break;
      case 124:
#line 449 "parse.y"
{
   yygotominor.yy285 = yymsp[-1].minor.yy285;
   if( yygotominor.yy285 && yygotominor.yy285->nSrc>0 ) yygotominor.yy285->a[yygotominor.yy285->nSrc-1].jointype = yymsp[0].minor.yy230;
}
#line 2269 "parse.c"
        break;
      case 125:
#line 453 "parse.y"
{yygotominor.yy285 = 0;}
#line 2274 "parse.c"
        break;
      case 126:
#line 454 "parse.y"
{
  yygotominor.yy285 = sqlite3SrcListAppend(yymsp[-5].minor.yy285,&yymsp[-4].minor.yy384,&yymsp[-3].minor.yy384);
  if( yymsp[-2].minor.yy384.n ) sqlite3SrcListAddAlias(yygotominor.yy285,&yymsp[-2].minor.yy384);
  if( yymsp[-1].minor.yy178 ){
    if( yygotominor.yy285 && yygotominor.yy285->nSrc>1 ){ yygotominor.yy285->a[yygotominor.yy285->nSrc-2].pOn = yymsp[-1].minor.yy178; }
    else { sqlite3ExprDelete(yymsp[-1].minor.yy178); }
  }
  if( yymsp[0].minor.yy160 ){
    if( yygotominor.yy285 && yygotominor.yy285->nSrc>1 ){ yygotominor.yy285->a[yygotominor.yy285->nSrc-2].pUsing = yymsp[0].minor.yy160; }
    else { sqlite3IdListDelete(yymsp[0].minor.yy160); }
  }
}
#line 2290 "parse.c"
        break;
      case 127:
#line 468 "parse.y"
{
    yygotominor.yy285 = sqlite3SrcListAppend(yymsp[-6].minor.yy285,0,0);
    yygotominor.yy285->a[yygotominor.yy285->nSrc-1].pSelect = yymsp[-4].minor.yy239;
    if( yymsp[-2].minor.yy384.n ) sqlite3SrcListAddAlias(yygotominor.yy285,&yymsp[-2].minor.yy384);
    if( yymsp[-1].minor.yy178 ){
      if( yygotominor.yy285 && yygotominor.yy285->nSrc>1 ){ yygotominor.yy285->a[yygotominor.yy285->nSrc-2].pOn = yymsp[-1].minor.yy178; }
      else { sqlite3ExprDelete(yymsp[-1].minor.yy178); }
    }
    if( yymsp[0].minor.yy160 ){
      if( yygotominor.yy285 && yygotominor.yy285->nSrc>1 ){ yygotominor.yy285->a[yygotominor.yy285->nSrc-2].pUsing = yymsp[0].minor.yy160; }
      else { sqlite3IdListDelete(yymsp[0].minor.yy160); }
    }
  }
#line 2307 "parse.c"
        break;
      case 129:
#line 489 "parse.y"
{
     yygotominor.yy239 = sqlite3SelectNew(0,yymsp[0].minor.yy285,0,0,0,0,0,0,0);
  }
#line 2314 "parse.c"
        break;
      case 130:
#line 495 "parse.y"
{yygotominor.yy384.z=0; yygotominor.yy384.n=0;}
#line 2319 "parse.c"
        break;
      case 132:
#line 500 "parse.y"
{yygotominor.yy285 = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy384,&yymsp[0].minor.yy384);}
#line 2324 "parse.c"
        break;
      case 133:
#line 504 "parse.y"
{ yygotominor.yy230 = JT_INNER; }
#line 2329 "parse.c"
        break;
      case 134:
#line 505 "parse.y"
{ yygotominor.yy230 = sqlite3JoinType(pParse,&yymsp[-1].minor.yy0,0,0); }
#line 2334 "parse.c"
        break;
      case 135:
#line 506 "parse.y"
{ yygotominor.yy230 = sqlite3JoinType(pParse,&yymsp[-2].minor.yy0,&yymsp[-1].minor.yy384,0); }
#line 2339 "parse.c"
        break;
      case 136:
#line 508 "parse.y"
{ yygotominor.yy230 = sqlite3JoinType(pParse,&yymsp[-3].minor.yy0,&yymsp[-2].minor.yy384,&yymsp[-1].minor.yy384); }
#line 2344 "parse.c"
        break;
      case 137:
      case 145:
      case 154:
      case 161:
      case 175:
      case 200:
      case 223:
      case 225:
      case 229:
#line 512 "parse.y"
{yygotominor.yy178 = yymsp[0].minor.yy178;}
#line 2357 "parse.c"
        break;
      case 138:
      case 153:
      case 160:
      case 201:
      case 224:
      case 226:
      case 230:
#line 513 "parse.y"
{yygotominor.yy178 = 0;}
#line 2368 "parse.c"
        break;
      case 139:
      case 172:
#line 517 "parse.y"
{yygotominor.yy160 = yymsp[-1].minor.yy160;}
#line 2374 "parse.c"
        break;
      case 140:
      case 171:
#line 518 "parse.y"
{yygotominor.yy160 = 0;}
#line 2380 "parse.c"
        break;
      case 142:
      case 152:
#line 529 "parse.y"
{yygotominor.yy462 = yymsp[0].minor.yy462;}
#line 2386 "parse.c"
        break;
      case 143:
#line 530 "parse.y"
{
  yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-4].minor.yy462,yymsp[-2].minor.yy178,yymsp[-1].minor.yy384.n>0?&yymsp[-1].minor.yy384:0);
  if( yygotominor.yy462 ) yygotominor.yy462->a[yygotominor.yy462->nExpr-1].sortOrder = yymsp[0].minor.yy230;
}
#line 2394 "parse.c"
        break;
      case 144:
#line 534 "parse.y"
{
  yygotominor.yy462 = sqlite3ExprListAppend(0,yymsp[-2].minor.yy178,yymsp[-1].minor.yy384.n>0?&yymsp[-1].minor.yy384:0);
  if( yygotominor.yy462 && yygotominor.yy462->a ) yygotominor.yy462->a[0].sortOrder = yymsp[0].minor.yy230;
}
#line 2402 "parse.c"
        break;
      case 146:
      case 148:
#line 543 "parse.y"
{yygotominor.yy230 = SQLITE_SO_ASC;}
#line 2408 "parse.c"
        break;
      case 147:
#line 544 "parse.y"
{yygotominor.yy230 = SQLITE_SO_DESC;}
#line 2413 "parse.c"
        break;
      case 149:
#line 546 "parse.y"
{yygotominor.yy384.z = 0; yygotominor.yy384.n = 0;}
#line 2418 "parse.c"
        break;
      case 155:
#line 564 "parse.y"
{yygotominor.yy270.pLimit = 0; yygotominor.yy270.pOffset = 0;}
#line 2423 "parse.c"
        break;
      case 156:
#line 565 "parse.y"
{yygotominor.yy270.pLimit = yymsp[0].minor.yy178; yygotominor.yy270.pOffset = 0;}
#line 2428 "parse.c"
        break;
      case 157:
#line 567 "parse.y"
{yygotominor.yy270.pLimit = yymsp[-2].minor.yy178; yygotominor.yy270.pOffset = yymsp[0].minor.yy178;}
#line 2433 "parse.c"
        break;
      case 158:
#line 569 "parse.y"
{yygotominor.yy270.pOffset = yymsp[-2].minor.yy178; yygotominor.yy270.pLimit = yymsp[0].minor.yy178;}
#line 2438 "parse.c"
        break;
      case 159:
#line 573 "parse.y"
{sqlite3DeleteFrom(pParse,yymsp[-1].minor.yy285,yymsp[0].minor.yy178);}
#line 2443 "parse.c"
        break;
      case 162:
#line 584 "parse.y"
{sqlite3Update(pParse,yymsp[-3].minor.yy285,yymsp[-1].minor.yy462,yymsp[0].minor.yy178,yymsp[-4].minor.yy230);}
#line 2448 "parse.c"
        break;
      case 163:
#line 590 "parse.y"
{yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-4].minor.yy462,yymsp[0].minor.yy178,&yymsp[-2].minor.yy384);}
#line 2453 "parse.c"
        break;
      case 164:
#line 591 "parse.y"
{yygotominor.yy462 = sqlite3ExprListAppend(0,yymsp[0].minor.yy178,&yymsp[-2].minor.yy384);}
#line 2458 "parse.c"
        break;
      case 165:
#line 597 "parse.y"
{sqlite3Insert(pParse, yymsp[-5].minor.yy285, yymsp[-1].minor.yy462, 0, yymsp[-4].minor.yy160, yymsp[-7].minor.yy230);}
#line 2463 "parse.c"
        break;
      case 166:
#line 599 "parse.y"
{sqlite3Insert(pParse, yymsp[-2].minor.yy285, 0, yymsp[0].minor.yy239, yymsp[-1].minor.yy160, yymsp[-4].minor.yy230);}
#line 2468 "parse.c"
        break;
      case 169:
      case 227:
#line 609 "parse.y"
{yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-2].minor.yy462,yymsp[0].minor.yy178,0);}
#line 2474 "parse.c"
        break;
      case 170:
      case 228:
#line 610 "parse.y"
{yygotominor.yy462 = sqlite3ExprListAppend(0,yymsp[0].minor.yy178,0);}
#line 2480 "parse.c"
        break;
      case 173:
#line 619 "parse.y"
{yygotominor.yy160 = sqlite3IdListAppend(yymsp[-2].minor.yy160,&yymsp[0].minor.yy384);}
#line 2485 "parse.c"
        break;
      case 174:
#line 620 "parse.y"
{yygotominor.yy160 = sqlite3IdListAppend(0,&yymsp[0].minor.yy384);}
#line 2490 "parse.c"
        break;
      case 176:
#line 631 "parse.y"
{yygotominor.yy178 = yymsp[-1].minor.yy178; sqlite3ExprSpan(yygotominor.yy178,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0); }
#line 2495 "parse.c"
        break;
      case 177:
      case 182:
      case 183:
#line 632 "parse.y"
{yygotominor.yy178 = sqlite3Expr(yymsp[0].major, 0, 0, &yymsp[0].minor.yy0);}
#line 2502 "parse.c"
        break;
      case 178:
      case 179:
#line 633 "parse.y"
{yygotominor.yy178 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy0);}
#line 2508 "parse.c"
        break;
      case 180:
#line 635 "parse.y"
{
  Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy384);
  Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy384);
  yygotominor.yy178 = sqlite3Expr(TK_DOT, temp1, temp2, 0);
}
#line 2517 "parse.c"
        break;
      case 181:
#line 640 "parse.y"
{
  Expr *temp1 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-4].minor.yy384);
  Expr *temp2 = sqlite3Expr(TK_ID, 0, 0, &yymsp[-2].minor.yy384);
  Expr *temp3 = sqlite3Expr(TK_ID, 0, 0, &yymsp[0].minor.yy384);
  Expr *temp4 = sqlite3Expr(TK_DOT, temp2, temp3, 0);
  yygotominor.yy178 = sqlite3Expr(TK_DOT, temp1, temp4, 0);
}
#line 2528 "parse.c"
        break;
      case 184:
#line 649 "parse.y"
{yygotominor.yy178 = sqlite3RegisterExpr(pParse, &yymsp[0].minor.yy0);}
#line 2533 "parse.c"
        break;
      case 185:
#line 650 "parse.y"
{
  Token *pToken = &yymsp[0].minor.yy0;
  Expr *pExpr = yygotominor.yy178 = sqlite3Expr(TK_VARIABLE, 0, 0, pToken);
  sqlite3ExprAssignVarNumber(pParse, pExpr);
}
#line 2542 "parse.c"
        break;
      case 186:
#line 656 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_CAST, yymsp[-3].minor.yy178, 0, &yymsp[-1].minor.yy384);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-5].minor.yy0,&yymsp[0].minor.yy0);
}
#line 2550 "parse.c"
        break;
      case 187:
#line 661 "parse.y"
{
  yygotominor.yy178 = sqlite3ExprFunction(yymsp[-1].minor.yy462, &yymsp[-4].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-4].minor.yy0,&yymsp[0].minor.yy0);
  if( yymsp[-2].minor.yy230 && yygotominor.yy178 ){
    yygotominor.yy178->flags |= EP_Distinct;
  }
}
#line 2561 "parse.c"
        break;
      case 188:
#line 668 "parse.y"
{
  yygotominor.yy178 = sqlite3ExprFunction(0, &yymsp[-3].minor.yy0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
}
#line 2569 "parse.c"
        break;
      case 189:
#line 672 "parse.y"
{
  /* The CURRENT_TIME, CURRENT_DATE, and CURRENT_TIMESTAMP values are
  ** treated as functions that return constants */
  yygotominor.yy178 = sqlite3ExprFunction(0,&yymsp[0].minor.yy0);
  if( yygotominor.yy178 ) yygotominor.yy178->op = TK_CONST_FUNC;  
}
#line 2579 "parse.c"
        break;
      case 190:
      case 191:
      case 192:
      case 193:
      case 194:
      case 195:
      case 196:
      case 197:
#line 678 "parse.y"
{yygotominor.yy178 = sqlite3Expr(yymsp[-1].major, yymsp[-2].minor.yy178, yymsp[0].minor.yy178, 0);}
#line 2591 "parse.c"
        break;
      case 198:
#line 688 "parse.y"
{yygotominor.yy440.eOperator = yymsp[0].minor.yy0; yygotominor.yy440.not = 0;}
#line 2596 "parse.c"
        break;
      case 199:
#line 689 "parse.y"
{yygotominor.yy440.eOperator = yymsp[0].minor.yy0; yygotominor.yy440.not = 1;}
#line 2601 "parse.c"
        break;
      case 202:
#line 694 "parse.y"
{
  ExprList *pList;
  pList = sqlite3ExprListAppend(0, yymsp[-1].minor.yy178, 0);
  pList = sqlite3ExprListAppend(pList, yymsp[-3].minor.yy178, 0);
  if( yymsp[0].minor.yy178 ){
    pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy178, 0);
  }
  yygotominor.yy178 = sqlite3ExprFunction(pList, &yymsp[-2].minor.yy440.eOperator);
  if( yymsp[-2].minor.yy440.not ) yygotominor.yy178 = sqlite3Expr(TK_NOT, yygotominor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178, &yymsp[-3].minor.yy178->span, &yymsp[-1].minor.yy178->span);
}
#line 2616 "parse.c"
        break;
      case 203:
#line 706 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(yymsp[0].major, yymsp[-1].minor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-1].minor.yy178->span,&yymsp[0].minor.yy0);
}
#line 2624 "parse.c"
        break;
      case 204:
#line 710 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_ISNULL, yymsp[-2].minor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-2].minor.yy178->span,&yymsp[0].minor.yy0);
}
#line 2632 "parse.c"
        break;
      case 205:
#line 714 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_NOTNULL, yymsp[-2].minor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-2].minor.yy178->span,&yymsp[0].minor.yy0);
}
#line 2640 "parse.c"
        break;
      case 206:
#line 718 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_NOTNULL, yymsp[-3].minor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-3].minor.yy178->span,&yymsp[0].minor.yy0);
}
#line 2648 "parse.c"
        break;
      case 207:
#line 722 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(yymsp[-1].major, yymsp[0].minor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy178->span);
}
#line 2656 "parse.c"
        break;
      case 208:
#line 726 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_UMINUS, yymsp[0].minor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy178->span);
}
#line 2664 "parse.c"
        break;
      case 209:
#line 730 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_UPLUS, yymsp[0].minor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-1].minor.yy0,&yymsp[0].minor.yy178->span);
}
#line 2672 "parse.c"
        break;
      case 212:
#line 737 "parse.y"
{
  ExprList *pList = sqlite3ExprListAppend(0, yymsp[-2].minor.yy178, 0);
  pList = sqlite3ExprListAppend(pList, yymsp[0].minor.yy178, 0);
  yygotominor.yy178 = sqlite3Expr(TK_BETWEEN, yymsp[-4].minor.yy178, 0, 0);
  if( yygotominor.yy178 ){
    yygotominor.yy178->pList = pList;
  }else{
    sqlite3ExprListDelete(pList);
  } 
  if( yymsp[-3].minor.yy230 ) yygotominor.yy178 = sqlite3Expr(TK_NOT, yygotominor.yy178, 0, 0);
  sqlite3ExprSpan(yygotominor.yy178,&yymsp[-4].minor.yy178->span,&yymsp[0].minor.yy178->span);
}
#line 2688 "parse.c"
        break;
      case 215:
#line 753 "parse.y"
{
    yygotominor.yy178 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy178, 0, 0);
    if( yygotominor.yy178 ){
      yygotominor.yy178->pList = yymsp[-1].minor.yy462;
    }else{
      sqlite3ExprListDelete(yymsp[-1].minor.yy462);
    }
    if( yymsp[-3].minor.yy230 ) yygotominor.yy178 = sqlite3Expr(TK_NOT, yygotominor.yy178, 0, 0);
    sqlite3ExprSpan(yygotominor.yy178,&yymsp[-4].minor.yy178->span,&yymsp[0].minor.yy0);
  }
#line 2702 "parse.c"
        break;
      case 216:
#line 763 "parse.y"
{
    yygotominor.yy178 = sqlite3Expr(TK_SELECT, 0, 0, 0);
    if( yygotominor.yy178 ){
      yygotominor.yy178->pSelect = yymsp[-1].minor.yy239;
    }else{
      sqlite3SelectDelete(yymsp[-1].minor.yy239);
    }
    sqlite3ExprSpan(yygotominor.yy178,&yymsp[-2].minor.yy0,&yymsp[0].minor.yy0);
  }
#line 2715 "parse.c"
        break;
      case 217:
#line 772 "parse.y"
{
    yygotominor.yy178 = sqlite3Expr(TK_IN, yymsp[-4].minor.yy178, 0, 0);
    if( yygotominor.yy178 ){
      yygotominor.yy178->pSelect = yymsp[-1].minor.yy239;
    }else{
      sqlite3SelectDelete(yymsp[-1].minor.yy239);
    }
    if( yymsp[-3].minor.yy230 ) yygotominor.yy178 = sqlite3Expr(TK_NOT, yygotominor.yy178, 0, 0);
    sqlite3ExprSpan(yygotominor.yy178,&yymsp[-4].minor.yy178->span,&yymsp[0].minor.yy0);
  }
#line 2729 "parse.c"
        break;
      case 218:
#line 782 "parse.y"
{
    SrcList *pSrc = sqlite3SrcListAppend(0,&yymsp[-1].minor.yy384,&yymsp[0].minor.yy384);
    yygotominor.yy178 = sqlite3Expr(TK_IN, yymsp[-3].minor.yy178, 0, 0);
    if( yygotominor.yy178 ){
      yygotominor.yy178->pSelect = sqlite3SelectNew(0,pSrc,0,0,0,0,0,0,0);
    }else{
      sqlite3SrcListDelete(pSrc);
    }
    if( yymsp[-2].minor.yy230 ) yygotominor.yy178 = sqlite3Expr(TK_NOT, yygotominor.yy178, 0, 0);
    sqlite3ExprSpan(yygotominor.yy178,&yymsp[-3].minor.yy178->span,yymsp[0].minor.yy384.z?&yymsp[0].minor.yy384:&yymsp[-1].minor.yy384);
  }
#line 2744 "parse.c"
        break;
      case 219:
#line 793 "parse.y"
{
    Expr *p = yygotominor.yy178 = sqlite3Expr(TK_EXISTS, 0, 0, 0);
    if( p ){
      p->pSelect = yymsp[-1].minor.yy239;
      sqlite3ExprSpan(p,&yymsp[-3].minor.yy0,&yymsp[0].minor.yy0);
    }else{
      sqlite3SelectDelete(yymsp[-1].minor.yy239);
    }
  }
#line 2757 "parse.c"
        break;
      case 220:
#line 805 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_CASE, yymsp[-3].minor.yy178, yymsp[-1].minor.yy178, 0);
  if( yygotominor.yy178 ){
    yygotominor.yy178->pList = yymsp[-2].minor.yy462;
  }else{
    sqlite3ExprListDelete(yymsp[-2].minor.yy462);
  }
  sqlite3ExprSpan(yygotominor.yy178, &yymsp[-4].minor.yy0, &yymsp[0].minor.yy0);
}
#line 2770 "parse.c"
        break;
      case 221:
#line 816 "parse.y"
{
  yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-4].minor.yy462, yymsp[-2].minor.yy178, 0);
  yygotominor.yy462 = sqlite3ExprListAppend(yygotominor.yy462, yymsp[0].minor.yy178, 0);
}
#line 2778 "parse.c"
        break;
      case 222:
#line 820 "parse.y"
{
  yygotominor.yy462 = sqlite3ExprListAppend(0, yymsp[-2].minor.yy178, 0);
  yygotominor.yy462 = sqlite3ExprListAppend(yygotominor.yy462, yymsp[0].minor.yy178, 0);
}
#line 2786 "parse.c"
        break;
      case 231:
#line 847 "parse.y"
{
  sqlite3CreateIndex(pParse, &yymsp[-6].minor.yy384, &yymsp[-5].minor.yy384, sqlite3SrcListAppend(0,&yymsp[-3].minor.yy384,0), yymsp[-1].minor.yy462, yymsp[-9].minor.yy230,
                      &yymsp[-10].minor.yy0, &yymsp[0].minor.yy0, SQLITE_SO_ASC, yymsp[-7].minor.yy230);
}
#line 2794 "parse.c"
        break;
      case 232:
      case 277:
#line 853 "parse.y"
{yygotominor.yy230 = OE_Abort;}
#line 2800 "parse.c"
        break;
      case 233:
#line 854 "parse.y"
{yygotominor.yy230 = OE_None;}
#line 2805 "parse.c"
        break;
      case 236:
#line 864 "parse.y"
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy384.n>0 ){
    p = sqlite3Expr(TK_COLUMN, 0, 0, 0);
    if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy384.z, yymsp[-1].minor.yy384.n);
  }
  yygotominor.yy462 = sqlite3ExprListAppend(yymsp[-4].minor.yy462, p, &yymsp[-2].minor.yy384);
  if( yygotominor.yy462 ) yygotominor.yy462->a[yygotominor.yy462->nExpr-1].sortOrder = yymsp[0].minor.yy230;
}
#line 2818 "parse.c"
        break;
      case 237:
#line 873 "parse.y"
{
  Expr *p = 0;
  if( yymsp[-1].minor.yy384.n>0 ){
    p = sqlite3Expr(TK_COLUMN, 0, 0, 0);
    if( p ) p->pColl = sqlite3LocateCollSeq(pParse, (char*)yymsp[-1].minor.yy384.z, yymsp[-1].minor.yy384.n);
  }
  yygotominor.yy462 = sqlite3ExprListAppend(0, p, &yymsp[-2].minor.yy384);
  if( yygotominor.yy462 ) yygotominor.yy462->a[yygotominor.yy462->nExpr-1].sortOrder = yymsp[0].minor.yy230;
}
#line 2831 "parse.c"
        break;
      case 239:
#line 887 "parse.y"
{sqlite3DropIndex(pParse, yymsp[0].minor.yy285, yymsp[-1].minor.yy230);}
#line 2836 "parse.c"
        break;
      case 240:
      case 241:
#line 891 "parse.y"
{sqlite3Vacuum(pParse);}
#line 2842 "parse.c"
        break;
      case 242:
      case 244:
#line 897 "parse.y"
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy384,&yymsp[-2].minor.yy384,&yymsp[0].minor.yy384,0);}
#line 2848 "parse.c"
        break;
      case 243:
#line 898 "parse.y"
{sqlite3Pragma(pParse,&yymsp[-3].minor.yy384,&yymsp[-2].minor.yy384,&yymsp[0].minor.yy0,0);}
#line 2853 "parse.c"
        break;
      case 245:
#line 900 "parse.y"
{
  sqlite3Pragma(pParse,&yymsp[-3].minor.yy384,&yymsp[-2].minor.yy384,&yymsp[0].minor.yy384,1);
}
#line 2860 "parse.c"
        break;
      case 246:
#line 903 "parse.y"
{sqlite3Pragma(pParse,&yymsp[-4].minor.yy384,&yymsp[-3].minor.yy384,&yymsp[-1].minor.yy384,0);}
#line 2865 "parse.c"
        break;
      case 247:
#line 904 "parse.y"
{sqlite3Pragma(pParse,&yymsp[-1].minor.yy384,&yymsp[0].minor.yy384,0,0);}
#line 2870 "parse.c"
        break;
      case 253:
#line 916 "parse.y"
{
  Token all;
  all.z = yymsp[-3].minor.yy384.z;
  all.n = (yymsp[0].minor.yy0.z - yymsp[-3].minor.yy384.z) + yymsp[0].minor.yy0.n;
  sqlite3FinishTrigger(pParse, yymsp[-1].minor.yy247, &all);
}
#line 2880 "parse.c"
        break;
      case 254:
#line 925 "parse.y"
{
  sqlite3BeginTrigger(pParse, &yymsp[-7].minor.yy384, &yymsp[-6].minor.yy384, yymsp[-5].minor.yy230, yymsp[-4].minor.yy132.a, yymsp[-4].minor.yy132.b, yymsp[-2].minor.yy285, yymsp[-1].minor.yy230, yymsp[0].minor.yy178, yymsp[-9].minor.yy230);
  yygotominor.yy384 = (yymsp[-6].minor.yy384.n==0?yymsp[-7].minor.yy384:yymsp[-6].minor.yy384);
}
#line 2888 "parse.c"
        break;
      case 255:
      case 258:
#line 931 "parse.y"
{ yygotominor.yy230 = TK_BEFORE; }
#line 2894 "parse.c"
        break;
      case 256:
#line 932 "parse.y"
{ yygotominor.yy230 = TK_AFTER;  }
#line 2899 "parse.c"
        break;
      case 257:
#line 933 "parse.y"
{ yygotominor.yy230 = TK_INSTEAD;}
#line 2904 "parse.c"
        break;
      case 259:
      case 260:
#line 938 "parse.y"
{yygotominor.yy132.a = yymsp[0].major; yygotominor.yy132.b = 0;}
#line 2910 "parse.c"
        break;
      case 261:
#line 940 "parse.y"
{yygotominor.yy132.a = TK_UPDATE; yygotominor.yy132.b = yymsp[0].minor.yy160;}
#line 2915 "parse.c"
        break;
      case 262:
      case 263:
#line 943 "parse.y"
{ yygotominor.yy230 = TK_ROW; }
#line 2921 "parse.c"
        break;
      case 264:
#line 945 "parse.y"
{ yygotominor.yy230 = TK_STATEMENT; }
#line 2926 "parse.c"
        break;
      case 265:
#line 949 "parse.y"
{ yygotominor.yy178 = 0; }
#line 2931 "parse.c"
        break;
      case 266:
#line 950 "parse.y"
{ yygotominor.yy178 = yymsp[0].minor.yy178; }
#line 2936 "parse.c"
        break;
      case 267:
#line 954 "parse.y"
{
  if( yymsp[-2].minor.yy247 ){
    yymsp[-2].minor.yy247->pLast->pNext = yymsp[-1].minor.yy247;
  }else{
    yymsp[-2].minor.yy247 = yymsp[-1].minor.yy247;
  }
  yymsp[-2].minor.yy247->pLast = yymsp[-1].minor.yy247;
  yygotominor.yy247 = yymsp[-2].minor.yy247;
}
#line 2949 "parse.c"
        break;
      case 268:
#line 963 "parse.y"
{ yygotominor.yy247 = 0; }
#line 2954 "parse.c"
        break;
      case 269:
#line 969 "parse.y"
{ yygotominor.yy247 = sqlite3TriggerUpdateStep(&yymsp[-3].minor.yy384, yymsp[-1].minor.yy462, yymsp[0].minor.yy178, yymsp[-4].minor.yy230); }
#line 2959 "parse.c"
        break;
      case 270:
#line 974 "parse.y"
{yygotominor.yy247 = sqlite3TriggerInsertStep(&yymsp[-5].minor.yy384, yymsp[-4].minor.yy160, yymsp[-1].minor.yy462, 0, yymsp[-7].minor.yy230);}
#line 2964 "parse.c"
        break;
      case 271:
#line 977 "parse.y"
{yygotominor.yy247 = sqlite3TriggerInsertStep(&yymsp[-2].minor.yy384, yymsp[-1].minor.yy160, 0, yymsp[0].minor.yy239, yymsp[-4].minor.yy230);}
#line 2969 "parse.c"
        break;
      case 272:
#line 981 "parse.y"
{yygotominor.yy247 = sqlite3TriggerDeleteStep(&yymsp[-1].minor.yy384, yymsp[0].minor.yy178);}
#line 2974 "parse.c"
        break;
      case 273:
#line 984 "parse.y"
{yygotominor.yy247 = sqlite3TriggerSelectStep(yymsp[0].minor.yy239); }
#line 2979 "parse.c"
        break;
      case 274:
#line 987 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_RAISE, 0, 0, 0); 
  if( yygotominor.yy178 ){
    yygotominor.yy178->iColumn = OE_Ignore;
    sqlite3ExprSpan(yygotominor.yy178, &yymsp[-3].minor.yy0, &yymsp[0].minor.yy0);
  }
}
#line 2990 "parse.c"
        break;
      case 275:
#line 994 "parse.y"
{
  yygotominor.yy178 = sqlite3Expr(TK_RAISE, 0, 0, &yymsp[-1].minor.yy384); 
  if( yygotominor.yy178 ) {
    yygotominor.yy178->iColumn = yymsp[-3].minor.yy230;
    sqlite3ExprSpan(yygotominor.yy178, &yymsp[-5].minor.yy0, &yymsp[0].minor.yy0);
  }
}
#line 3001 "parse.c"
        break;
      case 276:
#line 1004 "parse.y"
{yygotominor.yy230 = OE_Rollback;}
#line 3006 "parse.c"
        break;
      case 278:
#line 1006 "parse.y"
{yygotominor.yy230 = OE_Fail;}
#line 3011 "parse.c"
        break;
      case 279:
#line 1011 "parse.y"
{
  sqlite3DropTrigger(pParse,yymsp[0].minor.yy285);
}
#line 3018 "parse.c"
        break;
      case 280:
#line 1017 "parse.y"
{
  sqlite3Attach(pParse, yymsp[-3].minor.yy178, yymsp[-1].minor.yy178, yymsp[0].minor.yy292);
}
#line 3025 "parse.c"
        break;
      case 281:
#line 1022 "parse.y"
{ yygotominor.yy292 = 0; }
#line 3030 "parse.c"
        break;
      case 282:
#line 1023 "parse.y"
{ yygotominor.yy292 = yymsp[0].minor.yy178; }
#line 3035 "parse.c"
        break;
      case 285:
#line 1029 "parse.y"
{
  sqlite3Detach(pParse, yymsp[0].minor.yy178);
}
#line 3042 "parse.c"
        break;
      case 286:
#line 1035 "parse.y"
{sqlite3Reindex(pParse, 0, 0);}
#line 3047 "parse.c"
        break;
      case 287:
#line 1036 "parse.y"
{sqlite3Reindex(pParse, &yymsp[-1].minor.yy384, &yymsp[0].minor.yy384);}
#line 3052 "parse.c"
        break;
      case 288:
#line 1041 "parse.y"
{sqlite3Analyze(pParse, 0, 0);}
#line 3057 "parse.c"
        break;
      case 289:
#line 1042 "parse.y"
{sqlite3Analyze(pParse, &yymsp[-1].minor.yy384, &yymsp[0].minor.yy384);}
#line 3062 "parse.c"
        break;
      case 290:
#line 1047 "parse.y"
{
  sqlite3AlterRenameTable(pParse,yymsp[-3].minor.yy285,&yymsp[0].minor.yy384);
}
#line 3069 "parse.c"
        break;
      case 291:
#line 1050 "parse.y"
{
  sqlite3AlterFinishAddColumn(pParse, &yymsp[0].minor.yy384);
}
#line 3076 "parse.c"
        break;
      case 292:
#line 1053 "parse.y"
{
  sqlite3AlterBeginAddColumn(pParse, yymsp[0].minor.yy285);
}
#line 3083 "parse.c"
        break;
  };
  yygoto = yyRuleInfo[yyruleno].lhs;
  yysize = yyRuleInfo[yyruleno].nrhs;
  yypParser->yyidx -= yysize;
  yyact = yy_find_reduce_action(yymsp[-yysize].stateno,yygoto);
  if( yyact < YYNSTATE ){
#ifdef NDEBUG
    /* If we are not debugging and the reduce action popped at least
    ** one element off the stack, then we can push the new element back
    ** onto the stack here, and skip the stack overflow test in yy_shift().
    ** That gives a significant speed improvement. */
    if( yysize ){
      yypParser->yyidx++;
      yymsp -= yysize-1;
      yymsp->stateno = yyact;
      yymsp->major = yygoto;
      yymsp->minor = yygotominor;
    }else
#endif
    {
      yy_shift(yypParser,yyact,yygoto,&yygotominor);
    }
  }else if( yyact == YYNSTATE + YYNRULE + 1 ){
    yy_accept(yypParser);
  }
}

Here is the caller graph for this function:

static void yy_shift ( yyParser yypParser,
int  yyNewState,
int  yyMajor,
YYMINORTYPE yypMinor 
) [static]

Definition at line 1411 of file parse.c.

 {
  yyStackEntry *yytos;
  yypParser->yyidx++;
  if( yypParser->yyidx>=YYSTACKDEPTH ){
     sqlite3ParserARG_FETCH;
     yypParser->yyidx--;
#ifndef NDEBUG
     if( yyTraceFILE ){
       fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
     }
#endif
     while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
     /* Here code is inserted which will execute if the parser
     ** stack every overflows */
#line 43 "parse.y"

  sqlite3ErrorMsg(pParse, "parser stack overflow");
#line 1436 "parse.c"
     sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument var */
     return;
  }
  yytos = &yypParser->yystack[yypParser->yyidx];
  yytos->stateno = yyNewState;
  yytos->major = yyMajor;
  yytos->minor = *yypMinor;
#ifndef NDEBUG
  if( yyTraceFILE && yypParser->yyidx>0 ){
    int i;
    fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState);
    fprintf(yyTraceFILE,"%sStack:",yyTracePrompt);
    for(i=1; i<=yypParser->yyidx; i++)
      fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]);
    fprintf(yyTraceFILE,"\n");
  }
#endif
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void yy_syntax_error ( yyParser yypParser,
int  yymajor,
YYMINORTYPE  yyminor 
) [static]

Definition at line 3130 of file parse.c.

 {
  sqlite3ParserARG_FETCH;
#define TOKEN (yyminor.yy0)
#line 34 "parse.y"

  if( pParse->zErrMsg==0 ){
    if( TOKEN.z[0] ){
      sqlite3ErrorMsg(pParse, "near \"%T\": syntax error", &TOKEN);
    }else{
      sqlite3ErrorMsg(pParse, "incomplete SQL statement");
    }
  }
#line 3150 "parse.c"
  sqlite3ParserARG_STORE; /* Suppress warning about unused %extra_argument variable */
}

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

Definition at line 177 of file parse.c.

Definition at line 510 of file parse.c.

Definition at line 307 of file parse.c.

const short yy_reduce_ofst[] [static]
Initial value:
 {
    -56,  136,   16,   70,  189,  128,   67,  133,  190,   15,
      6,  141,  261,  271,  267,  273, -178,  255, -140,  -61,
    146,  259,  268, -215, -215, -215, -215, -215, -215, -215,
   -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
   -215, -215, -215, -215, -215, -215, -215, -215, -215, -215,
   -215, -215, -215, -215,  402,  416,  456,  468,  473,  475,
    477,  480,  483,  486,  523,  535,  540,  542,  544,  547,
    549,  551,  590,  602,  606,  608,  610,  614,  618,  620,
    657,  669,  673,  675,  677,  681,  686,  724,  736,  740,
    742,  744,  748, -215, -215,  -77, -215, -215, -215, -215,
    -26,  406,  603,  604,  670,  124,  671,   44,  225,   78,
   -215, -215, -215, -215,  208,  253,  157,  194,  -72,  139,
    305,  215,  358,  265,  440,  222,  476,  429,  568,  772,
    774,  775,  776,  369,  806,   69,  333,  496,  533,  749,
    436,  501, -126, -112,  -81,  -12,   37,  227,   37,   37,
    233,  335,  361,  403,  432,  444,  484,  489,  428,  432,
    605,  612,  607,  672,  622,  690,  693,   37,  622,  701,
    707,  729,  738,  771,  768,  773,   37,  811,  822,   37,
    849,  766,  769,  851,  853,   37,  855,  856,  857,   37,
    858,   37,   37,  859,  863,  866,  867,  870,  871,  872,
    840,  828,  827,  794,  797,  803,  860,  861,  854,  864,
    873,  862,  833,  834,  891,  892,  893,  895,  889,  875,
    876,  879,  880,  882,  881,  868,  874,  894,  888,  896,
    890,  842,  921,  883,  926,  885,  939,  901,  902,  905,
    903,  924,  899,  900,  953,  927,  943,  950,  954,  958,
    976,  974,  981,  982,  983,  906,  909,  994,  995,  968,
    971,  947,  963,  972,  973,  984,  967,  980,  951, 1011,
    937,  957, 1017, 1018,  959, 1020, 1002, 1003,  955,
}

Definition at line 480 of file parse.c.

const short yy_shift_ofst[] [static]

Definition at line 439 of file parse.c.

Definition at line 581 of file parse.c.

struct { ... } yyRuleInfo[] [static]