Home | History | Annotate | Line # | Download | only in gas
itbl-parse.c revision 1.1.1.4
      1  1.1.1.4  christos /* A Bison parser, made by GNU Bison 2.3.  */
      2      1.1     skrll 
      3  1.1.1.4  christos /* Skeleton implementation for Bison's Yacc-like parsers in C
      4  1.1.1.2  christos 
      5  1.1.1.4  christos    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
      6  1.1.1.4  christos    Free Software Foundation, Inc.
      7      1.1     skrll 
      8  1.1.1.4  christos    This program is free software; you can redistribute it and/or modify
      9      1.1     skrll    it under the terms of the GNU General Public License as published by
     10  1.1.1.4  christos    the Free Software Foundation; either version 2, or (at your option)
     11  1.1.1.4  christos    any later version.
     12      1.1     skrll 
     13      1.1     skrll    This program is distributed in the hope that it will be useful,
     14      1.1     skrll    but WITHOUT ANY WARRANTY; without even the implied warranty of
     15      1.1     skrll    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16      1.1     skrll    GNU General Public License for more details.
     17      1.1     skrll 
     18      1.1     skrll    You should have received a copy of the GNU General Public License
     19  1.1.1.4  christos    along with this program; if not, write to the Free Software
     20  1.1.1.4  christos    Foundation, Inc., 51 Franklin Street, Fifth Floor,
     21  1.1.1.4  christos    Boston, MA 02110-1301, USA.  */
     22      1.1     skrll 
     23  1.1.1.2  christos /* As a special exception, you may create a larger work that contains
     24  1.1.1.2  christos    part or all of the Bison parser skeleton and distribute that work
     25  1.1.1.2  christos    under terms of your choice, so long as that work isn't itself a
     26  1.1.1.2  christos    parser generator using the skeleton or a modified version thereof
     27  1.1.1.2  christos    as a parser skeleton.  Alternatively, if you modify or redistribute
     28  1.1.1.2  christos    the parser skeleton itself, you may (at your option) remove this
     29  1.1.1.2  christos    special exception, which will cause the skeleton and the resulting
     30  1.1.1.2  christos    Bison output files to be licensed under the GNU General Public
     31  1.1.1.2  christos    License without this special exception.
     32  1.1.1.2  christos 
     33  1.1.1.2  christos    This special exception was added by the Free Software Foundation in
     34  1.1.1.2  christos    version 2.2 of Bison.  */
     35      1.1     skrll 
     36  1.1.1.2  christos /* C LALR(1) parser skeleton written by Richard Stallman, by
     37  1.1.1.2  christos    simplifying the original so-called "semantic" parser.  */
     38      1.1     skrll 
     39      1.1     skrll /* All symbols defined below should begin with yy or YY, to avoid
     40      1.1     skrll    infringing on user name space.  This should be done even for local
     41      1.1     skrll    variables, as they might otherwise be expanded by user macros.
     42      1.1     skrll    There are some unavoidable exceptions within include files to
     43      1.1     skrll    define necessary library symbols; they are noted "INFRINGES ON
     44      1.1     skrll    USER NAME SPACE" below.  */
     45      1.1     skrll 
     46      1.1     skrll /* Identify Bison output.  */
     47      1.1     skrll #define YYBISON 1
     48      1.1     skrll 
     49      1.1     skrll /* Bison version.  */
     50  1.1.1.4  christos #define YYBISON_VERSION "2.3"
     51      1.1     skrll 
     52      1.1     skrll /* Skeleton name.  */
     53      1.1     skrll #define YYSKELETON_NAME "yacc.c"
     54      1.1     skrll 
     55      1.1     skrll /* Pure parsers.  */
     56      1.1     skrll #define YYPURE 0
     57      1.1     skrll 
     58  1.1.1.4  christos /* Using locations.  */
     59  1.1.1.4  christos #define YYLSP_NEEDED 0
     60      1.1     skrll 
     61  1.1.1.4  christos 
     62  1.1.1.4  christos 
     63  1.1.1.4  christos /* Tokens.  */
     64  1.1.1.4  christos #ifndef YYTOKENTYPE
     65  1.1.1.4  christos # define YYTOKENTYPE
     66  1.1.1.4  christos    /* Put the tokens into the symbol table, so that GDB and other debuggers
     67  1.1.1.4  christos       know about them.  */
     68  1.1.1.4  christos    enum yytokentype {
     69  1.1.1.4  christos      DREG = 258,
     70  1.1.1.4  christos      CREG = 259,
     71  1.1.1.4  christos      GREG = 260,
     72  1.1.1.4  christos      IMMED = 261,
     73  1.1.1.4  christos      ADDR = 262,
     74  1.1.1.4  christos      INSN = 263,
     75  1.1.1.4  christos      NUM = 264,
     76  1.1.1.4  christos      ID = 265,
     77  1.1.1.4  christos      NL = 266,
     78  1.1.1.4  christos      PNUM = 267
     79  1.1.1.4  christos    };
     80  1.1.1.4  christos #endif
     81  1.1.1.4  christos /* Tokens.  */
     82  1.1.1.4  christos #define DREG 258
     83  1.1.1.4  christos #define CREG 259
     84  1.1.1.4  christos #define GREG 260
     85  1.1.1.4  christos #define IMMED 261
     86  1.1.1.4  christos #define ADDR 262
     87  1.1.1.4  christos #define INSN 263
     88  1.1.1.4  christos #define NUM 264
     89  1.1.1.4  christos #define ID 265
     90  1.1.1.4  christos #define NL 266
     91  1.1.1.4  christos #define PNUM 267
     92      1.1     skrll 
     93      1.1     skrll 
     94      1.1     skrll 
     95      1.1     skrll 
     96      1.1     skrll /* Copy the first part of user declarations.  */
     97  1.1.1.4  christos #line 21 "./itbl-parse.y"
     98      1.1     skrll 
     99      1.1     skrll 
    100  1.1.1.3  christos /*
    101      1.1     skrll 
    102      1.1     skrll Yacc grammar for instruction table entries.
    103      1.1     skrll 
    104      1.1     skrll =======================================================================
    105      1.1     skrll Original Instruction table specification document:
    106      1.1     skrll 
    107      1.1     skrll 	    MIPS Coprocessor Table Specification
    108      1.1     skrll 	    ====================================
    109      1.1     skrll 
    110      1.1     skrll This document describes the format of the MIPS coprocessor table.  The
    111      1.1     skrll table specifies a list of valid functions, data registers and control
    112      1.1     skrll registers that can be used in coprocessor instructions.  This list,
    113      1.1     skrll together with the coprocessor instruction classes listed below,
    114      1.1     skrll specifies the complete list of coprocessor instructions that will
    115      1.1     skrll be recognized and assembled by the GNU assembler.  In effect,
    116      1.1     skrll this makes the GNU assembler table-driven, where the table is
    117      1.1     skrll specified by the programmer.
    118      1.1     skrll 
    119      1.1     skrll The table is an ordinary text file that the GNU assembler reads when
    120      1.1     skrll it starts.  Using the information in the table, the assembler
    121      1.1     skrll generates an internal list of valid coprocessor registers and
    122      1.1     skrll functions.  The assembler uses this internal list in addition to the
    123  1.1.1.3  christos standard MIPS registers and instructions which are built-in to the
    124      1.1     skrll assembler during code generation.
    125      1.1     skrll 
    126      1.1     skrll To specify the coprocessor table when invoking the GNU assembler, use
    127      1.1     skrll the command line option "--itbl file", where file is the
    128      1.1     skrll complete name of the table, including path and extension.
    129      1.1     skrll 
    130      1.1     skrll Examples:
    131      1.1     skrll 
    132      1.1     skrll 	    gas -t cop.tbl test.s -o test.o
    133      1.1     skrll 	    gas -t /usr/local/lib/cop.tbl test.s -o test.o
    134      1.1     skrll 	    gas --itbl d:\gnu\data\cop.tbl test.s -o test.o
    135      1.1     skrll 
    136      1.1     skrll Only one table may be supplied during a single invocation of
    137      1.1     skrll the assembler.
    138      1.1     skrll 
    139      1.1     skrll 
    140      1.1     skrll Instruction classes
    141      1.1     skrll ===================
    142      1.1     skrll 
    143      1.1     skrll Below is a list of the valid coprocessor instruction classes for
    144      1.1     skrll any given coprocessor "z".  These instructions are already recognized
    145      1.1     skrll by the assembler, and are listed here only for reference.
    146      1.1     skrll 
    147      1.1     skrll Class   format	    	    	      instructions
    148      1.1     skrll -------------------------------------------------
    149      1.1     skrll Class1:
    150      1.1     skrll 	op base rt offset
    151      1.1     skrll 	    	    	    	    	    	    	    LWCz rt,offset (base)
    152      1.1     skrll 	    	    	    	    	    	    	    SWCz rt,offset (base)
    153      1.1     skrll Class2:
    154      1.1     skrll 	COPz sub rt rd 0
    155      1.1     skrll 	    	    	    	    	    	    	    MTCz rt,rd
    156      1.1     skrll 	    	    	    	    	    	    	    MFCz rt,rd
    157      1.1     skrll 	    	    	    	    	    	    	    CTCz rt,rd
    158      1.1     skrll 	    	    	    	    	    	    	    CFCz rt,rd
    159      1.1     skrll Class3:
    160      1.1     skrll 	COPz CO cofun
    161      1.1     skrll 	    	    	    	    	    	    	    COPz cofun
    162      1.1     skrll Class4:
    163      1.1     skrll 	COPz BC br offset
    164      1.1     skrll 	    	    	    	    	    	    	    BCzT offset
    165      1.1     skrll 	    	    	    	    	    	    	    BCzF offset
    166      1.1     skrll Class5:
    167      1.1     skrll 	COPz sub rt rd 0
    168      1.1     skrll 	    	    	    	    	    	    	    DMFCz rt,rd
    169      1.1     skrll 	    	    	    	    	    	    	    DMTCz rt,rd
    170      1.1     skrll Class6:
    171      1.1     skrll 	op base rt offset
    172      1.1     skrll 	    	    	    	    	    	    	    LDCz rt,offset (base)
    173      1.1     skrll 	    	    	    	    	    	    	    SDCz rt,offset (base)
    174      1.1     skrll Class7:
    175      1.1     skrll 	COPz BC br offset
    176      1.1     skrll 	    	    	    	    	    	    	    BCzTL offset
    177      1.1     skrll 	    	    	    	    	    	    	    BCzFL offset
    178      1.1     skrll 
    179      1.1     skrll The coprocessor table defines coprocessor-specific registers that can
    180      1.1     skrll be used with all of the above classes of instructions, where
    181      1.1     skrll appropriate.  It also defines additional coprocessor-specific
    182      1.1     skrll functions for Class3 (COPz cofun) instructions, Thus, the table allows
    183      1.1     skrll the programmer to use convenient mnemonics and operands for these
    184      1.1     skrll functions, instead of the COPz mmenmonic and cofun operand.
    185      1.1     skrll 
    186      1.1     skrll The names of the MIPS general registers and their aliases are defined
    187      1.1     skrll by the assembler and will be recognized as valid register names by the
    188      1.1     skrll assembler when used (where allowed) in coprocessor instructions.
    189      1.1     skrll However, the names and values of all coprocessor data and control
    190      1.1     skrll register mnemonics must be specified in the coprocessor table.
    191      1.1     skrll 
    192      1.1     skrll 
    193      1.1     skrll Table Grammar
    194      1.1     skrll =============
    195      1.1     skrll 
    196      1.1     skrll Here is the grammar for the coprocessor table:
    197      1.1     skrll 
    198      1.1     skrll 	    table -> entry*
    199      1.1     skrll 
    200      1.1     skrll 	    entry -> [z entrydef] [comment] '\n'
    201      1.1     skrll 
    202      1.1     skrll 	    entrydef -> type name val
    203      1.1     skrll 	    entrydef -> 'insn' name val funcdef ; type of entry (instruction)
    204      1.1     skrll 
    205  1.1.1.3  christos 	    z -> 'p'['0'..'3']	    	     ; processor number
    206      1.1     skrll 	    type -> ['dreg' | 'creg' | 'greg' ]	     ; type of entry (register)
    207      1.1     skrll 	; 'dreg', 'creg' or 'greg' specifies a data, control, or general
    208      1.1     skrll 	;	    register mnemonic, respectively
    209      1.1     skrll 	    name -> [ltr|dec]*	    	     ; mnemonic of register/function
    210      1.1     skrll 	    val -> [dec|hex]	    	     ; register/function number (integer constant)
    211      1.1     skrll 
    212      1.1     skrll 	    funcdef -> frange flags fields
    213      1.1     skrll 	    	    	    	; bitfield range for opcode
    214      1.1     skrll 	    	    	    	; list of fields' formats
    215      1.1     skrll 	    fields -> field*
    216      1.1     skrll 	    field -> [','] ftype frange flags
    217      1.1     skrll 	    flags -> ['*' flagexpr]
    218      1.1     skrll 	    flagexpr -> '[' flagexpr ']'
    219  1.1.1.3  christos 	    flagexpr -> val '|' flagexpr
    220      1.1     skrll 	    ftype -> [ type | 'immed' | 'addr' ]
    221      1.1     skrll 	; 'immed' specifies an immediate value; see grammar for "val" above
    222  1.1.1.3  christos 	    	; 'addr' specifies a C identifier; name of symbol to be resolved at
    223      1.1     skrll 	;	    link time
    224      1.1     skrll 	    frange -> ':' val '-' val	; starting to ending bit positions, where
    225      1.1     skrll 	    	    	    	; where 0 is least significant bit
    226      1.1     skrll 	    frange -> (null)	    	; default range of 31-0 will be assumed
    227      1.1     skrll 
    228      1.1     skrll 	    comment -> [';'|'#'] [char]*
    229      1.1     skrll 	    char -> any printable character
    230  1.1.1.3  christos 	    ltr -> ['a'..'z'|'A'..'Z']
    231      1.1     skrll 	    dec -> ['0'..'9']*	    	    	    	    	     ; value in decimal
    232  1.1.1.3  christos 	    hex -> '0x'['0'..'9' | 'a'..'f' | 'A'..'F']*	; value in hexadecimal
    233      1.1     skrll 
    234      1.1     skrll 
    235      1.1     skrll Examples
    236      1.1     skrll ========
    237      1.1     skrll 
    238      1.1     skrll Example 1:
    239      1.1     skrll 
    240      1.1     skrll The table:
    241      1.1     skrll 
    242      1.1     skrll 	    p1 dreg d1 1	     ; data register "d1" for COP1 has value 1
    243      1.1     skrll 	    p1 creg c3 3	     ; ctrl register "c3" for COP1 has value 3
    244  1.1.1.3  christos 	    p3 func fill 0x1f:24-20	      ; function "fill" for COP3 has value 31 and
    245      1.1     skrll 	    	    	; no fields
    246      1.1     skrll 
    247      1.1     skrll will allow the assembler to accept the following coprocessor instructions:
    248      1.1     skrll 
    249      1.1     skrll 	    LWC1 d1,0x100 ($2)
    250      1.1     skrll 	    fill
    251      1.1     skrll 
    252  1.1.1.3  christos Here, the general purpose register "$2", and instruction "LWC1", are standard
    253  1.1.1.3  christos mnemonics built-in to the MIPS assembler.
    254      1.1     skrll 
    255      1.1     skrll 
    256      1.1     skrll Example 2:
    257      1.1     skrll 
    258      1.1     skrll The table:
    259      1.1     skrll 
    260      1.1     skrll 	    p3 dreg d3 3	     ; data register "d3" for COP3 has value 3
    261      1.1     skrll 	    p3 creg c2 22	     ; control register "c2" for COP3 has value 22
    262  1.1.1.3  christos 	    p3 func fee 0x1f:24-20 dreg:17-13 creg:12-8 immed:7-0
    263  1.1.1.3  christos 	    	; function "fee" for COP3 has value 31, and 3 fields
    264  1.1.1.3  christos 	    	; consisting of a data register, a control register,
    265      1.1     skrll 	    	; and an immediate value.
    266      1.1     skrll 
    267      1.1     skrll will allow the assembler to accept the following coprocessor instruction:
    268      1.1     skrll 
    269      1.1     skrll 	    fee d3,c2,0x1
    270      1.1     skrll 
    271      1.1     skrll and will emit the object code:
    272      1.1     skrll 
    273      1.1     skrll 	    31-26  25 24-20 19-18  17-13 12-8  7-0
    274      1.1     skrll 	    COPz   CO fun	    	      dreg  creg  immed
    275  1.1.1.3  christos 	    010011 1  11111 00	     00011 10110 00000001
    276      1.1     skrll 
    277      1.1     skrll 	    0x4ff07601
    278      1.1     skrll 
    279      1.1     skrll 
    280      1.1     skrll Example 3:
    281      1.1     skrll 
    282      1.1     skrll The table:
    283      1.1     skrll 
    284      1.1     skrll 	    p3 dreg d3 3	     ; data register "d3" for COP3 has value 3
    285      1.1     skrll 	    p3 creg c2 22	     ; control register "c2" for COP3 has value 22
    286      1.1     skrll 	    p3 func fuu 0x01f00001 dreg:17-13 creg:12-8
    287      1.1     skrll 
    288      1.1     skrll will allow the assembler to accept the following coprocessor
    289      1.1     skrll instruction:
    290      1.1     skrll 
    291      1.1     skrll 	    fuu d3,c2
    292      1.1     skrll 
    293      1.1     skrll and will emit the object code:
    294      1.1     skrll 
    295      1.1     skrll 	    31-26  25 24-20 19-18  17-13 12-8  7-0
    296  1.1.1.3  christos 	    COPz   CO fun	    	      dreg  creg
    297  1.1.1.3  christos 	    010011 1  11111 00	     00011 10110 00000001
    298      1.1     skrll 
    299      1.1     skrll 	    0x4ff07601
    300      1.1     skrll 
    301      1.1     skrll In this way, the programmer can force arbitrary bits of an instruction
    302      1.1     skrll to have predefined values.
    303      1.1     skrll 
    304      1.1     skrll =======================================================================
    305      1.1     skrll Additional notes:
    306      1.1     skrll 
    307      1.1     skrll Encoding of ranges:
    308      1.1     skrll To handle more than one bit position range within an instruction,
    309      1.1     skrll use 0s to mask out the ranges which don't apply.
    310  1.1.1.3  christos May decide to modify the syntax to allow commas separate multiple
    311      1.1     skrll ranges within an instruction (range','range).
    312      1.1     skrll 
    313      1.1     skrll Changes in grammar:
    314      1.1     skrll 	The number of parms argument to the function entry
    315      1.1     skrll was deleted from the original format such that we now count the fields.
    316      1.1     skrll 
    317      1.1     skrll ----
    318  1.1.1.3  christos FIXME! should really change lexical analyzer
    319      1.1     skrll to recognize 'dreg' etc. in context sensitive way.
    320      1.1     skrll Currently function names or mnemonics may be incorrectly parsed as keywords
    321      1.1     skrll 
    322      1.1     skrll FIXME! hex is ambiguous with any digit
    323      1.1     skrll 
    324      1.1     skrll */
    325      1.1     skrll 
    326      1.1     skrll #include "as.h"
    327      1.1     skrll #include "itbl-lex.h"
    328      1.1     skrll #include "itbl-ops.h"
    329      1.1     skrll 
    330      1.1     skrll /* #define DEBUG */
    331      1.1     skrll 
    332      1.1     skrll #ifdef DEBUG
    333      1.1     skrll #ifndef DBG_LVL
    334      1.1     skrll #define DBG_LVL 1
    335      1.1     skrll #endif
    336      1.1     skrll #else
    337      1.1     skrll #define DBG_LVL 0
    338      1.1     skrll #endif
    339      1.1     skrll 
    340      1.1     skrll #if DBG_LVL >= 1
    341      1.1     skrll #define DBG(x) printf x
    342      1.1     skrll #else
    343  1.1.1.3  christos #define DBG(x)
    344      1.1     skrll #endif
    345      1.1     skrll 
    346      1.1     skrll #if DBG_LVL >= 2
    347      1.1     skrll #define DBGL2(x) printf x
    348      1.1     skrll #else
    349  1.1.1.3  christos #define DBGL2(x)
    350      1.1     skrll #endif
    351      1.1     skrll 
    352      1.1     skrll static int sbit, ebit;
    353      1.1     skrll static struct itbl_entry *insn=0;
    354      1.1     skrll static int yyerror (const char *);
    355      1.1     skrll 
    356      1.1     skrll 
    357      1.1     skrll 
    358  1.1.1.4  christos /* Enabling traces.  */
    359  1.1.1.4  christos #ifndef YYDEBUG
    360  1.1.1.4  christos # define YYDEBUG 0
    361  1.1.1.4  christos #endif
    362      1.1     skrll 
    363      1.1     skrll /* Enabling verbose error messages.  */
    364      1.1     skrll #ifdef YYERROR_VERBOSE
    365      1.1     skrll # undef YYERROR_VERBOSE
    366      1.1     skrll # define YYERROR_VERBOSE 1
    367      1.1     skrll #else
    368      1.1     skrll # define YYERROR_VERBOSE 0
    369      1.1     skrll #endif
    370      1.1     skrll 
    371  1.1.1.4  christos /* Enabling the token table.  */
    372  1.1.1.4  christos #ifndef YYTOKEN_TABLE
    373  1.1.1.4  christos # define YYTOKEN_TABLE 0
    374      1.1     skrll #endif
    375      1.1     skrll 
    376  1.1.1.2  christos #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
    377  1.1.1.4  christos typedef union YYSTYPE
    378  1.1.1.4  christos #line 282 "./itbl-parse.y"
    379  1.1.1.2  christos {
    380      1.1     skrll     char *str;
    381      1.1     skrll     int num;
    382      1.1     skrll     int processor;
    383      1.1     skrll     unsigned long val;
    384  1.1.1.4  christos   }
    385  1.1.1.4  christos /* Line 193 of yacc.c.  */
    386  1.1.1.4  christos #line 387 "itbl-parse.c"
    387  1.1.1.4  christos 	YYSTYPE;
    388  1.1.1.4  christos # define yystype YYSTYPE /* obsolescent; will be withdrawn */
    389  1.1.1.3  christos # define YYSTYPE_IS_DECLARED 1
    390  1.1.1.4  christos # define YYSTYPE_IS_TRIVIAL 1
    391      1.1     skrll #endif
    392      1.1     skrll 
    393      1.1     skrll 
    394      1.1     skrll 
    395  1.1.1.3  christos /* Copy the second part of user declarations.  */
    396  1.1.1.3  christos 
    397  1.1.1.4  christos 
    398  1.1.1.4  christos /* Line 216 of yacc.c.  */
    399  1.1.1.4  christos #line 400 "itbl-parse.c"
    400      1.1     skrll 
    401  1.1.1.2  christos #ifdef short
    402  1.1.1.2  christos # undef short
    403      1.1     skrll #endif
    404  1.1.1.2  christos 
    405  1.1.1.2  christos #ifdef YYTYPE_UINT8
    406  1.1.1.2  christos typedef YYTYPE_UINT8 yytype_uint8;
    407  1.1.1.2  christos #else
    408  1.1.1.2  christos typedef unsigned char yytype_uint8;
    409      1.1     skrll #endif
    410  1.1.1.2  christos 
    411  1.1.1.2  christos #ifdef YYTYPE_INT8
    412  1.1.1.2  christos typedef YYTYPE_INT8 yytype_int8;
    413  1.1.1.4  christos #elif (defined __STDC__ || defined __C99__FUNC__ \
    414  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    415  1.1.1.3  christos typedef signed char yytype_int8;
    416  1.1.1.4  christos #else
    417  1.1.1.4  christos typedef short int yytype_int8;
    418  1.1.1.2  christos #endif
    419  1.1.1.2  christos 
    420  1.1.1.2  christos #ifdef YYTYPE_UINT16
    421  1.1.1.2  christos typedef YYTYPE_UINT16 yytype_uint16;
    422  1.1.1.2  christos #else
    423  1.1.1.2  christos typedef unsigned short int yytype_uint16;
    424  1.1.1.2  christos #endif
    425  1.1.1.2  christos 
    426  1.1.1.2  christos #ifdef YYTYPE_INT16
    427  1.1.1.2  christos typedef YYTYPE_INT16 yytype_int16;
    428  1.1.1.2  christos #else
    429  1.1.1.2  christos typedef short int yytype_int16;
    430      1.1     skrll #endif
    431  1.1.1.2  christos 
    432  1.1.1.2  christos #ifndef YYSIZE_T
    433  1.1.1.2  christos # ifdef __SIZE_TYPE__
    434  1.1.1.2  christos #  define YYSIZE_T __SIZE_TYPE__
    435  1.1.1.2  christos # elif defined size_t
    436  1.1.1.2  christos #  define YYSIZE_T size_t
    437  1.1.1.4  christos # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
    438  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    439  1.1.1.2  christos #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
    440  1.1.1.2  christos #  define YYSIZE_T size_t
    441  1.1.1.2  christos # else
    442  1.1.1.2  christos #  define YYSIZE_T unsigned int
    443  1.1.1.2  christos # endif
    444      1.1     skrll #endif
    445      1.1     skrll 
    446  1.1.1.2  christos #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
    447  1.1.1.2  christos 
    448      1.1     skrll #ifndef YY_
    449  1.1.1.2  christos # if defined YYENABLE_NLS && YYENABLE_NLS
    450      1.1     skrll #  if ENABLE_NLS
    451      1.1     skrll #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
    452  1.1.1.4  christos #   define YY_(msgid) dgettext ("bison-runtime", msgid)
    453      1.1     skrll #  endif
    454      1.1     skrll # endif
    455      1.1     skrll # ifndef YY_
    456  1.1.1.4  christos #  define YY_(msgid) msgid
    457      1.1     skrll # endif
    458      1.1     skrll #endif
    459      1.1     skrll 
    460  1.1.1.2  christos /* Suppress unused-variable warnings by "using" E.  */
    461  1.1.1.2  christos #if ! defined lint || defined __GNUC__
    462  1.1.1.4  christos # define YYUSE(e) ((void) (e))
    463  1.1.1.2  christos #else
    464  1.1.1.4  christos # define YYUSE(e) /* empty */
    465  1.1.1.2  christos #endif
    466  1.1.1.2  christos 
    467  1.1.1.4  christos /* Identity function, used to suppress warnings about constant conditions.  */
    468  1.1.1.4  christos #ifndef lint
    469  1.1.1.4  christos # define YYID(n) (n)
    470  1.1.1.2  christos #else
    471  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
    472  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    473  1.1.1.4  christos static int
    474  1.1.1.4  christos YYID (int i)
    475  1.1.1.4  christos #else
    476  1.1.1.4  christos static int
    477  1.1.1.4  christos YYID (i)
    478  1.1.1.4  christos     int i;
    479  1.1.1.3  christos #endif
    480  1.1.1.4  christos {
    481  1.1.1.4  christos   return i;
    482  1.1.1.4  christos }
    483  1.1.1.2  christos #endif
    484  1.1.1.2  christos 
    485  1.1.1.2  christos #if ! defined yyoverflow || YYERROR_VERBOSE
    486      1.1     skrll 
    487      1.1     skrll /* The parser invokes alloca or malloc; define the necessary symbols.  */
    488      1.1     skrll 
    489      1.1     skrll # ifdef YYSTACK_USE_ALLOCA
    490      1.1     skrll #  if YYSTACK_USE_ALLOCA
    491      1.1     skrll #   ifdef __GNUC__
    492      1.1     skrll #    define YYSTACK_ALLOC __builtin_alloca
    493  1.1.1.2  christos #   elif defined __BUILTIN_VA_ARG_INCR
    494  1.1.1.2  christos #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
    495  1.1.1.2  christos #   elif defined _AIX
    496  1.1.1.2  christos #    define YYSTACK_ALLOC __alloca
    497  1.1.1.2  christos #   elif defined _MSC_VER
    498  1.1.1.2  christos #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
    499  1.1.1.2  christos #    define alloca _alloca
    500      1.1     skrll #   else
    501      1.1     skrll #    define YYSTACK_ALLOC alloca
    502  1.1.1.4  christos #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    503  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    504      1.1     skrll #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    505  1.1.1.4  christos #     ifndef _STDLIB_H
    506  1.1.1.4  christos #      define _STDLIB_H 1
    507  1.1.1.2  christos #     endif
    508      1.1     skrll #    endif
    509      1.1     skrll #   endif
    510      1.1     skrll #  endif
    511      1.1     skrll # endif
    512      1.1     skrll 
    513      1.1     skrll # ifdef YYSTACK_ALLOC
    514  1.1.1.4  christos    /* Pacify GCC's `empty if-body' warning.  */
    515  1.1.1.4  christos #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
    516      1.1     skrll #  ifndef YYSTACK_ALLOC_MAXIMUM
    517      1.1     skrll     /* The OS might guarantee only one guard page at the bottom of the stack,
    518      1.1     skrll        and a page size can be as small as 4096 bytes.  So we cannot safely
    519      1.1     skrll        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
    520      1.1     skrll        to allow for a few compiler-allocated temporary stack slots.  */
    521  1.1.1.2  christos #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
    522      1.1     skrll #  endif
    523      1.1     skrll # else
    524      1.1     skrll #  define YYSTACK_ALLOC YYMALLOC
    525      1.1     skrll #  define YYSTACK_FREE YYFREE
    526      1.1     skrll #  ifndef YYSTACK_ALLOC_MAXIMUM
    527  1.1.1.2  christos #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
    528      1.1     skrll #  endif
    529  1.1.1.4  christos #  if (defined __cplusplus && ! defined _STDLIB_H \
    530  1.1.1.2  christos        && ! ((defined YYMALLOC || defined malloc) \
    531  1.1.1.4  christos 	     && (defined YYFREE || defined free)))
    532  1.1.1.2  christos #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
    533  1.1.1.4  christos #   ifndef _STDLIB_H
    534  1.1.1.4  christos #    define _STDLIB_H 1
    535  1.1.1.2  christos #   endif
    536      1.1     skrll #  endif
    537      1.1     skrll #  ifndef YYMALLOC
    538      1.1     skrll #   define YYMALLOC malloc
    539  1.1.1.4  christos #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    540  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    541      1.1     skrll void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
    542      1.1     skrll #   endif
    543      1.1     skrll #  endif
    544      1.1     skrll #  ifndef YYFREE
    545      1.1     skrll #   define YYFREE free
    546  1.1.1.4  christos #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
    547  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    548      1.1     skrll void free (void *); /* INFRINGES ON USER NAME SPACE */
    549      1.1     skrll #   endif
    550      1.1     skrll #  endif
    551      1.1     skrll # endif
    552  1.1.1.2  christos #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
    553      1.1     skrll 
    554      1.1     skrll 
    555  1.1.1.2  christos #if (! defined yyoverflow \
    556  1.1.1.2  christos      && (! defined __cplusplus \
    557  1.1.1.4  christos 	 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
    558      1.1     skrll 
    559      1.1     skrll /* A type that is properly aligned for any stack member.  */
    560      1.1     skrll union yyalloc
    561      1.1     skrll {
    562  1.1.1.4  christos   yytype_int16 yyss;
    563  1.1.1.4  christos   YYSTYPE yyvs;
    564  1.1.1.4  christos   };
    565      1.1     skrll 
    566      1.1     skrll /* The size of the maximum gap between one aligned stack and the next.  */
    567      1.1     skrll # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
    568      1.1     skrll 
    569      1.1     skrll /* The size of an array large to enough to hold all stacks, each with
    570      1.1     skrll    N elements.  */
    571      1.1     skrll # define YYSTACK_BYTES(N) \
    572  1.1.1.2  christos      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
    573      1.1     skrll       + YYSTACK_GAP_MAXIMUM)
    574      1.1     skrll 
    575  1.1.1.4  christos /* Copy COUNT objects from FROM to TO.  The source and destination do
    576  1.1.1.4  christos    not overlap.  */
    577  1.1.1.4  christos # ifndef YYCOPY
    578  1.1.1.4  christos #  if defined __GNUC__ && 1 < __GNUC__
    579  1.1.1.4  christos #   define YYCOPY(To, From, Count) \
    580  1.1.1.4  christos       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
    581  1.1.1.4  christos #  else
    582  1.1.1.4  christos #   define YYCOPY(To, From, Count)		\
    583  1.1.1.4  christos       do					\
    584  1.1.1.4  christos 	{					\
    585  1.1.1.4  christos 	  YYSIZE_T yyi;				\
    586  1.1.1.4  christos 	  for (yyi = 0; yyi < (Count); yyi++)	\
    587  1.1.1.4  christos 	    (To)[yyi] = (From)[yyi];		\
    588  1.1.1.4  christos 	}					\
    589  1.1.1.4  christos       while (YYID (0))
    590  1.1.1.4  christos #  endif
    591  1.1.1.4  christos # endif
    592      1.1     skrll 
    593      1.1     skrll /* Relocate STACK from its old location to the new one.  The
    594      1.1     skrll    local variables YYSIZE and YYSTACKSIZE give the old and new number of
    595      1.1     skrll    elements in the stack, and YYPTR gives the new location of the
    596      1.1     skrll    stack.  Advance YYPTR to a properly aligned location for the next
    597      1.1     skrll    stack.  */
    598  1.1.1.4  christos # define YYSTACK_RELOCATE(Stack)					\
    599  1.1.1.4  christos     do									\
    600  1.1.1.4  christos       {									\
    601  1.1.1.4  christos 	YYSIZE_T yynewbytes;						\
    602  1.1.1.4  christos 	YYCOPY (&yyptr->Stack, Stack, yysize);				\
    603  1.1.1.4  christos 	Stack = &yyptr->Stack;						\
    604  1.1.1.4  christos 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
    605  1.1.1.4  christos 	yyptr += yynewbytes / sizeof (*yyptr);				\
    606  1.1.1.4  christos       }									\
    607  1.1.1.4  christos     while (YYID (0))
    608      1.1     skrll 
    609      1.1     skrll #endif
    610      1.1     skrll 
    611  1.1.1.2  christos /* YYFINAL -- State number of the termination state.  */
    612      1.1     skrll #define YYFINAL  9
    613      1.1     skrll /* YYLAST -- Last index in YYTABLE.  */
    614      1.1     skrll #define YYLAST   46
    615      1.1     skrll 
    616  1.1.1.2  christos /* YYNTOKENS -- Number of terminals.  */
    617      1.1     skrll #define YYNTOKENS  20
    618  1.1.1.2  christos /* YYNNTS -- Number of nonterminals.  */
    619      1.1     skrll #define YYNNTS  15
    620  1.1.1.2  christos /* YYNRULES -- Number of rules.  */
    621      1.1     skrll #define YYNRULES  29
    622  1.1.1.4  christos /* YYNRULES -- Number of states.  */
    623      1.1     skrll #define YYNSTATES  51
    624      1.1     skrll 
    625  1.1.1.4  christos /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
    626      1.1     skrll #define YYUNDEFTOK  2
    627      1.1     skrll #define YYMAXUTOK   267
    628      1.1     skrll 
    629  1.1.1.4  christos #define YYTRANSLATE(YYX)						\
    630      1.1     skrll   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
    631      1.1     skrll 
    632  1.1.1.4  christos /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
    633  1.1.1.2  christos static const yytype_uint8 yytranslate[] =
    634      1.1     skrll {
    635      1.1     skrll        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    636      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    637      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    638      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    639      1.1     skrll        2,     2,    17,     2,    13,    19,     2,     2,     2,     2,
    640      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,    18,     2,
    641      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    642      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    643      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    644      1.1     skrll        2,    15,     2,    16,     2,     2,     2,     2,     2,     2,
    645      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    646      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    647      1.1     skrll        2,     2,     2,     2,    14,     2,     2,     2,     2,     2,
    648      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    649      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    650      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    651      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    652      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    653      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    654      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    655      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    656      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    657      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    658      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    659      1.1     skrll        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
    660      1.1     skrll        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
    661      1.1     skrll        5,     6,     7,     8,     9,    10,    11,    12
    662      1.1     skrll };
    663      1.1     skrll 
    664      1.1     skrll #if YYDEBUG
    665  1.1.1.4  christos /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
    666  1.1.1.4  christos    YYRHS.  */
    667  1.1.1.4  christos static const yytype_uint8 yyprhs[] =
    668  1.1.1.4  christos {
    669  1.1.1.4  christos        0,     0,     3,     5,     8,     9,    15,    16,    26,    28,
    670  1.1.1.4  christos       31,    35,    38,    39,    41,    43,    45,    49,    53,    57,
    671  1.1.1.4  christos       59,    62,    63,    68,    69,    71,    73,    75,    77,    79
    672  1.1.1.4  christos };
    673  1.1.1.4  christos 
    674  1.1.1.4  christos /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
    675  1.1.1.4  christos static const yytype_int8 yyrhs[] =
    676  1.1.1.4  christos {
    677  1.1.1.4  christos       21,     0,    -1,    22,    -1,    23,    22,    -1,    -1,    31,
    678  1.1.1.4  christos       32,    33,    34,    11,    -1,    -1,    31,     8,    33,    34,
    679  1.1.1.4  christos       30,    29,    24,    25,    11,    -1,    11,    -1,     1,    11,
    680  1.1.1.4  christos       -1,    13,    27,    25,    -1,    27,    25,    -1,    -1,    32,
    681  1.1.1.4  christos       -1,     7,    -1,     6,    -1,    26,    30,    29,    -1,     9,
    682  1.1.1.4  christos       14,    28,    -1,    15,    28,    16,    -1,     9,    -1,    17,
    683  1.1.1.4  christos       28,    -1,    -1,    18,     9,    19,     9,    -1,    -1,    12,
    684  1.1.1.4  christos       -1,     3,    -1,     4,    -1,     5,    -1,    10,    -1,     9,
    685  1.1.1.4  christos       -1
    686  1.1.1.4  christos };
    687  1.1.1.4  christos 
    688  1.1.1.4  christos /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
    689  1.1.1.2  christos static const yytype_uint16 yyrline[] =
    690      1.1     skrll {
    691      1.1     skrll        0,   299,   299,   303,   304,   308,   315,   314,   323,   324,
    692      1.1     skrll      328,   329,   330,   334,   339,   344,   352,   361,   365,   369,
    693      1.1     skrll      376,   382,   388,   395,   402,   410,   415,   420,   428,   444
    694      1.1     skrll };
    695      1.1     skrll #endif
    696      1.1     skrll 
    697  1.1.1.4  christos #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
    698      1.1     skrll /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    699  1.1.1.2  christos    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
    700      1.1     skrll static const char *const yytname[] =
    701      1.1     skrll {
    702      1.1     skrll   "$end", "error", "$undefined", "DREG", "CREG", "GREG", "IMMED", "ADDR",
    703      1.1     skrll   "INSN", "NUM", "ID", "NL", "PNUM", "','", "'|'", "'['", "']'", "'*'",
    704  1.1.1.4  christos   "':'", "'-'", "$accept", "insntbl", "entrys", "entry", "@1",
    705      1.1     skrll   "fieldspecs", "ftype", "fieldspec", "flagexpr", "flags", "range", "pnum",
    706  1.1.1.4  christos   "regtype", "name", "value", 0
    707      1.1     skrll };
    708      1.1     skrll #endif
    709      1.1     skrll 
    710      1.1     skrll # ifdef YYPRINT
    711  1.1.1.4  christos /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
    712  1.1.1.4  christos    token YYLEX-NUM.  */
    713  1.1.1.2  christos static const yytype_uint16 yytoknum[] =
    714      1.1     skrll {
    715      1.1     skrll        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
    716      1.1     skrll      265,   266,   267,    44,   124,    91,    93,    42,    58,    45
    717      1.1     skrll };
    718      1.1     skrll # endif
    719      1.1     skrll 
    720  1.1.1.4  christos /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
    721  1.1.1.4  christos static const yytype_uint8 yyr1[] =
    722  1.1.1.4  christos {
    723  1.1.1.4  christos        0,    20,    21,    22,    22,    23,    24,    23,    23,    23,
    724  1.1.1.4  christos       25,    25,    25,    26,    26,    26,    27,    28,    28,    28,
    725  1.1.1.4  christos       29,    29,    30,    30,    31,    32,    32,    32,    33,    34
    726  1.1.1.4  christos };
    727      1.1     skrll 
    728  1.1.1.4  christos /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
    729  1.1.1.4  christos static const yytype_uint8 yyr2[] =
    730      1.1     skrll {
    731  1.1.1.4  christos        0,     2,     1,     2,     0,     5,     0,     9,     1,     2,
    732  1.1.1.4  christos        3,     2,     0,     1,     1,     1,     3,     3,     3,     1,
    733  1.1.1.4  christos        2,     0,     4,     0,     1,     1,     1,     1,     1,     1
    734      1.1     skrll };
    735      1.1     skrll 
    736  1.1.1.4  christos /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
    737  1.1.1.4  christos    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
    738  1.1.1.4  christos    means the default is an error.  */
    739  1.1.1.3  christos static const yytype_uint8 yydefact[] =
    740  1.1.1.3  christos {
    741  1.1.1.3  christos        0,     0,     8,    24,     0,     2,     0,     0,     9,     1,
    742  1.1.1.3  christos        3,    25,    26,    27,     0,     0,    28,     0,     0,    29,
    743  1.1.1.3  christos       23,     0,     0,    21,     5,     0,     0,     6,     0,    19,
    744  1.1.1.3  christos        0,    20,    12,    22,     0,     0,    15,    14,     0,     0,
    745  1.1.1.3  christos       23,    12,    13,    17,    18,    12,     7,    21,    11,    10,
    746  1.1.1.3  christos       16
    747  1.1.1.3  christos };
    748  1.1.1.3  christos 
    749  1.1.1.4  christos /* YYDEFGOTO[NTERM-NUM].  */
    750  1.1.1.3  christos static const yytype_int8 yydefgoto[] =
    751  1.1.1.3  christos {
    752  1.1.1.3  christos       -1,     4,     5,     6,    32,    39,    40,    41,    31,    27,
    753  1.1.1.3  christos       23,     7,    42,    17,    20
    754  1.1.1.3  christos };
    755  1.1.1.3  christos 
    756  1.1.1.4  christos /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    757  1.1.1.4  christos    STATE-NUM.  */
    758  1.1.1.4  christos #define YYPACT_NINF -16
    759  1.1.1.4  christos static const yytype_int8 yypact[] =
    760  1.1.1.4  christos {
    761  1.1.1.4  christos        0,    -9,   -16,   -16,    10,   -16,     0,    12,   -16,   -16,
    762  1.1.1.4  christos      -16,   -16,   -16,   -16,     3,     3,   -16,     9,     9,   -16,
    763  1.1.1.4  christos       11,     8,    19,    15,   -16,    14,    -6,   -16,    25,    21,
    764  1.1.1.4  christos       -6,   -16,     1,   -16,    -6,    20,   -16,   -16,    18,    26,
    765  1.1.1.4  christos       11,     1,   -16,   -16,   -16,     1,   -16,    15,   -16,   -16,
    766  1.1.1.4  christos      -16
    767  1.1.1.4  christos };
    768  1.1.1.4  christos 
    769  1.1.1.4  christos /* YYPGOTO[NTERM-NUM].  */
    770  1.1.1.4  christos static const yytype_int8 yypgoto[] =
    771  1.1.1.4  christos {
    772  1.1.1.4  christos      -16,   -16,    32,   -16,   -16,   -15,   -16,     2,    -3,    -8,
    773  1.1.1.4  christos        4,   -16,    34,    27,    28
    774  1.1.1.4  christos };
    775  1.1.1.4  christos 
    776  1.1.1.4  christos /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    777  1.1.1.4  christos    positive, shift that token.  If negative, reduce the rule which
    778  1.1.1.4  christos    number is the opposite.  If zero, do what YYDEFACT says.
    779  1.1.1.4  christos    If YYTABLE_NINF, syntax error.  */
    780  1.1.1.4  christos #define YYTABLE_NINF -5
    781  1.1.1.2  christos static const yytype_int8 yytable[] =
    782      1.1     skrll {
    783      1.1     skrll       -4,     1,     8,    29,    11,    12,    13,    36,    37,    30,
    784      1.1     skrll        9,     2,     3,    16,    38,    11,    12,    13,    19,    24,
    785      1.1     skrll       14,    11,    12,    13,    36,    37,    48,    35,    25,    22,
    786      1.1     skrll       49,    43,    26,    28,    33,    34,    44,    46,    10,    50,
    787      1.1     skrll       45,    15,    18,     0,    47,     0,    21
    788      1.1     skrll };
    789      1.1     skrll 
    790  1.1.1.2  christos static const yytype_int8 yycheck[] =
    791      1.1     skrll {
    792      1.1     skrll        0,     1,    11,     9,     3,     4,     5,     6,     7,    15,
    793      1.1     skrll        0,    11,    12,    10,    13,     3,     4,     5,     9,    11,
    794      1.1     skrll        8,     3,     4,     5,     6,     7,    41,    30,     9,    18,
    795      1.1     skrll       45,    34,    17,    19,     9,    14,    16,    11,     6,    47,
    796      1.1     skrll       38,     7,    15,    -1,    40,    -1,    18
    797      1.1     skrll };
    798      1.1     skrll 
    799  1.1.1.4  christos /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
    800  1.1.1.4  christos    symbol of state STATE-NUM.  */
    801  1.1.1.2  christos static const yytype_uint8 yystos[] =
    802      1.1     skrll {
    803      1.1     skrll        0,     1,    11,    12,    21,    22,    23,    31,    11,     0,
    804      1.1     skrll       22,     3,     4,     5,     8,    32,    10,    33,    33,     9,
    805      1.1     skrll       34,    34,    18,    30,    11,     9,    17,    29,    19,     9,
    806      1.1     skrll       15,    28,    24,     9,    14,    28,     6,     7,    13,    25,
    807      1.1     skrll       26,    27,    32,    28,    16,    27,    11,    30,    25,    25,
    808      1.1     skrll       29
    809      1.1     skrll };
    810      1.1     skrll 
    811  1.1.1.4  christos #define yyerrok		(yyerrstatus = 0)
    812  1.1.1.4  christos #define yyclearin	(yychar = YYEMPTY)
    813  1.1.1.4  christos #define YYEMPTY		(-2)
    814  1.1.1.4  christos #define YYEOF		0
    815      1.1     skrll 
    816  1.1.1.4  christos #define YYACCEPT	goto yyacceptlab
    817  1.1.1.4  christos #define YYABORT		goto yyabortlab
    818  1.1.1.4  christos #define YYERROR		goto yyerrorlab
    819      1.1     skrll 
    820      1.1     skrll 
    821  1.1.1.4  christos /* Like YYERROR except do call yyerror.  This remains here temporarily
    822  1.1.1.4  christos    to ease the transition to the new meaning of YYERROR, for GCC.
    823  1.1.1.4  christos    Once GCC version 2 has supplanted version 1, this can go.  */
    824      1.1     skrll 
    825  1.1.1.4  christos #define YYFAIL		goto yyerrlab
    826      1.1     skrll 
    827      1.1     skrll #define YYRECOVERING()  (!!yyerrstatus)
    828      1.1     skrll 
    829  1.1.1.4  christos #define YYBACKUP(Token, Value)					\
    830  1.1.1.4  christos do								\
    831  1.1.1.4  christos   if (yychar == YYEMPTY && yylen == 1)				\
    832  1.1.1.4  christos     {								\
    833  1.1.1.4  christos       yychar = (Token);						\
    834  1.1.1.4  christos       yylval = (Value);						\
    835  1.1.1.4  christos       yytoken = YYTRANSLATE (yychar);				\
    836  1.1.1.4  christos       YYPOPSTACK (1);						\
    837  1.1.1.4  christos       goto yybackup;						\
    838  1.1.1.4  christos     }								\
    839  1.1.1.4  christos   else								\
    840  1.1.1.4  christos     {								\
    841      1.1     skrll       yyerror (YY_("syntax error: cannot back up")); \
    842  1.1.1.4  christos       YYERROR;							\
    843  1.1.1.4  christos     }								\
    844  1.1.1.4  christos while (YYID (0))
    845  1.1.1.4  christos 
    846  1.1.1.4  christos 
    847  1.1.1.4  christos #define YYTERROR	1
    848  1.1.1.4  christos #define YYERRCODE	256
    849  1.1.1.4  christos 
    850  1.1.1.4  christos 
    851  1.1.1.4  christos /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    852  1.1.1.4  christos    If N is 0, then set CURRENT to the empty location which ends
    853  1.1.1.4  christos    the previous symbol: RHS[0] (always defined).  */
    854  1.1.1.4  christos 
    855  1.1.1.4  christos #define YYRHSLOC(Rhs, K) ((Rhs)[K])
    856  1.1.1.4  christos #ifndef YYLLOC_DEFAULT
    857  1.1.1.4  christos # define YYLLOC_DEFAULT(Current, Rhs, N)				\
    858  1.1.1.4  christos     do									\
    859  1.1.1.4  christos       if (YYID (N))                                                    \
    860  1.1.1.4  christos 	{								\
    861  1.1.1.4  christos 	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
    862  1.1.1.4  christos 	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
    863  1.1.1.4  christos 	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
    864  1.1.1.4  christos 	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
    865  1.1.1.4  christos 	}								\
    866  1.1.1.4  christos       else								\
    867  1.1.1.4  christos 	{								\
    868  1.1.1.4  christos 	  (Current).first_line   = (Current).last_line   =		\
    869  1.1.1.4  christos 	    YYRHSLOC (Rhs, 0).last_line;				\
    870  1.1.1.4  christos 	  (Current).first_column = (Current).last_column =		\
    871  1.1.1.4  christos 	    YYRHSLOC (Rhs, 0).last_column;				\
    872  1.1.1.4  christos 	}								\
    873  1.1.1.4  christos     while (YYID (0))
    874  1.1.1.4  christos #endif
    875  1.1.1.4  christos 
    876      1.1     skrll 
    877  1.1.1.4  christos /* YY_LOCATION_PRINT -- Print the location on the stream.
    878  1.1.1.4  christos    This macro was not mandated originally: define only if we know
    879  1.1.1.4  christos    we won't break user code: when these are the locations we know.  */
    880      1.1     skrll 
    881  1.1.1.4  christos #ifndef YY_LOCATION_PRINT
    882  1.1.1.4  christos # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
    883  1.1.1.4  christos #  define YY_LOCATION_PRINT(File, Loc)			\
    884  1.1.1.4  christos      fprintf (File, "%d.%d-%d.%d",			\
    885  1.1.1.4  christos 	      (Loc).first_line, (Loc).first_column,	\
    886  1.1.1.4  christos 	      (Loc).last_line,  (Loc).last_column)
    887  1.1.1.4  christos # else
    888  1.1.1.4  christos #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
    889  1.1.1.4  christos # endif
    890  1.1.1.4  christos #endif
    891  1.1.1.4  christos 
    892  1.1.1.4  christos 
    893  1.1.1.4  christos /* YYLEX -- calling `yylex' with the right arguments.  */
    894  1.1.1.4  christos 
    895  1.1.1.4  christos #ifdef YYLEX_PARAM
    896  1.1.1.4  christos # define YYLEX yylex (YYLEX_PARAM)
    897  1.1.1.4  christos #else
    898  1.1.1.4  christos # define YYLEX yylex ()
    899  1.1.1.4  christos #endif
    900      1.1     skrll 
    901      1.1     skrll /* Enable debugging if requested.  */
    902      1.1     skrll #if YYDEBUG
    903      1.1     skrll 
    904      1.1     skrll # ifndef YYFPRINTF
    905      1.1     skrll #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
    906      1.1     skrll #  define YYFPRINTF fprintf
    907      1.1     skrll # endif
    908      1.1     skrll 
    909  1.1.1.4  christos # define YYDPRINTF(Args)			\
    910  1.1.1.4  christos do {						\
    911  1.1.1.4  christos   if (yydebug)					\
    912  1.1.1.4  christos     YYFPRINTF Args;				\
    913  1.1.1.4  christos } while (YYID (0))
    914  1.1.1.4  christos 
    915  1.1.1.4  christos # define YY_SYMBOL_PRINT(Title, Type, Value, Location)			  \
    916  1.1.1.4  christos do {									  \
    917  1.1.1.4  christos   if (yydebug)								  \
    918  1.1.1.4  christos     {									  \
    919  1.1.1.4  christos       YYFPRINTF (stderr, "%s ", Title);					  \
    920  1.1.1.4  christos       yy_symbol_print (stderr,						  \
    921  1.1.1.4  christos 		  Type, Value); \
    922  1.1.1.4  christos       YYFPRINTF (stderr, "\n");						  \
    923  1.1.1.4  christos     }									  \
    924  1.1.1.4  christos } while (YYID (0))
    925  1.1.1.2  christos 
    926  1.1.1.3  christos 
    927  1.1.1.4  christos /*--------------------------------.
    928  1.1.1.4  christos | Print this symbol on YYOUTPUT.  |
    929  1.1.1.4  christos `--------------------------------*/
    930  1.1.1.3  christos 
    931  1.1.1.4  christos /*ARGSUSED*/
    932  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
    933  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    934  1.1.1.2  christos static void
    935  1.1.1.2  christos yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    936  1.1.1.4  christos #else
    937  1.1.1.4  christos static void
    938  1.1.1.4  christos yy_symbol_value_print (yyoutput, yytype, yyvaluep)
    939  1.1.1.4  christos     FILE *yyoutput;
    940  1.1.1.4  christos     int yytype;
    941  1.1.1.4  christos     YYSTYPE const * const yyvaluep;
    942  1.1.1.4  christos #endif
    943  1.1.1.2  christos {
    944  1.1.1.2  christos   if (!yyvaluep)
    945  1.1.1.2  christos     return;
    946  1.1.1.2  christos # ifdef YYPRINT
    947  1.1.1.2  christos   if (yytype < YYNTOKENS)
    948  1.1.1.2  christos     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
    949  1.1.1.4  christos # else
    950  1.1.1.4  christos   YYUSE (yyoutput);
    951  1.1.1.2  christos # endif
    952  1.1.1.4  christos   switch (yytype)
    953  1.1.1.4  christos     {
    954  1.1.1.4  christos       default:
    955  1.1.1.4  christos 	break;
    956  1.1.1.4  christos     }
    957  1.1.1.2  christos }
    958  1.1.1.2  christos 
    959  1.1.1.2  christos 
    960  1.1.1.2  christos /*--------------------------------.
    961  1.1.1.2  christos | Print this symbol on YYOUTPUT.  |
    962  1.1.1.2  christos `--------------------------------*/
    963  1.1.1.2  christos 
    964  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
    965  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    966  1.1.1.2  christos static void
    967  1.1.1.2  christos yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
    968  1.1.1.4  christos #else
    969  1.1.1.4  christos static void
    970  1.1.1.4  christos yy_symbol_print (yyoutput, yytype, yyvaluep)
    971  1.1.1.4  christos     FILE *yyoutput;
    972  1.1.1.4  christos     int yytype;
    973  1.1.1.4  christos     YYSTYPE const * const yyvaluep;
    974  1.1.1.4  christos #endif
    975  1.1.1.2  christos {
    976  1.1.1.4  christos   if (yytype < YYNTOKENS)
    977  1.1.1.4  christos     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
    978  1.1.1.4  christos   else
    979  1.1.1.4  christos     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
    980  1.1.1.2  christos 
    981  1.1.1.2  christos   yy_symbol_value_print (yyoutput, yytype, yyvaluep);
    982  1.1.1.2  christos   YYFPRINTF (yyoutput, ")");
    983  1.1.1.2  christos }
    984      1.1     skrll 
    985      1.1     skrll /*------------------------------------------------------------------.
    986      1.1     skrll | yy_stack_print -- Print the state stack from its BOTTOM up to its |
    987      1.1     skrll | TOP (included).                                                   |
    988      1.1     skrll `------------------------------------------------------------------*/
    989      1.1     skrll 
    990  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
    991  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
    992  1.1.1.4  christos static void
    993  1.1.1.4  christos yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
    994  1.1.1.4  christos #else
    995      1.1     skrll static void
    996  1.1.1.4  christos yy_stack_print (bottom, top)
    997  1.1.1.4  christos     yytype_int16 *bottom;
    998  1.1.1.4  christos     yytype_int16 *top;
    999  1.1.1.4  christos #endif
   1000      1.1     skrll {
   1001      1.1     skrll   YYFPRINTF (stderr, "Stack now");
   1002  1.1.1.4  christos   for (; bottom <= top; ++bottom)
   1003  1.1.1.4  christos     YYFPRINTF (stderr, " %d", *bottom);
   1004      1.1     skrll   YYFPRINTF (stderr, "\n");
   1005      1.1     skrll }
   1006      1.1     skrll 
   1007  1.1.1.4  christos # define YY_STACK_PRINT(Bottom, Top)				\
   1008  1.1.1.4  christos do {								\
   1009  1.1.1.4  christos   if (yydebug)							\
   1010  1.1.1.4  christos     yy_stack_print ((Bottom), (Top));				\
   1011  1.1.1.4  christos } while (YYID (0))
   1012      1.1     skrll 
   1013      1.1     skrll 
   1014      1.1     skrll /*------------------------------------------------.
   1015      1.1     skrll | Report that the YYRULE is going to be reduced.  |
   1016      1.1     skrll `------------------------------------------------*/
   1017      1.1     skrll 
   1018  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
   1019  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
   1020      1.1     skrll static void
   1021  1.1.1.4  christos yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
   1022  1.1.1.4  christos #else
   1023  1.1.1.4  christos static void
   1024  1.1.1.4  christos yy_reduce_print (yyvsp, yyrule)
   1025  1.1.1.4  christos     YYSTYPE *yyvsp;
   1026  1.1.1.4  christos     int yyrule;
   1027  1.1.1.4  christos #endif
   1028      1.1     skrll {
   1029  1.1.1.2  christos   int yynrhs = yyr2[yyrule];
   1030      1.1     skrll   int yyi;
   1031  1.1.1.4  christos   unsigned long int yylno = yyrline[yyrule];
   1032  1.1.1.2  christos   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
   1033  1.1.1.4  christos 	     yyrule - 1, yylno);
   1034  1.1.1.2  christos   /* The symbols being reduced.  */
   1035  1.1.1.2  christos   for (yyi = 0; yyi < yynrhs; yyi++)
   1036  1.1.1.2  christos     {
   1037  1.1.1.4  christos       fprintf (stderr, "   $%d = ", yyi + 1);
   1038  1.1.1.4  christos       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
   1039  1.1.1.4  christos 		       &(yyvsp[(yyi + 1) - (yynrhs)])
   1040  1.1.1.4  christos 		       		       );
   1041  1.1.1.4  christos       fprintf (stderr, "\n");
   1042  1.1.1.2  christos     }
   1043      1.1     skrll }
   1044      1.1     skrll 
   1045  1.1.1.4  christos # define YY_REDUCE_PRINT(Rule)		\
   1046  1.1.1.4  christos do {					\
   1047  1.1.1.4  christos   if (yydebug)				\
   1048  1.1.1.4  christos     yy_reduce_print (yyvsp, Rule); \
   1049  1.1.1.4  christos } while (YYID (0))
   1050      1.1     skrll 
   1051      1.1     skrll /* Nonzero means print parse trace.  It is left uninitialized so that
   1052      1.1     skrll    multiple parsers can coexist.  */
   1053      1.1     skrll int yydebug;
   1054      1.1     skrll #else /* !YYDEBUG */
   1055      1.1     skrll # define YYDPRINTF(Args)
   1056      1.1     skrll # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
   1057      1.1     skrll # define YY_STACK_PRINT(Bottom, Top)
   1058      1.1     skrll # define YY_REDUCE_PRINT(Rule)
   1059      1.1     skrll #endif /* !YYDEBUG */
   1060      1.1     skrll 
   1061      1.1     skrll 
   1062      1.1     skrll /* YYINITDEPTH -- initial size of the parser's stacks.  */
   1063  1.1.1.4  christos #ifndef	YYINITDEPTH
   1064      1.1     skrll # define YYINITDEPTH 200
   1065      1.1     skrll #endif
   1066      1.1     skrll 
   1067      1.1     skrll /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
   1068      1.1     skrll    if the built-in stack extension method is used).
   1069      1.1     skrll 
   1070      1.1     skrll    Do not make this value too large; the results are undefined if
   1071      1.1     skrll    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
   1072      1.1     skrll    evaluated with infinite-precision integer arithmetic.  */
   1073      1.1     skrll 
   1074      1.1     skrll #ifndef YYMAXDEPTH
   1075      1.1     skrll # define YYMAXDEPTH 10000
   1076      1.1     skrll #endif
   1077      1.1     skrll 
   1078  1.1.1.4  christos 
   1079      1.1     skrll 
   1081      1.1     skrll #if YYERROR_VERBOSE
   1082      1.1     skrll 
   1083  1.1.1.2  christos # ifndef yystrlen
   1084      1.1     skrll #  if defined __GLIBC__ && defined _STRING_H
   1085      1.1     skrll #   define yystrlen strlen
   1086      1.1     skrll #  else
   1087  1.1.1.4  christos /* Return the length of YYSTR.  */
   1088  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
   1089      1.1     skrll      || defined __cplusplus || defined _MSC_VER)
   1090      1.1     skrll static YYSIZE_T
   1091  1.1.1.4  christos yystrlen (const char *yystr)
   1092  1.1.1.4  christos #else
   1093  1.1.1.4  christos static YYSIZE_T
   1094  1.1.1.4  christos yystrlen (yystr)
   1095  1.1.1.4  christos     const char *yystr;
   1096      1.1     skrll #endif
   1097  1.1.1.2  christos {
   1098  1.1.1.2  christos   YYSIZE_T yylen;
   1099      1.1     skrll   for (yylen = 0; yystr[yylen]; yylen++)
   1100  1.1.1.2  christos     continue;
   1101      1.1     skrll   return yylen;
   1102      1.1     skrll }
   1103      1.1     skrll #  endif
   1104      1.1     skrll # endif
   1105      1.1     skrll 
   1106  1.1.1.2  christos # ifndef yystpcpy
   1107      1.1     skrll #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
   1108      1.1     skrll #   define yystpcpy stpcpy
   1109      1.1     skrll #  else
   1110      1.1     skrll /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
   1111  1.1.1.4  christos    YYDEST.  */
   1112  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
   1113      1.1     skrll      || defined __cplusplus || defined _MSC_VER)
   1114      1.1     skrll static char *
   1115  1.1.1.4  christos yystpcpy (char *yydest, const char *yysrc)
   1116  1.1.1.4  christos #else
   1117  1.1.1.4  christos static char *
   1118  1.1.1.4  christos yystpcpy (yydest, yysrc)
   1119  1.1.1.4  christos     char *yydest;
   1120  1.1.1.4  christos     const char *yysrc;
   1121      1.1     skrll #endif
   1122      1.1     skrll {
   1123      1.1     skrll   char *yyd = yydest;
   1124      1.1     skrll   const char *yys = yysrc;
   1125      1.1     skrll 
   1126      1.1     skrll   while ((*yyd++ = *yys++) != '\0')
   1127      1.1     skrll     continue;
   1128      1.1     skrll 
   1129      1.1     skrll   return yyd - 1;
   1130      1.1     skrll }
   1131      1.1     skrll #  endif
   1132      1.1     skrll # endif
   1133      1.1     skrll 
   1134      1.1     skrll # ifndef yytnamerr
   1135      1.1     skrll /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
   1136      1.1     skrll    quotes and backslashes, so that it's suitable for yyerror.  The
   1137      1.1     skrll    heuristic is that double-quoting is unnecessary unless the string
   1138      1.1     skrll    contains an apostrophe, a comma, or backslash (other than
   1139      1.1     skrll    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
   1140      1.1     skrll    null, do not copy; instead, return the length of what the result
   1141      1.1     skrll    would have been.  */
   1142      1.1     skrll static YYSIZE_T
   1143      1.1     skrll yytnamerr (char *yyres, const char *yystr)
   1144      1.1     skrll {
   1145      1.1     skrll   if (*yystr == '"')
   1146  1.1.1.2  christos     {
   1147      1.1     skrll       YYSIZE_T yyn = 0;
   1148      1.1     skrll       char const *yyp = yystr;
   1149      1.1     skrll 
   1150  1.1.1.4  christos       for (;;)
   1151  1.1.1.4  christos 	switch (*++yyp)
   1152  1.1.1.4  christos 	  {
   1153  1.1.1.4  christos 	  case '\'':
   1154  1.1.1.4  christos 	  case ',':
   1155  1.1.1.4  christos 	    goto do_not_strip_quotes;
   1156  1.1.1.4  christos 
   1157  1.1.1.4  christos 	  case '\\':
   1158  1.1.1.4  christos 	    if (*++yyp != '\\')
   1159  1.1.1.4  christos 	      goto do_not_strip_quotes;
   1160  1.1.1.4  christos 	    /* Fall through.  */
   1161  1.1.1.4  christos 	  default:
   1162  1.1.1.4  christos 	    if (yyres)
   1163  1.1.1.4  christos 	      yyres[yyn] = *yyp;
   1164  1.1.1.4  christos 	    yyn++;
   1165  1.1.1.4  christos 	    break;
   1166  1.1.1.4  christos 
   1167  1.1.1.4  christos 	  case '"':
   1168  1.1.1.4  christos 	    if (yyres)
   1169  1.1.1.4  christos 	      yyres[yyn] = '\0';
   1170  1.1.1.4  christos 	    return yyn;
   1171      1.1     skrll 	  }
   1172      1.1     skrll     do_not_strip_quotes: ;
   1173      1.1     skrll     }
   1174      1.1     skrll 
   1175      1.1     skrll   if (! yyres)
   1176      1.1     skrll     return yystrlen (yystr);
   1177      1.1     skrll 
   1178      1.1     skrll   return yystpcpy (yyres, yystr) - yyres;
   1179      1.1     skrll }
   1180      1.1     skrll # endif
   1181  1.1.1.4  christos 
   1182  1.1.1.4  christos /* Copy into YYRESULT an error message about the unexpected token
   1183  1.1.1.4  christos    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
   1184  1.1.1.4  christos    including the terminating null byte.  If YYRESULT is null, do not
   1185  1.1.1.4  christos    copy anything; just return the number of bytes that would be
   1186  1.1.1.4  christos    copied.  As a special case, return 0 if an ordinary "syntax error"
   1187  1.1.1.4  christos    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
   1188  1.1.1.4  christos    size calculation.  */
   1189  1.1.1.4  christos static YYSIZE_T
   1190  1.1.1.2  christos yysyntax_error (char *yyresult, int yystate, int yychar)
   1191  1.1.1.4  christos {
   1192      1.1     skrll   int yyn = yypact[yystate];
   1193  1.1.1.4  christos 
   1194  1.1.1.4  christos   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
   1195  1.1.1.4  christos     return 0;
   1196  1.1.1.2  christos   else
   1197  1.1.1.4  christos     {
   1198  1.1.1.4  christos       int yytype = YYTRANSLATE (yychar);
   1199  1.1.1.4  christos       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
   1200  1.1.1.4  christos       YYSIZE_T yysize = yysize0;
   1201  1.1.1.4  christos       YYSIZE_T yysize1;
   1202  1.1.1.4  christos       int yysize_overflow = 0;
   1203  1.1.1.4  christos       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   1204  1.1.1.4  christos       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   1205  1.1.1.4  christos       int yyx;
   1206  1.1.1.4  christos 
   1207  1.1.1.4  christos # if 0
   1208  1.1.1.4  christos       /* This is so xgettext sees the translatable formats that are
   1209  1.1.1.4  christos 	 constructed on the fly.  */
   1210  1.1.1.4  christos       YY_("syntax error, unexpected %s");
   1211  1.1.1.4  christos       YY_("syntax error, unexpected %s, expecting %s");
   1212  1.1.1.4  christos       YY_("syntax error, unexpected %s, expecting %s or %s");
   1213  1.1.1.4  christos       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
   1214  1.1.1.4  christos       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
   1215  1.1.1.4  christos # endif
   1216  1.1.1.4  christos       char *yyfmt;
   1217  1.1.1.4  christos       char const *yyf;
   1218  1.1.1.4  christos       static char const yyunexpected[] = "syntax error, unexpected %s";
   1219  1.1.1.4  christos       static char const yyexpecting[] = ", expecting %s";
   1220  1.1.1.4  christos       static char const yyor[] = " or %s";
   1221  1.1.1.4  christos       char yyformat[sizeof yyunexpected
   1222  1.1.1.4  christos 		    + sizeof yyexpecting - 1
   1223  1.1.1.4  christos 		    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
   1224  1.1.1.4  christos 		       * (sizeof yyor - 1))];
   1225  1.1.1.4  christos       char const *yyprefix = yyexpecting;
   1226  1.1.1.4  christos 
   1227  1.1.1.4  christos       /* Start YYX at -YYN if negative to avoid negative indexes in
   1228  1.1.1.4  christos 	 YYCHECK.  */
   1229  1.1.1.4  christos       int yyxbegin = yyn < 0 ? -yyn : 0;
   1230  1.1.1.4  christos 
   1231  1.1.1.4  christos       /* Stay within bounds of both yycheck and yytname.  */
   1232  1.1.1.4  christos       int yychecklim = YYLAST - yyn + 1;
   1233  1.1.1.4  christos       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
   1234  1.1.1.4  christos       int yycount = 1;
   1235  1.1.1.4  christos 
   1236  1.1.1.4  christos       yyarg[0] = yytname[yytype];
   1237  1.1.1.4  christos       yyfmt = yystpcpy (yyformat, yyunexpected);
   1238  1.1.1.4  christos 
   1239  1.1.1.4  christos       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
   1240  1.1.1.4  christos 	if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
   1241  1.1.1.4  christos 	  {
   1242  1.1.1.4  christos 	    if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
   1243  1.1.1.4  christos 	      {
   1244  1.1.1.4  christos 		yycount = 1;
   1245  1.1.1.4  christos 		yysize = yysize0;
   1246  1.1.1.4  christos 		yyformat[sizeof yyunexpected - 1] = '\0';
   1247  1.1.1.4  christos 		break;
   1248  1.1.1.4  christos 	      }
   1249  1.1.1.4  christos 	    yyarg[yycount++] = yytname[yyx];
   1250  1.1.1.4  christos 	    yysize1 = yysize + yytnamerr (0, yytname[yyx]);
   1251  1.1.1.4  christos 	    yysize_overflow |= (yysize1 < yysize);
   1252  1.1.1.4  christos 	    yysize = yysize1;
   1253  1.1.1.4  christos 	    yyfmt = yystpcpy (yyfmt, yyprefix);
   1254  1.1.1.4  christos 	    yyprefix = yyor;
   1255      1.1     skrll 	  }
   1256  1.1.1.4  christos 
   1257  1.1.1.4  christos       yyf = YY_(yyformat);
   1258  1.1.1.4  christos       yysize1 = yysize + yystrlen (yyf);
   1259  1.1.1.4  christos       yysize_overflow |= (yysize1 < yysize);
   1260  1.1.1.4  christos       yysize = yysize1;
   1261  1.1.1.4  christos 
   1262  1.1.1.4  christos       if (yysize_overflow)
   1263  1.1.1.4  christos 	return YYSIZE_MAXIMUM;
   1264  1.1.1.4  christos 
   1265  1.1.1.4  christos       if (yyresult)
   1266  1.1.1.4  christos 	{
   1267  1.1.1.4  christos 	  /* Avoid sprintf, as that infringes on the user's name space.
   1268  1.1.1.4  christos 	     Don't have undefined behavior even if the translation
   1269  1.1.1.4  christos 	     produced a string with the wrong number of "%s"s.  */
   1270  1.1.1.4  christos 	  char *yyp = yyresult;
   1271  1.1.1.4  christos 	  int yyi = 0;
   1272  1.1.1.4  christos 	  while ((*yyp = *yyf) != '\0')
   1273  1.1.1.4  christos 	    {
   1274  1.1.1.4  christos 	      if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
   1275  1.1.1.4  christos 		{
   1276  1.1.1.4  christos 		  yyp += yytnamerr (yyp, yyarg[yyi++]);
   1277  1.1.1.4  christos 		  yyf += 2;
   1278  1.1.1.4  christos 		}
   1279  1.1.1.4  christos 	      else
   1280  1.1.1.4  christos 		{
   1281  1.1.1.4  christos 		  yyp++;
   1282  1.1.1.4  christos 		  yyf++;
   1283  1.1.1.4  christos 		}
   1284  1.1.1.4  christos 	    }
   1285  1.1.1.4  christos 	}
   1286      1.1     skrll       return yysize;
   1287      1.1     skrll     }
   1288  1.1.1.2  christos }
   1289  1.1.1.4  christos #endif /* YYERROR_VERBOSE */
   1290      1.1     skrll 
   1291      1.1     skrll 
   1293      1.1     skrll /*-----------------------------------------------.
   1294      1.1     skrll | Release the memory associated to this symbol.  |
   1295  1.1.1.4  christos `-----------------------------------------------*/
   1296  1.1.1.4  christos 
   1297  1.1.1.4  christos /*ARGSUSED*/
   1298      1.1     skrll #if (defined __STDC__ || defined __C99__FUNC__ \
   1299      1.1     skrll      || defined __cplusplus || defined _MSC_VER)
   1300  1.1.1.4  christos static void
   1301  1.1.1.4  christos yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
   1302  1.1.1.4  christos #else
   1303  1.1.1.4  christos static void
   1304  1.1.1.4  christos yydestruct (yymsg, yytype, yyvaluep)
   1305  1.1.1.4  christos     const char *yymsg;
   1306  1.1.1.4  christos     int yytype;
   1307      1.1     skrll     YYSTYPE *yyvaluep;
   1308  1.1.1.2  christos #endif
   1309  1.1.1.4  christos {
   1310      1.1     skrll   YYUSE (yyvaluep);
   1311      1.1     skrll 
   1312      1.1     skrll   if (!yymsg)
   1313      1.1     skrll     yymsg = "Deleting";
   1314  1.1.1.4  christos   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
   1315  1.1.1.4  christos 
   1316  1.1.1.4  christos   switch (yytype)
   1317  1.1.1.4  christos     {
   1318  1.1.1.4  christos 
   1319  1.1.1.4  christos       default:
   1320      1.1     skrll 	break;
   1321  1.1.1.4  christos     }
   1322      1.1     skrll }
   1323  1.1.1.4  christos 
   1324      1.1     skrll 
   1326  1.1.1.4  christos /* Prevent warnings from -Wmissing-prototypes.  */
   1327  1.1.1.4  christos 
   1328  1.1.1.4  christos #ifdef YYPARSE_PARAM
   1329  1.1.1.4  christos #if defined __STDC__ || defined __cplusplus
   1330  1.1.1.4  christos int yyparse (void *YYPARSE_PARAM);
   1331  1.1.1.4  christos #else
   1332  1.1.1.4  christos int yyparse ();
   1333  1.1.1.4  christos #endif
   1334  1.1.1.4  christos #else /* ! YYPARSE_PARAM */
   1335  1.1.1.4  christos #if defined __STDC__ || defined __cplusplus
   1336  1.1.1.4  christos int yyparse (void);
   1337  1.1.1.4  christos #else
   1338      1.1     skrll int yyparse ();
   1339      1.1     skrll #endif
   1340  1.1.1.4  christos #endif /* ! YYPARSE_PARAM */
   1341  1.1.1.4  christos 
   1342      1.1     skrll 
   1343      1.1     skrll 
   1344  1.1.1.4  christos /* The look-ahead symbol.  */
   1345      1.1     skrll int yychar;
   1346  1.1.1.4  christos 
   1347      1.1     skrll /* The semantic value of the look-ahead symbol.  */
   1348      1.1     skrll YYSTYPE yylval;
   1349      1.1     skrll 
   1350      1.1     skrll /* Number of syntax errors so far.  */
   1351  1.1.1.4  christos int yynerrs;
   1352      1.1     skrll 
   1353      1.1     skrll 
   1354      1.1     skrll 
   1355      1.1     skrll /*----------.
   1356  1.1.1.4  christos | yyparse.  |
   1357  1.1.1.4  christos `----------*/
   1358  1.1.1.4  christos 
   1359  1.1.1.4  christos #ifdef YYPARSE_PARAM
   1360  1.1.1.4  christos #if (defined __STDC__ || defined __C99__FUNC__ \
   1361  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
   1362  1.1.1.4  christos int
   1363  1.1.1.4  christos yyparse (void *YYPARSE_PARAM)
   1364  1.1.1.4  christos #else
   1365  1.1.1.4  christos int
   1366  1.1.1.4  christos yyparse (YYPARSE_PARAM)
   1367  1.1.1.4  christos     void *YYPARSE_PARAM;
   1368  1.1.1.4  christos #endif
   1369      1.1     skrll #else /* ! YYPARSE_PARAM */
   1370      1.1     skrll #if (defined __STDC__ || defined __C99__FUNC__ \
   1371  1.1.1.4  christos      || defined __cplusplus || defined _MSC_VER)
   1372  1.1.1.4  christos int
   1373  1.1.1.4  christos yyparse (void)
   1374  1.1.1.3  christos #else
   1375  1.1.1.4  christos int
   1376  1.1.1.4  christos yyparse ()
   1377  1.1.1.4  christos 
   1378  1.1.1.4  christos #endif
   1379  1.1.1.4  christos #endif
   1380      1.1     skrll {
   1381      1.1     skrll 
   1382  1.1.1.4  christos   int yystate;
   1383  1.1.1.4  christos   int yyn;
   1384  1.1.1.4  christos   int yyresult;
   1385      1.1     skrll   /* Number of tokens to shift before error messages enabled.  */
   1386  1.1.1.2  christos   int yyerrstatus;
   1387  1.1.1.2  christos   /* Look-ahead token as an internal (translated) token number.  */
   1388  1.1.1.2  christos   int yytoken = 0;
   1389  1.1.1.2  christos #if YYERROR_VERBOSE
   1390  1.1.1.2  christos   /* Buffer for error messages, and its allocated size.  */
   1391  1.1.1.2  christos   char yymsgbuf[128];
   1392      1.1     skrll   char *yymsg = yymsgbuf;
   1393  1.1.1.4  christos   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
   1394  1.1.1.4  christos #endif
   1395  1.1.1.4  christos 
   1396  1.1.1.4  christos   /* Three stacks and their tools:
   1397  1.1.1.4  christos      `yyss': related to states,
   1398  1.1.1.4  christos      `yyvs': related to semantic values,
   1399  1.1.1.4  christos      `yyls': related to locations.
   1400  1.1.1.4  christos 
   1401  1.1.1.4  christos      Refer to the stacks thru separate pointers, to allow yyoverflow
   1402  1.1.1.4  christos      to reallocate them elsewhere.  */
   1403  1.1.1.4  christos 
   1404  1.1.1.4  christos   /* The state stack.  */
   1405  1.1.1.4  christos   yytype_int16 yyssa[YYINITDEPTH];
   1406  1.1.1.4  christos   yytype_int16 *yyss = yyssa;
   1407  1.1.1.4  christos   yytype_int16 *yyssp;
   1408  1.1.1.4  christos 
   1409  1.1.1.4  christos   /* The semantic value stack.  */
   1410  1.1.1.4  christos   YYSTYPE yyvsa[YYINITDEPTH];
   1411  1.1.1.4  christos   YYSTYPE *yyvs = yyvsa;
   1412  1.1.1.4  christos   YYSTYPE *yyvsp;
   1413  1.1.1.2  christos 
   1414      1.1     skrll 
   1415  1.1.1.4  christos 
   1416  1.1.1.4  christos #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
   1417  1.1.1.4  christos 
   1418  1.1.1.4  christos   YYSIZE_T yystacksize = YYINITDEPTH;
   1419  1.1.1.4  christos 
   1420  1.1.1.4  christos   /* The variables used to return semantic value and location from the
   1421  1.1.1.4  christos      action routines.  */
   1422  1.1.1.2  christos   YYSTYPE yyval;
   1423  1.1.1.2  christos 
   1424  1.1.1.2  christos 
   1425      1.1     skrll   /* The number of symbols on the RHS of the reduced rule.
   1426      1.1     skrll      Keep to zero when no symbol should be popped.  */
   1427      1.1     skrll   int yylen = 0;
   1428      1.1     skrll 
   1429      1.1     skrll   YYDPRINTF ((stderr, "Starting parse\n"));
   1430      1.1     skrll 
   1431  1.1.1.4  christos   yystate = 0;
   1432  1.1.1.4  christos   yyerrstatus = 0;
   1433  1.1.1.4  christos   yynerrs = 0;
   1434  1.1.1.4  christos   yychar = YYEMPTY;		/* Cause a token to be read.  */
   1435  1.1.1.4  christos 
   1436  1.1.1.4  christos   /* Initialize stack pointers.
   1437  1.1.1.4  christos      Waste one element of value and location stack
   1438  1.1.1.4  christos      so that they stay on the same level as the state stack.
   1439  1.1.1.4  christos      The wasted elements are never initialized.  */
   1440  1.1.1.4  christos 
   1441      1.1     skrll   yyssp = yyss;
   1442      1.1     skrll   yyvsp = yyvs;
   1443      1.1     skrll 
   1444      1.1     skrll   goto yysetstate;
   1445      1.1     skrll 
   1446      1.1     skrll /*------------------------------------------------------------.
   1447      1.1     skrll | yynewstate -- Push a new state, which is found in yystate.  |
   1448  1.1.1.2  christos `------------------------------------------------------------*/
   1449      1.1     skrll  yynewstate:
   1450      1.1     skrll   /* In all cases, when you get here, the value and location stacks
   1451      1.1     skrll      have just been pushed.  So pushing a state here evens the stacks.  */
   1452      1.1     skrll   yyssp++;
   1453      1.1     skrll 
   1454      1.1     skrll  yysetstate:
   1455      1.1     skrll   *yyssp = yystate;
   1456      1.1     skrll 
   1457      1.1     skrll   if (yyss + yystacksize - 1 <= yyssp)
   1458      1.1     skrll     {
   1459      1.1     skrll       /* Get the current used size of the three stacks, in elements.  */
   1460      1.1     skrll       YYSIZE_T yysize = yyssp - yyss + 1;
   1461  1.1.1.4  christos 
   1462  1.1.1.4  christos #ifdef yyoverflow
   1463  1.1.1.4  christos       {
   1464  1.1.1.4  christos 	/* Give user a chance to reallocate the stack.  Use copies of
   1465  1.1.1.4  christos 	   these so that the &'s don't force the real ones into
   1466  1.1.1.4  christos 	   memory.  */
   1467  1.1.1.4  christos 	YYSTYPE *yyvs1 = yyvs;
   1468  1.1.1.4  christos 	yytype_int16 *yyss1 = yyss;
   1469  1.1.1.4  christos 
   1470  1.1.1.4  christos 
   1471  1.1.1.4  christos 	/* Each stack pointer address is followed by the size of the
   1472  1.1.1.4  christos 	   data in use in that stack, in bytes.  This used to be a
   1473  1.1.1.4  christos 	   conditional around just the two extra args, but that might
   1474  1.1.1.4  christos 	   be undefined if yyoverflow is a macro.  */
   1475  1.1.1.4  christos 	yyoverflow (YY_("memory exhausted"),
   1476  1.1.1.4  christos 		    &yyss1, yysize * sizeof (*yyssp),
   1477      1.1     skrll 		    &yyvs1, yysize * sizeof (*yyvsp),
   1478  1.1.1.4  christos 
   1479  1.1.1.4  christos 		    &yystacksize);
   1480      1.1     skrll 
   1481      1.1     skrll 	yyss = yyss1;
   1482      1.1     skrll 	yyvs = yyvs1;
   1483      1.1     skrll       }
   1484      1.1     skrll #else /* no yyoverflow */
   1485      1.1     skrll # ifndef YYSTACK_RELOCATE
   1486      1.1     skrll       goto yyexhaustedlab;
   1487  1.1.1.4  christos # else
   1488      1.1     skrll       /* Extend the stack our own way.  */
   1489      1.1     skrll       if (YYMAXDEPTH <= yystacksize)
   1490  1.1.1.4  christos 	goto yyexhaustedlab;
   1491      1.1     skrll       yystacksize *= 2;
   1492      1.1     skrll       if (YYMAXDEPTH < yystacksize)
   1493  1.1.1.4  christos 	yystacksize = YYMAXDEPTH;
   1494  1.1.1.4  christos 
   1495  1.1.1.4  christos       {
   1496  1.1.1.4  christos 	yytype_int16 *yyss1 = yyss;
   1497  1.1.1.4  christos 	union yyalloc *yyptr =
   1498  1.1.1.4  christos 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
   1499  1.1.1.4  christos 	if (! yyptr)
   1500  1.1.1.4  christos 	  goto yyexhaustedlab;
   1501      1.1     skrll 	YYSTACK_RELOCATE (yyss);
   1502  1.1.1.4  christos 	YYSTACK_RELOCATE (yyvs);
   1503  1.1.1.4  christos 
   1504      1.1     skrll #  undef YYSTACK_RELOCATE
   1505      1.1     skrll 	if (yyss1 != yyssa)
   1506      1.1     skrll 	  YYSTACK_FREE (yyss1);
   1507      1.1     skrll       }
   1508      1.1     skrll # endif
   1509      1.1     skrll #endif /* no yyoverflow */
   1510      1.1     skrll 
   1511  1.1.1.4  christos       yyssp = yyss + yysize - 1;
   1512      1.1     skrll       yyvsp = yyvs + yysize - 1;
   1513  1.1.1.4  christos 
   1514      1.1     skrll 
   1515      1.1     skrll       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
   1516  1.1.1.4  christos 		  (unsigned long int) yystacksize));
   1517      1.1     skrll 
   1518      1.1     skrll       if (yyss + yystacksize - 1 <= yyssp)
   1519      1.1     skrll 	YYABORT;
   1520      1.1     skrll     }
   1521      1.1     skrll 
   1522      1.1     skrll   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
   1523      1.1     skrll 
   1524      1.1     skrll   goto yybackup;
   1525      1.1     skrll 
   1526      1.1     skrll /*-----------.
   1527      1.1     skrll | yybackup.  |
   1528  1.1.1.2  christos `-----------*/
   1529  1.1.1.4  christos yybackup:
   1530      1.1     skrll 
   1531  1.1.1.4  christos   /* Do appropriate processing given the current state.  Read a
   1532      1.1     skrll      look-ahead token if we need one and don't already have one.  */
   1533  1.1.1.4  christos 
   1534      1.1     skrll   /* First try to decide what to do without reference to look-ahead token.  */
   1535      1.1     skrll   yyn = yypact[yystate];
   1536  1.1.1.4  christos   if (yyn == YYPACT_NINF)
   1537      1.1     skrll     goto yydefault;
   1538  1.1.1.4  christos 
   1539      1.1     skrll   /* Not known => get a look-ahead token if don't already have one.  */
   1540      1.1     skrll 
   1541      1.1     skrll   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
   1542  1.1.1.4  christos   if (yychar == YYEMPTY)
   1543      1.1     skrll     {
   1544      1.1     skrll       YYDPRINTF ((stderr, "Reading a token: "));
   1545      1.1     skrll       yychar = YYLEX;
   1546      1.1     skrll     }
   1547      1.1     skrll 
   1548      1.1     skrll   if (yychar <= YYEOF)
   1549      1.1     skrll     {
   1550      1.1     skrll       yychar = yytoken = YYEOF;
   1551      1.1     skrll       YYDPRINTF ((stderr, "Now at end of input.\n"));
   1552      1.1     skrll     }
   1553      1.1     skrll   else
   1554      1.1     skrll     {
   1555      1.1     skrll       yytoken = YYTRANSLATE (yychar);
   1556      1.1     skrll       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
   1557      1.1     skrll     }
   1558      1.1     skrll 
   1559      1.1     skrll   /* If the proper action on seeing token YYTOKEN is to reduce or to
   1560      1.1     skrll      detect an error, take that action.  */
   1561      1.1     skrll   yyn += yytoken;
   1562      1.1     skrll   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
   1563      1.1     skrll     goto yydefault;
   1564  1.1.1.4  christos   yyn = yytable[yyn];
   1565  1.1.1.4  christos   if (yyn <= 0)
   1566      1.1     skrll     {
   1567      1.1     skrll       if (yyn == 0 || yyn == YYTABLE_NINF)
   1568      1.1     skrll 	goto yyerrlab;
   1569      1.1     skrll       yyn = -yyn;
   1570  1.1.1.4  christos       goto yyreduce;
   1571  1.1.1.4  christos     }
   1572  1.1.1.4  christos 
   1573  1.1.1.2  christos   if (yyn == YYFINAL)
   1574  1.1.1.2  christos     YYACCEPT;
   1575  1.1.1.2  christos 
   1576  1.1.1.2  christos   /* Count tokens shifted since error; after three, turn off error
   1577  1.1.1.2  christos      status.  */
   1578  1.1.1.4  christos   if (yyerrstatus)
   1579      1.1     skrll     yyerrstatus--;
   1580      1.1     skrll 
   1581  1.1.1.4  christos   /* Shift the look-ahead token.  */
   1582  1.1.1.4  christos   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
   1583  1.1.1.4  christos 
   1584      1.1     skrll   /* Discard the shifted token unless it is eof.  */
   1585  1.1.1.2  christos   if (yychar != YYEOF)
   1586      1.1     skrll     yychar = YYEMPTY;
   1587      1.1     skrll 
   1588      1.1     skrll   yystate = yyn;
   1589      1.1     skrll   *++yyvsp = yylval;
   1590      1.1     skrll 
   1591      1.1     skrll   goto yynewstate;
   1592      1.1     skrll 
   1593      1.1     skrll 
   1594      1.1     skrll /*-----------------------------------------------------------.
   1595      1.1     skrll | yydefault -- do the default action for the current state.  |
   1596      1.1     skrll `-----------------------------------------------------------*/
   1597      1.1     skrll yydefault:
   1598      1.1     skrll   yyn = yydefact[yystate];
   1599      1.1     skrll   if (yyn == 0)
   1600      1.1     skrll     goto yyerrlab;
   1601      1.1     skrll   goto yyreduce;
   1602      1.1     skrll 
   1603      1.1     skrll 
   1604      1.1     skrll /*-----------------------------.
   1605      1.1     skrll | yyreduce -- Do a reduction.  |
   1606      1.1     skrll `-----------------------------*/
   1607      1.1     skrll yyreduce:
   1608      1.1     skrll   /* yyn is the number of a rule to reduce with.  */
   1609  1.1.1.4  christos   yylen = yyr2[yyn];
   1610      1.1     skrll 
   1611      1.1     skrll   /* If YYLEN is nonzero, implement the default value of the action:
   1612      1.1     skrll      `$$ = $1'.
   1613      1.1     skrll 
   1614      1.1     skrll      Otherwise, the following line sets YYVAL to garbage.
   1615      1.1     skrll      This behavior is undocumented and Bison
   1616      1.1     skrll      users should not rely upon it.  Assigning to YYVAL
   1617      1.1     skrll      unconditionally makes the parser a bit smaller, and it avoids a
   1618      1.1     skrll      GCC warning that YYVAL may be used uninitialized.  */
   1619      1.1     skrll   yyval = yyvsp[1-yylen];
   1620      1.1     skrll 
   1621      1.1     skrll 
   1622      1.1     skrll   YY_REDUCE_PRINT (yyn);
   1623  1.1.1.4  christos   switch (yyn)
   1624      1.1     skrll     {
   1625  1.1.1.3  christos         case 5:
   1626  1.1.1.4  christos #line 309 "./itbl-parse.y"
   1627  1.1.1.4  christos     {
   1628      1.1     skrll 	    DBG (("line %d: entry pnum=%d type=%d name=%s value=x%x\n",
   1629      1.1     skrll 	    	    insntbl_line, (yyvsp[(1) - (5)].num), (yyvsp[(2) - (5)].num), (yyvsp[(3) - (5)].str), (yyvsp[(4) - (5)].val)));
   1630      1.1     skrll 	    itbl_add_reg ((yyvsp[(1) - (5)].num), (yyvsp[(2) - (5)].num), (yyvsp[(3) - (5)].str), (yyvsp[(4) - (5)].val));
   1631      1.1     skrll 	  }
   1632  1.1.1.4  christos     break;
   1633      1.1     skrll 
   1634      1.1     skrll   case 6:
   1635  1.1.1.4  christos #line 315 "./itbl-parse.y"
   1636  1.1.1.4  christos     {
   1637  1.1.1.4  christos 	    DBG (("line %d: entry pnum=%d type=INSN name=%s value=x%x",
   1638      1.1     skrll 	    	    insntbl_line, (yyvsp[(1) - (6)].num), (yyvsp[(3) - (6)].str), (yyvsp[(4) - (6)].val)));
   1639      1.1     skrll 	    DBG ((" sbit=%d ebit=%d flags=0x%x\n", sbit, ebit, (yyvsp[(6) - (6)].val)));
   1640      1.1     skrll 	    insn=itbl_add_insn ((yyvsp[(1) - (6)].num), (yyvsp[(3) - (6)].str), (yyvsp[(4) - (6)].val), sbit, ebit, (yyvsp[(6) - (6)].val));
   1641      1.1     skrll 	  }
   1642  1.1.1.4  christos     break;
   1643      1.1     skrll 
   1644      1.1     skrll   case 7:
   1645      1.1     skrll #line 322 "./itbl-parse.y"
   1646      1.1     skrll     {}
   1647  1.1.1.4  christos     break;
   1648      1.1     skrll 
   1649      1.1     skrll   case 13:
   1650  1.1.1.4  christos #line 335 "./itbl-parse.y"
   1651      1.1     skrll     {
   1652      1.1     skrll 	    DBGL2 (("ftype\n"));
   1653      1.1     skrll 	    (yyval.num) = (yyvsp[(1) - (1)].num);
   1654      1.1     skrll 	  }
   1655  1.1.1.4  christos     break;
   1656      1.1     skrll 
   1657      1.1     skrll   case 14:
   1658      1.1     skrll #line 340 "./itbl-parse.y"
   1659      1.1     skrll     {
   1660      1.1     skrll 	    DBGL2 (("addr\n"));
   1661      1.1     skrll 	    (yyval.num) = ADDR;
   1662      1.1     skrll 	  }
   1663  1.1.1.4  christos     break;
   1664      1.1     skrll 
   1665      1.1     skrll   case 15:
   1666      1.1     skrll #line 345 "./itbl-parse.y"
   1667      1.1     skrll     {
   1668      1.1     skrll 	    DBGL2 (("immed\n"));
   1669      1.1     skrll 	    (yyval.num) = IMMED;
   1670      1.1     skrll 	  }
   1671  1.1.1.4  christos     break;
   1672      1.1     skrll 
   1673  1.1.1.3  christos   case 16:
   1674  1.1.1.4  christos #line 353 "./itbl-parse.y"
   1675  1.1.1.4  christos     {
   1676      1.1     skrll 	    DBG (("line %d: field type=%d sbit=%d ebit=%d, flags=0x%x\n",
   1677      1.1     skrll 	    	    insntbl_line, (yyvsp[(1) - (3)].num), sbit, ebit, (yyvsp[(3) - (3)].val)));
   1678      1.1     skrll 	    itbl_add_operand (insn, (yyvsp[(1) - (3)].num), sbit, ebit, (yyvsp[(3) - (3)].val));
   1679      1.1     skrll 	  }
   1680  1.1.1.4  christos     break;
   1681      1.1     skrll 
   1682  1.1.1.4  christos   case 17:
   1683      1.1     skrll #line 362 "./itbl-parse.y"
   1684      1.1     skrll     {
   1685      1.1     skrll 	    (yyval.val) = (yyvsp[(1) - (3)].num) | (yyvsp[(3) - (3)].val);
   1686      1.1     skrll 	  }
   1687  1.1.1.4  christos     break;
   1688      1.1     skrll 
   1689  1.1.1.4  christos   case 18:
   1690      1.1     skrll #line 366 "./itbl-parse.y"
   1691      1.1     skrll     {
   1692      1.1     skrll 	    (yyval.val) = (yyvsp[(2) - (3)].val);
   1693      1.1     skrll 	  }
   1694  1.1.1.4  christos     break;
   1695      1.1     skrll 
   1696  1.1.1.4  christos   case 19:
   1697      1.1     skrll #line 370 "./itbl-parse.y"
   1698      1.1     skrll     {
   1699      1.1     skrll 	    (yyval.val) = (yyvsp[(1) - (1)].num);
   1700      1.1     skrll 	  }
   1701  1.1.1.4  christos     break;
   1702      1.1     skrll 
   1703  1.1.1.4  christos   case 20:
   1704  1.1.1.4  christos #line 377 "./itbl-parse.y"
   1705      1.1     skrll     {
   1706      1.1     skrll 	    DBGL2 (("flags=%d\n", (yyvsp[(2) - (2)].val)));
   1707      1.1     skrll 	    (yyval.val) = (yyvsp[(2) - (2)].val);
   1708      1.1     skrll 	  }
   1709  1.1.1.4  christos     break;
   1710      1.1     skrll 
   1711      1.1     skrll   case 21:
   1712      1.1     skrll #line 382 "./itbl-parse.y"
   1713      1.1     skrll     {
   1714      1.1     skrll 	    (yyval.val) = 0;
   1715      1.1     skrll 	  }
   1716  1.1.1.4  christos     break;
   1717      1.1     skrll 
   1718  1.1.1.4  christos   case 22:
   1719  1.1.1.4  christos #line 389 "./itbl-parse.y"
   1720  1.1.1.4  christos     {
   1721      1.1     skrll 	    DBGL2 (("range %d %d\n", (yyvsp[(2) - (4)].num), (yyvsp[(4) - (4)].num)));
   1722      1.1     skrll 	    sbit = (yyvsp[(2) - (4)].num);
   1723      1.1     skrll 	    ebit = (yyvsp[(4) - (4)].num);
   1724      1.1     skrll 	  }
   1725  1.1.1.4  christos     break;
   1726      1.1     skrll 
   1727      1.1     skrll   case 23:
   1728      1.1     skrll #line 395 "./itbl-parse.y"
   1729      1.1     skrll     {
   1730      1.1     skrll 	    sbit = 31;
   1731      1.1     skrll 	    ebit = 0;
   1732      1.1     skrll 	  }
   1733  1.1.1.4  christos     break;
   1734      1.1     skrll 
   1735  1.1.1.4  christos   case 24:
   1736  1.1.1.4  christos #line 403 "./itbl-parse.y"
   1737      1.1     skrll     {
   1738      1.1     skrll 	    DBGL2 (("pnum=%d\n",(yyvsp[(1) - (1)].num)));
   1739      1.1     skrll 	    (yyval.num) = (yyvsp[(1) - (1)].num);
   1740      1.1     skrll 	  }
   1741  1.1.1.4  christos     break;
   1742      1.1     skrll 
   1743      1.1     skrll   case 25:
   1744      1.1     skrll #line 411 "./itbl-parse.y"
   1745      1.1     skrll     {
   1746      1.1     skrll 	    DBGL2 (("dreg\n"));
   1747      1.1     skrll 	    (yyval.num) = DREG;
   1748      1.1     skrll 	  }
   1749  1.1.1.4  christos     break;
   1750      1.1     skrll 
   1751      1.1     skrll   case 26:
   1752      1.1     skrll #line 416 "./itbl-parse.y"
   1753      1.1     skrll     {
   1754      1.1     skrll 	    DBGL2 (("creg\n"));
   1755      1.1     skrll 	    (yyval.num) = CREG;
   1756      1.1     skrll 	  }
   1757  1.1.1.4  christos     break;
   1758      1.1     skrll 
   1759      1.1     skrll   case 27:
   1760      1.1     skrll #line 421 "./itbl-parse.y"
   1761      1.1     skrll     {
   1762      1.1     skrll 	    DBGL2 (("greg\n"));
   1763      1.1     skrll 	    (yyval.num) = GREG;
   1764      1.1     skrll 	  }
   1765  1.1.1.4  christos     break;
   1766      1.1     skrll 
   1767  1.1.1.4  christos   case 28:
   1768  1.1.1.4  christos #line 429 "./itbl-parse.y"
   1769      1.1     skrll     {
   1770      1.1     skrll 	    DBGL2 (("name=%s\n",(yyvsp[(1) - (1)].str)));
   1771      1.1     skrll 	    (yyval.str) = (yyvsp[(1) - (1)].str);
   1772      1.1     skrll 	  }
   1773  1.1.1.4  christos     break;
   1774      1.1     skrll 
   1775  1.1.1.4  christos   case 29:
   1776  1.1.1.4  christos #line 445 "./itbl-parse.y"
   1777      1.1     skrll     {
   1778      1.1     skrll 	    DBGL2 (("val=x%x\n",(yyvsp[(1) - (1)].num)));
   1779      1.1     skrll 	    (yyval.val) = (yyvsp[(1) - (1)].num);
   1780      1.1     skrll 	  }
   1781  1.1.1.4  christos     break;
   1782  1.1.1.4  christos 
   1783      1.1     skrll 
   1784      1.1     skrll /* Line 1267 of yacc.c.  */
   1785  1.1.1.2  christos #line 1783 "itbl-parse.c"
   1786      1.1     skrll       default: break;
   1787  1.1.1.2  christos     }
   1788  1.1.1.2  christos   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
   1789      1.1     skrll 
   1790      1.1     skrll   YYPOPSTACK (yylen);
   1791      1.1     skrll   yylen = 0;
   1792      1.1     skrll   YY_STACK_PRINT (yyss, yyssp);
   1793  1.1.1.4  christos 
   1794  1.1.1.4  christos   *++yyvsp = yyval;
   1795      1.1     skrll 
   1796      1.1     skrll 
   1797      1.1     skrll   /* Now `shift' the result of the reduction.  Determine what state
   1798      1.1     skrll      that goes to, based on the state we popped back to and the rule
   1799      1.1     skrll      number reduced by.  */
   1800      1.1     skrll 
   1801      1.1     skrll   yyn = yyr1[yyn];
   1802      1.1     skrll 
   1803      1.1     skrll   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
   1804      1.1     skrll   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
   1805      1.1     skrll     yystate = yytable[yystate];
   1806      1.1     skrll   else
   1807      1.1     skrll     yystate = yydefgoto[yyn - YYNTOKENS];
   1808      1.1     skrll 
   1809  1.1.1.4  christos   goto yynewstate;
   1810  1.1.1.4  christos 
   1811  1.1.1.4  christos 
   1812      1.1     skrll /*------------------------------------.
   1813      1.1     skrll | yyerrlab -- here on detecting error |
   1814      1.1     skrll `------------------------------------*/
   1815      1.1     skrll yyerrlab:
   1816      1.1     skrll   /* If not already recovering from an error, report this error.  */
   1817  1.1.1.2  christos   if (!yyerrstatus)
   1818  1.1.1.2  christos     {
   1819  1.1.1.2  christos       ++yynerrs;
   1820  1.1.1.2  christos #if ! YYERROR_VERBOSE
   1821  1.1.1.4  christos       yyerror (YY_("syntax error"));
   1822  1.1.1.4  christos #else
   1823  1.1.1.4  christos       {
   1824  1.1.1.4  christos 	YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
   1825  1.1.1.4  christos 	if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
   1826  1.1.1.4  christos 	  {
   1827  1.1.1.4  christos 	    YYSIZE_T yyalloc = 2 * yysize;
   1828  1.1.1.4  christos 	    if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
   1829  1.1.1.4  christos 	      yyalloc = YYSTACK_ALLOC_MAXIMUM;
   1830  1.1.1.4  christos 	    if (yymsg != yymsgbuf)
   1831  1.1.1.4  christos 	      YYSTACK_FREE (yymsg);
   1832  1.1.1.4  christos 	    yymsg = (char *) YYSTACK_ALLOC (yyalloc);
   1833  1.1.1.4  christos 	    if (yymsg)
   1834  1.1.1.4  christos 	      yymsg_alloc = yyalloc;
   1835  1.1.1.4  christos 	    else
   1836  1.1.1.4  christos 	      {
   1837  1.1.1.4  christos 		yymsg = yymsgbuf;
   1838  1.1.1.4  christos 		yymsg_alloc = sizeof yymsgbuf;
   1839  1.1.1.4  christos 	      }
   1840  1.1.1.4  christos 	  }
   1841  1.1.1.4  christos 
   1842  1.1.1.4  christos 	if (0 < yysize && yysize <= yymsg_alloc)
   1843  1.1.1.4  christos 	  {
   1844  1.1.1.4  christos 	    (void) yysyntax_error (yymsg, yystate, yychar);
   1845  1.1.1.4  christos 	    yyerror (yymsg);
   1846  1.1.1.4  christos 	  }
   1847  1.1.1.4  christos 	else
   1848  1.1.1.4  christos 	  {
   1849  1.1.1.4  christos 	    yyerror (YY_("syntax error"));
   1850  1.1.1.2  christos 	    if (yysize != 0)
   1851  1.1.1.2  christos 	      goto yyexhaustedlab;
   1852      1.1     skrll 	  }
   1853      1.1     skrll       }
   1854      1.1     skrll #endif
   1855      1.1     skrll     }
   1856      1.1     skrll 
   1857      1.1     skrll 
   1858  1.1.1.4  christos 
   1859  1.1.1.4  christos   if (yyerrstatus == 3)
   1860      1.1     skrll     {
   1861      1.1     skrll       /* If just tried and failed to reuse look-ahead token after an
   1862  1.1.1.4  christos 	 error, discard it.  */
   1863  1.1.1.4  christos 
   1864  1.1.1.4  christos       if (yychar <= YYEOF)
   1865  1.1.1.4  christos 	{
   1866  1.1.1.4  christos 	  /* Return failure if at end of input.  */
   1867      1.1     skrll 	  if (yychar == YYEOF)
   1868  1.1.1.4  christos 	    YYABORT;
   1869  1.1.1.4  christos 	}
   1870  1.1.1.4  christos       else
   1871  1.1.1.4  christos 	{
   1872  1.1.1.4  christos 	  yydestruct ("Error: discarding",
   1873      1.1     skrll 		      yytoken, &yylval);
   1874      1.1     skrll 	  yychar = YYEMPTY;
   1875  1.1.1.4  christos 	}
   1876      1.1     skrll     }
   1877      1.1     skrll 
   1878      1.1     skrll   /* Else will try to reuse look-ahead token after shifting the error
   1879      1.1     skrll      token.  */
   1880      1.1     skrll   goto yyerrlab1;
   1881      1.1     skrll 
   1882      1.1     skrll 
   1883      1.1     skrll /*---------------------------------------------------.
   1884      1.1     skrll | yyerrorlab -- error raised explicitly by YYERROR.  |
   1885      1.1     skrll `---------------------------------------------------*/
   1886      1.1     skrll yyerrorlab:
   1887      1.1     skrll 
   1888  1.1.1.2  christos   /* Pacify compilers like GCC when the user code never invokes
   1889      1.1     skrll      YYERROR and the label yyerrorlab therefore never appears in user
   1890      1.1     skrll      code.  */
   1891  1.1.1.4  christos   if (/*CONSTCOND*/ 0)
   1892  1.1.1.2  christos      goto yyerrorlab;
   1893  1.1.1.2  christos 
   1894  1.1.1.2  christos   /* Do not reclaim the symbols of the rule which action triggered
   1895  1.1.1.2  christos      this YYERROR.  */
   1896      1.1     skrll   YYPOPSTACK (yylen);
   1897      1.1     skrll   yylen = 0;
   1898      1.1     skrll   YY_STACK_PRINT (yyss, yyssp);
   1899      1.1     skrll   yystate = *yyssp;
   1900      1.1     skrll   goto yyerrlab1;
   1901      1.1     skrll 
   1902      1.1     skrll 
   1903      1.1     skrll /*-------------------------------------------------------------.
   1904  1.1.1.4  christos | yyerrlab1 -- common code for both syntax error and YYERROR.  |
   1905      1.1     skrll `-------------------------------------------------------------*/
   1906      1.1     skrll yyerrlab1:
   1907      1.1     skrll   yyerrstatus = 3;	/* Each real token shifted decrements this.  */
   1908      1.1     skrll 
   1909  1.1.1.4  christos   for (;;)
   1910  1.1.1.4  christos     {
   1911  1.1.1.4  christos       yyn = yypact[yystate];
   1912  1.1.1.4  christos       if (yyn != YYPACT_NINF)
   1913  1.1.1.4  christos 	{
   1914  1.1.1.4  christos 	  yyn += YYTERROR;
   1915  1.1.1.4  christos 	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
   1916  1.1.1.4  christos 	    {
   1917  1.1.1.4  christos 	      yyn = yytable[yyn];
   1918  1.1.1.4  christos 	      if (0 < yyn)
   1919      1.1     skrll 		break;
   1920      1.1     skrll 	    }
   1921      1.1     skrll 	}
   1922  1.1.1.4  christos 
   1923      1.1     skrll       /* Pop the current state because it cannot handle the error token.  */
   1924      1.1     skrll       if (yyssp == yyss)
   1925  1.1.1.2  christos 	YYABORT;
   1926  1.1.1.4  christos 
   1927  1.1.1.2  christos 
   1928      1.1     skrll       yydestruct ("Error: popping",
   1929      1.1     skrll 		  yystos[yystate], yyvsp);
   1930      1.1     skrll       YYPOPSTACK (1);
   1931      1.1     skrll       yystate = *yyssp;
   1932  1.1.1.4  christos       YY_STACK_PRINT (yyss, yyssp);
   1933  1.1.1.4  christos     }
   1934  1.1.1.4  christos 
   1935      1.1     skrll   if (yyn == YYFINAL)
   1936      1.1     skrll     YYACCEPT;
   1937      1.1     skrll 
   1938  1.1.1.2  christos   *++yyvsp = yylval;
   1939      1.1     skrll 
   1940      1.1     skrll 
   1941      1.1     skrll   /* Shift the error token.  */
   1942      1.1     skrll   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
   1943      1.1     skrll 
   1944      1.1     skrll   yystate = yyn;
   1945      1.1     skrll   goto yynewstate;
   1946      1.1     skrll 
   1947      1.1     skrll 
   1948      1.1     skrll /*-------------------------------------.
   1949      1.1     skrll | yyacceptlab -- YYACCEPT comes here.  |
   1950      1.1     skrll `-------------------------------------*/
   1951      1.1     skrll yyacceptlab:
   1952      1.1     skrll   yyresult = 0;
   1953      1.1     skrll   goto yyreturn;
   1954      1.1     skrll 
   1955      1.1     skrll /*-----------------------------------.
   1956      1.1     skrll | yyabortlab -- YYABORT comes here.  |
   1957      1.1     skrll `-----------------------------------*/
   1958      1.1     skrll yyabortlab:
   1959  1.1.1.4  christos   yyresult = 1;
   1960      1.1     skrll   goto yyreturn;
   1961      1.1     skrll 
   1962      1.1     skrll #ifndef yyoverflow
   1963      1.1     skrll /*-------------------------------------------------.
   1964      1.1     skrll | yyexhaustedlab -- memory exhaustion comes here.  |
   1965      1.1     skrll `-------------------------------------------------*/
   1966      1.1     skrll yyexhaustedlab:
   1967      1.1     skrll   yyerror (YY_("memory exhausted"));
   1968      1.1     skrll   yyresult = 2;
   1969      1.1     skrll   /* Fall through.  */
   1970  1.1.1.4  christos #endif
   1971  1.1.1.4  christos 
   1972  1.1.1.4  christos yyreturn:
   1973  1.1.1.4  christos   if (yychar != YYEOF && yychar != YYEMPTY)
   1974  1.1.1.2  christos      yydestruct ("Cleanup: discarding lookahead",
   1975  1.1.1.2  christos 		 yytoken, &yylval);
   1976  1.1.1.2  christos   /* Do not reclaim the symbols of the rule which action triggered
   1977      1.1     skrll      this YYABORT or YYACCEPT.  */
   1978      1.1     skrll   YYPOPSTACK (yylen);
   1979      1.1     skrll   YY_STACK_PRINT (yyss, yyssp);
   1980  1.1.1.4  christos   while (yyssp != yyss)
   1981  1.1.1.2  christos     {
   1982      1.1     skrll       yydestruct ("Cleanup: popping",
   1983      1.1     skrll 		  yystos[*yyssp], yyvsp);
   1984      1.1     skrll       YYPOPSTACK (1);
   1985      1.1     skrll     }
   1986      1.1     skrll #ifndef yyoverflow
   1987  1.1.1.2  christos   if (yyss != yyssa)
   1988  1.1.1.2  christos     YYSTACK_FREE (yyss);
   1989  1.1.1.2  christos #endif
   1990  1.1.1.2  christos #if YYERROR_VERBOSE
   1991  1.1.1.4  christos   if (yymsg != yymsgbuf)
   1992  1.1.1.4  christos     YYSTACK_FREE (yymsg);
   1993      1.1     skrll #endif
   1994  1.1.1.4  christos   /* Make sure YYID is used.  */
   1995  1.1.1.4  christos   return YYID (yyresult);
   1996  1.1.1.4  christos }
   1997      1.1     skrll 
   1998      1.1     skrll 
   1999      1.1     skrll #line 450 "./itbl-parse.y"
   2000  1.1.1.4  christos 
   2001      1.1     skrll 
   2002      1.1     skrll static int
   2003      1.1     skrll yyerror (const char *msg)
   2004      1.1     skrll {
   2005  1.1.1.4  christos   printf ("line %d: %s\n", insntbl_line, msg);
   2006                      return 0;
   2007                    }
   2008                    
   2009