1b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* A Bison parser, made from plural.y
2b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   by GNU bison 1.35.  */
3a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
4a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYBISON 1  /* Identify Bison output.  */
5a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
6a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yyparse __gettextparse
7a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yylex __gettextlex
8a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yyerror __gettexterror
9a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yylval __gettextlval
10a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yychar __gettextchar
11a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yydebug __gettextdebug
12a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yynerrs __gettextnerrs
13b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define	EQUOP2	257
14b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define	CMPOP2	258
15b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define	ADDOP2	259
16b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define	MULOP2	260
17b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define	NUMBER	261
18a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
19a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#line 1 "plural.y"
20a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
21a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* Expression parsing for plural form selection.
22b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   Copyright (C) 2000-2001, 2003 Free Software Foundation, Inc.
23a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Written by Ulrich Drepper <drepper@cygnus.com>, 2000.
24a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
25a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   This program is free software; you can redistribute it and/or modify it
26a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   under the terms of the GNU Library General Public License as published
27a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   by the Free Software Foundation; either version 2, or (at your option)
28a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   any later version.
29a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
30a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   This program is distributed in the hope that it will be useful,
31a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   but WITHOUT ANY WARRANTY; without even the implied warranty of
32a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
33a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Library General Public License for more details.
34a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
35a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   You should have received a copy of the GNU Library General Public
36a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   License along with this program; if not, write to the Free Software
37a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
38a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   USA.  */
39a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
40a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* The bison generated parser uses alloca.  AIX 3 forces us to put this
41a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   declaration at the beginning of the file.  The declaration in bison's
42a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   skeleton file comes too late.  This must come before <config.h>
43a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   because <config.h> may include arbitrary system headers.  */
44a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#if defined _AIX && !defined __GNUC__
45a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o #pragma alloca
46a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
47a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
48a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifdef HAVE_CONFIG_H
49a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o# include <config.h>
50a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
51a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
52a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#include <stddef.h>
53a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#include <stdlib.h>
54a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#include "plural-exp.h"
55a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
56a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* The main function generated by the parser is called __gettextparse,
57a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   but we want it to be called PLURAL_PARSE.  */
58a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifndef _LIBC
59a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o# define __gettextparse PLURAL_PARSE
60a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
61a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
62a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYLEX_PARAM	&((struct parse_args *) arg)->cp
63a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYPARSE_PARAM	arg
64a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
65a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#line 49 "plural.y"
66b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#ifndef YYSTYPE
67a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'otypedef union {
68a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  unsigned long int num;
69a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  enum operator op;
70a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  struct expression *exp;
71b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o} yystype;
72b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYSTYPE yystype
73b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYSTYPE_IS_TRIVIAL 1
74b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif
75a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#line 55 "plural.y"
76a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
77a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* Prototypes for local functions.  */
78b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic int yylex (YYSTYPE *lval, const char **pexp);
79b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic void yyerror (const char *str);
80a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
81a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* Allocation of expressions.  */
82a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
83a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ostatic struct expression *
84b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'onew_exp (int nargs, enum operator op, struct expression * const *args)
85a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
86a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  int i;
87a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  struct expression *newp;
88a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
89a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* If any of the argument could not be malloc'ed, just return NULL.  */
90a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  for (i = nargs - 1; i >= 0; i--)
91a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    if (args[i] == NULL)
92a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      goto fail;
93a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
94a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Allocate a new expression.  */
95a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  newp = (struct expression *) malloc (sizeof (*newp));
96a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (newp != NULL)
97a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
98a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      newp->nargs = nargs;
99a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      newp->operation = op;
100a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      for (i = nargs - 1; i >= 0; i--)
101a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	newp->val.args[i] = args[i];
102a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      return newp;
103a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
104a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
105a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o fail:
106a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  for (i = nargs - 1; i >= 0; i--)
107a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    FREE_EXPRESSION (args[i]);
108a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
109a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  return NULL;
110a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
111a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
112a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ostatic inline struct expression *
113b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'onew_exp_0 (enum operator op)
114a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
115a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  return new_exp (0, op, NULL);
116a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
117a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
118a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ostatic inline struct expression *
119b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'onew_exp_1 (enum operator op, struct expression *right)
120a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
121a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  struct expression *args[1];
122a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
123a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  args[0] = right;
124a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  return new_exp (1, op, args);
125a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
126a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
127a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ostatic struct expression *
128b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'onew_exp_2 (enum operator op, struct expression *left, struct expression *right)
129a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
130a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  struct expression *args[2];
131a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
132a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  args[0] = left;
133a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  args[1] = right;
134a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  return new_exp (2, op, args);
135a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
136a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
137a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ostatic inline struct expression *
138b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'onew_exp_3 (enum operator op, struct expression *bexp,
139b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	   struct expression *tbranch, struct expression *fbranch)
140a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
141a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  struct expression *args[3];
142a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
143a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  args[0] = bexp;
144a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  args[1] = tbranch;
145a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  args[2] = fbranch;
146a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  return new_exp (3, op, args);
147a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
148a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
149b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#ifndef YYDEBUG
150b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYDEBUG 0
151a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
152a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
153a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
154a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
155a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define	YYFINAL		27
156a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define	YYFLAG		-32768
157a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define	YYNTBASE	16
158a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
159b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
160a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYTRANSLATE(x) ((unsigned)(x) <= 261 ? yytranslate[x] : 18)
161a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
162b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
163b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const char yytranslate[] =
164b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
165b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
166b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
167b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
168b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,    10,     2,     2,     2,     2,     5,     2,
169b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      14,    15,     2,     2,     2,     2,     2,     2,     2,     2,
170b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,    12,     2,
171b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     3,     2,     2,     2,     2,     2,     2,
172b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
173b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
174b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
175b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
176b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      13,     2,     2,     2,     2,     2,     2,     2,     2,     2,
177b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     4,     2,     2,     2,     2,     2,
178b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
179b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
180b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
181b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
182b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
183b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
184b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
185b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
186b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
187b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
188b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
189b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
190b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       2,     2,     2,     2,     2,     2,     1,     6,     7,     8,
191b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       9,    11
192a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
193a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
194b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYDEBUG
195b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yyprhs[] =
196b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
197b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       0,     0,     2,     8,    12,    16,    20,    24,    28,    32,
198b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      35,    37,    39
199a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
200b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yyrhs[] =
201b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
202b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      17,     0,    17,     3,    17,    12,    17,     0,    17,     4,
203b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      17,     0,    17,     5,    17,     0,    17,     6,    17,     0,
204b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      17,     7,    17,     0,    17,     8,    17,     0,    17,     9,
205b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      17,     0,    10,    17,     0,    13,     0,    11,     0,    14,
206b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      17,    15,     0
207a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
208a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
209a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
210a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
211b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYDEBUG
212b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
213b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yyrline[] =
214b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
215b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       0,   150,   158,   162,   166,   170,   174,   178,   182,   186,
216b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     190,   194,   199
217a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
218a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
219a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
220a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
221b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if (YYDEBUG) || defined YYERROR_VERBOSE
222a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
223b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
224b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const char *const yytname[] =
225b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
226efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o  "$", "error", "$undefined.", "'?'", "'|'", "'&'", "EQUOP2", "CMPOP2",
227efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o  "ADDOP2", "MULOP2", "'!'", "NUMBER", "':'", "'n'", "'('", "')'",
228b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  "start", "exp", 0
229a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
230a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
231a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
232b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
233b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yyr1[] =
234b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
235b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       0,    16,    17,    17,    17,    17,    17,    17,    17,    17,
236b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      17,    17,    17
237a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
238a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
239b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
240b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yyr2[] =
241b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
242b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       0,     1,     5,     3,     3,     3,     3,     3,     3,     2,
243b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       1,     1,     3
244a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
245a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
246b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
247b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   doesn't specify something else to do.  Zero means the default is an
248b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   error. */
249b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yydefact[] =
250b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
251b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       0,     0,    11,    10,     0,     1,     9,     0,     0,     0,
252b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       0,     0,     0,     0,     0,    12,     0,     3,     4,     5,
253b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       6,     7,     8,     0,     2,     0,     0,     0
254a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
255a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
256b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yydefgoto[] =
257b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
258b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      25,     5
259a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
260a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
261b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yypact[] =
262b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
263b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      -9,    -9,-32768,-32768,    -9,    34,-32768,    11,    -9,    -9,
264b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      -9,    -9,    -9,    -9,    -9,-32768,    24,    39,    43,    16,
265b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      26,    -3,-32768,    -9,    34,    21,    53,-32768
266a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
267a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
268b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yypgoto[] =
269b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
270b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  -32768,    -1
271a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
272a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
273a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
274a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define	YYLAST		53
275a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
276a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
277b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yytable[] =
278b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
279b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       6,     1,     2,     7,     3,     4,    14,    16,    17,    18,
280b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      19,    20,    21,    22,     8,     9,    10,    11,    12,    13,
281b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      14,    26,    24,    12,    13,    14,    15,     8,     9,    10,
282b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      11,    12,    13,    14,    13,    14,    23,     8,     9,    10,
283b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      11,    12,    13,    14,    10,    11,    12,    13,    14,    11,
284b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      12,    13,    14,    27
285a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
286a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
287b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic const short yycheck[] =
288b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
289b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       1,    10,    11,     4,    13,    14,     9,     8,     9,    10,
290b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      11,    12,    13,    14,     3,     4,     5,     6,     7,     8,
291b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       9,     0,    23,     7,     8,     9,    15,     3,     4,     5,
292b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       6,     7,     8,     9,     8,     9,    12,     3,     4,     5,
293b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       6,     7,     8,     9,     5,     6,     7,     8,     9,     6,
294b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o       7,     8,     9,     0
295a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o};
296a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYPURE 1
297a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
298a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
299b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 3 "/usr/local/share/bison/bison.simple"
300a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
301a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* Skeleton output parser for bison,
302b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
303b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
304b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   Foundation, Inc.
305a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
306a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   This program is free software; you can redistribute it and/or modify
307a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   it under the terms of the GNU General Public License as published by
308a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   the Free Software Foundation; either version 2, or (at your option)
309a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   any later version.
310a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
311a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   This program is distributed in the hope that it will be useful,
312a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   but WITHOUT ANY WARRANTY; without even the implied warranty of
313a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
314a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   GNU General Public License for more details.
315a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
316a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   You should have received a copy of the GNU General Public License
317a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   along with this program; if not, write to the Free Software
318a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Foundation, Inc., 59 Temple Place - Suite 330,
319a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Boston, MA 02111-1307, USA.  */
320a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
321a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* As a special exception, when this file is copied by Bison into a
322a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Bison output file, you may use that output file without restriction.
323a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   This special exception was added by the Free Software Foundation
324a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   in version 1.24 of Bison.  */
325a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
326b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* This is the parser code that is written into each bison parser when
327b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   the %semantic_parser declaration is not specified in the grammar.
328b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   It was written by Richard Stallman by simplifying the hairy parser
329b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   used when %semantic_parser is specified.  */
330b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
331b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* All symbols defined below should begin with yy or YY, to avoid
332b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   infringing on user name space.  This should be done even for local
333b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   variables, as they might otherwise be expanded by user macros.
334b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   There are some unavoidable exceptions within include files to
335b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   define necessary library symbols; they are noted "INFRINGES ON
336b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   USER NAME SPACE" below.  */
337b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
338b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
339b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
340b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* The parser invokes alloca or malloc; define the necessary symbols.  */
341b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
342b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if YYSTACK_USE_ALLOCA
343b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYSTACK_ALLOC alloca
344b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else
345b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  ifndef YYSTACK_USE_ALLOCA
346b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   if defined (alloca) || defined (_ALLOCA_H)
347b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#    define YYSTACK_ALLOC alloca
348b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   else
349b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#    ifdef __GNUC__
350b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#     define YYSTACK_ALLOC __builtin_alloca
351b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#    endif
352b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   endif
353b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  endif
354b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
355b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
356b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifdef YYSTACK_ALLOC
357b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   /* Pacify GCC's `empty if-body' warning. */
358b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
359b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else
360b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  if defined (__STDC__) || defined (__cplusplus)
361b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
362b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define YYSIZE_T size_t
363b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  endif
364b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYSTACK_ALLOC malloc
365b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYSTACK_FREE free
366b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
367b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
368b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
369b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
370b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if (! defined (yyoverflow) \
371b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     && (! defined (__cplusplus) \
372b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
373b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
374b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* A type that is properly aligned for any stack member.  */
375b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ounion yyalloc
376b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
377b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  short yyss;
378b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYSTYPE yyvs;
379b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if YYLSP_NEEDED
380b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYLTYPE yyls;
381b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
382b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o};
383b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
384b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* The size of the maximum gap between one aligned stack and the next.  */
385b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
386b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
387b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* The size of an array large to enough to hold all stacks, each with
388b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   N elements.  */
389b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if YYLSP_NEEDED
390b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYSTACK_BYTES(N) \
391b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))	\
392b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      + 2 * YYSTACK_GAP_MAX)
393b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else
394b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYSTACK_BYTES(N) \
395b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     ((N) * (sizeof (short) + sizeof (YYSTYPE))				\
396b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      + YYSTACK_GAP_MAX)
397b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
398b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
399b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Copy COUNT objects from FROM to TO.  The source and destination do
400b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   not overlap.  */
401b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifndef YYCOPY
402b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  if 1 < __GNUC__
403b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define YYCOPY(To, From, Count) \
404b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
405b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  else
406b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define YYCOPY(To, From, Count)		\
407b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      do					\
408b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	{					\
409b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  register YYSIZE_T yyi;		\
410b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  for (yyi = 0; yyi < (Count); yyi++)	\
411b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	    (To)[yyi] = (From)[yyi];		\
412b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	}					\
413b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      while (0)
414b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  endif
415b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
416b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
417b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Relocate STACK from its old location to the new one.  The
418b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   local variables YYSIZE and YYSTACKSIZE give the old and new number of
419b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   elements in the stack, and YYPTR gives the new location of the
420b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   stack.  Advance YYPTR to a properly aligned location for the next
421b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   stack.  */
422b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYSTACK_RELOCATE(Stack)					\
423b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    do									\
424b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      {									\
425b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYSIZE_T yynewbytes;						\
426b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYCOPY (&yyptr->Stack, Stack, yysize);				\
427b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	Stack = &yyptr->Stack;						\
428b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;	\
429b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yyptr += yynewbytes / sizeof (*yyptr);				\
430b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      }									\
431b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    while (0)
432a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
433a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
434b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
435b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
436b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
437b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYSIZE_T __SIZE_TYPE__
438a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
439b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if ! defined (YYSIZE_T) && defined (size_t)
440b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYSIZE_T size_t
441b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif
442b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if ! defined (YYSIZE_T)
443b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if defined (__STDC__) || defined (__cplusplus)
444b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
445b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYSIZE_T size_t
446b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
447b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif
448b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if ! defined (YYSIZE_T)
449b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYSIZE_T unsigned int
450a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
451a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
452a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yyerrok		(yyerrstatus = 0)
453a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define yyclearin	(yychar = YYEMPTY)
454a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYEMPTY		-2
455a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYEOF		0
456a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYACCEPT	goto yyacceptlab
457a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYABORT 	goto yyabortlab
458a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYERROR		goto yyerrlab1
459b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Like YYERROR except do call yyerror.  This remains here temporarily
460b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   to ease the transition to the new meaning of YYERROR, for GCC.
461a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Once GCC version 2 has supplanted version 1, this can go.  */
462a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYFAIL		goto yyerrlab
463a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYRECOVERING()  (!!yyerrstatus)
464b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#define YYBACKUP(Token, Value)					\
465a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'odo								\
466a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yychar == YYEMPTY && yylen == 1)				\
467b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    {								\
468b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      yychar = (Token);						\
469b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      yylval = (Value);						\
470a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yychar1 = YYTRANSLATE (yychar);				\
471a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      YYPOPSTACK;						\
472a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      goto yybackup;						\
473a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }								\
474a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  else								\
475b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    { 								\
476b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      yyerror ("syntax error: cannot back up");			\
477b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYERROR;							\
478b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    }								\
479a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'owhile (0)
480a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
481a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYTERROR	1
482a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#define YYERRCODE	256
483a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
484a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
485b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYLLOC_DEFAULT -- Compute the default location (before the actions
486b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   are run).
487a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
488b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   When YYLLOC_DEFAULT is run, CURRENT is set the location of the
489b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   first token.  By default, to implement support for ranges, extend
490b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   its range to the last symbol.  */
491a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
492b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#ifndef YYLLOC_DEFAULT
493b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYLLOC_DEFAULT(Current, Rhs, N)       	\
494b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   Current.last_line   = Rhs[N].last_line;	\
495b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   Current.last_column = Rhs[N].last_column;
496a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
497a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
498a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
499b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYLEX -- calling `yylex' with the right arguments.  */
500b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
501b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYPURE
502b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if YYLSP_NEEDED
503b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  ifdef YYLEX_PARAM
504b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define YYLEX		yylex (&yylval, &yylloc, YYLEX_PARAM)
505b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  else
506b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define YYLEX		yylex (&yylval, &yylloc)
507b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  endif
508b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else /* !YYLSP_NEEDED */
509b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  ifdef YYLEX_PARAM
510b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define YYLEX		yylex (&yylval, YYLEX_PARAM)
511b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  else
512b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define YYLEX		yylex (&yylval)
513b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  endif
514b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif /* !YYLSP_NEEDED */
515b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#else /* !YYPURE */
516b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYLEX			yylex ()
517b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif /* !YYPURE */
518b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
519b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
520b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Enable debugging if requested.  */
521b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYDEBUG
522b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
523b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifndef YYFPRINTF
524b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
525b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYFPRINTF fprintf
526b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
527b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
528b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYDPRINTF(Args)			\
529b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'odo {						\
530b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  if (yydebug)					\
531b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    YYFPRINTF Args;				\
532b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o} while (0)
533b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Nonzero means print parse trace.  It is left uninitialized so that
534b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   multiple parsers can coexist.  */
535b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oint yydebug;
536b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#else /* !YYDEBUG */
537b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYDPRINTF(Args)
538b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif /* !YYDEBUG */
539b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
540b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYINITDEPTH -- initial size of the parser's stacks.  */
541a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifndef	YYINITDEPTH
542b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYINITDEPTH 200
543a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
544a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
545b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
546b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   if the built-in stack extension method is used).
547b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
548b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   Do not make this value too large; the results are undefined if
549b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
550b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   evaluated with infinite-precision integer arithmetic.  */
551a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
552a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#if YYMAXDEPTH == 0
553b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# undef YYMAXDEPTH
554a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
555a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
556a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifndef YYMAXDEPTH
557b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYMAXDEPTH 10000
558a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
559efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o
560b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#ifdef YYERROR_VERBOSE
561a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
562b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifndef yystrlen
563b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  if defined (__GLIBC__) && defined (_STRING_H)
564b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define yystrlen strlen
565b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  else
566b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Return the length of YYSTR.  */
567b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic YYSIZE_T
568b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   if defined (__STDC__) || defined (__cplusplus)
569b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyystrlen (const char *yystr)
570b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   else
571b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyystrlen (yystr)
572b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     const char *yystr;
573b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   endif
574b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o{
575b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  register const char *yys = yystr;
576a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
577b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  while (*yys++ != '\0')
578b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    continue;
579a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
580b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  return yys - yystr - 1;
581b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o}
582b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  endif
583b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
584b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
585b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifndef yystpcpy
586b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
587b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   define yystpcpy stpcpy
588b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  else
589b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
590b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   YYDEST.  */
591b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'ostatic char *
592b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   if defined (__STDC__) || defined (__cplusplus)
593b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyystpcpy (char *yydest, const char *yysrc)
594b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   else
595b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyystpcpy (yydest, yysrc)
596b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     char *yydest;
597b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     const char *yysrc;
598b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#   endif
599a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
600b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  register char *yyd = yydest;
601b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  register const char *yys = yysrc;
602a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
603b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  while ((*yyd++ = *yys++) != '\0')
604b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    continue;
605a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
606b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  return yyd - 1;
607b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o}
608b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  endif
609b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
610a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
611efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o
612b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 315 "/usr/local/share/bison/bison.simple"
613b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
614a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
615a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* The user can define YYPARSE_PARAM as the name of an argument to be passed
616a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   into yyparse.  The argument should have type void *.
617a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   It should actually point to an object.
618a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   Grammar actions can access the variable by casting it
619a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o   to the proper pointer type.  */
620a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
621a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifdef YYPARSE_PARAM
622b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if defined (__STDC__) || defined (__cplusplus)
623b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
624b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYPARSE_PARAM_DECL
625b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else
626b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYPARSE_PARAM_ARG YYPARSE_PARAM
627b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
628b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
629b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#else /* !YYPARSE_PARAM */
630b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYPARSE_PARAM_ARG
631b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYPARSE_PARAM_DECL
632b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif /* !YYPARSE_PARAM */
633a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
634a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* Prevent warning if -Wstrict-prototypes.  */
635a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifdef __GNUC__
636b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifdef YYPARSE_PARAM
637a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'oint yyparse (void *);
638b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else
639a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'oint yyparse (void);
640b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
641a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
642b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
643b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
644b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o   variables are global, or local to YYPARSE.  */
645b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
646b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#define YY_DECL_NON_LSP_VARIABLES			\
647b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* The lookahead symbol.  */				\
648b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oint yychar;						\
649b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o							\
650b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* The semantic value of the lookahead symbol. */	\
651b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oYYSTYPE yylval;						\
652b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o							\
653b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Number of parse errors so far.  */			\
654b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oint yynerrs;
655b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
656b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
657b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YY_DECL_VARIABLES			\
658b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oYY_DECL_NON_LSP_VARIABLES			\
659b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o						\
660b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* Location data for the lookahead symbol.  */	\
661b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oYYLTYPE yylloc;
662b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#else
663b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YY_DECL_VARIABLES			\
664b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oYY_DECL_NON_LSP_VARIABLES
665a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
666a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
667b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
668b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/* If nonreentrant, generate the variables here. */
669b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
670b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if !YYPURE
671b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oYY_DECL_VARIABLES
672b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif  /* !YYPURE */
673b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
674a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'oint
675b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyparse (YYPARSE_PARAM_ARG)
676a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     YYPARSE_PARAM_DECL
677a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
678b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* If reentrant, generate the variables here. */
679b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYPURE
680b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YY_DECL_VARIABLES
681b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif  /* !YYPURE */
682b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
683a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  register int yystate;
684a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  register int yyn;
685b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  int yyresult;
686b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Number of tokens to shift before error messages enabled.  */
687b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  int yyerrstatus;
688b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Lookahead token as an internal (translated) token number.  */
689b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  int yychar1 = 0;
690b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
691b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Three stacks and their tools:
692b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     `yyss': related to states,
693b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     `yyvs': related to semantic values,
694b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     `yyls': related to locations.
695b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
696b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     Refer to the stacks thru separate pointers, to allow yyoverflow
697b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     to reallocate them elsewhere.  */
698b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
699b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* The state stack. */
700b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  short	yyssa[YYINITDEPTH];
701b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  short *yyss = yyssa;
702a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  register short *yyssp;
703a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
704b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* The semantic value stack.  */
705b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYSTYPE yyvsa[YYINITDEPTH];
706b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYSTYPE *yyvs = yyvsa;
707b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  register YYSTYPE *yyvsp;
708a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
709b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
710b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* The location stack.  */
711b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYLTYPE yylsa[YYINITDEPTH];
712a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  YYLTYPE *yyls = yylsa;
713a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  YYLTYPE *yylsp;
714b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif
715a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
716b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
717b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
718a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#else
719b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# define YYPOPSTACK   (yyvsp--, yyssp--)
720a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
721a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
722b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYSIZE_T yystacksize = YYINITDEPTH;
723a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
724a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
725b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* The variables used to return semantic value and location from the
726b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     action routines.  */
727b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYSTYPE yyval;
728b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
729b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYLTYPE yyloc;
730b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif
731a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
732b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* When reducing, the number of symbols on the RHS of the reduced
733b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     rule. */
734a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  int yylen;
735a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
736b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYDPRINTF ((stderr, "Starting parse\n"));
737a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
738a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yystate = 0;
739a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyerrstatus = 0;
740a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yynerrs = 0;
741a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yychar = YYEMPTY;		/* Cause a token to be read.  */
742a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
743a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Initialize stack pointers.
744a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     Waste one element of value and location stack
745a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     so that they stay on the same level as the state stack.
746a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     The wasted elements are never initialized.  */
747a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
748b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyssp = yyss;
749a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyvsp = yyvs;
750b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
751a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yylsp = yyls;
752a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
753b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  goto yysetstate;
754a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
755b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*------------------------------------------------------------.
756b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yynewstate -- Push a new state, which is found in yystate.  |
757b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`------------------------------------------------------------*/
758b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o yynewstate:
759b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* In all cases, when you get here, the value and location stacks
760b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     have just been pushed. so pushing a state here evens the stacks.
761b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     */
762b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyssp++;
763a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
764b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o yysetstate:
765b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  *yyssp = yystate;
766a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
767a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyssp >= yyss + yystacksize - 1)
768a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
769a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* Get the current used size of the three stacks, in elements.  */
770b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYSIZE_T yysize = yyssp - yyss + 1;
771a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
772a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifdef yyoverflow
773b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      {
774b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	/* Give user a chance to reallocate the stack. Use copies of
775b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	   these so that the &'s don't force the real ones into
776b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	   memory.  */
777b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYSTYPE *yyvs1 = yyvs;
778b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	short *yyss1 = yyss;
779b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
780b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	/* Each stack pointer address is followed by the size of the
781b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	   data in use in that stack, in bytes.  */
782b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if YYLSP_NEEDED
783b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYLTYPE *yyls1 = yyls;
784b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	/* This used to be a conditional around just the two extra args,
785b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	   but that might be undefined if yyoverflow is a macro.  */
786b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yyoverflow ("parser stack overflow",
787b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    &yyss1, yysize * sizeof (*yyssp),
788b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    &yyvs1, yysize * sizeof (*yyvsp),
789b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    &yyls1, yysize * sizeof (*yylsp),
790b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    &yystacksize);
791b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yyls = yyls1;
792b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else
793b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yyoverflow ("parser stack overflow",
794b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    &yyss1, yysize * sizeof (*yyssp),
795b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    &yyvs1, yysize * sizeof (*yyvsp),
796b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    &yystacksize);
797b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
798b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yyss = yyss1;
799b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yyvs = yyvs1;
800b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      }
801a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#else /* no yyoverflow */
802b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifndef YYSTACK_RELOCATE
803b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      goto yyoverflowlab;
804b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# else
805a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* Extend the stack our own way.  */
806a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yystacksize >= YYMAXDEPTH)
807b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	goto yyoverflowlab;
808a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yystacksize *= 2;
809a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yystacksize > YYMAXDEPTH)
810a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	yystacksize = YYMAXDEPTH;
811b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
812b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      {
813b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	short *yyss1 = yyss;
814b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	union yyalloc *yyptr =
815b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
816b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	if (! yyptr)
817b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  goto yyoverflowlab;
818b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYSTACK_RELOCATE (yyss);
819b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYSTACK_RELOCATE (yyvs);
820b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# if YYLSP_NEEDED
821b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYSTACK_RELOCATE (yyls);
822b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
823b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# undef YYSTACK_RELOCATE
824b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	if (yyss1 != yyssa)
825b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  YYSTACK_FREE (yyss1);
826b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      }
827b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
828a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif /* no yyoverflow */
829a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
830b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      yyssp = yyss + yysize - 1;
831b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      yyvsp = yyvs + yysize - 1;
832b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
833b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      yylsp = yyls + yysize - 1;
834a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
835a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
836b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
837b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		  (unsigned long int) yystacksize));
838a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
839a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yyssp >= yyss + yystacksize - 1)
840a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	YYABORT;
841a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
842a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
843b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
844a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
845a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  goto yybackup;
846b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
847b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
848b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*-----------.
849b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yybackup.  |
850b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`-----------*/
851b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyybackup:
852a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
853a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* Do appropriate processing given the current state.  */
854a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* Read a lookahead token if we need one and don't already have one.  */
855a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o/* yyresume: */
856a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
857a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* First try to decide what to do without reference to lookahead token.  */
858a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
859a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn = yypact[yystate];
860a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn == YYFLAG)
861a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    goto yydefault;
862a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
863a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Not known => get a lookahead token if don't already have one.  */
864a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
865a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* yychar is either YYEMPTY or YYEOF
866a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     or a valid token in external form.  */
867a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
868a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yychar == YYEMPTY)
869a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
870b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYDPRINTF ((stderr, "Reading a token: "));
871a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yychar = YYLEX;
872a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
873a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
874a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Convert token to internal form (in yychar1) for indexing tables with */
875a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
876a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yychar <= 0)		/* This means end of input. */
877a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
878a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yychar1 = 0;
879a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yychar = YYEOF;		/* Don't call YYLEX any more */
880a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
881b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYDPRINTF ((stderr, "Now at end of input.\n"));
882a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
883a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  else
884a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
885b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      yychar1 = YYTRANSLATE (yychar);
886a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
887b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYDEBUG
888b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     /* We have to keep this `#if YYDEBUG', since we use variables
889b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	which are defined only if `YYDEBUG' is set.  */
890a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yydebug)
891a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	{
892b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  YYFPRINTF (stderr, "Next token is %d (%s",
893b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		     yychar, yytname[yychar1]);
894b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  /* Give the individual parser a way to print the precise
895b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	     meaning of a token, for further debugging info.  */
896b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# ifdef YYPRINT
897a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  YYPRINT (stderr, yychar, yylval);
898b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o# endif
899b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  YYFPRINTF (stderr, ")\n");
900a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	}
901a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
902a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
903a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
904a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn += yychar1;
905a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
906a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    goto yydefault;
907a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
908a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn = yytable[yyn];
909a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
910a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* yyn is what to do for this token type in this state.
911a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     Negative => reduce, -yyn is rule number.
912a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     Positive => shift, yyn is new state.
913a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o       New state is final state => don't bother to shift,
914a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o       just return success.
915a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     0, or most negative number => error.  */
916a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
917a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn < 0)
918a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
919a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yyn == YYFLAG)
920a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	goto yyerrlab;
921a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yyn = -yyn;
922a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      goto yyreduce;
923a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
924a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  else if (yyn == 0)
925a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    goto yyerrlab;
926a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
927a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn == YYFINAL)
928a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    YYACCEPT;
929a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
930a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Shift the lookahead token.  */
931b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
932b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	      yychar, yytname[yychar1]));
933a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
934a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Discard the token being shifted unless it is eof.  */
935a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yychar != YYEOF)
936a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    yychar = YYEMPTY;
937a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
938a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  *++yyvsp = yylval;
939b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
940a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  *++yylsp = yylloc;
941a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
942a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
943b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Count tokens shifted since error; after three, turn off error
944b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     status.  */
945b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  if (yyerrstatus)
946b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    yyerrstatus--;
947a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
948a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yystate = yyn;
949a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  goto yynewstate;
950a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
951a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
952b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*-----------------------------------------------------------.
953b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yydefault -- do the default action for the current state.  |
954b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`-----------------------------------------------------------*/
955b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyydefault:
956a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn = yydefact[yystate];
957a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn == 0)
958a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    goto yyerrlab;
959b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  goto yyreduce;
960b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
961a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
962b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*-----------------------------.
963b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyreduce -- Do a reduction.  |
964b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`-----------------------------*/
965a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'oyyreduce:
966b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* yyn is the number of a rule to reduce with.  */
967a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yylen = yyr2[yyn];
968a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
969b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* If YYLEN is nonzero, implement the default value of the action:
970b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     `$$ = $1'.
971b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
972b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     Otherwise, the following line sets YYVAL to the semantic value of
973b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     the lookahead token.  This behavior is undocumented and Bison
974b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     users should not rely upon it.  Assigning to YYVAL
975b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     unconditionally makes the parser a bit smaller, and it avoids a
976b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     GCC warning that YYVAL may be used uninitialized.  */
977b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyval = yyvsp[1-yylen];
978b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
979b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
980b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Similarly for the default location.  Let the user run additional
981b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     commands if for instance locations are ranges.  */
982b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyloc = yylsp[1-yylen];
983b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
984b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif
985b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
986b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYDEBUG
987b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* We have to keep this `#if YYDEBUG', since we use variables which
988b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     are defined only if `YYDEBUG' is set.  */
989a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yydebug)
990a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
991b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      int yyi;
992a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
993b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
994b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		 yyn, yyrline[yyn]);
995a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
996a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* Print the symbols being reduced, and their result.  */
997b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
998b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
999b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1000a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1001a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1002a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1003a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  switch (yyn) {
1004a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1005a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 1:
1006b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 151 "plural.y"
1007a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1008a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    if (yyvsp[0].exp == NULL)
1009a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	      YYABORT;
1010a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    ((struct parse_args *) arg)->res = yyvsp[0].exp;
1011b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1012b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1013a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 2:
1014b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 159 "plural.y"
1015a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1016a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_3 (qmop, yyvsp[-4].exp, yyvsp[-2].exp, yyvsp[0].exp);
1017b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1018b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1019a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 3:
1020b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 163 "plural.y"
1021a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1022a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_2 (lor, yyvsp[-2].exp, yyvsp[0].exp);
1023b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1024b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1025a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 4:
1026b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 167 "plural.y"
1027a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1028a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_2 (land, yyvsp[-2].exp, yyvsp[0].exp);
1029b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1030b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1031a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 5:
1032b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 171 "plural.y"
1033a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1034a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
1035b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1036b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1037a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 6:
1038b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 175 "plural.y"
1039a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1040a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
1041b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1042b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1043a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 7:
1044b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 179 "plural.y"
1045a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1046a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
1047b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1048b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1049a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 8:
1050b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 183 "plural.y"
1051a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1052a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_2 (yyvsp[-1].op, yyvsp[-2].exp, yyvsp[0].exp);
1053b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1054b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1055a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 9:
1056b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 187 "plural.y"
1057a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1058a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_1 (lnot, yyvsp[0].exp);
1059b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1060b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1061a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 10:
1062b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 191 "plural.y"
1063a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1064a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = new_exp_0 (var);
1065b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1066b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1067a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 11:
1068b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 195 "plural.y"
1069a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1070a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    if ((yyval.exp = new_exp_0 (num)) != NULL)
1071a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	      yyval.exp->val.num = yyvsp[0].num;
1072b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1073b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1074a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ocase 12:
1075b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 200 "plural.y"
1076a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1077a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    yyval.exp = yyvsp[-1].exp;
1078b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  }
1079b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    break;
1080a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
1081b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1082b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 705 "/usr/local/share/bison/bison.simple"
1083b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1084efc6f628e15de95bcd13e4f0ee223cb42115d520Theodore Ts'o
1085a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyvsp -= yylen;
1086a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyssp -= yylen;
1087b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
1088a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yylsp -= yylen;
1089a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1090a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1091b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYDEBUG
1092a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yydebug)
1093a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1094b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      short *yyssp1 = yyss - 1;
1095b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYFPRINTF (stderr, "state stack now");
1096b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      while (yyssp1 != yyssp)
1097b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYFPRINTF (stderr, " %d", *++yyssp1);
1098b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYFPRINTF (stderr, "\n");
1099a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1100a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1101a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1102a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  *++yyvsp = yyval;
1103b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
1104b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  *++yylsp = yyloc;
1105a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1106a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1107b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Now `shift' the result of the reduction.  Determine what state
1108b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     that goes to, based on the state we popped back to and the rule
1109b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     number reduced by.  */
1110a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1111a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn = yyr1[yyn];
1112a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1113a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
1114a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1115a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    yystate = yytable[yystate];
1116a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  else
1117a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    yystate = yydefgoto[yyn - YYNTBASE];
1118a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1119a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  goto yynewstate;
1120a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1121a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1122b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*------------------------------------.
1123b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyerrlab -- here on detecting error |
1124b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`------------------------------------*/
1125b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyerrlab:
1126b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* If not already recovering from an error, report this error.  */
1127b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  if (!yyerrstatus)
1128a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1129a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      ++yynerrs;
1130a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1131a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#ifdef YYERROR_VERBOSE
1132a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yyn = yypact[yystate];
1133a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1134a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yyn > YYFLAG && yyn < YYLAST)
1135a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	{
1136b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  YYSIZE_T yysize = 0;
1137b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  char *yymsg;
1138b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  int yyx, yycount;
1139b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1140b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  yycount = 0;
1141b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  /* Start YYX at -YYN if negative to avoid negative indexes in
1142b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	     YYCHECK.  */
1143b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  for (yyx = yyn < 0 ? -yyn : 0;
1144b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	       yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
1145b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	    if (yycheck[yyx + yyn] == yyx)
1146b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	      yysize += yystrlen (yytname[yyx]) + 15, yycount++;
1147b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  yysize += yystrlen ("parse error, unexpected ") + 1;
1148b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
1149b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  yymsg = (char *) YYSTACK_ALLOC (yysize);
1150b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	  if (yymsg != 0)
1151a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    {
1152b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	      char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
1153b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	      yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
1154a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1155b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	      if (yycount < 5)
1156a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o		{
1157b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		  yycount = 0;
1158b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		  for (yyx = yyn < 0 ? -yyn : 0;
1159b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		       yyx < (int) (sizeof (yytname) / sizeof (char *));
1160b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		       yyx++)
1161b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		    if (yycheck[yyx + yyn] == yyx)
1162a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o		      {
1163b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o			const char *yyq = ! yycount ? ", expecting " : " or ";
1164b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o			yyp = yystpcpy (yyp, yyq);
1165b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o			yyp = yystpcpy (yyp, yytname[yyx]);
1166b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o			yycount++;
1167a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o		      }
1168a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o		}
1169b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	      yyerror (yymsg);
1170b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	      YYSTACK_FREE (yymsg);
1171a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    }
1172a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  else
1173b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	    yyerror ("parse error; also virtual memory exhausted");
1174a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	}
1175a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      else
1176b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#endif /* defined (YYERROR_VERBOSE) */
1177b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	yyerror ("parse error");
1178a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1179a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  goto yyerrlab1;
1180a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1181b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1182b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*--------------------------------------------------.
1183b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyerrlab1 -- error raised explicitly by an action |
1184b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`--------------------------------------------------*/
1185b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyerrlab1:
1186a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyerrstatus == 3)
1187a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1188b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      /* If just tried and failed to reuse lookahead token after an
1189b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	 error, discard it.  */
1190a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1191a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* return failure if at end of input */
1192a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yychar == YYEOF)
1193a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	YYABORT;
1194b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
1195b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o		  yychar, yytname[yychar1]));
1196a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yychar = YYEMPTY;
1197a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1198a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1199b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Else will try to reuse lookahead token after shifting the error
1200b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o     token.  */
1201a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1202a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyerrstatus = 3;		/* Each real token shifted decrements this */
1203a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1204a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  goto yyerrhandle;
1205a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1206a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1207b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*-------------------------------------------------------------------.
1208b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyerrdefault -- current state does not do anything special for the |
1209b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| error token.                                                       |
1210b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`-------------------------------------------------------------------*/
1211b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyerrdefault:
1212a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#if 0
1213a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* This is wrong; only states that explicitly want error tokens
1214a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o     should shift them.  */
1215b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1216b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* If its default is to accept any token, ok.  Otherwise pop it.  */
1217b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyn = yydefact[yystate];
1218b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  if (yyn)
1219b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    goto yydefault;
1220a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1221a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1222a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1223b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*---------------------------------------------------------------.
1224b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyerrpop -- pop the current state because it cannot handle the |
1225b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| error token                                                    |
1226b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`---------------------------------------------------------------*/
1227b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyerrpop:
1228b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  if (yyssp == yyss)
1229b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    YYABORT;
1230a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyvsp--;
1231a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yystate = *--yyssp;
1232b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
1233a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yylsp--;
1234a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1235a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1236b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYDEBUG
1237a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yydebug)
1238a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1239b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      short *yyssp1 = yyss - 1;
1240b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYFPRINTF (stderr, "Error: state stack now");
1241b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      while (yyssp1 != yyssp)
1242b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o	YYFPRINTF (stderr, " %d", *++yyssp1);
1243b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o      YYFPRINTF (stderr, "\n");
1244a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1245a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1246a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1247b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*--------------.
1248b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyerrhandle.  |
1249b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`--------------*/
1250a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'oyyerrhandle:
1251a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn = yypact[yystate];
1252a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn == YYFLAG)
1253a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    goto yyerrdefault;
1254a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1255a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn += YYTERROR;
1256a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
1257a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    goto yyerrdefault;
1258a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1259a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yyn = yytable[yyn];
1260a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn < 0)
1261a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1262a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (yyn == YYFLAG)
1263a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	goto yyerrpop;
1264a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      yyn = -yyn;
1265a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      goto yyreduce;
1266a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1267a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  else if (yyn == 0)
1268a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    goto yyerrpop;
1269a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1270a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (yyn == YYFINAL)
1271a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    YYACCEPT;
1272a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1273b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  YYDPRINTF ((stderr, "Shifting error token, "));
1274a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1275a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  *++yyvsp = yylval;
1276b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#if YYLSP_NEEDED
1277a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  *++yylsp = yylloc;
1278a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1279a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1280a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  yystate = yyn;
1281a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  goto yynewstate;
1282a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1283a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1284b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*-------------------------------------.
1285b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyacceptlab -- YYACCEPT comes here.  |
1286b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`-------------------------------------*/
1287b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyacceptlab:
1288b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyresult = 0;
1289b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  goto yyreturn;
1290b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1291b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*-----------------------------------.
1292b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyabortlab -- YYABORT comes here.  |
1293b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`-----------------------------------*/
1294b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyabortlab:
1295b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyresult = 1;
1296b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  goto yyreturn;
1297b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1298b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o/*---------------------------------------------.
1299b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o| yyoverflowab -- parser overflow comes here.  |
1300b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o`---------------------------------------------*/
1301b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyoverflowlab:
1302b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyerror ("parser stack overflow");
1303b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  yyresult = 2;
1304b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  /* Fall through.  */
1305b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o
1306b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyreturn:
1307b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#ifndef yyoverflow
1308b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  if (yyss != yyssa)
1309b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o    YYSTACK_FREE (yyss);
1310a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1311b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o  return yyresult;
1312a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
1313b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'o#line 205 "plural.y"
1314a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1315a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1316a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ovoid
1317a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ointernal_function
1318b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oFREE_EXPRESSION (struct expression *exp)
1319a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1320a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  if (exp == NULL)
1321a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    return;
1322a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1323a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Handle the recursive case.  */
1324a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  switch (exp->nargs)
1325a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1326a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case 3:
1327a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      FREE_EXPRESSION (exp->val.args[2]);
1328a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* FALLTHROUGH */
1329a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case 2:
1330a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      FREE_EXPRESSION (exp->val.args[1]);
1331a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* FALLTHROUGH */
1332a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case 1:
1333a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      FREE_EXPRESSION (exp->val.args[0]);
1334a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* FALLTHROUGH */
1335a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    default:
1336a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1337a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1338a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1339a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  free (exp);
1340a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
1341a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1342a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1343a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ostatic int
1344b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyylex (YYSTYPE *lval, const char **pexp)
1345a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1346a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  const char *exp = *pexp;
1347a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  int result;
1348a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1349a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  while (1)
1350a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1351a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (exp[0] == '\0')
1352a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	{
1353a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  *pexp = exp;
1354a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  return YYEOF;
1355a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	}
1356a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1357a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (exp[0] != ' ' && exp[0] != '\t')
1358a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	break;
1359a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1360a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      ++exp;
1361a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1362a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1363a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  result = *exp++;
1364a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  switch (result)
1365a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    {
1366a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '0': case '1': case '2': case '3': case '4':
1367a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '5': case '6': case '7': case '8': case '9':
1368a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      {
1369a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	unsigned long int n = result - '0';
1370a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	while (exp[0] >= '0' && exp[0] <= '9')
1371a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  {
1372a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    n *= 10;
1373a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    n += exp[0] - '0';
1374a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	    ++exp;
1375a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  }
1376a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	lval->num = n;
1377a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	result = NUMBER;
1378a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      }
1379a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1380a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1381a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '=':
1382a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (exp[0] == '=')
1383a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	{
1384a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  ++exp;
1385a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  lval->op = equal;
1386a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  result = EQUOP2;
1387a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	}
1388a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      else
1389a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	result = YYERRCODE;
1390a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1391a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1392a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '!':
1393a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (exp[0] == '=')
1394a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	{
1395a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  ++exp;
1396a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  lval->op = not_equal;
1397a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  result = EQUOP2;
1398a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	}
1399a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1400a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1401a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '&':
1402a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '|':
1403a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (exp[0] == result)
1404a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	++exp;
1405a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      else
1406a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	result = YYERRCODE;
1407a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1408a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1409a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '<':
1410a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (exp[0] == '=')
1411a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	{
1412a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  ++exp;
1413a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  lval->op = less_or_equal;
1414a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	}
1415a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      else
1416a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	lval->op = less_than;
1417a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = CMPOP2;
1418a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1419a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1420a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '>':
1421a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      if (exp[0] == '=')
1422a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	{
1423a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  ++exp;
1424a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	  lval->op = greater_or_equal;
1425a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	}
1426a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      else
1427a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o	lval->op = greater_than;
1428a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = CMPOP2;
1429a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1430a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1431a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '*':
1432a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      lval->op = mult;
1433a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = MULOP2;
1434a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1435a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1436a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '/':
1437a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      lval->op = divide;
1438a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = MULOP2;
1439a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1440a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1441a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '%':
1442a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      lval->op = module;
1443a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = MULOP2;
1444a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1445a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1446a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '+':
1447a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      lval->op = plus;
1448a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = ADDOP2;
1449a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1450a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1451a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '-':
1452a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      lval->op = minus;
1453a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = ADDOP2;
1454a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1455a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1456a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case 'n':
1457a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '?':
1458a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case ':':
1459a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '(':
1460a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case ')':
1461a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* Nothing, just return the character.  */
1462a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1463a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1464a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case ';':
1465a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '\n':
1466a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    case '\0':
1467a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      /* Be safe and let the user call this function again.  */
1468a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      --exp;
1469a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = YYEOF;
1470a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1471a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1472a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    default:
1473a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      result = YYERRCODE;
1474a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#if YYDEBUG != 0
1475a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      --exp;
1476a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o#endif
1477a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o      break;
1478a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o    }
1479a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1480a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  *pexp = exp;
1481a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1482a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  return result;
1483a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
1484a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1485a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o
1486a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'ostatic void
1487b0cacab066000b940551d59aad3e4553d4bad268Theodore Ts'oyyerror (const char *str)
1488a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o{
1489a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o  /* Do nothing.  We don't print error messages here.  */
1490a04eba3f8868af1d9b7b504d3d430c55ed3dc777Theodore Ts'o}
1491