pl_gram.c

来自「PostgreSQL7.4.6 for Linux」· C语言 代码 · 共 1,927 行 · 第 1/5 页

C
1,927
字号
      66,    21,    61,    23,    24,    14,    15,    69,    70,    67,      61,    67,    12,    65,    16,    35,    36,    71,    38,    47,       6,    20,    42,    43,    65,    45,    65,    56,    60,    56,      16,     4,    18,    19,    67,    21,    56,    23,    24,    61,      32,    61,    62,    68,    65,   190,    66,    27,    56,    35,      36,    54,    38,   189,    65,    67,    42,    43,    65,    45,      61,     4,    34,    25,    25,    16,    16,    56,     4,    24,      56,    30,    65,     2,    65,    61,    62,    16,     6,    31,      66,   201,   175,    53,   220,   219,   110,   227,   187,    79,     194,   209,    -1,    -1,    92};/* PLPGSQL_YYSTOS[STATE-NUM] -- The (internal number of the) accessing   symbol of state STATE-NUM.  */static const unsigned char plpgsql_yystos[] ={       0,    52,    53,    73,    63,    74,    75,    76,    74,     0,      64,    66,    78,    79,   142,    76,    78,    66,    65,    77,       5,    10,    80,    77,    61,   145,   146,    10,    40,    61,      66,    81,    82,    83,    92,    67,     6,    18,    19,    21,      23,    24,    35,    36,    38,    42,    43,    45,    56,    61,      62,    78,    99,   100,   101,   102,   103,   104,   108,   109,     111,   112,   113,   117,   118,   120,   121,   122,   123,   124,     130,   131,   132,   133,   134,   137,   142,    61,    93,    66,      82,     3,     7,     8,    39,    57,    91,    94,    67,   146,     146,   146,   146,    12,   146,   146,   146,   146,   146,   146,     146,    65,    16,   101,    71,   146,   146,    20,    30,    51,      47,   145,    20,    84,    65,    65,    95,    56,   136,   138,      60,   143,   136,   146,   140,    56,   135,   138,     9,    17,      26,    29,    33,    49,   126,   139,     4,   146,   146,   146,      93,    67,    61,    90,    68,    86,    32,    96,    65,    50,      65,   144,    27,    56,   105,   107,    99,    54,   125,   138,      56,    57,    58,    61,   114,   115,   119,    99,   129,   141,      65,    67,    65,    87,    88,    92,    20,    28,    89,    34,       4,    11,    65,    97,    98,   138,    65,    70,     4,    14,      15,   110,    65,    70,   127,   128,    25,    25,    16,   129,      69,    70,    95,    85,   107,    37,    41,   106,    99,   146,      16,    56,    65,   128,   116,    18,    45,    30,    88,     4,     140,    24,   141,   141,   141,    65,   106,    99,    65,   129,     129,   129,   110};#if ! defined (PLPGSQL_YYSIZE_T) && defined (__SIZE_TYPE__)# define PLPGSQL_YYSIZE_T __SIZE_TYPE__#endif#if ! defined (PLPGSQL_YYSIZE_T) && defined (size_t)# define PLPGSQL_YYSIZE_T size_t#endif#if ! defined (PLPGSQL_YYSIZE_T)# if defined (__STDC__) || defined (__cplusplus)#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */#  define PLPGSQL_YYSIZE_T size_t# endif#endif#if ! defined (PLPGSQL_YYSIZE_T)# define PLPGSQL_YYSIZE_T unsigned int#endif#define plpgsql_yyerrok		(plpgsql_yyerrstatus = 0)#define plpgsql_yyclearin	(plpgsql_yychar = PLPGSQL_YYEMPTY)#define PLPGSQL_YYEMPTY		(-2)#define PLPGSQL_YYEOF		0#define PLPGSQL_YYACCEPT	goto plpgsql_yyacceptlab#define PLPGSQL_YYABORT		goto plpgsql_yyabortlab#define PLPGSQL_YYERROR		goto plpgsql_yyerrlab1/* Like PLPGSQL_YYERROR except do call plpgsql_yyerror.  This remains here temporarily   to ease the transition to the new meaning of PLPGSQL_YYERROR, for GCC.   Once GCC version 2 has supplanted version 1, this can go.  */#define PLPGSQL_YYFAIL		goto plpgsql_yyerrlab#define PLPGSQL_YYRECOVERING()  (!!plpgsql_yyerrstatus)#define PLPGSQL_YYBACKUP(Token, Value)					\do								\  if (plpgsql_yychar == PLPGSQL_YYEMPTY && plpgsql_yylen == 1)				\    {								\      plpgsql_yychar = (Token);						\      plpgsql_yylval = (Value);						\      plpgsql_yytoken = PLPGSQL_YYTRANSLATE (plpgsql_yychar);				\      PLPGSQL_YYPOPSTACK;						\      goto plpgsql_yybackup;						\    }								\  else								\    { 								\      plpgsql_yyerror ("syntax error: cannot back up");\      PLPGSQL_YYERROR;							\    }								\while (0)#define PLPGSQL_YYTERROR	1#define PLPGSQL_YYERRCODE	256/* PLPGSQL_YYLLOC_DEFAULT -- Compute the default location (before the actions   are run).  */#ifndef PLPGSQL_YYLLOC_DEFAULT# define PLPGSQL_YYLLOC_DEFAULT(Current, Rhs, N)         \  Current.first_line   = Rhs[1].first_line;      \  Current.first_column = Rhs[1].first_column;    \  Current.last_line    = Rhs[N].last_line;       \  Current.last_column  = Rhs[N].last_column;#endif/* PLPGSQL_YYLEX -- calling `plpgsql_yylex' with the right arguments.  */#ifdef PLPGSQL_YYLEX_PARAM# define PLPGSQL_YYLEX plpgsql_yylex (PLPGSQL_YYLEX_PARAM)#else# define PLPGSQL_YYLEX plpgsql_yylex ()#endif/* Enable debugging if requested.  */#if PLPGSQL_YYDEBUG# ifndef PLPGSQL_YYFPRINTF#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */#  define PLPGSQL_YYFPRINTF fprintf# endif# define PLPGSQL_YYDPRINTF(Args)			\do {						\  if (plpgsql_yydebug)					\    PLPGSQL_YYFPRINTF Args;				\} while (0)# define PLPGSQL_YYDSYMPRINT(Args)			\do {						\  if (plpgsql_yydebug)					\    plpgsql_yysymprint Args;				\} while (0)# define PLPGSQL_YYDSYMPRINTF(Title, Token, Value, Location)		\do {								\  if (plpgsql_yydebug)							\    {								\      PLPGSQL_YYFPRINTF (stderr, "%s ", Title);				\      plpgsql_yysymprint (stderr, 					\                  Token, Value);	\      PLPGSQL_YYFPRINTF (stderr, "\n");					\    }								\} while (0)/*------------------------------------------------------------------.| plpgsql_yy_stack_print -- Print the state stack from its BOTTOM up to its || TOP (cinluded).                                                   |`------------------------------------------------------------------*/#if defined (__STDC__) || defined (__cplusplus)static voidplpgsql_yy_stack_print (short *bottom, short *top)#elsestatic voidplpgsql_yy_stack_print (bottom, top)    short *bottom;    short *top;#endif{  PLPGSQL_YYFPRINTF (stderr, "Stack now");  for (/* Nothing. */; bottom <= top; ++bottom)    PLPGSQL_YYFPRINTF (stderr, " %d", *bottom);  PLPGSQL_YYFPRINTF (stderr, "\n");}# define PLPGSQL_YY_STACK_PRINT(Bottom, Top)				\do {								\  if (plpgsql_yydebug)							\    plpgsql_yy_stack_print ((Bottom), (Top));				\} while (0)/*------------------------------------------------.| Report that the PLPGSQL_YYRULE is going to be reduced.  |`------------------------------------------------*/#if defined (__STDC__) || defined (__cplusplus)static voidplpgsql_yy_reduce_print (int plpgsql_yyrule)#elsestatic voidplpgsql_yy_reduce_print (plpgsql_yyrule)    int plpgsql_yyrule;#endif{  int plpgsql_yyi;  unsigned int plpgsql_yylineno = plpgsql_yyrline[plpgsql_yyrule];  PLPGSQL_YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",             plpgsql_yyrule - 1, plpgsql_yylineno);  /* Print the symbols being reduced, and their result.  */  for (plpgsql_yyi = plpgsql_yyprhs[plpgsql_yyrule]; 0 <= plpgsql_yyrhs[plpgsql_yyi]; plpgsql_yyi++)    PLPGSQL_YYFPRINTF (stderr, "%s ", plpgsql_yytname [plpgsql_yyrhs[plpgsql_yyi]]);  PLPGSQL_YYFPRINTF (stderr, "-> %s\n", plpgsql_yytname [plpgsql_yyr1[plpgsql_yyrule]]);}# define PLPGSQL_YY_REDUCE_PRINT(Rule)		\do {					\  if (plpgsql_yydebug)				\    plpgsql_yy_reduce_print (Rule);		\} while (0)/* Nonzero means print parse trace.  It is left uninitialized so that   multiple parsers can coexist.  */int plpgsql_yydebug;#else /* !PLPGSQL_YYDEBUG */# define PLPGSQL_YYDPRINTF(Args)# define PLPGSQL_YYDSYMPRINT(Args)# define PLPGSQL_YYDSYMPRINTF(Title, Token, Value, Location)# define PLPGSQL_YY_STACK_PRINT(Bottom, Top)# define PLPGSQL_YY_REDUCE_PRINT(Rule)#endif /* !PLPGSQL_YYDEBUG *//* PLPGSQL_YYINITDEPTH -- initial size of the parser's stacks.  */#ifndef	PLPGSQL_YYINITDEPTH# define PLPGSQL_YYINITDEPTH 200#endif/* PLPGSQL_YYMAXDEPTH -- maximum size the stacks can grow to (effective only   if the built-in stack extension method is used).   Do not make this value too large; the results are undefined if   SIZE_MAX < PLPGSQL_YYSTACK_BYTES (PLPGSQL_YYMAXDEPTH)   evaluated with infinite-precision integer arithmetic.  */#if PLPGSQL_YYMAXDEPTH == 0# undef PLPGSQL_YYMAXDEPTH#endif#ifndef PLPGSQL_YYMAXDEPTH# define PLPGSQL_YYMAXDEPTH 10000#endif#if PLPGSQL_YYERROR_VERBOSE# ifndef plpgsql_yystrlen#  if defined (__GLIBC__) && defined (_STRING_H)#   define plpgsql_yystrlen strlen#  else/* Return the length of PLPGSQL_YYSTR.  */static PLPGSQL_YYSIZE_T#   if defined (__STDC__) || defined (__cplusplus)plpgsql_yystrlen (const char *plpgsql_yystr)#   elseplpgsql_yystrlen (plpgsql_yystr)     const char *plpgsql_yystr;#   endif{  register const char *plpgsql_yys = plpgsql_yystr;  while (*plpgsql_yys++ != '\0')    continue;  return plpgsql_yys - plpgsql_yystr - 1;}#  endif# endif# ifndef plpgsql_yystpcpy#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)#   define plpgsql_yystpcpy stpcpy#  else/* Copy PLPGSQL_YYSRC to PLPGSQL_YYDEST, returning the address of the terminating '\0' in   PLPGSQL_YYDEST.  */static char *#   if defined (__STDC__) || defined (__cplusplus)plpgsql_yystpcpy (char *plpgsql_yydest, const char *plpgsql_yysrc)#   elseplpgsql_yystpcpy (plpgsql_yydest, plpgsql_yysrc)     char *plpgsql_yydest;     const char *plpgsql_yysrc;#   endif{  register char *plpgsql_yyd = plpgsql_yydest;  register const char *plpgsql_yys = plpgsql_yysrc;  while ((*plpgsql_yyd++ = *plpgsql_yys++) != '\0')    continue;  return plpgsql_yyd - 1;}#  endif# endif#endif /* !PLPGSQL_YYERROR_VERBOSE */#if PLPGSQL_YYDEBUG/*--------------------------------.| Print this symbol on PLPGSQL_YYOUTPUT.  |`--------------------------------*/#if defined (__STDC__) || defined (__cplusplus)static voidplpgsql_yysymprint (FILE *plpgsql_yyoutput, int plpgsql_yytype, PLPGSQL_YYSTYPE *plpgsql_yyvaluep)#elsestatic voidplpgsql_yysymprint (plpgsql_yyoutput, plpgsql_yytype, plpgsql_yyvaluep)    FILE *plpgsql_yyoutput;    int plpgsql_yytype;    PLPGSQL_YYSTYPE *plpgsql_yyvaluep;#endif{  /* Pacify ``unused variable'' warnings.  */  (void) plpgsql_yyvaluep;  if (plpgsql_yytype < PLPGSQL_YYNTOKENS)    {      PLPGSQL_YYFPRINTF (plpgsql_yyoutput, "token %s (", plpgsql_yytname[plpgsql_yytype]);# ifdef PLPGSQL_YYPRINT      PLPGSQL_YYPRINT (plpgsql_yyoutput, plpgsql_yytoknum[plpgsql_yytype], *plpgsql_yyvaluep);# endif    }  else    PLPGSQL_YYFPRINTF (plpgsql_yyoutput, "nterm %s (", plpgsql_yytname[plpgsql_yytype]);  switch (plpgsql_yytype)    {      default:        break;    }  PLPGSQL_YYFPRINTF (plpgsql_yyoutput, ")");}#endif /* ! PLPGSQL_YYDEBUG *//*-----------------------------------------------.| Release the memory associated to this symbol.  |`-----------------------------------------------*/#if defined (__STDC__) || defined (__cplusplus)static voidplpgsql_yydestruct (int plpgsql_yytype, PLPGSQL_YYSTYPE *plpgsql_yyvaluep)#elsestatic voidplpgsql_yydestruct (plpgsql_yytype, plpgsql_yyvaluep)    int plpgsql_yytype;    PLPGSQL_YYSTYPE *plpgsql_yyvaluep;#endif{  /* Pacify ``unused variable'' warnings.  */  (void) plpgsql_yyvaluep;  switch (plpgsql_yytype)    {      default:        break;    }}/* Prevent warnings from -Wmissing-prototypes.  */#ifdef PLPGSQL_YYPARSE_PARAM# if defined (__STDC__) || defined (__cplusplus)int plpgsql_yyparse (void *PLPGSQL_YYPARSE_PARAM);# elseint plpgsql_yyparse ();# endif#else /* ! PLPGSQL_YYPARSE_PARAM */#if defined (__STDC__) || defined (__cplusplus)int plpgsql_yyparse (void);#elseint plpgsql_yyparse ();#endif#endif /* ! PLPGSQL_YYPARSE_PARAM *//* The lookahead symbol.  */int plpgsql_yychar;/* The semantic value of the lookahead symbol.  */PLPGSQL_YYSTYPE plpgsql_yylval;/* Number of syntax errors so far.  */int plpgsql_yynerrs;/*----------.| plpgsql_yyparse.  |

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?