New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 11668 for vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif/LIB/main.c – NEMO

Ignore:
Timestamp:
2019-10-09T14:01:43+02:00 (5 years ago)
Author:
acc
Message:

Branch dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif. Changes to support 2019/dev_r11615_ENHANCE-04_namelists_as_internalfiles developments.
These changes enable sufficient support for allocatable, zero-dimension character variables defined using the:

CHARACTER(LEN=:), ALLOCATABLE :: cstr

syntax. This is supported by:

  1. Adding : as a valid length identifier at line 1028 in fortran.y (and then rebuilding fortran.c and main.c via make -f Makefile.lex)
  2. Adding a carrayu entry to Agrif_Variable_c type in AGRIF_FILES/modtypes.F90 where carrayu is declared as:
character(:) , allocatable
carrayu
Ensuring correct deallocation of carrayu in AGRIF_FILES/modsauv.F90 and AGRIF_FILES/modutil.F90
  • Substituting carrayu in place of carray0 declarations when character length matches : for zero-dimension variables. This occurs twice in LIB/toamr.c, e.g:
  • if (!strcasecmp(var->v_dimchar ,":") && var->v_nbdim == 0 )
    {
    sprintf (tname_2, "%% carrayu");
    } else {
    sprintf (tname_2, "%% carray%d", var->v_nbdim);
    }

    Any such character variables must be allocated by the user. Typically this is done with lines such as:

    IF ( .NOT. ALLOCATED(cdnambuff) ) ALLOCATE( CHARACTER(LEN=kleng)
    cdnambuff )

    making AGRIF accept the CHARACTER(LEN=kleng) :: construct within the ALLOCATE statement was beyond my skills. Fortunately, for the current purpose, this
    isn't necessary since such allocations only occur within utility routines in which the appropriate tabvar has been passed down. So:

    !$AGRIF_DO_NOT_TREAT

    IF ( .NOT. ALLOCATED(cdnambuff) ) ALLOCATE( CHARACTER(LEN=kleng)
    cdnambuff )
    !$AGRIF_END_DO_NOT_TREAT

    avoids the issue.

    File:
    1 edited

    Legend:

    Unmodified
    Added
    Removed
    • vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif/LIB/main.c

      r5656 r11668  
      1 /* A Bison parser, made by GNU Bison 2.3.  */ 
      2  
      3 /* Skeleton implementation for Bison's Yacc-like parsers in C 
      4  
      5    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 
      6    Free Software Foundation, Inc. 
      7  
      8    This program is free software; you can redistribute it and/or modify 
       1/* A Bison parser, made by GNU Bison 3.4.2.  */ 
       2 
       3/* Bison implementation for Yacc-like parsers in C 
       4 
       5   Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, 
       6   Inc. 
       7 
       8   This program is free software: you can redistribute it and/or modify 
      99   it under the terms of the GNU General Public License as published by 
      10    the Free Software Foundation; either version 2, or (at your option) 
      11    any later version. 
       10   the Free Software Foundation, either version 3 of the License, or 
       11   (at your option) any later version. 
      1212 
      1313   This program is distributed in the hope that it will be useful, 
       
      1717 
      1818   You should have received a copy of the GNU General Public License 
      19    along with this program; if not, write to the Free Software 
      20    Foundation, Inc., 51 Franklin Street, Fifth Floor, 
      21    Boston, MA 02110-1301, USA.  */ 
       19   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ 
      2220 
      2321/* As a special exception, you may create a larger work that contains 
       
      4442   USER NAME SPACE" below.  */ 
      4543 
       44/* Undocumented macros, especially those whose name start with YY_, 
       45   are private implementation details.  Do not rely on them.  */ 
       46 
      4647/* Identify Bison output.  */ 
      4748#define YYBISON 1 
      4849 
      4950/* Bison version.  */ 
      50 #define YYBISON_VERSION "2.3" 
       51#define YYBISON_VERSION "3.4.2" 
      5152 
      5253/* Skeleton name.  */ 
       
      5657#define YYPURE 0 
      5758 
      58 /* Using locations.  */ 
      59 #define YYLSP_NEEDED 0 
       59/* Push parsers.  */ 
       60#define YYPUSH 0 
       61 
       62/* Pull parsers.  */ 
       63#define YYPULL 1 
       64 
      6065 
      6166/* Substitute the variable and function names.  */ 
      62 #define yyparse convert_parse 
      63 #define yylex   convert_lex 
      64 #define yyerror convert_error 
      65 #define yylval  convert_lval 
      66 #define yychar  convert_char 
      67 #define yydebug convert_debug 
      68 #define yynerrs convert_nerrs 
      69  
      70  
      71 /* Tokens.  */ 
      72 #ifndef YYTOKENTYPE 
      73 # define YYTOKENTYPE 
      74    /* Put the tokens into the symbol table, so that GDB and other debuggers 
      75       know about them.  */ 
      76    enum yytokentype { 
      77      TOK_SEP = 258, 
      78      TOK_KIND = 259, 
      79      TOK_EQUAL = 260, 
      80      TOK_USE = 261, 
      81      TOK_MODULEMAIN = 262, 
      82      TOK_NOTGRIDDEP = 263, 
      83      TOK_USEITEM = 264, 
      84      TOK_NAME = 265, 
      85      TOK_CSTINT = 266, 
      86      TOK_PROBTYPE = 267 
      87    }; 
      88 #endif 
      89 /* Tokens.  */ 
      90 #define TOK_SEP 258 
      91 #define TOK_KIND 259 
      92 #define TOK_EQUAL 260 
      93 #define TOK_USE 261 
      94 #define TOK_MODULEMAIN 262 
      95 #define TOK_NOTGRIDDEP 263 
      96 #define TOK_USEITEM 264 
      97 #define TOK_NAME 265 
      98 #define TOK_CSTINT 266 
      99 #define TOK_PROBTYPE 267 
      100  
      101  
      102  
      103  
      104 /* Copy the first part of user declarations.  */ 
       67#define yyparse         convert_parse 
       68#define yylex           convert_lex 
       69#define yyerror         convert_error 
       70#define yydebug         convert_debug 
       71#define yynerrs         convert_nerrs 
       72 
       73#define yylval          convert_lval 
       74#define yychar          convert_char 
       75 
       76/* First part of user prologue.  */ 
      10577#line 35 "convert.y" 
      10678 
       
      12092 
      12193 
      122  
      123 /* Enabling traces.  */ 
      124 #ifndef YYDEBUG 
      125 # define YYDEBUG 1 
      126 #endif 
       94#line 95 "convert.tab.c" 
       95 
       96# ifndef YY_NULLPTR 
       97#  if defined __cplusplus 
       98#   if 201103L <= __cplusplus 
       99#    define YY_NULLPTR nullptr 
       100#   else 
       101#    define YY_NULLPTR 0 
       102#   endif 
       103#  else 
       104#   define YY_NULLPTR ((void*)0) 
       105#  endif 
       106# endif 
      127107 
      128108/* Enabling verbose error messages.  */ 
       
      134114#endif 
      135115 
      136 /* Enabling the token table.  */ 
      137 #ifndef YYTOKEN_TABLE 
      138 # define YYTOKEN_TABLE 0 
      139 #endif 
      140  
       116 
       117/* Debug traces.  */ 
       118#ifndef YYDEBUG 
       119# define YYDEBUG 1 
       120#endif 
       121#if YYDEBUG 
       122extern int convert_debug; 
       123#endif 
       124 
       125/* Token type.  */ 
       126#ifndef YYTOKENTYPE 
       127# define YYTOKENTYPE 
       128  enum yytokentype 
       129  { 
       130    TOK_SEP = 258, 
       131    TOK_KIND = 259, 
       132    TOK_EQUAL = 260, 
       133    TOK_USE = 261, 
       134    TOK_MODULEMAIN = 262, 
       135    TOK_NOTGRIDDEP = 263, 
       136    TOK_USEITEM = 264, 
       137    TOK_NAME = 265, 
       138    TOK_CSTINT = 266, 
       139    TOK_PROBTYPE = 267 
       140  }; 
       141#endif 
       142 
       143/* Value type.  */ 
      141144#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED 
      142 typedef union YYSTYPE 
       145union YYSTYPE 
       146{ 
      143147#line 52 "convert.y" 
      144 { 
       148 
      145149    char na[LONG_M]; 
      146 } 
      147 /* Line 193 of yacc.c.  */ 
      148 #line 149 "convert.tab.c" 
      149    YYSTYPE; 
      150 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ 
       150 
       151#line 152 "convert.tab.c" 
       152 
       153}; 
       154typedef union YYSTYPE YYSTYPE; 
       155# define YYSTYPE_IS_TRIVIAL 1 
      151156# define YYSTYPE_IS_DECLARED 1 
      152 # define YYSTYPE_IS_TRIVIAL 1 
      153 #endif 
      154  
      155  
      156  
      157 /* Copy the second part of user declarations.  */ 
      158  
      159  
      160 /* Line 216 of yacc.c.  */ 
      161 #line 162 "convert.tab.c" 
       157#endif 
       158 
       159 
       160extern YYSTYPE convert_lval; 
       161 
       162int convert_parse (void); 
       163 
       164 
       165 
       166 
      162167 
      163168#ifdef short 
       
      173178#ifdef YYTYPE_INT8 
      174179typedef YYTYPE_INT8 yytype_int8; 
      175 #elif (defined __STDC__ || defined __C99__FUNC__ \ 
      176      || defined __cplusplus || defined _MSC_VER) 
       180#else 
      177181typedef signed char yytype_int8; 
      178 #else 
      179 typedef short int yytype_int8; 
      180182#endif 
      181183 
       
      183185typedef YYTYPE_UINT16 yytype_uint16; 
      184186#else 
      185 typedef unsigned short int yytype_uint16; 
       187typedef unsigned short yytype_uint16; 
      186188#endif 
      187189 
       
      189191typedef YYTYPE_INT16 yytype_int16; 
      190192#else 
      191 typedef short int yytype_int16; 
       193typedef short yytype_int16; 
      192194#endif 
      193195 
       
      197199# elif defined size_t 
      198200#  define YYSIZE_T size_t 
      199 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ 
      200      || defined __cplusplus || defined _MSC_VER) 
       201# elif ! defined YYSIZE_T 
      201202#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */ 
      202203#  define YYSIZE_T size_t 
      203204# else 
      204 #  define YYSIZE_T unsigned int 
       205#  define YYSIZE_T unsigned 
      205206# endif 
      206207#endif 
       
      212213#  if ENABLE_NLS 
      213214#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */ 
      214 #   define YY_(msgid) dgettext ("bison-runtime", msgid) 
       215#   define YY_(Msgid) dgettext ("bison-runtime", Msgid) 
      215216#  endif 
      216217# endif 
      217218# ifndef YY_ 
      218 #  define YY_(msgid) msgid 
       219#  define YY_(Msgid) Msgid 
      219220# endif 
       221#endif 
       222 
       223#ifndef YY_ATTRIBUTE 
       224# if (defined __GNUC__                                               \ 
       225      && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))  \ 
       226     || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C 
       227#  define YY_ATTRIBUTE(Spec) __attribute__(Spec) 
       228# else 
       229#  define YY_ATTRIBUTE(Spec) /* empty */ 
       230# endif 
       231#endif 
       232 
       233#ifndef YY_ATTRIBUTE_PURE 
       234# define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__)) 
       235#endif 
       236 
       237#ifndef YY_ATTRIBUTE_UNUSED 
       238# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) 
      220239#endif 
      221240 
      222241/* Suppress unused-variable warnings by "using" E.  */ 
      223242#if ! defined lint || defined __GNUC__ 
      224 # define YYUSE(e) ((void) (e)) 
       243# define YYUSE(E) ((void) (E)) 
      225244#else 
      226 # define YYUSE(e) /* empty */ 
      227 #endif 
      228  
      229 /* Identity function, used to suppress warnings about constant conditions.  */ 
      230 #ifndef lint 
      231 # define YYID(n) (n) 
       245# define YYUSE(E) /* empty */ 
       246#endif 
       247 
       248#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ 
       249/* Suppress an incorrect diagnostic about yylval being uninitialized.  */ 
       250# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ 
       251    _Pragma ("GCC diagnostic push") \ 
       252    _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ 
       253    _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") 
       254# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ 
       255    _Pragma ("GCC diagnostic pop") 
      232256#else 
      233 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      234      || defined __cplusplus || defined _MSC_VER) 
      235 static int 
      236 YYID (int i) 
      237 #else 
      238 static int 
      239 YYID (i) 
      240     int i; 
      241 #endif 
      242 { 
      243   return i; 
      244 } 
      245 #endif 
       257# define YY_INITIAL_VALUE(Value) Value 
       258#endif 
       259#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
       260# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
       261# define YY_IGNORE_MAYBE_UNINITIALIZED_END 
       262#endif 
       263#ifndef YY_INITIAL_VALUE 
       264# define YY_INITIAL_VALUE(Value) /* Nothing. */ 
       265#endif 
       266 
       267 
       268#define YY_ASSERT(E) ((void) (0 && (E))) 
      246269 
      247270#if ! defined yyoverflow || YYERROR_VERBOSE 
       
      262285#   else 
      263286#    define YYSTACK_ALLOC alloca 
      264 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 
      265      || defined __cplusplus || defined _MSC_VER) 
       287#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS 
      266288#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
      267 #     ifndef _STDLIB_H 
      268 #      define _STDLIB_H 1 
       289      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */ 
       290#     ifndef EXIT_SUCCESS 
       291#      define EXIT_SUCCESS 0 
      269292#     endif 
      270293#    endif 
       
      274297 
      275298# ifdef YYSTACK_ALLOC 
      276    /* Pacify GCC's `empty if-body' warning.  */ 
      277 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) 
       299   /* Pacify GCC's 'empty if-body' warning.  */ 
       300#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) 
      278301#  ifndef YYSTACK_ALLOC_MAXIMUM 
      279302    /* The OS might guarantee only one guard page at the bottom of the stack, 
       
      289312#   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM 
      290313#  endif 
      291 #  if (defined __cplusplus && ! defined _STDLIB_H \ 
       314#  if (defined __cplusplus && ! defined EXIT_SUCCESS \ 
      292315       && ! ((defined YYMALLOC || defined malloc) \ 
      293         && (defined YYFREE || defined free))) 
       316             && (defined YYFREE || defined free))) 
      294317#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 
      295 #   ifndef _STDLIB_H 
      296 #    define _STDLIB_H 1 
       318#   ifndef EXIT_SUCCESS 
       319#    define EXIT_SUCCESS 0 
      297320#   endif 
      298321#  endif 
      299322#  ifndef YYMALLOC 
      300323#   define YYMALLOC malloc 
      301 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 
      302      || defined __cplusplus || defined _MSC_VER) 
       324#   if ! defined malloc && ! defined EXIT_SUCCESS 
      303325void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ 
      304326#   endif 
       
      306328#  ifndef YYFREE 
      307329#   define YYFREE free 
      308 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ 
      309      || defined __cplusplus || defined _MSC_VER) 
       330#   if ! defined free && ! defined EXIT_SUCCESS 
      310331void free (void *); /* INFRINGES ON USER NAME SPACE */ 
      311332#   endif 
       
      317338#if (! defined yyoverflow \ 
      318339     && (! defined __cplusplus \ 
      319     || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 
       340        || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) 
      320341 
      321342/* A type that is properly aligned for any stack member.  */ 
      322343union yyalloc 
      323344{ 
      324   yytype_int16 yyss; 
      325   YYSTYPE yyvs; 
      326   }; 
       345  yytype_int16 yyss_alloc; 
       346  YYSTYPE yyvs_alloc; 
       347}; 
      327348 
      328349/* The size of the maximum gap between one aligned stack and the next.  */ 
       
      335356      + YYSTACK_GAP_MAXIMUM) 
      336357 
      337 /* Copy COUNT objects from FROM to TO.  The source and destination do 
      338    not overlap.  */ 
      339 # ifndef YYCOPY 
      340 #  if defined __GNUC__ && 1 < __GNUC__ 
      341 #   define YYCOPY(To, From, Count) \ 
      342       __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 
      343 #  else 
      344 #   define YYCOPY(To, From, Count)     \ 
      345       do             \ 
      346    {              \ 
      347      YYSIZE_T yyi;            \ 
      348      for (yyi = 0; yyi < (Count); yyi++)  \ 
      349        (To)[yyi] = (From)[yyi];     \ 
      350    }              \ 
      351       while (YYID (0)) 
      352 #  endif 
      353 # endif 
       358# define YYCOPY_NEEDED 1 
      354359 
      355360/* Relocate STACK from its old location to the new one.  The 
       
      358363   stack.  Advance YYPTR to a properly aligned location for the next 
      359364   stack.  */ 
      360 # define YYSTACK_RELOCATE(Stack)             \ 
      361     do                           \ 
      362       {                          \ 
      363    YYSIZE_T yynewbytes;                \ 
      364    YYCOPY (&yyptr->Stack, Stack, yysize);          \ 
      365    Stack = &yyptr->Stack;                 \ 
      366    yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 
      367    yyptr += yynewbytes / sizeof (*yyptr);          \ 
      368       }                          \ 
      369     while (YYID (0)) 
      370  
      371 #endif 
       365# define YYSTACK_RELOCATE(Stack_alloc, Stack)                           \ 
       366    do                                                                  \ 
       367      {                                                                 \ 
       368        YYSIZE_T yynewbytes;                                            \ 
       369        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \ 
       370        Stack = &yyptr->Stack_alloc;                                    \ 
       371        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ 
       372        yyptr += yynewbytes / sizeof (*yyptr);                          \ 
       373      }                                                                 \ 
       374    while (0) 
       375 
       376#endif 
       377 
       378#if defined YYCOPY_NEEDED && YYCOPY_NEEDED 
       379/* Copy COUNT objects from SRC to DST.  The source and destination do 
       380   not overlap.  */ 
       381# ifndef YYCOPY 
       382#  if defined __GNUC__ && 1 < __GNUC__ 
       383#   define YYCOPY(Dst, Src, Count) \ 
       384      __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 
       385#  else 
       386#   define YYCOPY(Dst, Src, Count)              \ 
       387      do                                        \ 
       388        {                                       \ 
       389          YYSIZE_T yyi;                         \ 
       390          for (yyi = 0; yyi < (Count); yyi++)   \ 
       391            (Dst)[yyi] = (Src)[yyi];            \ 
       392        }                                       \ 
       393      while (0) 
       394#  endif 
       395# endif 
       396#endif /* !YYCOPY_NEEDED */ 
      372397 
      373398/* YYFINAL -- State number of the termination state.  */ 
       
      382407/* YYNRULES -- Number of rules.  */ 
      383408#define YYNRULES  11 
      384 /* YYNRULES -- Number of states.  */ 
       409/* YYNSTATES -- Number of states.  */ 
      385410#define YYNSTATES  29 
      386411 
      387 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */ 
      388412#define YYUNDEFTOK  2 
      389413#define YYMAXUTOK   267 
      390414 
      391 #define YYTRANSLATE(YYX)                  \ 
      392   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 
      393  
      394 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */ 
       415/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM 
       416   as returned by yylex, with out-of-bounds checking.  */ 
       417#define YYTRANSLATE(YYX)                                                \ 
       418  ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) 
       419 
       420/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM 
       421   as returned by yylex.  */ 
      395422static const yytype_uint8 yytranslate[] = 
      396423{ 
       
      425452 
      426453#if YYDEBUG 
      427 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in 
      428    YYRHS.  */ 
      429 static const yytype_uint8 yyprhs[] = 
      430 { 
      431        0,     0,     3,     4,     7,     9,    13,    19,    27,    31, 
      432       37,    42 
      433 }; 
      434  
      435 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */ 
      436 static const yytype_int8 yyrhs[] = 
      437 { 
      438       17,     0,    -1,    -1,    17,    18,    -1,    15,    -1,    12, 
      439       10,    14,    -1,    12,    10,    13,    10,    14,    -1,    12, 
      440       10,    13,    10,    13,    10,    14,    -1,     7,    10,    14, 
      441       -1,     4,    10,     5,    11,    14,    -1,     8,     3,    10, 
      442       14,    -1,     6,     9,    14,    -1 
      443 }; 
      444  
      445 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */ 
       454  /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */ 
      446455static const yytype_uint8 yyrline[] = 
      447456{ 
       
      451460#endif 
      452461 
      453 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE 
       462#if YYDEBUG || YYERROR_VERBOSE || 0 
      454463/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. 
      455464   First, the terminals, then, starting at YYNTOKENS, nonterminals.  */ 
       
      459468  "TOK_USE", "TOK_MODULEMAIN", "TOK_NOTGRIDDEP", "TOK_USEITEM", "TOK_NAME", 
      460469  "TOK_CSTINT", "TOK_PROBTYPE", "','", "';'", "'\\n'", "$accept", "input", 
      461   "line", 0 
       470  "line", YY_NULLPTR 
      462471}; 
      463472#endif 
      464473 
      465474# ifdef YYPRINT 
      466 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to 
      467    token YYLEX-NUM.  */ 
       475/* YYTOKNUM[NUM] -- (External) token number corresponding to the 
       476   (internal) symbol number NUM (which must be that of a token).  */ 
      468477static const yytype_uint16 yytoknum[] = 
      469478{ 
       
      473482# endif 
      474483 
      475 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ 
      476 static const yytype_uint8 yyr1[] = 
      477 { 
      478        0,    16,    17,    17,    18,    18,    18,    18,    18,    18, 
      479       18,    18 
       484#define YYPACT_NINF -13 
       485 
       486#define yypact_value_is_default(Yystate) \ 
       487  (!!((Yystate) == (-13))) 
       488 
       489#define YYTABLE_NINF -1 
       490 
       491#define yytable_value_is_error(Yytable_value) \ 
       492  0 
       493 
       494  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
       495     STATE-NUM.  */ 
       496static const yytype_int8 yypact[] = 
       497{ 
       498     -13,     0,   -13,    -7,     2,    -5,    10,     4,   -13,   -13, 
       499      11,     3,     5,     8,   -12,     9,   -13,   -13,     7,    12, 
       500     -13,    13,   -13,    -4,   -13,    14,   -13,    15,   -13 
      480501}; 
      481502 
      482 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */ 
      483 static const yytype_uint8 yyr2[] = 
      484 { 
      485        0,     2,     0,     2,     1,     3,     5,     7,     3,     5, 
      486        4,     3 
      487 }; 
      488  
      489 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state 
      490    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero 
      491    means the default is an error.  */ 
       503  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. 
       504     Performed when YYTABLE does not specify something else to do.  Zero 
       505     means the default is an error.  */ 
      492506static const yytype_uint8 yydefact[] = 
      493507{ 
       
      497511}; 
      498512 
      499 /* YYDEFGOTO[NTERM-NUM].  */ 
       513  /* YYPGOTO[NTERM-NUM].  */ 
       514static const yytype_int8 yypgoto[] = 
       515{ 
       516     -13,   -13,   -13 
       517}; 
       518 
       519  /* YYDEFGOTO[NTERM-NUM].  */ 
      500520static const yytype_int8 yydefgoto[] = 
      501521{ 
       
      503523}; 
      504524 
      505 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 
      506    STATE-NUM.  */ 
      507 #define YYPACT_NINF -13 
      508 static const yytype_int8 yypact[] = 
      509 { 
      510      -13,     0,   -13,    -7,     2,    -5,    10,     4,   -13,   -13, 
      511       11,     3,     5,     8,   -12,     9,   -13,   -13,     7,    12, 
      512      -13,    13,   -13,    -4,   -13,    14,   -13,    15,   -13 
      513 }; 
      514  
      515 /* YYPGOTO[NTERM-NUM].  */ 
      516 static const yytype_int8 yypgoto[] = 
      517 { 
      518      -13,   -13,   -13 
      519 }; 
      520  
      521 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If 
      522    positive, shift that token.  If negative, reduce the rule which 
      523    number is the opposite.  If zero, do what YYDEFACT says. 
      524    If YYTABLE_NINF, syntax error.  */ 
      525 #define YYTABLE_NINF -1 
       525  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If 
       526     positive, shift that token.  If negative, reduce the rule whose 
       527     number is the opposite.  If YYTABLE_NINF, syntax error.  */ 
      526528static const yytype_uint8 yytable[] = 
      527529{ 
       
      538540}; 
      539541 
      540 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 
      541    symbol of state STATE-NUM.  */ 
       542  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 
       543     symbol of state STATE-NUM.  */ 
      542544static const yytype_uint8 yystos[] = 
      543545{ 
       
      547549}; 
      548550 
      549 #define yyerrok      (yyerrstatus = 0) 
      550 #define yyclearin (yychar = YYEMPTY) 
      551 #define YYEMPTY      (-2) 
      552 #define YYEOF     0 
      553  
      554 #define YYACCEPT  goto yyacceptlab 
      555 #define YYABORT      goto yyabortlab 
      556 #define YYERROR      goto yyerrorlab 
      557  
      558  
      559 /* Like YYERROR except do call yyerror.  This remains here temporarily 
      560    to ease the transition to the new meaning of YYERROR, for GCC. 
      561    Once GCC version 2 has supplanted version 1, this can go.  */ 
      562  
      563 #define YYFAIL    goto yyerrlab 
       551  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */ 
       552static const yytype_uint8 yyr1[] = 
       553{ 
       554       0,    16,    17,    17,    18,    18,    18,    18,    18,    18, 
       555      18,    18 
       556}; 
       557 
       558  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */ 
       559static const yytype_uint8 yyr2[] = 
       560{ 
       561       0,     2,     0,     2,     1,     3,     5,     7,     3,     5, 
       562       4,     3 
       563}; 
       564 
       565 
       566#define yyerrok         (yyerrstatus = 0) 
       567#define yyclearin       (yychar = YYEMPTY) 
       568#define YYEMPTY         (-2) 
       569#define YYEOF           0 
       570 
       571#define YYACCEPT        goto yyacceptlab 
       572#define YYABORT         goto yyabortlab 
       573#define YYERROR         goto yyerrorlab 
       574 
      564575 
      565576#define YYRECOVERING()  (!!yyerrstatus) 
      566577 
      567 #define YYBACKUP(Token, Value)               \ 
      568 do                      \ 
      569   if (yychar == YYEMPTY && yylen == 1)          \ 
      570     {                      \ 
      571       yychar = (Token);                \ 
      572       yylval = (Value);                \ 
      573       yytoken = YYTRANSLATE (yychar);           \ 
      574       YYPOPSTACK (1);                  \ 
      575       goto yybackup;                \ 
      576     }                      \ 
      577   else                        \ 
      578     {                      \ 
      579       yyerror (YY_("syntax error: cannot back up")); \ 
      580       YYERROR;                   \ 
      581     }                      \ 
      582 while (YYID (0)) 
      583  
      584  
      585 #define YYTERROR  1 
      586 #define YYERRCODE 256 
      587  
      588  
      589 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. 
      590    If N is 0, then set CURRENT to the empty location which ends 
      591    the previous symbol: RHS[0] (always defined).  */ 
      592  
      593 #define YYRHSLOC(Rhs, K) ((Rhs)[K]) 
      594 #ifndef YYLLOC_DEFAULT 
      595 # define YYLLOC_DEFAULT(Current, Rhs, N)           \ 
      596     do                           \ 
      597       if (YYID (N))                                                    \ 
      598    {                       \ 
      599      (Current).first_line   = YYRHSLOC (Rhs, 1).first_line; \ 
      600      (Current).first_column = YYRHSLOC (Rhs, 1).first_column;  \ 
      601      (Current).last_line    = YYRHSLOC (Rhs, N).last_line;     \ 
      602      (Current).last_column  = YYRHSLOC (Rhs, N).last_column;   \ 
      603    }                       \ 
      604       else                       \ 
      605    {                       \ 
      606      (Current).first_line   = (Current).last_line   =    \ 
      607        YYRHSLOC (Rhs, 0).last_line;          \ 
      608      (Current).first_column = (Current).last_column =    \ 
      609        YYRHSLOC (Rhs, 0).last_column;           \ 
      610    }                       \ 
      611     while (YYID (0)) 
      612 #endif 
      613  
      614  
      615 /* YY_LOCATION_PRINT -- Print the location on the stream. 
      616    This macro was not mandated originally: define only if we know 
      617    we won't break user code: when these are the locations we know.  */ 
      618  
      619 #ifndef YY_LOCATION_PRINT 
      620 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL 
      621 #  define YY_LOCATION_PRINT(File, Loc)       \ 
      622      fprintf (File, "%d.%d-%d.%d",        \ 
      623          (Loc).first_line, (Loc).first_column,  \ 
      624          (Loc).last_line,  (Loc).last_column) 
      625 # else 
      626 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
      627 # endif 
      628 #endif 
      629  
      630  
      631 /* YYLEX -- calling `yylex' with the right arguments.  */ 
      632  
      633 #ifdef YYLEX_PARAM 
      634 # define YYLEX yylex (YYLEX_PARAM) 
      635 #else 
      636 # define YYLEX yylex () 
      637 #endif 
       578#define YYBACKUP(Token, Value)                                    \ 
       579  do                                                              \ 
       580    if (yychar == YYEMPTY)                                        \ 
       581      {                                                           \ 
       582        yychar = (Token);                                         \ 
       583        yylval = (Value);                                         \ 
       584        YYPOPSTACK (yylen);                                       \ 
       585        yystate = *yyssp;                                         \ 
       586        goto yybackup;                                            \ 
       587      }                                                           \ 
       588    else                                                          \ 
       589      {                                                           \ 
       590        yyerror (YY_("syntax error: cannot back up")); \ 
       591        YYERROR;                                                  \ 
       592      }                                                           \ 
       593  while (0) 
       594 
       595/* Error token number */ 
       596#define YYTERROR        1 
       597#define YYERRCODE       256 
       598 
       599 
      638600 
      639601/* Enable debugging if requested.  */ 
       
      645607# endif 
      646608 
      647 # define YYDPRINTF(Args)         \ 
      648 do {                 \ 
      649   if (yydebug)             \ 
      650     YYFPRINTF Args;           \ 
      651 } while (YYID (0)) 
      652  
      653 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)           \ 
      654 do {                            \ 
      655   if (yydebug)                        \ 
      656     {                           \ 
      657       YYFPRINTF (stderr, "%s ", Title);                 \ 
      658       yy_symbol_print (stderr,                    \ 
      659         Type, Value); \ 
      660       YYFPRINTF (stderr, "\n");                   \ 
      661     }                           \ 
      662 } while (YYID (0)) 
      663  
      664  
      665 /*--------------------------------. 
      666 | Print this symbol on YYOUTPUT.  | 
      667 `--------------------------------*/ 
      668  
      669 /*ARGSUSED*/ 
      670 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      671      || defined __cplusplus || defined _MSC_VER) 
       609# define YYDPRINTF(Args)                        \ 
       610do {                                            \ 
       611  if (yydebug)                                  \ 
       612    YYFPRINTF Args;                             \ 
       613} while (0) 
       614 
       615/* This macro is provided for backward compatibility. */ 
       616#ifndef YY_LOCATION_PRINT 
       617# define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
       618#endif 
       619 
       620 
       621# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \ 
       622do {                                                                      \ 
       623  if (yydebug)                                                            \ 
       624    {                                                                     \ 
       625      YYFPRINTF (stderr, "%s ", Title);                                   \ 
       626      yy_symbol_print (stderr,                                            \ 
       627                  Type, Value); \ 
       628      YYFPRINTF (stderr, "\n");                                           \ 
       629    }                                                                     \ 
       630} while (0) 
       631 
       632 
       633/*-----------------------------------. 
       634| Print this symbol's value on YYO.  | 
       635`-----------------------------------*/ 
       636 
      672637static void 
      673 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 
      674 #else 
      675 static void 
      676 yy_symbol_value_print (yyoutput, yytype, yyvaluep) 
      677     FILE *yyoutput; 
      678     int yytype; 
      679     YYSTYPE const * const yyvaluep; 
      680 #endif 
      681 { 
       638yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) 
       639{ 
       640  FILE *yyoutput = yyo; 
       641  YYUSE (yyoutput); 
      682642  if (!yyvaluep) 
      683643    return; 
      684644# ifdef YYPRINT 
      685645  if (yytype < YYNTOKENS) 
      686     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); 
      687 # else 
      688   YYUSE (yyoutput); 
       646    YYPRINT (yyo, yytoknum[yytype], *yyvaluep); 
      689647# endif 
      690   switch (yytype) 
      691     { 
      692       default: 
      693    break; 
      694     } 
      695 } 
      696  
      697  
      698 /*--------------------------------. 
      699 | Print this symbol on YYOUTPUT.  | 
      700 `--------------------------------*/ 
      701  
      702 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      703      || defined __cplusplus || defined _MSC_VER) 
       648  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
       649  YYUSE (yytype); 
       650  YY_IGNORE_MAYBE_UNINITIALIZED_END 
       651} 
       652 
       653 
       654/*---------------------------. 
       655| Print this symbol on YYO.  | 
       656`---------------------------*/ 
       657 
      704658static void 
      705 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) 
      706 #else 
      707 static void 
      708 yy_symbol_print (yyoutput, yytype, yyvaluep) 
      709     FILE *yyoutput; 
      710     int yytype; 
      711     YYSTYPE const * const yyvaluep; 
      712 #endif 
      713 { 
      714   if (yytype < YYNTOKENS) 
      715     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); 
      716   else 
      717     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); 
      718  
      719   yy_symbol_value_print (yyoutput, yytype, yyvaluep); 
      720   YYFPRINTF (yyoutput, ")"); 
       659yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) 
       660{ 
       661  YYFPRINTF (yyo, "%s %s (", 
       662             yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); 
       663 
       664  yy_symbol_value_print (yyo, yytype, yyvaluep); 
       665  YYFPRINTF (yyo, ")"); 
      721666} 
      722667 
       
      726671`------------------------------------------------------------------*/ 
      727672 
      728 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      729      || defined __cplusplus || defined _MSC_VER) 
      730673static void 
      731 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) 
      732 #else 
      733 static void 
      734 yy_stack_print (bottom, top) 
      735     yytype_int16 *bottom; 
      736     yytype_int16 *top; 
      737 #endif 
       674yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) 
      738675{ 
      739676  YYFPRINTF (stderr, "Stack now"); 
      740   for (; bottom <= top; ++bottom) 
      741     YYFPRINTF (stderr, " %d", *bottom); 
       677  for (; yybottom <= yytop; yybottom++) 
       678    { 
       679      int yybot = *yybottom; 
       680      YYFPRINTF (stderr, " %d", yybot); 
       681    } 
      742682  YYFPRINTF (stderr, "\n"); 
      743683} 
      744684 
      745 # define YY_STACK_PRINT(Bottom, Top)            \ 
      746 do {                       \ 
      747   if (yydebug)                   \ 
      748     yy_stack_print ((Bottom), (Top));           \ 
      749 } while (YYID (0)) 
       685# define YY_STACK_PRINT(Bottom, Top)                            \ 
       686do {                                                            \ 
       687  if (yydebug)                                                  \ 
       688    yy_stack_print ((Bottom), (Top));                           \ 
       689} while (0) 
      750690 
      751691 
       
      754694`------------------------------------------------*/ 
      755695 
      756 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      757      || defined __cplusplus || defined _MSC_VER) 
      758696static void 
      759 yy_reduce_print (YYSTYPE *yyvsp, int yyrule) 
      760 #else 
      761 static void 
      762 yy_reduce_print (yyvsp, yyrule) 
      763     YYSTYPE *yyvsp; 
      764     int yyrule; 
      765 #endif 
      766 { 
       697yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) 
       698{ 
       699  unsigned long yylno = yyrline[yyrule]; 
      767700  int yynrhs = yyr2[yyrule]; 
      768701  int yyi; 
      769   unsigned long int yylno = yyrline[yyrule]; 
      770702  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", 
      771         yyrule - 1, yylno); 
       703             yyrule - 1, yylno); 
      772704  /* The symbols being reduced.  */ 
      773705  for (yyi = 0; yyi < yynrhs; yyi++) 
      774706    { 
      775       fprintf (stderr, "   $%d = ", yyi + 1); 
      776       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], 
      777              &(yyvsp[(yyi + 1) - (yynrhs)]) 
      778                          ); 
      779       fprintf (stderr, "\n"); 
       707      YYFPRINTF (stderr, "   $%d = ", yyi + 1); 
       708      yy_symbol_print (stderr, 
       709                       yystos[yyssp[yyi + 1 - yynrhs]], 
       710                       &yyvsp[(yyi + 1) - (yynrhs)] 
       711                                              ); 
       712      YYFPRINTF (stderr, "\n"); 
      780713    } 
      781714} 
      782715 
      783 # define YY_REDUCE_PRINT(Rule)      \ 
      784 do {              \ 
      785   if (yydebug)          \ 
      786     yy_reduce_print (yyvsp, Rule); \ 
      787 } while (YYID (0)) 
       716# define YY_REDUCE_PRINT(Rule)          \ 
       717do {                                    \ 
       718  if (yydebug)                          \ 
       719    yy_reduce_print (yyssp, yyvsp, Rule); \ 
       720} while (0) 
      788721 
      789722/* Nonzero means print parse trace.  It is left uninitialized so that 
       
      799732 
      800733/* YYINITDEPTH -- initial size of the parser's stacks.  */ 
      801 #ifndef  YYINITDEPTH 
       734#ifndef YYINITDEPTH 
      802735# define YYINITDEPTH 200 
      803736#endif 
       
      813746# define YYMAXDEPTH 10000 
      814747#endif 
      815  
      816  
      817748 
      818749 
       
      824755#  else 
      825756/* Return the length of YYSTR.  */ 
      826 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      827      || defined __cplusplus || defined _MSC_VER) 
      828757static YYSIZE_T 
      829758yystrlen (const char *yystr) 
      830 #else 
      831 static YYSIZE_T 
      832 yystrlen (yystr) 
      833     const char *yystr; 
      834 #endif 
      835759{ 
      836760  YYSIZE_T yylen; 
       
      848772/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in 
      849773   YYDEST.  */ 
      850 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      851      || defined __cplusplus || defined _MSC_VER) 
      852774static char * 
      853775yystpcpy (char *yydest, const char *yysrc) 
      854 #else 
      855 static char * 
      856 yystpcpy (yydest, yysrc) 
      857     char *yydest; 
      858     const char *yysrc; 
      859 #endif 
      860776{ 
      861777  char *yyd = yydest; 
       
      887803 
      888804      for (;;) 
      889    switch (*++yyp) 
      890      { 
      891      case '\'': 
      892      case ',': 
      893        goto do_not_strip_quotes; 
      894  
      895      case '\\': 
      896        if (*++yyp != '\\') 
      897          goto do_not_strip_quotes; 
      898        /* Fall through.  */ 
      899      default: 
      900        if (yyres) 
      901          yyres[yyn] = *yyp; 
      902        yyn++; 
      903        break; 
      904  
      905      case '"': 
      906        if (yyres) 
      907          yyres[yyn] = '\0'; 
      908        return yyn; 
      909      } 
       805        switch (*++yyp) 
       806          { 
       807          case '\'': 
       808          case ',': 
       809            goto do_not_strip_quotes; 
       810 
       811          case '\\': 
       812            if (*++yyp != '\\') 
       813              goto do_not_strip_quotes; 
       814            else 
       815              goto append; 
       816 
       817          append: 
       818          default: 
       819            if (yyres) 
       820              yyres[yyn] = *yyp; 
       821            yyn++; 
       822            break; 
       823 
       824          case '"': 
       825            if (yyres) 
       826              yyres[yyn] = '\0'; 
       827            return yyn; 
       828          } 
      910829    do_not_strip_quotes: ; 
      911830    } 
       
      914833    return yystrlen (yystr); 
      915834 
      916   return yystpcpy (yyres, yystr) - yyres; 
       835  return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); 
      917836} 
      918837# endif 
      919838 
      920 /* Copy into YYRESULT an error message about the unexpected token 
      921    YYCHAR while in state YYSTATE.  Return the number of bytes copied, 
      922    including the terminating null byte.  If YYRESULT is null, do not 
      923    copy anything; just return the number of bytes that would be 
      924    copied.  As a special case, return 0 if an ordinary "syntax error" 
      925    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during 
      926    size calculation.  */ 
      927 static YYSIZE_T 
      928 yysyntax_error (char *yyresult, int yystate, int yychar) 
      929 { 
      930   int yyn = yypact[yystate]; 
      931  
      932   if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) 
      933     return 0; 
      934   else 
       839/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message 
       840   about the unexpected token YYTOKEN for the state stack whose top is 
       841   YYSSP. 
       842 
       843   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is 
       844   not large enough to hold the message.  In that case, also set 
       845   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the 
       846   required number of bytes is too large to store.  */ 
       847static int 
       848yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 
       849                yytype_int16 *yyssp, int yytoken) 
       850{ 
       851  YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); 
       852  YYSIZE_T yysize = yysize0; 
       853  enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 
       854  /* Internationalized format string. */ 
       855  const char *yyformat = YY_NULLPTR; 
       856  /* Arguments of yyformat. */ 
       857  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 
       858  /* Number of reported tokens (one for the "unexpected", one per 
       859     "expected"). */ 
       860  int yycount = 0; 
       861 
       862  /* There are many possibilities here to consider: 
       863     - If this state is a consistent state with a default action, then 
       864       the only way this function was invoked is if the default action 
       865       is an error action.  In that case, don't check for expected 
       866       tokens because there are none. 
       867     - The only way there can be no lookahead present (in yychar) is if 
       868       this state is a consistent state with a default action.  Thus, 
       869       detecting the absence of a lookahead is sufficient to determine 
       870       that there is no unexpected or expected token to report.  In that 
       871       case, just report a simple "syntax error". 
       872     - Don't assume there isn't a lookahead just because this state is a 
       873       consistent state with a default action.  There might have been a 
       874       previous inconsistent state, consistent state with a non-default 
       875       action, or user semantic action that manipulated yychar. 
       876     - Of course, the expected token list depends on states to have 
       877       correct lookahead information, and it depends on the parser not 
       878       to perform extra reductions after fetching a lookahead from the 
       879       scanner and before detecting a syntax error.  Thus, state merging 
       880       (from LALR or IELR) and default reductions corrupt the expected 
       881       token list.  However, the list is correct for canonical LR with 
       882       one exception: it will still contain any token that will not be 
       883       accepted due to an error action in a later state. 
       884  */ 
       885  if (yytoken != YYEMPTY) 
      935886    { 
      936       int yytype = YYTRANSLATE (yychar); 
      937       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); 
      938       YYSIZE_T yysize = yysize0; 
      939       YYSIZE_T yysize1; 
      940       int yysize_overflow = 0; 
      941       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 
      942       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 
      943       int yyx; 
      944  
      945 # if 0 
      946       /* This is so xgettext sees the translatable formats that are 
      947     constructed on the fly.  */ 
      948       YY_("syntax error, unexpected %s"); 
      949       YY_("syntax error, unexpected %s, expecting %s"); 
      950       YY_("syntax error, unexpected %s, expecting %s or %s"); 
      951       YY_("syntax error, unexpected %s, expecting %s or %s or %s"); 
      952       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); 
      953 # endif 
      954       char *yyfmt; 
      955       char const *yyf; 
      956       static char const yyunexpected[] = "syntax error, unexpected %s"; 
      957       static char const yyexpecting[] = ", expecting %s"; 
      958       static char const yyor[] = " or %s"; 
      959       char yyformat[sizeof yyunexpected 
      960           + sizeof yyexpecting - 1 
      961           + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) 
      962              * (sizeof yyor - 1))]; 
      963       char const *yyprefix = yyexpecting; 
      964  
      965       /* Start YYX at -YYN if negative to avoid negative indexes in 
      966     YYCHECK.  */ 
      967       int yyxbegin = yyn < 0 ? -yyn : 0; 
      968  
      969       /* Stay within bounds of both yycheck and yytname.  */ 
      970       int yychecklim = YYLAST - yyn + 1; 
      971       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 
      972       int yycount = 1; 
      973  
      974       yyarg[0] = yytname[yytype]; 
      975       yyfmt = yystpcpy (yyformat, yyunexpected); 
      976  
      977       for (yyx = yyxbegin; yyx < yyxend; ++yyx) 
      978    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) 
      979      { 
      980        if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 
      981          { 
      982       yycount = 1; 
      983       yysize = yysize0; 
      984       yyformat[sizeof yyunexpected - 1] = '\0'; 
      985       break; 
      986          } 
      987        yyarg[yycount++] = yytname[yyx]; 
      988        yysize1 = yysize + yytnamerr (0, yytname[yyx]); 
      989        yysize_overflow |= (yysize1 < yysize); 
      990        yysize = yysize1; 
      991        yyfmt = yystpcpy (yyfmt, yyprefix); 
      992        yyprefix = yyor; 
      993      } 
      994  
      995       yyf = YY_(yyformat); 
      996       yysize1 = yysize + yystrlen (yyf); 
      997       yysize_overflow |= (yysize1 < yysize); 
       887      int yyn = yypact[*yyssp]; 
       888      yyarg[yycount++] = yytname[yytoken]; 
       889      if (!yypact_value_is_default (yyn)) 
       890        { 
       891          /* Start YYX at -YYN if negative to avoid negative indexes in 
       892             YYCHECK.  In other words, skip the first -YYN actions for 
       893             this state because they are default actions.  */ 
       894          int yyxbegin = yyn < 0 ? -yyn : 0; 
       895          /* Stay within bounds of both yycheck and yytname.  */ 
       896          int yychecklim = YYLAST - yyn + 1; 
       897          int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; 
       898          int yyx; 
       899 
       900          for (yyx = yyxbegin; yyx < yyxend; ++yyx) 
       901            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR 
       902                && !yytable_value_is_error (yytable[yyx + yyn])) 
       903              { 
       904                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) 
       905                  { 
       906                    yycount = 1; 
       907                    yysize = yysize0; 
       908                    break; 
       909                  } 
       910                yyarg[yycount++] = yytname[yyx]; 
       911                { 
       912                  YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); 
       913                  if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 
       914                    yysize = yysize1; 
       915                  else 
       916                    return 2; 
       917                } 
       918              } 
       919        } 
       920    } 
       921 
       922  switch (yycount) 
       923    { 
       924# define YYCASE_(N, S)                      \ 
       925      case N:                               \ 
       926        yyformat = S;                       \ 
       927      break 
       928    default: /* Avoid compiler warnings. */ 
       929      YYCASE_(0, YY_("syntax error")); 
       930      YYCASE_(1, YY_("syntax error, unexpected %s")); 
       931      YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); 
       932      YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); 
       933      YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); 
       934      YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); 
       935# undef YYCASE_ 
       936    } 
       937 
       938  { 
       939    YYSIZE_T yysize1 = yysize + yystrlen (yyformat); 
       940    if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) 
      998941      yysize = yysize1; 
      999  
      1000       if (yysize_overflow) 
      1001    return YYSIZE_MAXIMUM; 
      1002  
      1003       if (yyresult) 
      1004    { 
      1005      /* Avoid sprintf, as that infringes on the user's name space. 
      1006         Don't have undefined behavior even if the translation 
      1007         produced a string with the wrong number of "%s"s.  */ 
      1008      char *yyp = yyresult; 
      1009      int yyi = 0; 
      1010      while ((*yyp = *yyf) != '\0') 
      1011        { 
      1012          if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 
      1013       { 
      1014         yyp += yytnamerr (yyp, yyarg[yyi++]); 
      1015         yyf += 2; 
      1016       } 
      1017          else 
      1018       { 
      1019         yyp++; 
      1020         yyf++; 
      1021       } 
      1022        } 
      1023    } 
      1024       return yysize; 
       942    else 
       943      return 2; 
       944  } 
       945 
       946  if (*yymsg_alloc < yysize) 
       947    { 
       948      *yymsg_alloc = 2 * yysize; 
       949      if (! (yysize <= *yymsg_alloc 
       950             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) 
       951        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; 
       952      return 1; 
      1025953    } 
       954 
       955  /* Avoid sprintf, as that infringes on the user's name space. 
       956     Don't have undefined behavior even if the translation 
       957     produced a string with the wrong number of "%s"s.  */ 
       958  { 
       959    char *yyp = *yymsg; 
       960    int yyi = 0; 
       961    while ((*yyp = *yyformat) != '\0') 
       962      if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) 
       963        { 
       964          yyp += yytnamerr (yyp, yyarg[yyi++]); 
       965          yyformat += 2; 
       966        } 
       967      else 
       968        { 
       969          yyp++; 
       970          yyformat++; 
       971        } 
       972  } 
       973  return 0; 
      1026974} 
      1027975#endif /* YYERROR_VERBOSE */ 
      1028  
      1029  
      1030976 
      1031977/*-----------------------------------------------. 
       
      1033979`-----------------------------------------------*/ 
      1034980 
      1035 /*ARGSUSED*/ 
      1036 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      1037      || defined __cplusplus || defined _MSC_VER) 
      1038981static void 
      1039982yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) 
      1040 #else 
      1041 static void 
      1042 yydestruct (yymsg, yytype, yyvaluep) 
      1043     const char *yymsg; 
      1044     int yytype; 
      1045     YYSTYPE *yyvaluep; 
      1046 #endif 
      1047983{ 
      1048984  YYUSE (yyvaluep); 
      1049  
      1050985  if (!yymsg) 
      1051986    yymsg = "Deleting"; 
      1052987  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); 
      1053988 
      1054   switch (yytype) 
      1055     { 
      1056  
      1057       default: 
      1058    break; 
      1059     } 
      1060 } 
      1061  
      1062  
      1063  
      1064 /* Prevent warnings from -Wmissing-prototypes.  */ 
      1065  
      1066 #ifdef YYPARSE_PARAM 
      1067 #if defined __STDC__ || defined __cplusplus 
      1068 int yyparse (void *YYPARSE_PARAM); 
      1069 #else 
      1070 int yyparse (); 
      1071 #endif 
      1072 #else /* ! YYPARSE_PARAM */ 
      1073 #if defined __STDC__ || defined __cplusplus 
      1074 int yyparse (void); 
      1075 #else 
      1076 int yyparse (); 
      1077 #endif 
      1078 #endif /* ! YYPARSE_PARAM */ 
      1079  
      1080  
      1081  
      1082 /* The look-ahead symbol.  */ 
       989  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
       990  YYUSE (yytype); 
       991  YY_IGNORE_MAYBE_UNINITIALIZED_END 
       992} 
       993 
       994 
       995 
       996 
       997/* The lookahead symbol.  */ 
      1083998int yychar; 
      1084999 
      1085 /* The semantic value of the look-ahead symbol.  */ 
       1000/* The semantic value of the lookahead symbol.  */ 
      10861001YYSTYPE yylval; 
      1087  
      10881002/* Number of syntax errors so far.  */ 
      10891003int yynerrs; 
      1090  
      10911004 
      10921005 
       
      10951008`----------*/ 
      10961009 
      1097 #ifdef YYPARSE_PARAM 
      1098 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      1099      || defined __cplusplus || defined _MSC_VER) 
      1100 int 
      1101 yyparse (void *YYPARSE_PARAM) 
      1102 #else 
      1103 int 
      1104 yyparse (YYPARSE_PARAM) 
      1105     void *YYPARSE_PARAM; 
      1106 #endif 
      1107 #else /* ! YYPARSE_PARAM */ 
      1108 #if (defined __STDC__ || defined __C99__FUNC__ \ 
      1109      || defined __cplusplus || defined _MSC_VER) 
      11101010int 
      11111011yyparse (void) 
      1112 #else 
      1113 int 
      1114 yyparse () 
      1115  
      1116 #endif 
      1117 #endif 
      1118 { 
      1119    
      1120   int yystate; 
       1012{ 
       1013    int yystate; 
       1014    /* Number of tokens to shift before error messages enabled.  */ 
       1015    int yyerrstatus; 
       1016 
       1017    /* The stacks and their tools: 
       1018       'yyss': related to states. 
       1019       'yyvs': related to semantic values. 
       1020 
       1021       Refer to the stacks through separate pointers, to allow yyoverflow 
       1022       to reallocate them elsewhere.  */ 
       1023 
       1024    /* The state stack.  */ 
       1025    yytype_int16 yyssa[YYINITDEPTH]; 
       1026    yytype_int16 *yyss; 
       1027    yytype_int16 *yyssp; 
       1028 
       1029    /* The semantic value stack.  */ 
       1030    YYSTYPE yyvsa[YYINITDEPTH]; 
       1031    YYSTYPE *yyvs; 
       1032    YYSTYPE *yyvsp; 
       1033 
       1034    YYSIZE_T yystacksize; 
       1035 
      11211036  int yyn; 
      11221037  int yyresult; 
      1123   /* Number of tokens to shift before error messages enabled.  */ 
      1124   int yyerrstatus; 
      1125   /* Look-ahead token as an internal (translated) token number.  */ 
       1038  /* Lookahead token as an internal (translated) token number.  */ 
      11261039  int yytoken = 0; 
       1040  /* The variables used to return semantic value and location from the 
       1041     action routines.  */ 
       1042  YYSTYPE yyval; 
       1043 
      11271044#if YYERROR_VERBOSE 
      11281045  /* Buffer for error messages, and its allocated size.  */ 
       
      11321049#endif 
      11331050 
      1134   /* Three stacks and their tools: 
      1135      `yyss': related to states, 
      1136      `yyvs': related to semantic values, 
      1137      `yyls': related to locations. 
      1138  
      1139      Refer to the stacks thru separate pointers, to allow yyoverflow 
      1140      to reallocate them elsewhere.  */ 
      1141  
      1142   /* The state stack.  */ 
      1143   yytype_int16 yyssa[YYINITDEPTH]; 
      1144   yytype_int16 *yyss = yyssa; 
      1145   yytype_int16 *yyssp; 
      1146  
      1147   /* The semantic value stack.  */ 
      1148   YYSTYPE yyvsa[YYINITDEPTH]; 
      1149   YYSTYPE *yyvs = yyvsa; 
      1150   YYSTYPE *yyvsp; 
      1151  
      1152  
      1153  
      11541051#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N)) 
      1155  
      1156   YYSIZE_T yystacksize = YYINITDEPTH; 
      1157  
      1158   /* The variables used to return semantic value and location from the 
      1159      action routines.  */ 
      1160   YYSTYPE yyval; 
      1161  
      11621052 
      11631053  /* The number of symbols on the RHS of the reduced rule. 
       
      11651055  int yylen = 0; 
      11661056 
       1057  yyssp = yyss = yyssa; 
       1058  yyvsp = yyvs = yyvsa; 
       1059  yystacksize = YYINITDEPTH; 
       1060 
      11671061  YYDPRINTF ((stderr, "Starting parse\n")); 
      11681062 
       
      11701064  yyerrstatus = 0; 
      11711065  yynerrs = 0; 
      1172   yychar = YYEMPTY;     /* Cause a token to be read.  */ 
      1173  
      1174   /* Initialize stack pointers. 
      1175      Waste one element of value and location stack 
      1176      so that they stay on the same level as the state stack. 
      1177      The wasted elements are never initialized.  */ 
      1178  
      1179   yyssp = yyss; 
      1180   yyvsp = yyvs; 
      1181  
       1066  yychar = YYEMPTY; /* Cause a token to be read.  */ 
      11821067  goto yysetstate; 
      11831068 
       1069 
      11841070/*------------------------------------------------------------. 
      1185 | yynewstate -- Push a new state, which is found in yystate.  | 
       1071| yynewstate -- push a new state, which is found in yystate.  | 
      11861072`------------------------------------------------------------*/ 
      1187  yynewstate: 
       1073yynewstate: 
      11881074  /* In all cases, when you get here, the value and location stacks 
      11891075     have just been pushed.  So pushing a state here evens the stacks.  */ 
      11901076  yyssp++; 
      11911077 
      1192  yysetstate: 
      1193   *yyssp = yystate; 
       1078 
       1079/*--------------------------------------------------------------------. 
       1080| yynewstate -- set current state (the top of the stack) to yystate.  | 
       1081`--------------------------------------------------------------------*/ 
       1082yysetstate: 
       1083  YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 
       1084  YY_ASSERT (0 <= yystate && yystate < YYNSTATES); 
       1085  *yyssp = (yytype_int16) yystate; 
      11941086 
      11951087  if (yyss + yystacksize - 1 <= yyssp) 
       1088#if !defined yyoverflow && !defined YYSTACK_RELOCATE 
       1089    goto yyexhaustedlab; 
       1090#else 
      11961091    { 
      11971092      /* Get the current used size of the three stacks, in elements.  */ 
      1198       YYSIZE_T yysize = yyssp - yyss + 1; 
      1199  
      1200 #ifdef yyoverflow 
       1093      YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); 
       1094 
       1095# if defined yyoverflow 
      12011096      { 
      1202    /* Give user a chance to reallocate the stack.  Use copies of 
      1203       these so that the &'s don't force the real ones into 
      1204       memory.  */ 
      1205    YYSTYPE *yyvs1 = yyvs; 
      1206    yytype_int16 *yyss1 = yyss; 
      1207  
      1208  
      1209    /* Each stack pointer address is followed by the size of the 
      1210       data in use in that stack, in bytes.  This used to be a 
      1211       conditional around just the two extra args, but that might 
      1212       be undefined if yyoverflow is a macro.  */ 
      1213    yyoverflow (YY_("memory exhausted"), 
      1214           &yyss1, yysize * sizeof (*yyssp), 
      1215           &yyvs1, yysize * sizeof (*yyvsp), 
      1216  
      1217           &yystacksize); 
      1218  
      1219    yyss = yyss1; 
      1220    yyvs = yyvs1; 
       1097        /* Give user a chance to reallocate the stack.  Use copies of 
       1098           these so that the &'s don't force the real ones into 
       1099           memory.  */ 
       1100        YYSTYPE *yyvs1 = yyvs; 
       1101        yytype_int16 *yyss1 = yyss; 
       1102 
       1103        /* Each stack pointer address is followed by the size of the 
       1104           data in use in that stack, in bytes.  This used to be a 
       1105           conditional around just the two extra args, but that might 
       1106           be undefined if yyoverflow is a macro.  */ 
       1107        yyoverflow (YY_("memory exhausted"), 
       1108                    &yyss1, yysize * sizeof (*yyssp), 
       1109                    &yyvs1, yysize * sizeof (*yyvsp), 
       1110                    &yystacksize); 
       1111        yyss = yyss1; 
       1112        yyvs = yyvs1; 
      12211113      } 
      1222 #else /* no yyoverflow */ 
      1223 # ifndef YYSTACK_RELOCATE 
      1224       goto yyexhaustedlab; 
      1225 # else 
       1114# else /* defined YYSTACK_RELOCATE */ 
      12261115      /* Extend the stack our own way.  */ 
      12271116      if (YYMAXDEPTH <= yystacksize) 
      1228    goto yyexhaustedlab; 
       1117        goto yyexhaustedlab; 
      12291118      yystacksize *= 2; 
      12301119      if (YYMAXDEPTH < yystacksize) 
      1231    yystacksize = YYMAXDEPTH; 
       1120        yystacksize = YYMAXDEPTH; 
      12321121 
      12331122      { 
      1234    yytype_int16 *yyss1 = yyss; 
      1235    union yyalloc *yyptr = 
      1236      (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 
      1237    if (! yyptr) 
      1238      goto yyexhaustedlab; 
      1239    YYSTACK_RELOCATE (yyss); 
      1240    YYSTACK_RELOCATE (yyvs); 
      1241  
      1242 #  undef YYSTACK_RELOCATE 
      1243    if (yyss1 != yyssa) 
      1244      YYSTACK_FREE (yyss1); 
       1123        yytype_int16 *yyss1 = yyss; 
       1124        union yyalloc *yyptr = 
       1125          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); 
       1126        if (! yyptr) 
       1127          goto yyexhaustedlab; 
       1128        YYSTACK_RELOCATE (yyss_alloc, yyss); 
       1129        YYSTACK_RELOCATE (yyvs_alloc, yyvs); 
       1130# undef YYSTACK_RELOCATE 
       1131        if (yyss1 != yyssa) 
       1132          YYSTACK_FREE (yyss1); 
      12451133      } 
      12461134# endif 
      1247 #endif /* no yyoverflow */ 
      12481135 
      12491136      yyssp = yyss + yysize - 1; 
      12501137      yyvsp = yyvs + yysize - 1; 
      12511138 
      1252  
      12531139      YYDPRINTF ((stderr, "Stack size increased to %lu\n", 
      1254         (unsigned long int) yystacksize)); 
       1140                  (unsigned long) yystacksize)); 
      12551141 
      12561142      if (yyss + yystacksize - 1 <= yyssp) 
      1257    YYABORT; 
       1143        YYABORT; 
      12581144    } 
      1259  
      1260   YYDPRINTF ((stderr, "Entering state %d\n", yystate)); 
       1145#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ 
       1146 
       1147  if (yystate == YYFINAL) 
       1148    YYACCEPT; 
      12611149 
      12621150  goto yybackup; 
       1151 
      12631152 
      12641153/*-----------. 
       
      12661155`-----------*/ 
      12671156yybackup: 
      1268  
      12691157  /* Do appropriate processing given the current state.  Read a 
      1270      look-ahead token if we need one and don't already have one.  */ 
      1271  
      1272   /* First try to decide what to do without reference to look-ahead token.  */ 
       1158     lookahead token if we need one and don't already have one.  */ 
       1159 
       1160  /* First try to decide what to do without reference to lookahead token.  */ 
      12731161  yyn = yypact[yystate]; 
      1274   if (yyn == YYPACT_NINF) 
       1162  if (yypact_value_is_default (yyn)) 
      12751163    goto yydefault; 
      12761164 
      1277   /* Not known => get a look-ahead token if don't already have one.  */ 
      1278  
      1279   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */ 
       1165  /* Not known => get a lookahead token if don't already have one.  */ 
       1166 
       1167  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */ 
      12801168  if (yychar == YYEMPTY) 
      12811169    { 
      12821170      YYDPRINTF ((stderr, "Reading a token: ")); 
      1283       yychar = YYLEX; 
       1171      yychar = yylex (); 
      12841172    } 
      12851173 
       
      13031191  if (yyn <= 0) 
      13041192    { 
      1305       if (yyn == 0 || yyn == YYTABLE_NINF) 
      1306    goto yyerrlab; 
       1193      if (yytable_value_is_error (yyn)) 
       1194        goto yyerrlab; 
      13071195      yyn = -yyn; 
      13081196      goto yyreduce; 
      13091197    } 
      1310  
      1311   if (yyn == YYFINAL) 
      1312     YYACCEPT; 
      13131198 
      13141199  /* Count tokens shifted since error; after three, turn off error 
       
      13171202    yyerrstatus--; 
      13181203 
      1319   /* Shift the look-ahead token.  */ 
       1204  /* Shift the lookahead token.  */ 
      13201205  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); 
      13211206 
      1322   /* Discard the shifted token unless it is eof.  */ 
      1323   if (yychar != YYEOF) 
      1324     yychar = YYEMPTY; 
       1207  /* Discard the shifted token.  */ 
       1208  yychar = YYEMPTY; 
      13251209 
      13261210  yystate = yyn; 
       1211  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
      13271212  *++yyvsp = yylval; 
      1328  
       1213  YY_IGNORE_MAYBE_UNINITIALIZED_END 
      13291214  goto yynewstate; 
      13301215 
       
      13411226 
      13421227/*-----------------------------. 
      1343 | yyreduce -- Do a reduction.  | 
       1228| yyreduce -- do a reduction.  | 
      13441229`-----------------------------*/ 
      13451230yyreduce: 
       
      13481233 
      13491234  /* If YYLEN is nonzero, implement the default value of the action: 
      1350      `$$ = $1'. 
       1235     '$$ = $1'. 
      13511236 
      13521237     Otherwise, the following line sets YYVAL to garbage. 
       
      13611246  switch (yyn) 
      13621247    { 
      1363         case 5: 
       1248  case 5: 
      13641249#line 76 "convert.y" 
      1365     { initdimprob(1,(yyvsp[(2) - (3)].na),"0","0"); ;} 
       1250    { initdimprob(1,(yyvsp[-1].na),"0","0"); } 
       1251#line 1252 "convert.tab.c" 
      13661252    break; 
      13671253 
      13681254  case 6: 
      13691255#line 77 "convert.y" 
      1370     { initdimprob(2,(yyvsp[(2) - (5)].na), (yyvsp[(4) - (5)].na),"0"); ;} 
       1256    { initdimprob(2,(yyvsp[-3].na), (yyvsp[-1].na),"0"); } 
       1257#line 1258 "convert.tab.c" 
      13711258    break; 
      13721259 
      13731260  case 7: 
      13741261#line 78 "convert.y" 
      1375     { initdimprob(3,(yyvsp[(2) - (7)].na), (yyvsp[(4) - (7)].na), (yyvsp[(6) - (7)].na)); ;} 
       1262    { initdimprob(3,(yyvsp[-5].na), (yyvsp[-3].na), (yyvsp[-1].na)); } 
       1263#line 1264 "convert.tab.c" 
      13761264    break; 
      13771265 
       
      13791267#line 80 "convert.y" 
      13801268    { 
      1381             listofmodules = Addtolistnom((yyvsp[(2) - (3)].na),listofmodules,0); 
      1382             Addmoduletothelist((yyvsp[(2) - (3)].na)); 
      1383         ;} 
       1269            listofmodules = Addtolistnom((yyvsp[-1].na),listofmodules,0); 
       1270            Addmoduletothelist((yyvsp[-1].na)); 
       1271        } 
       1272#line 1273 "convert.tab.c" 
      13841273    break; 
      13851274 
       
      13871276#line 85 "convert.y" 
      13881277    { 
      1389             if (!strcasecmp((yyvsp[(4) - (5)].na),"4")) 
       1278            if (!strcasecmp((yyvsp[-1].na),"4")) 
      13901279            { 
      1391                 listofkind = Addtolistnom((yyvsp[(2) - (5)].na),listofkind,4); 
       1280                listofkind = Addtolistnom((yyvsp[-3].na),listofkind,4); 
      13921281            } 
      1393             else if (!strcasecmp((yyvsp[(4) - (5)].na),"8")) 
       1282            else if (!strcasecmp((yyvsp[-1].na),"8")) 
      13941283            { 
      1395                 listofkind = Addtolistnom((yyvsp[(2) - (5)].na),listofkind,8); 
       1284                listofkind = Addtolistnom((yyvsp[-3].na),listofkind,8); 
      13961285            } 
      13971286            else 
      13981287            { 
      1399                 printf("##\n## Unknown kind type : %s (must be 4 or 8)\n##",(yyvsp[(4) - (5)].na)); 
       1288                printf("##\n## Unknown kind type : %s (must be 4 or 8)\n##",(yyvsp[-1].na)); 
      14001289                exit(0); 
      14011290            } 
      1402         ;} 
       1291        } 
       1292#line 1293 "convert.tab.c" 
      14031293    break; 
      14041294 
       
      14061296#line 101 "convert.y" 
      14071297    { 
      1408             Add_NotGridDepend_Var_1((yyvsp[(3) - (4)].na)); 
      1409         ;} 
       1298            Add_NotGridDepend_Var_1((yyvsp[-1].na)); 
       1299        } 
       1300#line 1301 "convert.tab.c" 
      14101301    break; 
      14111302 
       
      14131304#line 105 "convert.y" 
      14141305    { 
      1415             if (!strcasecmp((yyvsp[(2) - (3)].na),"FIXED_GRIDS"))      fixedgrids = 1; 
      1416             if (!strcasecmp((yyvsp[(2) - (3)].na),"ONLY_FIXED_GRIDS")) onlyfixedgrids = 1; 
      1417         ;} 
       1306            if (!strcasecmp((yyvsp[-1].na),"FIXED_GRIDS"))      fixedgrids = 1; 
       1307            if (!strcasecmp((yyvsp[-1].na),"ONLY_FIXED_GRIDS")) onlyfixedgrids = 1; 
       1308        } 
       1309#line 1310 "convert.tab.c" 
      14181310    break; 
      14191311 
      14201312 
      1421 /* Line 1267 of yacc.c.  */ 
      1422 #line 1420 "convert.tab.c" 
       1313#line 1314 "convert.tab.c" 
       1314 
      14231315      default: break; 
      14241316    } 
       1317  /* User semantic actions sometimes alter yychar, and that requires 
       1318     that yytoken be updated with the new translation.  We take the 
       1319     approach of translating immediately before every use of yytoken. 
       1320     One alternative is translating here after every semantic action, 
       1321     but that translation would be missed if the semantic action invokes 
       1322     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or 
       1323     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an 
       1324     incorrect destructor might then be invoked immediately.  In the 
       1325     case of YYERROR or YYBACKUP, subsequent parser actions might lead 
       1326     to an incorrect destructor call or verbose syntax error message 
       1327     before the lookahead is translated.  */ 
      14251328  YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); 
      14261329 
       
      14311334  *++yyvsp = yyval; 
      14321335 
      1433  
      1434   /* Now `shift' the result of the reduction.  Determine what state 
       1336  /* Now 'shift' the result of the reduction.  Determine what state 
      14351337     that goes to, based on the state we popped back to and the rule 
      14361338     number reduced by.  */ 
      1437  
      1438   yyn = yyr1[yyn]; 
      1439  
      1440   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; 
      1441   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) 
      1442     yystate = yytable[yystate]; 
      1443   else 
      1444     yystate = yydefgoto[yyn - YYNTOKENS]; 
       1339  { 
       1340    const int yylhs = yyr1[yyn] - YYNTOKENS; 
       1341    const int yyi = yypgoto[yylhs] + *yyssp; 
       1342    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp 
       1343               ? yytable[yyi] 
       1344               : yydefgoto[yylhs]); 
       1345  } 
      14451346 
      14461347  goto yynewstate; 
      14471348 
      14481349 
      1449 /*------------------------------------. 
      1450 | yyerrlab -- here on detecting error | 
      1451 `------------------------------------*/ 
       1350/*--------------------------------------. 
       1351| yyerrlab -- here on detecting error. | 
       1352`--------------------------------------*/ 
      14521353yyerrlab: 
       1354  /* Make sure we have latest lookahead translation.  See comments at 
       1355     user semantic actions for why this is necessary.  */ 
       1356  yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); 
       1357 
      14531358  /* If not already recovering from an error, report this error.  */ 
      14541359  if (!yyerrstatus) 
       
      14581363      yyerror (YY_("syntax error")); 
      14591364#else 
       1365# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ 
       1366                                        yyssp, yytoken) 
      14601367      { 
      1461    YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); 
      1462    if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) 
      1463      { 
      1464        YYSIZE_T yyalloc = 2 * yysize; 
      1465        if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) 
      1466          yyalloc = YYSTACK_ALLOC_MAXIMUM; 
      1467        if (yymsg != yymsgbuf) 
      1468          YYSTACK_FREE (yymsg); 
      1469        yymsg = (char *) YYSTACK_ALLOC (yyalloc); 
      1470        if (yymsg) 
      1471          yymsg_alloc = yyalloc; 
      1472        else 
      1473          { 
      1474       yymsg = yymsgbuf; 
      1475       yymsg_alloc = sizeof yymsgbuf; 
      1476          } 
      1477      } 
      1478  
      1479    if (0 < yysize && yysize <= yymsg_alloc) 
      1480      { 
      1481        (void) yysyntax_error (yymsg, yystate, yychar); 
      1482        yyerror (yymsg); 
      1483      } 
      1484    else 
      1485      { 
      1486        yyerror (YY_("syntax error")); 
      1487        if (yysize != 0) 
      1488          goto yyexhaustedlab; 
      1489      } 
       1368        char const *yymsgp = YY_("syntax error"); 
       1369        int yysyntax_error_status; 
       1370        yysyntax_error_status = YYSYNTAX_ERROR; 
       1371        if (yysyntax_error_status == 0) 
       1372          yymsgp = yymsg; 
       1373        else if (yysyntax_error_status == 1) 
       1374          { 
       1375            if (yymsg != yymsgbuf) 
       1376              YYSTACK_FREE (yymsg); 
       1377            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); 
       1378            if (!yymsg) 
       1379              { 
       1380                yymsg = yymsgbuf; 
       1381                yymsg_alloc = sizeof yymsgbuf; 
       1382                yysyntax_error_status = 2; 
       1383              } 
       1384            else 
       1385              { 
       1386                yysyntax_error_status = YYSYNTAX_ERROR; 
       1387                yymsgp = yymsg; 
       1388              } 
       1389          } 
       1390        yyerror (yymsgp); 
       1391        if (yysyntax_error_status == 2) 
       1392          goto yyexhaustedlab; 
      14901393      } 
       1394# undef YYSYNTAX_ERROR 
      14911395#endif 
      14921396    } 
       
      14961400  if (yyerrstatus == 3) 
      14971401    { 
      1498       /* If just tried and failed to reuse look-ahead token after an 
      1499     error, discard it.  */ 
       1402      /* If just tried and failed to reuse lookahead token after an 
       1403        error, discard it.  */ 
      15001404 
      15011405      if (yychar <= YYEOF) 
      1502    { 
      1503      /* Return failure if at end of input.  */ 
      1504      if (yychar == YYEOF) 
      1505        YYABORT; 
      1506    } 
       1406        { 
       1407          /* Return failure if at end of input.  */ 
       1408          if (yychar == YYEOF) 
       1409            YYABORT; 
       1410        } 
      15071411      else 
      1508    { 
      1509      yydestruct ("Error: discarding", 
      1510             yytoken, &yylval); 
      1511      yychar = YYEMPTY; 
      1512    } 
       1412        { 
       1413          yydestruct ("Error: discarding", 
       1414                      yytoken, &yylval); 
       1415          yychar = YYEMPTY; 
       1416        } 
      15131417    } 
      15141418 
      1515   /* Else will try to reuse look-ahead token after shifting the error 
       1419  /* Else will try to reuse lookahead token after shifting the error 
      15161420     token.  */ 
      15171421  goto yyerrlab1; 
       
      15221426`---------------------------------------------------*/ 
      15231427yyerrorlab: 
      1524  
      1525   /* Pacify compilers like GCC when the user code never invokes 
      1526      YYERROR and the label yyerrorlab therefore never appears in user 
      1527      code.  */ 
      1528   if (/*CONSTCOND*/ 0) 
      1529      goto yyerrorlab; 
      1530  
      1531   /* Do not reclaim the symbols of the rule which action triggered 
       1428  /* Pacify compilers when the user code never invokes YYERROR and the 
       1429     label yyerrorlab therefore never appears in user code.  */ 
       1430  if (0) 
       1431    YYERROR; 
       1432 
       1433  /* Do not reclaim the symbols of the rule whose action triggered 
      15321434     this YYERROR.  */ 
      15331435  YYPOPSTACK (yylen); 
       
      15421444`-------------------------------------------------------------*/ 
      15431445yyerrlab1: 
      1544   yyerrstatus = 3;   /* Each real token shifted decrements this.  */ 
       1446  yyerrstatus = 3;      /* Each real token shifted decrements this.  */ 
      15451447 
      15461448  for (;;) 
      15471449    { 
      15481450      yyn = yypact[yystate]; 
      1549       if (yyn != YYPACT_NINF) 
      1550    { 
      1551      yyn += YYTERROR; 
      1552      if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 
      1553        { 
      1554          yyn = yytable[yyn]; 
      1555          if (0 < yyn) 
      1556       break; 
      1557        } 
      1558    } 
       1451      if (!yypact_value_is_default (yyn)) 
       1452        { 
       1453          yyn += YYTERROR; 
       1454          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) 
       1455            { 
       1456              yyn = yytable[yyn]; 
       1457              if (0 < yyn) 
       1458                break; 
       1459            } 
       1460        } 
      15591461 
      15601462      /* Pop the current state because it cannot handle the error token.  */ 
      15611463      if (yyssp == yyss) 
      1562    YYABORT; 
       1464        YYABORT; 
      15631465 
      15641466 
      15651467      yydestruct ("Error: popping", 
      1566         yystos[yystate], yyvsp); 
       1468                  yystos[yystate], yyvsp); 
      15671469      YYPOPSTACK (1); 
      15681470      yystate = *yyssp; 
       
      15701472    } 
      15711473 
      1572   if (yyn == YYFINAL) 
      1573     YYACCEPT; 
      1574  
       1474  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN 
      15751475  *++yyvsp = yylval; 
       1476  YY_IGNORE_MAYBE_UNINITIALIZED_END 
      15761477 
      15771478 
       
      15901491  goto yyreturn; 
      15911492 
       1493 
      15921494/*-----------------------------------. 
      15931495| yyabortlab -- YYABORT comes here.  | 
       
      15971499  goto yyreturn; 
      15981500 
      1599 #ifndef yyoverflow 
       1501 
       1502#if !defined yyoverflow || YYERROR_VERBOSE 
      16001503/*-------------------------------------------------. 
      16011504| yyexhaustedlab -- memory exhaustion comes here.  | 
       
      16071510#endif 
      16081511 
       1512 
       1513/*-----------------------------------------------------. 
       1514| yyreturn -- parsing is finished, return the result.  | 
       1515`-----------------------------------------------------*/ 
      16091516yyreturn: 
      1610   if (yychar != YYEOF && yychar != YYEMPTY) 
      1611      yydestruct ("Cleanup: discarding lookahead", 
      1612        yytoken, &yylval); 
      1613   /* Do not reclaim the symbols of the rule which action triggered 
       1517  if (yychar != YYEMPTY) 
       1518    { 
       1519      /* Make sure we have latest lookahead translation.  See comments at 
       1520         user semantic actions for why this is necessary.  */ 
       1521      yytoken = YYTRANSLATE (yychar); 
       1522      yydestruct ("Cleanup: discarding lookahead", 
       1523                  yytoken, &yylval); 
       1524    } 
       1525  /* Do not reclaim the symbols of the rule whose action triggered 
      16141526     this YYABORT or YYACCEPT.  */ 
      16151527  YYPOPSTACK (yylen); 
       
      16181530    { 
      16191531      yydestruct ("Cleanup: popping", 
      1620         yystos[*yyssp], yyvsp); 
       1532                  yystos[*yyssp], yyvsp); 
      16211533      YYPOPSTACK (1); 
      16221534    } 
       
      16291541    YYSTACK_FREE (yymsg); 
      16301542#endif 
      1631   /* Make sure YYID is used.  */ 
      1632   return YYID (yyresult); 
      1633 } 
      1634  
      1635  
       1543  return yyresult; 
       1544} 
      16361545#line 110 "convert.y" 
      16371546 
       
      19891898    return 0; 
      19901899} 
      1991  
      19921900#line 2 "convert.yy.c" 
      19931901 
       
      20581966typedef int32_t flex_int32_t; 
      20591967typedef uint32_t flex_uint32_t; 
      2060 typedef uint64_t flex_uint64_t; 
      20611968#else 
      20621969typedef signed char flex_int8_t; 
       
      21652072#endif 
      21662073 
      2167 #ifndef YY_TYPEDEF_YY_SIZE_T 
      2168 #define YY_TYPEDEF_YY_SIZE_T 
      2169 typedef size_t yy_size_t; 
      2170 #endif 
      2171  
      2172 extern yy_size_t convert_leng; 
       2074extern int convert_leng; 
      21732075 
      21742076extern FILE *convert_in, *convert_out; 
       
      21962098#define unput(c) yyunput( c, (yytext_ptr)  ) 
      21972099 
       2100#ifndef YY_TYPEDEF_YY_SIZE_T 
       2101#define YY_TYPEDEF_YY_SIZE_T 
       2102typedef size_t yy_size_t; 
       2103#endif 
       2104 
      21982105#ifndef YY_STRUCT_YY_BUFFER_STATE 
      21992106#define YY_STRUCT_YY_BUFFER_STATE 
       
      22132120    * characters. 
      22142121    */ 
      2215    yy_size_t yy_n_chars; 
       2122   int yy_n_chars; 
      22162123 
      22172124   /* Whether we "own" the buffer - i.e., we know we created it, 
       
      22832190/* yy_hold_char holds the character lost when convert_text is formed. */ 
      22842191static char yy_hold_char; 
      2285 static yy_size_t yy_n_chars;     /* number of characters read into yy_ch_buf */ 
      2286 yy_size_t convert_leng; 
       2192static int yy_n_chars;     /* number of characters read into yy_ch_buf */ 
       2193int convert_leng; 
      22872194 
      22882195/* Points to current character in buffer. */ 
       
      23122219YY_BUFFER_STATE convert__scan_buffer (char *base,yy_size_t size  ); 
      23132220YY_BUFFER_STATE convert__scan_string (yyconst char *yy_str  ); 
      2314 YY_BUFFER_STATE convert__scan_bytes (yyconst char *bytes,yy_size_t len  ); 
       2221YY_BUFFER_STATE convert__scan_bytes (yyconst char *bytes,int len  ); 
      23152222 
      23162223void *convert_alloc (yy_size_t  ); 
       
      23702277#define YY_DO_BEFORE_ACTION \ 
      23712278   (yytext_ptr) = yy_bp; \ 
      2372    convert_leng = (yy_size_t) (yy_cp - yy_bp); \ 
       2279   convert_leng = (size_t) (yy_cp - yy_bp); \ 
      23732280   (yy_hold_char) = *yy_cp; \ 
      23742281   *yy_cp = '\0'; \ 
       
      25832490 
      25842491#define YY_NO_INPUT 
      2585 #line 595 "convert.yy.c" 
       2492#line 594 "convert.yy.c" 
      25862493 
      25872494#define INITIAL 0 
       
      26232530void convert_set_out  (FILE * out_str  ); 
      26242531 
      2625 yy_size_t convert_get_leng (void ); 
       2532int convert_get_leng (void ); 
      26262533 
      26272534char *convert_get_text (void ); 
       
      26732580 * we now use fwrite(). 
      26742581 */ 
      2675 #define ECHO fwrite( convert_text, convert_leng, 1, convert_out ) 
       2582#define ECHO do { if (fwrite( convert_text, convert_leng, 1, convert_out )) {} } while (0) 
      26762583#endif 
      26772584 
       
      26842591      { \ 
      26852592      int c = '*'; \ 
      2686       yy_size_t n; \ 
       2593      unsigned n; \ 
      26872594      for ( n = 0; n < max_size && \ 
      26882595              (c = getc( convert_in )) != EOF && c != '\n'; ++n ) \ 
       
      27682675#line 54 "convert.lex" 
      27692676 
      2770 #line 780 "convert.yy.c" 
       2677#line 779 "convert.yy.c" 
      27712678 
      27722679   if ( !(yy_init) ) 
       
      29272834ECHO; 
      29282835   YY_BREAK 
      2929 #line 939 "convert.yy.c" 
       2836#line 938 "convert.yy.c" 
      29302837case YY_STATE_EOF(INITIAL): 
      29312838case YY_STATE_EOF(character): 
       
      31143021   else 
      31153022      { 
      3116          yy_size_t num_to_read = 
       3023         int num_to_read = 
      31173024         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 
      31183025 
       
      31283035         if ( b->yy_is_our_buffer ) 
      31293036            { 
      3130             yy_size_t new_size = b->yy_buf_size * 2; 
       3037            int new_size = b->yy_buf_size * 2; 
      31313038 
      31323039            if ( new_size <= 0 ) 
       
      31593066      /* Read in more data. */ 
      31603067      YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 
      3161          (yy_n_chars), num_to_read ); 
       3068         (yy_n_chars), (size_t) num_to_read ); 
      31623069 
      31633070      YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 
       
      32693176      { /* need to shift things up to make room */ 
      32703177      /* +2 for EOB chars. */ 
      3271       register yy_size_t number_to_move = (yy_n_chars) + 2; 
       3178      register int number_to_move = (yy_n_chars) + 2; 
      32723179      register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 
      32733180               YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 
       
      33183225      else 
      33193226         { /* need more input */ 
      3320          yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); 
       3227         int offset = (yy_c_buf_p) - (yytext_ptr); 
      33213228         ++(yy_c_buf_p); 
      33223229 
       
      33423249               { 
      33433250               if ( convert_wrap( ) ) 
      3344                   return 0; 
       3251                  return EOF; 
      33453252 
      33463253               if ( ! (yy_did_buffer_switch_on_eof) ) 
       
      35943501static void convert_ensure_buffer_stack (void) 
      35953502{ 
      3596    yy_size_t num_to_alloc; 
       3503   int num_to_alloc; 
      35973504     
      35983505   if (!(yy_buffer_stack)) { 
       
      36913598 * @return the newly allocated buffer state object. 
      36923599 */ 
      3693 YY_BUFFER_STATE convert__scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len ) 
       3600YY_BUFFER_STATE convert__scan_bytes  (yyconst char * yybytes, int  _yybytes_len ) 
      36943601{ 
      36953602   YY_BUFFER_STATE b; 
      36963603   char *buf; 
      3697    yy_size_t n, i; 
       3604   yy_size_t n; 
       3605   int i; 
      36983606     
      36993607   /* Get memory for full buffer, including space for trailing EOB's. */ 
       
      37773685 *  
      37783686 */ 
      3779 yy_size_t convert_get_leng  (void) 
       3687int convert_get_leng  (void) 
      37803688{ 
      37813689        return convert_leng; 
    Note: See TracChangeset for help on using the changeset viewer.