mut.cpp
gehe zur Dokumentation dieser Datei
00001 /* A Bison parser, made by GNU Bison 2.3.  */
00002 
00003 /* Skeleton implementation for Bison's Yacc-like parsers in C
00004 
00005    Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
00006    Free Software Foundation, Inc.
00007 
00008    This program is free software; you can redistribute it and/or modify
00009    it under the terms of the GNU General Public License as published by
00010    the Free Software Foundation; either version 2, or (at your option)
00011    any later version.
00012 
00013    This program is distributed in the hope that it will be useful,
00014    but WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016    GNU General Public License for more details.
00017 
00018    You should have received a copy of the GNU General Public License
00019    along with this program; if not, write to the Free Software
00020    Foundation, Inc., 51 Franklin Street, Fifth Floor,
00021    Boston, MA 02110-1301, USA.  */
00022 
00023 /* As a special exception, you may create a larger work that contains
00024    part or all of the Bison parser skeleton and distribute that work
00025    under terms of your choice, so long as that work isn't itself a
00026    parser generator using the skeleton or a modified version thereof
00027    as a parser skeleton.  Alternatively, if you modify or redistribute
00028    the parser skeleton itself, you may (at your option) remove this
00029    special exception, which will cause the skeleton and the resulting
00030    Bison output files to be licensed under the GNU General Public
00031    License without this special exception.
00032 
00033    This special exception was added by the Free Software Foundation in
00034    version 2.2 of Bison.  */
00035 
00036 /* C LALR(1) parser skeleton written by Richard Stallman, by
00037    simplifying the original so-called "semantic" parser.  */
00038 
00039 /* All symbols defined below should begin with yy or YY, to avoid
00040    infringing on user name space.  This should be done even for local
00041    variables, as they might otherwise be expanded by user macros.
00042    There are some unavoidable exceptions within include files to
00043    define necessary library symbols; they are noted "INFRINGES ON
00044    USER NAME SPACE" below.  */
00045 
00046 /* Identify Bison output.  */
00047 #define YYBISON 1
00048 
00049 /* Bison version.  */
00050 #define YYBISON_VERSION "2.3"
00051 
00052 /* Skeleton name.  */
00053 #define YYSKELETON_NAME "yacc.c"
00054 
00055 /* Pure parsers.  */
00056 #define YYPURE 0
00057 
00058 /* Using locations.  */
00059 #define YYLSP_NEEDED 1
00060 
00061 
00062 
00063 /* Tokens.  */
00064 #ifndef YYTOKENTYPE
00065 # define YYTOKENTYPE
00066    /* Put the tokens into the symbol table, so that GDB and other debuggers
00067       know about them.  */
00068    enum yytokentype {
00069      IDENTIFIER = 258,
00070      F_NUMBER = 259,
00071      INTEGER = 260,
00072      INTERVALL = 261,
00073      WURZEL = 262,
00074      TON = 263,
00075      TONSYSTEM = 264,
00076      UMSTIMMUNG = 265,
00077      HARMONIE = 266,
00078      LOGIK = 267,
00079      FORM = 268,
00080      INSTRUMENT = 269,
00081      TASTE = 270,
00082      MIDI_IN = 271,
00083      MIDI_OUT = 272,
00084      ANSONSTEN = 273
00085    };
00086 #endif
00087 /* Tokens.  */
00088 #define IDENTIFIER 258
00089 #define F_NUMBER 259
00090 #define INTEGER 260
00091 #define INTERVALL 261
00092 #define WURZEL 262
00093 #define TON 263
00094 #define TONSYSTEM 264
00095 #define UMSTIMMUNG 265
00096 #define HARMONIE 266
00097 #define LOGIK 267
00098 #define FORM 268
00099 #define INSTRUMENT 269
00100 #define TASTE 270
00101 #define MIDI_IN 271
00102 #define MIDI_OUT 272
00103 #define ANSONSTEN 273
00104 
00105 
00106 
00107 
00108 /* Copy the first part of user declarations.  */
00109 #line 34 "../mu32/mut.y"
00110 
00111 
00112 /* BEGIN MUT_TAB.C */
00113 
00114 /* MUTABOR / Version 2.1 */
00115 
00116 //#pragma warn -cln
00117 //#pragma warn -aus
00118 //#pragma warn -sig
00119 //#pragma warn -par
00120 
00121 
00122 #include <ctype.h>
00123 #include <limits.h>
00124 #include "Global.h"
00125 #include "GrafKern.h"
00126 #include "Hilfs.h"
00127 
00128 #define MAX_IDENTIFIER_LEN 80
00129 
00130 #define FEHLERZEILE yylloc.first_line+1
00131 
00132 #ifdef alloca
00133 #undef alloca
00134 #define alloca make_an_error ---
00135 #endif
00136 #define YYMALLOC xmalloc
00137 #define YYFREE(X) do { /* empty */; } while (YYID (0))
00138 #define YYMAXLIMIT (HEAP_PORTION_SYNTAX / sizeof(YYLTYPE) - 1)
00139                    /* wegen fehlendem alloca in PUREC */
00140 
00141 
00142 
00143 /* Enabling traces.  */
00144 #ifndef YYDEBUG
00145 # define YYDEBUG 0
00146 #endif
00147 
00148 /* Enabling verbose error messages.  */
00149 #ifdef YYERROR_VERBOSE
00150 # undef YYERROR_VERBOSE
00151 # define YYERROR_VERBOSE 1
00152 #else
00153 # define YYERROR_VERBOSE 0
00154 #endif
00155 
00156 /* Enabling the token table.  */
00157 #ifndef YYTOKEN_TABLE
00158 # define YYTOKEN_TABLE 0
00159 #endif
00160 
00161 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
00162 typedef union YYSTYPE
00163 #line 67 "../mu32/mut.y"
00164 {
00165     double      f_value;        /* fr Gleitkommazahlen */
00166     int         integer;        /* Fr integers */
00167     char        *identifier;    /* Fr Namen */
00168 }
00169 /* Line 193 of yacc.c.  */
00170 #line 171 "y.tab.c"
00171         YYSTYPE;
00172 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
00173 # define YYSTYPE_IS_DECLARED 1
00174 # define YYSTYPE_IS_TRIVIAL 1
00175 #endif
00176 
00177 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
00178 typedef struct YYLTYPE
00179 {
00180   int first_line;
00181   int first_column;
00182   int last_line;
00183   int last_column;
00184 } YYLTYPE;
00185 # define yyltype YYLTYPE /* obsolescent; will be withdrawn */
00186 # define YYLTYPE_IS_DECLARED 1
00187 # define YYLTYPE_IS_TRIVIAL 1
00188 #endif
00189 
00190 
00191 /* Copy the second part of user declarations.  */
00192 
00193 
00194 /* Line 216 of yacc.c.  */
00195 #line 196 "y.tab.c"
00196 
00197 #ifdef short
00198 # undef short
00199 #endif
00200 
00201 #ifdef YYTYPE_UINT8
00202 typedef YYTYPE_UINT8 yytype_uint8;
00203 #else
00204 typedef unsigned char yytype_uint8;
00205 #endif
00206 
00207 #ifdef YYTYPE_INT8
00208 typedef YYTYPE_INT8 yytype_int8;
00209 #elif (defined __STDC__ || defined __C99__FUNC__ \
00210      || defined __cplusplus || defined _MSC_VER)
00211 typedef signed char yytype_int8;
00212 #else
00213 typedef short int yytype_int8;
00214 #endif
00215 
00216 #ifdef YYTYPE_UINT16
00217 typedef YYTYPE_UINT16 yytype_uint16;
00218 #else
00219 typedef unsigned short int yytype_uint16;
00220 #endif
00221 
00222 #ifdef YYTYPE_INT16
00223 typedef YYTYPE_INT16 yytype_int16;
00224 #else
00225 typedef short int yytype_int16;
00226 #endif
00227 
00228 #ifndef YYSIZE_T
00229 # ifdef __SIZE_TYPE__
00230 #  define YYSIZE_T __SIZE_TYPE__
00231 # elif defined size_t
00232 #  define YYSIZE_T size_t
00233 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
00234      || defined __cplusplus || defined _MSC_VER)
00235 #  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
00236 #  define YYSIZE_T size_t
00237 # else
00238 #  define YYSIZE_T unsigned int
00239 # endif
00240 #endif
00241 
00242 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
00243 
00244 #ifndef YY_
00245 # if defined YYENABLE_NLS && YYENABLE_NLS
00246 #  if ENABLE_NLS
00247 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
00248 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
00249 #  endif
00250 # endif
00251 # ifndef YY_
00252 #  define YY_(msgid) msgid
00253 # endif
00254 #endif
00255 
00256 /* Suppress unused-variable warnings by "using" E.  */
00257 #if ! defined lint || defined __GNUC__
00258 # define YYUSE(e) ((void) (e))
00259 #else
00260 # define YYUSE(e) /* empty */
00261 #endif
00262 
00263 /* Identity function, used to suppress warnings about constant conditions.  */
00264 #ifndef lint
00265 # define YYID(n) (n)
00266 #else
00267 #if (defined __STDC__ || defined __C99__FUNC__ \
00268      || defined __cplusplus || defined _MSC_VER)
00269 static int
00270 YYID (int i)
00271 #else
00272 static int
00273 YYID (i)
00274     int i;
00275 #endif
00276 {
00277   return i;
00278 }
00279 #endif
00280 
00281 #if ! defined yyoverflow || YYERROR_VERBOSE
00282 
00283 /* The parser invokes alloca or malloc; define the necessary symbols.  */
00284 
00285 # ifdef YYSTACK_USE_ALLOCA
00286 #  if YYSTACK_USE_ALLOCA
00287 #   ifdef __GNUC__
00288 #    define YYSTACK_ALLOC __builtin_alloca
00289 #   elif defined __BUILTIN_VA_ARG_INCR
00290 #    include <alloca.h> /* INFRINGES ON USER NAME SPACE */
00291 #   elif defined _AIX
00292 #    define YYSTACK_ALLOC __alloca
00293 #   elif defined _MSC_VER
00294 #    include <malloc.h> /* INFRINGES ON USER NAME SPACE */
00295 #    define alloca _alloca
00296 #   else
00297 #    define YYSTACK_ALLOC alloca
00298 #    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00299      || defined __cplusplus || defined _MSC_VER)
00300 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00301 #     ifndef _STDLIB_H
00302 #      define _STDLIB_H 1
00303 #     endif
00304 #    endif
00305 #   endif
00306 #  endif
00307 # endif
00308 
00309 # ifdef YYSTACK_ALLOC
00310    /* Pacify GCC's `empty if-body' warning.  */
00311 #  define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
00312 #  ifndef YYSTACK_ALLOC_MAXIMUM
00313     /* The OS might guarantee only one guard page at the bottom of the stack,
00314        and a page size can be as small as 4096 bytes.  So we cannot safely
00315        invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
00316        to allow for a few compiler-allocated temporary stack slots.  */
00317 #   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
00318 #  endif
00319 # else
00320 #  define YYSTACK_ALLOC YYMALLOC
00321 #  define YYSTACK_FREE YYFREE
00322 #  ifndef YYSTACK_ALLOC_MAXIMUM
00323 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
00324 #  endif
00325 #  if (defined __cplusplus && ! defined _STDLIB_H \
00326        && ! ((defined YYMALLOC || defined malloc) \
00327              && (defined YYFREE || defined free)))
00328 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
00329 #   ifndef _STDLIB_H
00330 #    define _STDLIB_H 1
00331 #   endif
00332 #  endif
00333 #  ifndef YYMALLOC
00334 #   define YYMALLOC malloc
00335 #   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00336      || defined __cplusplus || defined _MSC_VER)
00337 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
00338 #   endif
00339 #  endif
00340 #  ifndef YYFREE
00341 #   define YYFREE free
00342 #   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
00343      || defined __cplusplus || defined _MSC_VER)
00344 void free (void *); /* INFRINGES ON USER NAME SPACE */
00345 #   endif
00346 #  endif
00347 # endif
00348 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
00349 
00350 
00351 #if (! defined yyoverflow \
00352      && (! defined __cplusplus \
00353          || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
00354              && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
00355 
00356 /* A type that is properly aligned for any stack member.  */
00357 union yyalloc
00358 {
00359   yytype_int16 yyss;
00360   YYSTYPE yyvs;
00361     YYLTYPE yyls;
00362 };
00363 
00364 /* The size of the maximum gap between one aligned stack and the next.  */
00365 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
00366 
00367 /* The size of an array large to enough to hold all stacks, each with
00368    N elements.  */
00369 # define YYSTACK_BYTES(N) \
00370      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
00371       + 2 * YYSTACK_GAP_MAXIMUM)
00372 
00373 /* Copy COUNT objects from FROM to TO.  The source and destination do
00374    not overlap.  */
00375 # ifndef YYCOPY
00376 #  if defined __GNUC__ && 1 < __GNUC__
00377 #   define YYCOPY(To, From, Count) \
00378       __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
00379 #  else
00380 #   define YYCOPY(To, From, Count)              \
00381       do                                        \
00382         {                                       \
00383           YYSIZE_T yyi;                         \
00384           for (yyi = 0; yyi < (Count); yyi++)   \
00385             (To)[yyi] = (From)[yyi];            \
00386         }                                       \
00387       while (YYID (0))
00388 #  endif
00389 # endif
00390 
00391 /* Relocate STACK from its old location to the new one.  The
00392    local variables YYSIZE and YYSTACKSIZE give the old and new number of
00393    elements in the stack, and YYPTR gives the new location of the
00394    stack.  Advance YYPTR to a properly aligned location for the next
00395    stack.  */
00396 # define YYSTACK_RELOCATE(Stack)                                        \
00397     do                                                                  \
00398       {                                                                 \
00399         YYSIZE_T yynewbytes;                                            \
00400         YYCOPY (&yyptr->Stack, Stack, yysize);                          \
00401         Stack = &yyptr->Stack;                                          \
00402         yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
00403         yyptr += yynewbytes / sizeof (*yyptr);                          \
00404       }                                                                 \
00405     while (YYID (0))
00406 
00407 #endif
00408 
00409 /* YYFINAL -- State number of the termination state.  */
00410 #define YYFINAL  2
00411 /* YYLAST -- Last index in YYTABLE.  */
00412 #define YYLAST   348
00413 
00414 /* YYNTOKENS -- Number of terminals.  */
00415 #define YYNTOKENS  37
00416 /* YYNNTS -- Number of nonterminals.  */
00417 #define YYNNTS  98
00418 /* YYNRULES -- Number of rules.  */
00419 #define YYNRULES  204
00420 /* YYNRULES -- Number of states.  */
00421 #define YYNSTATES  376
00422 
00423 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
00424 #define YYUNDEFTOK  2
00425 #define YYMAXUTOK   273
00426 
00427 #define YYTRANSLATE(YYX)                                                \
00428   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
00429 
00430 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
00431 static const yytype_uint8 yytranslate[] =
00432 {
00433        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00434        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00435        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00436        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00437       27,    28,    32,    22,    26,    21,    35,    23,     2,     2,
00438        2,     2,     2,     2,     2,     2,     2,     2,    20,     2,
00439       30,    19,    31,     2,    29,     2,     2,     2,     2,     2,
00440        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00441        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00442        2,    24,     2,    25,     2,     2,     2,     2,     2,     2,
00443        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00444        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00445        2,     2,     2,    33,     2,    34,    36,     2,     2,     2,
00446        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00447        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00448        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00449        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00450        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00451        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00452        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00453        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00454        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00455        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00456        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00457        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00458        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
00459        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
00460       15,    16,    17,    18
00461 };
00462 
00463 #if YYDEBUG
00464 /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
00465    YYRHS.  */
00466 static const yytype_uint16 yyprhs[] =
00467 {
00468        0,     0,     3,     4,     7,    10,    13,    16,    19,    22,
00469       25,    28,    31,    32,    35,    36,    39,    45,    51,    55,
00470       59,    62,    65,    66,    69,    70,    73,    77,    83,    87,
00471       93,    97,   100,   101,   104,   107,   110,   114,   118,   123,
00472      128,   134,   140,   142,   145,   149,   154,   157,   158,   161,
00473      162,   165,   166,   175,   176,   186,   188,   192,   194,   195,
00474      197,   199,   203,   205,   207,   211,   213,   215,   217,   220,
00475      223,   224,   227,   228,   229,   235,   236,   237,   246,   248,
00476      250,   252,   254,   256,   258,   260,   262,   264,   266,   268,
00477      272,   276,   282,   288,   294,   300,   308,   316,   326,   336,
00478      346,   356,   366,   376,   386,   396,   397,   402,   404,   408,
00479      409,   413,   415,   419,   420,   422,   424,   426,   427,   432,
00480      433,   438,   439,   444,   445,   450,   451,   456,   457,   463,
00481      464,   471,   472,   479,   480,   485,   487,   491,   493,   494,
00482      500,   501,   507,   508,   514,   515,   521,   523,   526,   527,
00483      533,   534,   541,   542,   548,   549,   555,   558,   559,   562,
00484      563,   571,   575,   576,   579,   581,   585,   587,   590,   593,
00485      594,   595,   599,   600,   608,   609,   618,   619,   622,   623,
00486      631,   632,   638,   644,   648,   652,   654,   656,   658,   661,
00487      664,   665,   671,   673,   677,   679,   682,   683,   686,   691,
00488      698,   705,   713,   723,   725
00489 };
00490 
00491 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
00492 static const yytype_int16 yyrhs[] =
00493 {
00494       38,     0,    -1,    -1,    38,    39,    -1,    38,    44,    -1,
00495       38,    53,    -1,    38,    65,    -1,    38,   110,    -1,    38,
00496      117,    -1,    38,   131,    -1,    38,     1,    -1,     6,    40,
00497       -1,    -1,    40,    41,    -1,    -1,    42,    43,    -1,     3,
00498       19,   134,    20,   134,    -1,     3,    19,   134,     7,   134,
00499       -1,     3,    19,    49,    -1,     3,    19,     1,    -1,     3,
00500        1,    -1,     8,    45,    -1,    -1,    45,    46,    -1,    -1,
00501       47,    48,    -1,     3,    19,   134,    -1,     3,    19,     3,
00502       21,    49,    -1,     3,    19,     3,    -1,     3,    19,     3,
00503       22,    49,    -1,     3,    19,     1,    -1,    52,    50,    -1,
00504       -1,    50,    51,    -1,    22,     3,    -1,    21,     3,    -1,
00505       22,   134,     3,    -1,    21,   134,     3,    -1,    22,    23,
00506      134,     3,    -1,    21,    23,   134,     3,    -1,    22,   134,
00507       23,   134,     3,    -1,    21,   134,    23,   134,     3,    -1,
00508        3,    -1,   134,     3,    -1,    23,   134,     3,    -1,   134,
00509       23,   134,     3,    -1,     9,    54,    -1,    -1,    54,    55,
00510       -1,    -1,    56,    57,    -1,    -1,     3,    19,     5,    24,
00511       60,    25,    58,    49,    -1,    -1,     3,    19,     5,    24,
00512       60,    25,    59,    21,    49,    -1,    61,    -1,    60,    26,
00513       61,    -1,     3,    -1,    -1,     1,    -1,     3,    -1,    62,
00514       26,     3,    -1,     1,    -1,    64,    -1,    63,    26,    64,
00515       -1,     1,    -1,     3,    -1,     5,    -1,    21,     5,    -1,
00516       10,    66,    -1,    -1,    66,    67,    -1,    -1,    -1,     3,
00517       68,    19,    69,    72,    -1,    -1,    -1,     3,    70,    27,
00518       62,    28,    19,    71,    72,    -1,    73,    -1,    74,    -1,
00519       75,    -1,    76,    -1,    77,    -1,    88,    -1,    91,    -1,
00520       94,    -1,   100,    -1,   108,    -1,     1,    -1,     5,    24,
00521       25,    -1,     3,    24,    25,    -1,    29,    22,     5,    24,
00522       25,    -1,    29,    22,     3,    24,    25,    -1,    29,    21,
00523        5,    24,    25,    -1,    29,    21,     3,    24,    25,    -1,
00524       24,    30,    30,     5,    31,    31,    25,    -1,    24,    30,
00525       30,     3,    31,    31,    25,    -1,    24,    30,    30,    29,
00526       22,     5,    31,    31,    25,    -1,    24,    30,    30,    29,
00527       22,     3,    31,    31,    25,    -1,    24,    30,    30,    29,
00528       21,     5,    31,    31,    25,    -1,    24,    30,    30,    29,
00529       21,     3,    31,    31,    25,    -1,    24,    30,    30,    29,
00530       32,     5,    31,    31,    25,    -1,    24,    30,    30,    29,
00531       32,     3,    31,    31,    25,    -1,    24,    30,    30,    29,
00532       23,     5,    31,    31,    25,    -1,    24,    30,    30,    29,
00533       23,     3,    31,    31,    25,    -1,    -1,    24,    78,    79,
00534       25,    -1,    83,    -1,    83,    26,    81,    -1,    -1,    26,
00535       80,    81,    -1,    82,    -1,    81,    26,    82,    -1,    -1,
00536       83,    -1,     3,    -1,    29,    -1,    -1,     3,    22,    84,
00537       49,    -1,    -1,    29,    22,    85,    49,    -1,    -1,     3,
00538       21,    86,    49,    -1,    -1,    29,    21,    87,    49,    -1,
00539       -1,    24,    25,    89,    49,    -1,    -1,    24,    25,    90,
00540       21,    49,    -1,    -1,    24,    25,    29,    22,    92,    49,
00541       -1,    -1,    24,    25,    29,    21,    93,    49,    -1,    -1,
00542       33,    95,    96,    34,    -1,    97,    -1,    96,    26,    97,
00543       -1,     3,    -1,    -1,     3,    27,    98,    63,    28,    -1,
00544       -1,    17,    27,    99,   130,    28,    -1,    -1,     5,    33,
00545      101,   103,    34,    -1,    -1,     3,    33,   102,   103,    34,
00546       -1,   104,    -1,   103,   104,    -1,    -1,     5,    21,    31,
00547      105,    96,    -1,    -1,    21,     5,    21,    31,   106,    96,
00548       -1,    -1,    18,    21,    31,   107,    96,    -1,    -1,    17,
00549       27,   109,   130,    28,    -1,    11,   111,    -1,    -1,   111,
00550      112,    -1,    -1,     3,    19,    33,   113,   115,    34,   114,
00551       -1,     3,    19,     1,    -1,    -1,    35,     5,    -1,   116,
00552       -1,   115,    26,   116,    -1,     5,    -1,    32,     5,    -1,
00553       12,   118,    -1,    -1,    -1,   118,   119,   120,    -1,    -1,
00554        3,   128,    19,    24,   121,   123,    25,    -1,    -1,     3,
00555      128,    19,     3,    24,   122,   123,    25,    -1,    -1,   123,
00556      124,    -1,    -1,   128,    21,    31,    33,   125,    96,    34,
00557       -1,    -1,   128,    21,    31,   126,    97,    -1,     5,    36,
00558        3,    36,     5,    -1,     3,    36,     5,    -1,     5,    36,
00559        3,    -1,     3,    -1,    18,    -1,   127,    -1,    13,   127,
00560       -1,    15,     3,    -1,    -1,    16,    27,   129,   130,    28,
00561       -1,     5,    -1,   130,    26,     5,    -1,     1,    -1,    14,
00562      132,    -1,    -1,   132,   133,    -1,     5,    21,    31,     5,
00563       -1,     5,    21,    31,     5,    21,     5,    -1,     5,    21,
00564       31,    24,     5,    25,    -1,     5,    21,    31,     5,    24,
00565        5,    25,    -1,     5,    21,    31,     5,    21,     5,    24,
00566        5,    25,    -1,     4,    -1,     5,    -1
00567 };
00568 
00569 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
00570 static const yytype_uint16 yyrline[] =
00571 {
00572        0,    98,    98,    99,   100,   101,   102,   103,   104,   105,
00573      106,   110,   112,   114,   118,   118,   122,   128,   137,   139,
00574      140,   144,   146,   148,   152,   152,   156,   159,   163,   167,
00575      171,   175,   179,   181,   184,   187,   190,   193,   196,   202,
00576      208,   214,   235,   243,   246,   252,   278,   280,   282,   286,
00577      286,   291,   290,   295,   294,   300,   300,   303,   304,   305,
00578      309,   310,   312,   317,   318,   319,   324,   325,   326,   332,
00579      334,   336,   341,   343,   340,   348,   351,   347,   357,   358,
00580      359,   360,   361,   362,   363,   364,   365,   366,   367,   372,
00581      374,   379,   381,   383,   385,   390,   392,   397,   399,   401,
00582      403,   405,   407,   409,   411,   417,   416,   426,   427,   429,
00583      429,   436,   437,   442,   446,   450,   451,   453,   453,   456,
00584      456,   459,   459,   462,   462,   469,   469,   472,   472,   478,
00585      478,   481,   481,   487,   487,   493,   494,   498,   500,   500,
00586      504,   503,   510,   510,   513,   513,   519,   520,   525,   524,
00587      529,   528,   533,   532,   540,   539,   547,   551,   552,   557,
00588      556,   561,   565,   566,   570,   571,   575,   576,   580,   584,
00589      585,   585,   593,   592,   598,   597,   605,   606,   611,   611,
00590      615,   615,   621,   623,   625,   627,   632,   633,   634,   635,
00591      636,   636,   642,   644,   646,   651,   655,   656,   660,   662,
00592      664,   666,   668,   673,   674
00593 };
00594 #endif
00595 
00596 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
00597 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
00598    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
00599 static const char *const yytname[] =
00600 {
00601   "$end", "error", "$undefined", "IDENTIFIER", "F_NUMBER", "INTEGER",
00602   "INTERVALL", "WURZEL", "TON", "TONSYSTEM", "UMSTIMMUNG", "HARMONIE",
00603   "LOGIK", "FORM", "INSTRUMENT", "TASTE", "MIDI_IN", "MIDI_OUT",
00604   "ANSONSTEN", "'='", "':'", "'-'", "'+'", "'/'", "'['", "']'", "','",
00605   "'('", "')'", "'@'", "'<'", "'>'", "'*'", "'{'", "'}'", "'.'", "'~'",
00606   "$accept", "start", "intervalldeklaration", "intervalldekl1",
00607   "intervalldekl2_1", "@1", "intervalldekl2", "tondeklaration", "tondekl1",
00608   "tondekl2_1", "@2", "tondekl2", "KOMPLEX_TON_LIST", "KOMPLEX_TON_LIST_2",
00609   "KOMPLEX_TON_1", "KOMPLEX_TON_START", "tonsystemdeklaration",
00610   "tonsystemdekl1", "tonsystemdekl2_1", "@3", "tonsystemdekl2", "@4", "@5",
00611   "tonliste", "ton_element", "parameter_liste", "argument_liste",
00612   "argument_listenelement", "umstimmungdeklaration", "umstimmungs_dekl_1",
00613   "umstimmungs_dekl_2", "@6", "@7", "@8", "@9", "umstimmungs_dekl_3",
00614   "umstimmungs_dekl_taste_abs", "umstimmungs_dekl_taste_rel",
00615   "umstimmungs_dekl_breite_abs", "umstimmungs_dekl_breite_rel",
00616   "umstimmungs_dekl_tonhoehe_veraendert", "@10",
00617   "nonempty_umstimm_expression_list", "@11", "umstimm_expression_list",
00618   "umstimm_expression", "nonempty_umstimm_expression", "@12", "@13", "@14",
00619   "@15", "umstimmungs_dekl_wiederholung_abs", "@16", "@17",
00620   "umstimmungs_dekl_wiederholung_rel", "@18", "@19",
00621   "umstimmungs_dekl_umstimmungs_bund", "@20", "aktions_liste", "aktion",
00622   "@21", "@22", "umstimmungs_dekl_umstimmungs_case", "@23", "@24",
00623   "umstimmungs_case_liste", "umstimmungs_case_element", "@25", "@26",
00624   "@27", "umstimmungs_dekl_midi_out", "@28", "harmoniedeklaration",
00625   "harmonie_dekl_1", "harmonie_dekl_2", "@29", "bezugs_taste",
00626   "tasten_liste", "taste", "logikdeklaration", "logik_dekl_1", "@30",
00627   "logik_dekl_2", "@31", "@32", "anweisungs_liste", "anweisung", "@33",
00628   "@34", "harmoniebezeichner", "ausloeser", "@35", "integersequenz",
00629   "instrumentdeklaration", "instrument_dekl_1", "instrument_dekl_2",
00630   "GLEITKOMMA_ZAHL", 0
00631 };
00632 #endif
00633 
00634 # ifdef YYPRINT
00635 /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
00636    token YYLEX-NUM.  */
00637 static const yytype_uint16 yytoknum[] =
00638 {
00639        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
00640      265,   266,   267,   268,   269,   270,   271,   272,   273,    61,
00641       58,    45,    43,    47,    91,    93,    44,    40,    41,    64,
00642       60,    62,    42,   123,   125,    46,   126
00643 };
00644 # endif
00645 
00646 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
00647 static const yytype_uint8 yyr1[] =
00648 {
00649        0,    37,    38,    38,    38,    38,    38,    38,    38,    38,
00650       38,    39,    40,    40,    42,    41,    43,    43,    43,    43,
00651       43,    44,    45,    45,    47,    46,    48,    48,    48,    48,
00652       48,    49,    50,    50,    51,    51,    51,    51,    51,    51,
00653       51,    51,    52,    52,    52,    52,    53,    54,    54,    56,
00654       55,    58,    57,    59,    57,    60,    60,    61,    61,    61,
00655       62,    62,    62,    63,    63,    63,    64,    64,    64,    65,
00656       66,    66,    68,    69,    67,    70,    71,    67,    72,    72,
00657       72,    72,    72,    72,    72,    72,    72,    72,    72,    73,
00658       73,    74,    74,    74,    74,    75,    75,    76,    76,    76,
00659       76,    76,    76,    76,    76,    78,    77,    79,    79,    80,
00660       79,    81,    81,    82,    82,    83,    83,    84,    83,    85,
00661       83,    86,    83,    87,    83,    89,    88,    90,    88,    92,
00662       91,    93,    91,    95,    94,    96,    96,    97,    98,    97,
00663       99,    97,   101,   100,   102,   100,   103,   103,   105,   104,
00664      106,   104,   107,   104,   109,   108,   110,   111,   111,   113,
00665      112,   112,   114,   114,   115,   115,   116,   116,   117,   118,
00666      119,   118,   121,   120,   122,   120,   123,   123,   125,   124,
00667      126,   124,   127,   127,   127,   127,   128,   128,   128,   128,
00668      129,   128,   130,   130,   130,   131,   132,   132,   133,   133,
00669      133,   133,   133,   134,   134
00670 };
00671 
00672 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
00673 static const yytype_uint8 yyr2[] =
00674 {
00675        0,     2,     0,     2,     2,     2,     2,     2,     2,     2,
00676        2,     2,     0,     2,     0,     2,     5,     5,     3,     3,
00677        2,     2,     0,     2,     0,     2,     3,     5,     3,     5,
00678        3,     2,     0,     2,     2,     2,     3,     3,     4,     4,
00679        5,     5,     1,     2,     3,     4,     2,     0,     2,     0,
00680        2,     0,     8,     0,     9,     1,     3,     1,     0,     1,
00681        1,     3,     1,     1,     3,     1,     1,     1,     2,     2,
00682        0,     2,     0,     0,     5,     0,     0,     8,     1,     1,
00683        1,     1,     1,     1,     1,     1,     1,     1,     1,     3,
00684        3,     5,     5,     5,     5,     7,     7,     9,     9,     9,
00685        9,     9,     9,     9,     9,     0,     4,     1,     3,     0,
00686        3,     1,     3,     0,     1,     1,     1,     0,     4,     0,
00687        4,     0,     4,     0,     4,     0,     4,     0,     5,     0,
00688        6,     0,     6,     0,     4,     1,     3,     1,     0,     5,
00689        0,     5,     0,     5,     0,     5,     1,     2,     0,     5,
00690        0,     6,     0,     5,     0,     5,     2,     0,     2,     0,
00691        7,     3,     0,     2,     1,     3,     1,     2,     2,     0,
00692        0,     3,     0,     7,     0,     8,     0,     2,     0,     7,
00693        0,     5,     5,     3,     3,     1,     1,     1,     2,     2,
00694        0,     5,     1,     3,     1,     2,     0,     2,     4,     6,
00695        6,     7,     9,     1,     1
00696 };
00697 
00698 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
00699    STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
00700    means the default is an error.  */
00701 static const yytype_uint8 yydefact[] =
00702 {
00703        2,     0,     1,    10,    12,    22,    47,    70,   157,   169,
00704      196,     3,     4,     5,     6,     7,     8,     9,    11,    21,
00705       46,    69,   156,   168,   195,    13,     0,    23,     0,    48,
00706        0,    72,    71,     0,   158,     0,     0,   197,     0,    15,
00707        0,    25,     0,    50,     0,     0,     0,     0,   171,     0,
00708       20,     0,     0,     0,    73,     0,   161,   159,   185,     0,
00709        0,     0,     0,   186,   187,     0,     0,    19,    42,   203,
00710      204,     0,    18,    32,     0,    30,    28,    26,     0,     0,
00711       62,    60,     0,     0,     0,     0,   188,   189,   190,     0,
00712      198,     0,     0,    31,    43,     0,     0,     0,     0,     0,
00713        0,    88,     0,     0,     0,   105,     0,   133,    74,    78,
00714       79,    80,    81,    82,    83,    84,    85,    86,    87,     0,
00715        0,   166,     0,     0,   164,   183,   184,     0,     0,   172,
00716        0,     0,     0,    44,     0,     0,    33,    17,    16,     0,
00717       27,     0,    29,    59,    57,     0,    55,     0,   144,     0,
00718      142,   154,   125,     0,     0,     0,     0,     0,    61,    76,
00719      167,     0,   162,     0,   194,   192,     0,   174,   176,   199,
00720        0,   200,    35,     0,     0,    34,     0,     0,    45,    51,
00721        0,    90,     0,    89,     0,     0,     0,     0,     0,     0,
00722      115,   109,   116,     0,   107,     0,     0,     0,     0,   137,
00723        0,     0,   135,     0,   165,     0,   160,   182,     0,   191,
00724      176,     0,     0,   201,     0,    37,     0,     0,    36,     0,
00725        0,     0,    56,     0,     0,     0,     0,   146,     0,     0,
00726      131,   129,   126,     0,     0,     0,     0,   121,   117,   113,
00727      123,   119,   106,   113,     0,     0,     0,     0,   138,   140,
00728        0,   134,    77,   163,   193,     0,   173,   177,     0,     0,
00729       39,     0,    38,     0,    52,     0,     0,     0,     0,   145,
00730      147,   143,   155,     0,     0,   128,     0,     0,     0,     0,
00731        0,     0,     0,     0,   110,   111,   114,     0,     0,   108,
00732       94,    93,    92,    91,     0,     0,   136,   175,     0,   202,
00733       41,    40,    54,   148,   152,     0,   132,   130,     0,     0,
00734        0,     0,     0,     0,     0,     0,     0,     0,   122,   118,
00735      113,   124,   120,    65,    66,    67,     0,     0,    63,     0,
00736      180,     0,     0,   150,    96,    95,     0,     0,     0,     0,
00737        0,     0,     0,     0,   112,    68,     0,   139,   141,   178,
00738        0,   149,   153,     0,     0,     0,     0,     0,     0,     0,
00739        0,     0,    64,     0,   181,   151,   100,    99,    98,    97,
00740      104,   103,   102,   101,     0,   179
00741 };
00742 
00743 /* YYDEFGOTO[NTERM-NUM].  */
00744 static const yytype_int16 yydefgoto[] =
00745 {
00746       -1,     1,    11,    18,    25,    26,    39,    12,    19,    27,
00747       28,    41,    72,    93,   136,    73,    13,    20,    29,    30,
00748       43,   220,   221,   145,   146,    82,   327,   328,    14,    21,
00749       32,    44,    79,    45,   203,   108,   109,   110,   111,   112,
00750      113,   154,   193,   239,   284,   285,   286,   283,   288,   282,
00751      287,   114,   187,   188,   115,   274,   273,   116,   157,   201,
00752      202,   294,   295,   117,   184,   182,   226,   227,   331,   353,
00753      332,   118,   185,    15,    22,    34,    83,   206,   123,   124,
00754       16,    23,    35,    48,   168,   210,   211,   257,   363,   350,
00755       64,   258,   127,   166,    17,    24,    37,   141
00756 };
00757 
00758 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
00759    STATE-NUM.  */
00760 #define YYPACT_NINF -321
00761 static const yytype_int16 yypact[] =
00762 {
00763     -321,   138,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
00764     -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,    13,    95,
00765      111,   133,   163,   166,   177,  -321,   197,  -321,   201,  -321,
00766      206,   160,  -321,   191,  -321,   216,   199,  -321,    66,  -321,
00767      202,  -321,   203,  -321,   204,   200,     6,   127,  -321,   193,
00768     -321,    72,   115,   220,  -321,    56,  -321,  -321,   195,   205,
00769      153,   223,   207,  -321,  -321,   209,    83,  -321,  -321,  -321,
00770     -321,   198,  -321,  -321,    76,  -321,   184,  -321,   208,     5,
00771     -321,  -321,   134,     4,   224,   227,  -321,  -321,  -321,    11,
00772      113,   228,   232,   186,  -321,   198,   198,   198,    77,    77,
00773       29,  -321,    -7,    37,   210,   -12,   190,  -321,  -321,  -321,
00774     -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,   233,
00775      219,  -321,   234,    89,  -321,  -321,   211,    92,   218,  -321,
00776      235,   238,   221,  -321,    87,    98,  -321,  -321,  -321,   241,
00777     -321,    18,  -321,  -321,  -321,   148,  -321,   225,  -321,   226,
00778     -321,  -321,   112,   215,    16,   158,   167,   114,  -321,  -321,
00779     -321,     4,   213,   244,  -321,  -321,   151,  -321,  -321,   229,
00780      230,  -321,  -321,   198,    61,  -321,   198,    71,  -321,   231,
00781       29,  -321,   108,  -321,   108,    92,   192,    77,   236,    22,
00782      194,  -321,   196,   237,   239,   240,   242,   243,   245,   246,
00783      247,   125,  -321,     5,  -321,   249,  -321,  -321,   251,  -321,
00784     -321,    47,   253,  -321,   256,  -321,   198,   257,  -321,   198,
00785       77,   250,  -321,   254,   255,   258,    10,  -321,    19,   152,
00786     -321,  -321,  -321,    77,   248,   252,   132,  -321,  -321,    17,
00787     -321,  -321,  -321,    17,   259,   260,   261,   262,  -321,  -321,
00788      114,  -321,  -321,  -321,  -321,    53,  -321,  -321,   267,   264,
00789     -321,   265,  -321,   269,  -321,    77,   263,   266,   270,  -321,
00790     -321,  -321,  -321,    77,    77,  -321,   268,   271,   178,   183,
00791      188,   189,    77,    77,   272,  -321,  -321,    77,    77,   272,
00792     -321,  -321,  -321,  -321,   103,    92,  -321,  -321,   273,  -321,
00793     -321,  -321,  -321,  -321,  -321,   274,  -321,  -321,   275,   276,
00794      277,   278,   279,   280,   281,   282,   283,   284,  -321,  -321,
00795       17,  -321,  -321,  -321,  -321,  -321,   285,   169,  -321,   170,
00796      286,   114,   114,  -321,  -321,  -321,   287,   289,   290,   291,
00797      292,   293,   294,   295,  -321,  -321,   106,  -321,  -321,  -321,
00798      114,   301,   301,   114,   303,   304,   305,   306,   307,   308,
00799      309,   310,  -321,   114,  -321,   301,  -321,  -321,  -321,  -321,
00800     -321,  -321,  -321,  -321,   131,  -321
00801 };
00802 
00803 /* YYPGOTO[NTERM-NUM].  */
00804 static const yytype_int16 yypgoto[] =
00805 {
00806     -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
00807     -321,  -321,   -98,  -321,  -321,  -321,  -321,  -321,  -321,  -321,
00808     -321,  -321,  -321,  -321,    81,  -321,  -321,   -76,  -321,  -321,
00809     -321,  -321,  -321,  -321,  -321,    74,  -321,  -321,  -321,  -321,
00810     -321,  -321,  -321,  -321,    35,   -40,   128,  -321,  -321,  -321,
00811     -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -320,
00812     -245,  -321,  -321,  -321,  -321,  -321,    97,   -27,  -321,  -321,
00813     -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,  -321,   135,
00814     -321,  -321,  -321,  -321,  -321,  -321,    82,  -321,  -321,  -321,
00815      288,   296,  -321,  -183,  -321,  -321,  -321,   -48
00816 };
00817 
00818 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
00819    positive, shift that token.  If negative, reduce the rule which
00820    number is the opposite.  If zero, do what YYDEFACT says.
00821    If YYTABLE_NINF, syntax error.  */
00822 #define YYTABLE_NINF -171
00823 static const yytype_int16 yytable[] =
00824 {
00825      140,   142,   229,    74,    77,   296,   101,    56,   102,   121,
00826      103,   351,   352,   152,   128,   223,   -14,   147,   153,   190,
00827      190,    94,   104,    92,   223,   234,   148,   235,   224,   105,
00828      143,   225,   144,   365,   106,   129,   122,   224,   107,    57,
00829      225,    97,   191,   374,   269,   192,   192,   137,   138,   139,
00830       58,   236,    59,   271,   -58,   -58,    58,    80,    59,    81,
00831       60,   149,    61,    62,   215,    63,    60,    50,    61,    62,
00832      150,    63,   256,    67,   218,    68,    69,    70,   297,    94,
00833       68,    69,    70,    95,   216,    51,   174,   177,    90,   232,
00834      172,    69,    70,   164,   219,    71,    96,   165,   -24,    97,
00835       71,   175,    69,    70,   323,   364,   324,    91,   325,   324,
00836      173,   325,   329,   223,   -49,   161,    75,   199,    76,    69,
00837       70,   176,   264,   162,   326,   214,   224,   326,   217,   225,
00838       58,   200,    59,  -127,   130,   275,    31,   131,     2,     3,
00839       60,   186,    61,    62,     4,    63,     5,     6,     7,     8,
00840        9,   250,    10,   278,   279,   280,    58,   250,    59,   251,
00841      119,   195,   120,   196,   281,   375,    33,   302,   261,  -170,
00842      197,   263,   198,   179,   180,   306,   307,   208,   208,   209,
00843      272,   310,    36,   311,   318,   319,   312,   -75,   313,   321,
00844      322,   314,   316,   315,   317,   346,   208,   347,   348,   270,
00845       38,   270,    69,    70,    40,    98,    99,   134,   135,    42,
00846       46,   155,   156,   230,   231,   237,   238,   240,   241,    47,
00847       49,    52,    53,    54,    66,    78,    87,    55,    89,   125,
00848      126,    84,   100,   132,    88,   133,   158,   151,   159,   160,
00849      169,    85,   167,   170,   178,   189,   171,   163,   205,   207,
00850      181,   183,   -53,   212,   253,   213,   254,   233,   259,   260,
00851      262,   222,   242,   268,   244,   243,   245,   246,   300,   247,
00852      362,   265,   301,   248,   249,   266,   267,   252,   289,   276,
00853      344,   228,   194,   277,   290,   291,   292,   293,   298,   299,
00854      345,   305,   255,     0,   303,     0,   204,   304,   320,   308,
00855      334,   335,   309,     0,   330,   333,     0,     0,   336,   337,
00856      338,   339,   340,   341,   342,   343,     0,     0,   354,   349,
00857      355,   356,   357,   358,   359,   360,   361,   250,   366,   367,
00858      368,   369,   370,   371,   372,   373,     0,     0,     0,     0,
00859        0,     0,     0,    65,     0,     0,     0,     0,    86
00860 };
00861 
00862 static const yytype_int16 yycheck[] =
00863 {
00864       98,    99,   185,    51,    52,   250,     1,     1,     3,     5,
00865        5,   331,   332,    25,     3,     5,     3,    24,    30,     3,
00866        3,     3,    17,    71,     5,     3,    33,     5,    18,    24,
00867        1,    21,     3,   353,    29,    24,    32,    18,    33,    33,
00868       21,    23,    26,   363,    34,    29,    29,    95,    96,    97,
00869        3,    29,     5,    34,    25,    26,     3,     1,     5,     3,
00870       13,    24,    15,    16,     3,    18,    13,     1,    15,    16,
00871       33,    18,    25,     1,     3,     3,     4,     5,    25,     3,
00872        3,     4,     5,     7,    23,    19,   134,   135,     5,   187,
00873        3,     4,     5,     1,    23,    23,    20,     5,     3,    23,
00874       23,     3,     4,     5,     1,   350,     3,    24,     5,     3,
00875       23,     5,   295,     5,     3,    26,     1,     3,     3,     4,
00876        5,    23,   220,    34,    21,   173,    18,    21,   176,    21,
00877        3,    17,     5,    21,    21,   233,     3,    24,     0,     1,
00878       13,    29,    15,    16,     6,    18,     8,     9,    10,    11,
00879       12,    26,    14,    21,    22,    23,     3,    26,     5,    34,
00880       26,     3,    28,     5,    32,    34,     3,   265,   216,     3,
00881        3,   219,     5,    25,    26,   273,   274,    26,    26,    28,
00882       28,     3,     5,     5,   282,   283,     3,    27,     5,   287,
00883      288,     3,     3,     5,     5,    26,    26,    28,    28,   226,
00884        3,   228,     4,     5,     3,    21,    22,    21,    22,     3,
00885       19,    21,    22,    21,    22,    21,    22,    21,    22,     3,
00886       21,    19,    19,    19,    31,     5,     3,    27,    19,     5,
00887        3,    36,    24,     5,    27,     3,     3,    27,    19,     5,
00888        5,    36,    24,     5,     3,    30,    25,    36,    35,     5,
00889       25,    25,    21,    24,     5,    25,     5,    21,     5,     3,
00890        3,   180,    25,     5,    24,    26,    24,    24,     3,    24,
00891      346,    21,     3,    27,    27,    21,    21,   203,   243,    31,
00892      320,   184,   154,    31,    25,    25,    25,    25,    21,    25,
00893        5,    21,   210,    -1,    31,    -1,   161,    31,    26,    31,
00894       25,    25,    31,    -1,    31,    31,    -1,    -1,    31,    31,
00895       31,    31,    31,    31,    31,    31,    -1,    -1,    31,    33,
00896       31,    31,    31,    31,    31,    31,    31,    26,    25,    25,
00897       25,    25,    25,    25,    25,    25,    -1,    -1,    -1,    -1,
00898       -1,    -1,    -1,    47,    -1,    -1,    -1,    -1,    60
00899 };
00900 
00901 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
00902    symbol of state STATE-NUM.  */
00903 static const yytype_uint8 yystos[] =
00904 {
00905        0,    38,     0,     1,     6,     8,     9,    10,    11,    12,
00906       14,    39,    44,    53,    65,   110,   117,   131,    40,    45,
00907       54,    66,   111,   118,   132,    41,    42,    46,    47,    55,
00908       56,     3,    67,     3,   112,   119,     5,   133,     3,    43,
00909        3,    48,     3,    57,    68,    70,    19,     3,   120,    21,
00910        1,    19,    19,    19,    19,    27,     1,    33,     3,     5,
00911       13,    15,    16,    18,   127,   128,    31,     1,     3,     4,
00912        5,    23,    49,    52,   134,     1,     3,   134,     5,    69,
00913        1,     3,    62,   113,    36,    36,   127,     3,    27,    19,
00914        5,    24,   134,    50,     3,     7,    20,    23,    21,    22,
00915       24,     1,     3,     5,    17,    24,    29,    33,    72,    73,
00916       74,    75,    76,    77,    88,    91,    94,   100,   108,    26,
00917       28,     5,    32,   115,   116,     5,     3,   129,     3,    24,
00918       21,    24,     5,     3,    21,    22,    51,   134,   134,   134,
00919       49,   134,    49,     1,     3,    60,    61,    24,    33,    24,
00920       33,    27,    25,    30,    78,    21,    22,    95,     3,    19,
00921        5,    26,    34,    36,     1,     5,   130,    24,   121,     5,
00922        5,    25,     3,    23,   134,     3,    23,   134,     3,    25,
00923       26,    25,   102,    25,   101,   109,    29,    89,    90,    30,
00924        3,    26,    29,    79,    83,     3,     5,     3,     5,     3,
00925       17,    96,    97,    71,   116,    35,   114,     5,    26,    28,
00926      122,   123,    24,    25,   134,     3,    23,   134,     3,    23,
00927       58,    59,    61,     5,    18,    21,   103,   104,   103,   130,
00928       21,    22,    49,    21,     3,     5,    29,    21,    22,    80,
00929       21,    22,    25,    26,    24,    24,    24,    24,    27,    27,
00930       26,    34,    72,     5,     5,   123,    25,   124,   128,     5,
00931        3,   134,     3,   134,    49,    21,    21,    21,     5,    34,
00932      104,    34,    28,    93,    92,    49,    31,    31,    21,    22,
00933       23,    32,    86,    84,    81,    82,    83,    87,    85,    81,
00934       25,    25,    25,    25,    98,    99,    97,    25,    21,    25,
00935        3,     3,    49,    31,    31,    21,    49,    49,    31,    31,
00936        3,     5,     3,     5,     3,     5,     3,     5,    49,    49,
00937       26,    49,    49,     1,     3,     5,    21,    63,    64,   130,
00938       31,   105,   107,    31,    25,    25,    31,    31,    31,    31,
00939       31,    31,    31,    31,    82,     5,    26,    28,    28,    33,
00940      126,    96,    96,   106,    31,    31,    31,    31,    31,    31,
00941       31,    31,    64,   125,    97,    96,    25,    25,    25,    25,
00942       25,    25,    25,    25,    96,    34
00943 };
00944 
00945 #define yyerrok         (yyerrstatus = 0)
00946 #define yyclearin       (yychar = YYEMPTY)
00947 #define YYEMPTY         (-2)
00948 #define YYEOF           0
00949 
00950 #define YYACCEPT        goto yyacceptlab
00951 #define YYABORT         goto yyabortlab
00952 #define YYERROR         goto yyerrorlab
00953 
00954 
00955 /* Like YYERROR except do call yyerror.  This remains here temporarily
00956    to ease the transition to the new meaning of YYERROR, for GCC.
00957    Once GCC version 2 has supplanted version 1, this can go.  */
00958 
00959 #define YYFAIL          goto yyerrlab
00960 
00961 #define YYRECOVERING()  (!!yyerrstatus)
00962 
00963 #define YYBACKUP(Token, Value)                                  \
00964 do                                                              \
00965   if (yychar == YYEMPTY && yylen == 1)                          \
00966     {                                                           \
00967       yychar = (Token);                                         \
00968       yylval = (Value);                                         \
00969       yytoken = YYTRANSLATE (yychar);                           \
00970       YYPOPSTACK (1);                                           \
00971       goto yybackup;                                            \
00972     }                                                           \
00973   else                                                          \
00974     {                                                           \
00975       yyerror (YY_("syntax error: cannot back up")); \
00976       YYERROR;                                                  \
00977     }                                                           \
00978 while (YYID (0))
00979 
00980 
00981 #define YYTERROR        1
00982 #define YYERRCODE       256
00983 
00984 
00985 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
00986    If N is 0, then set CURRENT to the empty location which ends
00987    the previous symbol: RHS[0] (always defined).  */
00988 
00989 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
00990 #ifndef YYLLOC_DEFAULT
00991 # define YYLLOC_DEFAULT(Current, Rhs, N)                                \
00992     do                                                                  \
00993       if (YYID (N))                                                    \
00994         {                                                               \
00995           (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
00996           (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
00997           (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
00998           (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
00999         }                                                               \
01000       else                                                              \
01001         {                                                               \
01002           (Current).first_line   = (Current).last_line   =              \
01003             YYRHSLOC (Rhs, 0).last_line;                                \
01004           (Current).first_column = (Current).last_column =              \
01005             YYRHSLOC (Rhs, 0).last_column;                              \
01006         }                                                               \
01007     while (YYID (0))
01008 #endif
01009 
01010 
01011 /* YY_LOCATION_PRINT -- Print the location on the stream.
01012    This macro was not mandated originally: define only if we know
01013    we won't break user code: when these are the locations we know.  */
01014 
01015 #ifndef YY_LOCATION_PRINT
01016 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
01017 #  define YY_LOCATION_PRINT(File, Loc)                  \
01018      fprintf (File, "%d.%d-%d.%d",                      \
01019               (Loc).first_line, (Loc).first_column,     \
01020               (Loc).last_line,  (Loc).last_column)
01021 # else
01022 #  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
01023 # endif
01024 #endif
01025 
01026 
01027 /* YYLEX -- calling `yylex' with the right arguments.  */
01028 
01029 #ifdef YYLEX_PARAM
01030 # define YYLEX yylex (YYLEX_PARAM)
01031 #else
01032 # define YYLEX yylex ()
01033 #endif
01034 
01035 /* Enable debugging if requested.  */
01036 #if YYDEBUG
01037 
01038 # ifndef YYFPRINTF
01039 #  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
01040 #  define YYFPRINTF fprintf
01041 # endif
01042 
01043 # define YYDPRINTF(Args)                        \
01044 do {                                            \
01045   if (yydebug)                                  \
01046     YYFPRINTF Args;                             \
01047 } while (YYID (0))
01048 
01049 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)                    \
01050 do {                                                                      \
01051   if (yydebug)                                                            \
01052     {                                                                     \
01053       YYFPRINTF (stderr, "%s ", Title);                                   \
01054       yy_symbol_print (stderr,                                            \
01055                   Type, Value, Location); \
01056       YYFPRINTF (stderr, "\n");                                           \
01057     }                                                                     \
01058 } while (YYID (0))
01059 
01060 
01061 /*--------------------------------.
01062 | Print this symbol on YYOUTPUT.  |
01063 `--------------------------------*/
01064 
01065 /*ARGSUSED*/
01066 #if (defined __STDC__ || defined __C99__FUNC__ \
01067      || defined __cplusplus || defined _MSC_VER)
01068 static void
01069 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
01070 #else
01071 static void
01072 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
01073     FILE *yyoutput;
01074     int yytype;
01075     YYSTYPE const * const yyvaluep;
01076     YYLTYPE const * const yylocationp;
01077 #endif
01078 {
01079   if (!yyvaluep)
01080     return;
01081   YYUSE (yylocationp);
01082 # ifdef YYPRINT
01083   if (yytype < YYNTOKENS)
01084     YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
01085 # else
01086   YYUSE (yyoutput);
01087 # endif
01088   switch (yytype)
01089     {
01090       default:
01091         break;
01092     }
01093 }
01094 
01095 
01096 /*--------------------------------.
01097 | Print this symbol on YYOUTPUT.  |
01098 `--------------------------------*/
01099 
01100 #if (defined __STDC__ || defined __C99__FUNC__ \
01101      || defined __cplusplus || defined _MSC_VER)
01102 static void
01103 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp)
01104 #else
01105 static void
01106 yy_symbol_print (yyoutput, yytype, yyvaluep, yylocationp)
01107     FILE *yyoutput;
01108     int yytype;
01109     YYSTYPE const * const yyvaluep;
01110     YYLTYPE const * const yylocationp;
01111 #endif
01112 {
01113   if (yytype < YYNTOKENS)
01114     YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
01115   else
01116     YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
01117 
01118   YY_LOCATION_PRINT (yyoutput, *yylocationp);
01119   YYFPRINTF (yyoutput, ": ");
01120   yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp);
01121   YYFPRINTF (yyoutput, ")");
01122 }
01123 
01124 /*------------------------------------------------------------------.
01125 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
01126 | TOP (included).                                                   |
01127 `------------------------------------------------------------------*/
01128 
01129 #if (defined __STDC__ || defined __C99__FUNC__ \
01130      || defined __cplusplus || defined _MSC_VER)
01131 static void
01132 yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
01133 #else
01134 static void
01135 yy_stack_print (bottom, top)
01136     yytype_int16 *bottom;
01137     yytype_int16 *top;
01138 #endif
01139 {
01140   YYFPRINTF (stderr, "Stack now");
01141   for (; bottom <= top; ++bottom)
01142     YYFPRINTF (stderr, " %d", *bottom);
01143   YYFPRINTF (stderr, "\n");
01144 }
01145 
01146 # define YY_STACK_PRINT(Bottom, Top)                            \
01147 do {                                                            \
01148   if (yydebug)                                                  \
01149     yy_stack_print ((Bottom), (Top));                           \
01150 } while (YYID (0))
01151 
01152 
01153 /*------------------------------------------------.
01154 | Report that the YYRULE is going to be reduced.  |
01155 `------------------------------------------------*/
01156 
01157 #if (defined __STDC__ || defined __C99__FUNC__ \
01158      || defined __cplusplus || defined _MSC_VER)
01159 static void
01160 yy_reduce_print (YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule)
01161 #else
01162 static void
01163 yy_reduce_print (yyvsp, yylsp, yyrule)
01164     YYSTYPE *yyvsp;
01165     YYLTYPE *yylsp;
01166     int yyrule;
01167 #endif
01168 {
01169   int yynrhs = yyr2[yyrule];
01170   int yyi;
01171   unsigned long int yylno = yyrline[yyrule];
01172   YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
01173              yyrule - 1, yylno);
01174   /* The symbols being reduced.  */
01175   for (yyi = 0; yyi < yynrhs; yyi++)
01176     {
01177       fprintf (stderr, "   $%d = ", yyi + 1);
01178       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
01179                        &(yyvsp[(yyi + 1) - (yynrhs)])
01180                        , &(yylsp[(yyi + 1) - (yynrhs)])                );
01181       fprintf (stderr, "\n");
01182     }
01183 }
01184 
01185 # define YY_REDUCE_PRINT(Rule)          \
01186 do {                                    \
01187   if (yydebug)                          \
01188     yy_reduce_print (yyvsp, yylsp, Rule); \
01189 } while (YYID (0))
01190 
01191 /* Nonzero means print parse trace.  It is left uninitialized so that
01192    multiple parsers can coexist.  */
01193 int yydebug;
01194 #else /* !YYDEBUG */
01195 # define YYDPRINTF(Args)
01196 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
01197 # define YY_STACK_PRINT(Bottom, Top)
01198 # define YY_REDUCE_PRINT(Rule)
01199 #endif /* !YYDEBUG */
01200 
01201 
01202 /* YYINITDEPTH -- initial size of the parser's stacks.  */
01203 #ifndef YYINITDEPTH
01204 # define YYINITDEPTH 200
01205 #endif
01206 
01207 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
01208    if the built-in stack extension method is used).
01209 
01210    Do not make this value too large; the results are undefined if
01211    YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
01212    evaluated with infinite-precision integer arithmetic.  */
01213 
01214 #ifndef YYMAXDEPTH
01215 # define YYMAXDEPTH 10000
01216 #endif
01217 
01218 
01219 
01220 #if YYERROR_VERBOSE
01221 
01222 # ifndef yystrlen
01223 #  if defined __GLIBC__ && defined _STRING_H
01224 #   define yystrlen strlen
01225 #  else
01226 /* Return the length of YYSTR.  */
01227 #if (defined __STDC__ || defined __C99__FUNC__ \
01228      || defined __cplusplus || defined _MSC_VER)
01229 static YYSIZE_T
01230 yystrlen (const char *yystr)
01231 #else
01232 static YYSIZE_T
01233 yystrlen (yystr)
01234     const char *yystr;
01235 #endif
01236 {
01237   YYSIZE_T yylen;
01238   for (yylen = 0; yystr[yylen]; yylen++)
01239     continue;
01240   return yylen;
01241 }
01242 #  endif
01243 # endif
01244 
01245 # ifndef yystpcpy
01246 #  if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
01247 #   define yystpcpy stpcpy
01248 #  else
01249 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
01250    YYDEST.  */
01251 #if (defined __STDC__ || defined __C99__FUNC__ \
01252      || defined __cplusplus || defined _MSC_VER)
01253 static char *
01254 yystpcpy (char *yydest, const char *yysrc)
01255 #else
01256 static char *
01257 yystpcpy (yydest, yysrc)
01258     char *yydest;
01259     const char *yysrc;
01260 #endif
01261 {
01262   char *yyd = yydest;
01263   const char *yys = yysrc;
01264 
01265   while ((*yyd++ = *yys++) != '\0')
01266     continue;
01267 
01268   return yyd - 1;
01269 }
01270 #  endif
01271 # endif
01272 
01273 # ifndef yytnamerr
01274 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
01275    quotes and backslashes, so that it's suitable for yyerror.  The
01276    heuristic is that double-quoting is unnecessary unless the string
01277    contains an apostrophe, a comma, or backslash (other than
01278    backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
01279    null, do not copy; instead, return the length of what the result
01280    would have been.  */
01281 static YYSIZE_T
01282 yytnamerr (char *yyres, const char *yystr)
01283 {
01284   if (*yystr == '"')
01285     {
01286       YYSIZE_T yyn = 0;
01287       char const *yyp = yystr;
01288 
01289       for (;;)
01290         switch (*++yyp)
01291           {
01292           case '\'':
01293           case ',':
01294             goto do_not_strip_quotes;
01295 
01296           case '\\':
01297             if (*++yyp != '\\')
01298               goto do_not_strip_quotes;
01299             /* Fall through.  */
01300           default:
01301             if (yyres)
01302               yyres[yyn] = *yyp;
01303             yyn++;
01304             break;
01305 
01306           case '"':
01307             if (yyres)
01308               yyres[yyn] = '\0';
01309             return yyn;
01310           }
01311     do_not_strip_quotes: ;
01312     }
01313 
01314   if (! yyres)
01315     return yystrlen (yystr);
01316 
01317   return yystpcpy (yyres, yystr) - yyres;
01318 }
01319 # endif
01320 
01321 /* Copy into YYRESULT an error message about the unexpected token
01322    YYCHAR while in state YYSTATE.  Return the number of bytes copied,
01323    including the terminating null byte.  If YYRESULT is null, do not
01324    copy anything; just return the number of bytes that would be
01325    copied.  As a special case, return 0 if an ordinary "syntax error"
01326    message will do.  Return YYSIZE_MAXIMUM if overflow occurs during
01327    size calculation.  */
01328 static YYSIZE_T
01329 yysyntax_error (char *yyresult, int yystate, int yychar)
01330 {
01331   int yyn = yypact[yystate];
01332 
01333   if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
01334     return 0;
01335   else
01336     {
01337       int yytype = YYTRANSLATE (yychar);
01338       YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
01339       YYSIZE_T yysize = yysize0;
01340       YYSIZE_T yysize1;
01341       int yysize_overflow = 0;
01342       enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
01343       char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
01344       int yyx;
01345 
01346 # if 0
01347       /* This is so xgettext sees the translatable formats that are
01348          constructed on the fly.  */
01349       YY_("syntax error, unexpected %s");
01350       YY_("syntax error, unexpected %s, expecting %s");
01351       YY_("syntax error, unexpected %s, expecting %s or %s");
01352       YY_("syntax error, unexpected %s, expecting %s or %s or %s");
01353       YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
01354 # endif
01355       char *yyfmt;
01356       char const *yyf;
01357       static char const yyunexpected[] = "syntax error, unexpected %s";
01358       static char const yyexpecting[] = ", expecting %s";
01359       static char const yyor[] = " or %s";
01360       char yyformat[sizeof yyunexpected
01361                     + sizeof yyexpecting - 1
01362                     + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
01363                        * (sizeof yyor - 1))];
01364       char const *yyprefix = yyexpecting;
01365 
01366       /* Start YYX at -YYN if negative to avoid negative indexes in
01367          YYCHECK.  */
01368       int yyxbegin = yyn < 0 ? -yyn : 0;
01369 
01370       /* Stay within bounds of both yycheck and yytname.  */
01371       int yychecklim = YYLAST - yyn + 1;
01372       int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
01373       int yycount = 1;
01374 
01375       yyarg[0] = yytname[yytype];
01376       yyfmt = yystpcpy (yyformat, yyunexpected);
01377 
01378       for (yyx = yyxbegin; yyx < yyxend; ++yyx)
01379         if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
01380           {
01381             if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
01382               {
01383                 yycount = 1;
01384                 yysize = yysize0;
01385                 yyformat[sizeof yyunexpected - 1] = '\0';
01386                 break;
01387               }
01388             yyarg[yycount++] = yytname[yyx];
01389             yysize1 = yysize + yytnamerr (0, yytname[yyx]);
01390             yysize_overflow |= (yysize1 < yysize);
01391             yysize = yysize1;
01392             yyfmt = yystpcpy (yyfmt, yyprefix);
01393             yyprefix = yyor;
01394           }
01395 
01396       yyf = YY_(yyformat);
01397       yysize1 = yysize + yystrlen (yyf);
01398       yysize_overflow |= (yysize1 < yysize);
01399       yysize = yysize1;
01400 
01401       if (yysize_overflow)
01402         return YYSIZE_MAXIMUM;
01403 
01404       if (yyresult)
01405         {
01406           /* Avoid sprintf, as that infringes on the user's name space.
01407              Don't have undefined behavior even if the translation
01408              produced a string with the wrong number of "%s"s.  */
01409           char *yyp = yyresult;
01410           int yyi = 0;
01411           while ((*yyp = *yyf) != '\0')
01412             {
01413               if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
01414                 {
01415                   yyp += yytnamerr (yyp, yyarg[yyi++]);
01416                   yyf += 2;
01417                 }
01418               else
01419                 {
01420                   yyp++;
01421                   yyf++;
01422                 }
01423             }
01424         }
01425       return yysize;
01426     }
01427 }
01428 #endif /* YYERROR_VERBOSE */
01429 
01430 
01431 /*-----------------------------------------------.
01432 | Release the memory associated to this symbol.  |
01433 `-----------------------------------------------*/
01434 
01435 /*ARGSUSED*/
01436 #if (defined __STDC__ || defined __C99__FUNC__ \
01437      || defined __cplusplus || defined _MSC_VER)
01438 static void
01439 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
01440 #else
01441 static void
01442 yydestruct (yymsg, yytype, yyvaluep, yylocationp)
01443     const char *yymsg;
01444     int yytype;
01445     YYSTYPE *yyvaluep;
01446     YYLTYPE *yylocationp;
01447 #endif
01448 {
01449   YYUSE (yyvaluep);
01450   YYUSE (yylocationp);
01451 
01452   if (!yymsg)
01453     yymsg = "Deleting";
01454   YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
01455 
01456   switch (yytype)
01457     {
01458 
01459       default:
01460         break;
01461     }
01462 }
01463 
01464 
01465 /* Prevent warnings from -Wmissing-prototypes.  */
01466 
01467 #ifdef YYPARSE_PARAM
01468 #if defined __STDC__ || defined __cplusplus
01469 int yyparse (void *YYPARSE_PARAM);
01470 #else
01471 int yyparse ();
01472 #endif
01473 #else /* ! YYPARSE_PARAM */
01474 #if defined __STDC__ || defined __cplusplus
01475 int yyparse (void);
01476 #else
01477 int yyparse ();
01478 #endif
01479 #endif /* ! YYPARSE_PARAM */
01480 
01481 
01482 
01483 /* The look-ahead symbol.  */
01484 int yychar;
01485 
01486 /* The semantic value of the look-ahead symbol.  */
01487 YYSTYPE yylval;
01488 
01489 /* Number of syntax errors so far.  */
01490 int yynerrs;
01491 /* Location data for the look-ahead symbol.  */
01492 YYLTYPE yylloc;
01493 
01494 
01495 
01496 /*----------.
01497 | yyparse.  |
01498 `----------*/
01499 
01500 #ifdef YYPARSE_PARAM
01501 #if (defined __STDC__ || defined __C99__FUNC__ \
01502      || defined __cplusplus || defined _MSC_VER)
01503 int
01504 yyparse (void *YYPARSE_PARAM)
01505 #else
01506 int
01507 yyparse (YYPARSE_PARAM)
01508     void *YYPARSE_PARAM;
01509 #endif
01510 #else /* ! YYPARSE_PARAM */
01511 #if (defined __STDC__ || defined __C99__FUNC__ \
01512      || defined __cplusplus || defined _MSC_VER)
01513 int
01514 yyparse (void)
01515 #else
01516 int
01517 yyparse ()
01518 
01519 #endif
01520 #endif
01521 {
01522   
01523   int yystate;
01524   int yyn;
01525   int yyresult;
01526   /* Number of tokens to shift before error messages enabled.  */
01527   int yyerrstatus;
01528   /* Look-ahead token as an internal (translated) token number.  */
01529   int yytoken = 0;
01530 #if YYERROR_VERBOSE
01531   /* Buffer for error messages, and its allocated size.  */
01532   char yymsgbuf[128];
01533   char *yymsg = yymsgbuf;
01534   YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
01535 #endif
01536 
01537   /* Three stacks and their tools:
01538      `yyss': related to states,
01539      `yyvs': related to semantic values,
01540      `yyls': related to locations.
01541 
01542      Refer to the stacks thru separate pointers, to allow yyoverflow
01543      to reallocate them elsewhere.  */
01544 
01545   /* The state stack.  */
01546   yytype_int16 yyssa[YYINITDEPTH];
01547   yytype_int16 *yyss = yyssa;
01548   yytype_int16 *yyssp;
01549 
01550   /* The semantic value stack.  */
01551   YYSTYPE yyvsa[YYINITDEPTH];
01552   YYSTYPE *yyvs = yyvsa;
01553   YYSTYPE *yyvsp;
01554 
01555   /* The location stack.  */
01556   YYLTYPE yylsa[YYINITDEPTH];
01557   YYLTYPE *yyls = yylsa;
01558   YYLTYPE *yylsp;
01559   /* The locations where the error started and ended.  */
01560   YYLTYPE yyerror_range[2];
01561 
01562 #define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
01563 
01564   YYSIZE_T yystacksize = YYINITDEPTH;
01565 
01566   /* The variables used to return semantic value and location from the
01567      action routines.  */
01568   YYSTYPE yyval;
01569   YYLTYPE yyloc;
01570 
01571   /* The number of symbols on the RHS of the reduced rule.
01572      Keep to zero when no symbol should be popped.  */
01573   int yylen = 0;
01574 
01575   YYDPRINTF ((stderr, "Starting parse\n"));
01576 
01577   yystate = 0;
01578   yyerrstatus = 0;
01579   yynerrs = 0;
01580   yychar = YYEMPTY;             /* Cause a token to be read.  */
01581 
01582   /* Initialize stack pointers.
01583      Waste one element of value and location stack
01584      so that they stay on the same level as the state stack.
01585      The wasted elements are never initialized.  */
01586 
01587   yyssp = yyss;
01588   yyvsp = yyvs;
01589   yylsp = yyls;
01590 #if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
01591   /* Initialize the default location before parsing starts.  */
01592   yylloc.first_line   = yylloc.last_line   = 1;
01593   yylloc.first_column = yylloc.last_column = 0;
01594 #endif
01595 
01596   goto yysetstate;
01597 
01598 /*------------------------------------------------------------.
01599 | yynewstate -- Push a new state, which is found in yystate.  |
01600 `------------------------------------------------------------*/
01601  yynewstate:
01602   /* In all cases, when you get here, the value and location stacks
01603      have just been pushed.  So pushing a state here evens the stacks.  */
01604   yyssp++;
01605 
01606  yysetstate:
01607   *yyssp = yystate;
01608 
01609   if (yyss + yystacksize - 1 <= yyssp)
01610     {
01611       /* Get the current used size of the three stacks, in elements.  */
01612       YYSIZE_T yysize = yyssp - yyss + 1;
01613 
01614 #ifdef yyoverflow
01615       {
01616         /* Give user a chance to reallocate the stack.  Use copies of
01617            these so that the &'s don't force the real ones into
01618            memory.  */
01619         YYSTYPE *yyvs1 = yyvs;
01620         yytype_int16 *yyss1 = yyss;
01621         YYLTYPE *yyls1 = yyls;
01622 
01623         /* Each stack pointer address is followed by the size of the
01624            data in use in that stack, in bytes.  This used to be a
01625            conditional around just the two extra args, but that might
01626            be undefined if yyoverflow is a macro.  */
01627         yyoverflow (YY_("memory exhausted"),
01628                     &yyss1, yysize * sizeof (*yyssp),
01629                     &yyvs1, yysize * sizeof (*yyvsp),
01630                     &yyls1, yysize * sizeof (*yylsp),
01631                     &yystacksize);
01632         yyls = yyls1;
01633         yyss = yyss1;
01634         yyvs = yyvs1;
01635       }
01636 #else /* no yyoverflow */
01637 # ifndef YYSTACK_RELOCATE
01638       goto yyexhaustedlab;
01639 # else
01640       /* Extend the stack our own way.  */
01641       if (YYMAXDEPTH <= yystacksize)
01642         goto yyexhaustedlab;
01643       yystacksize *= 2;
01644       if (YYMAXDEPTH < yystacksize)
01645         yystacksize = YYMAXDEPTH;
01646 
01647       {
01648         yytype_int16 *yyss1 = yyss;
01649         union yyalloc *yyptr =
01650           (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
01651         if (! yyptr)
01652           goto yyexhaustedlab;
01653         YYSTACK_RELOCATE (yyss);
01654         YYSTACK_RELOCATE (yyvs);
01655         YYSTACK_RELOCATE (yyls);
01656 #  undef YYSTACK_RELOCATE
01657         if (yyss1 != yyssa)
01658           YYSTACK_FREE (yyss1);
01659       }
01660 # endif
01661 #endif /* no yyoverflow */
01662 
01663       yyssp = yyss + yysize - 1;
01664       yyvsp = yyvs + yysize - 1;
01665       yylsp = yyls + yysize - 1;
01666 
01667       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
01668                   (unsigned long int) yystacksize));
01669 
01670       if (yyss + yystacksize - 1 <= yyssp)
01671         YYABORT;
01672     }
01673 
01674   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
01675 
01676   goto yybackup;
01677 
01678 /*-----------.
01679 | yybackup.  |
01680 `-----------*/
01681 yybackup:
01682 
01683   /* Do appropriate processing given the current state.  Read a
01684      look-ahead token if we need one and don't already have one.  */
01685 
01686   /* First try to decide what to do without reference to look-ahead token.  */
01687   yyn = yypact[yystate];
01688   if (yyn == YYPACT_NINF)
01689     goto yydefault;
01690 
01691   /* Not known => get a look-ahead token if don't already have one.  */
01692 
01693   /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
01694   if (yychar == YYEMPTY)
01695     {
01696       YYDPRINTF ((stderr, "Reading a token: "));
01697       yychar = YYLEX;
01698     }
01699 
01700   if (yychar <= YYEOF)
01701     {
01702       yychar = yytoken = YYEOF;
01703       YYDPRINTF ((stderr, "Now at end of input.\n"));
01704     }
01705   else
01706     {
01707       yytoken = YYTRANSLATE (yychar);
01708       YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
01709     }
01710 
01711   /* If the proper action on seeing token YYTOKEN is to reduce or to
01712      detect an error, take that action.  */
01713   yyn += yytoken;
01714   if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
01715     goto yydefault;
01716   yyn = yytable[yyn];
01717   if (yyn <= 0)
01718     {
01719       if (yyn == 0 || yyn == YYTABLE_NINF)
01720         goto yyerrlab;
01721       yyn = -yyn;
01722       goto yyreduce;
01723     }
01724 
01725   if (yyn == YYFINAL)
01726     YYACCEPT;
01727 
01728   /* Count tokens shifted since error; after three, turn off error
01729      status.  */
01730   if (yyerrstatus)
01731     yyerrstatus--;
01732 
01733   /* Shift the look-ahead token.  */
01734   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
01735 
01736   /* Discard the shifted token unless it is eof.  */
01737   if (yychar != YYEOF)
01738     yychar = YYEMPTY;
01739 
01740   yystate = yyn;
01741   *++yyvsp = yylval;
01742   *++yylsp = yylloc;
01743   goto yynewstate;
01744 
01745 
01746 /*-----------------------------------------------------------.
01747 | yydefault -- do the default action for the current state.  |
01748 `-----------------------------------------------------------*/
01749 yydefault:
01750   yyn = yydefact[yystate];
01751   if (yyn == 0)
01752     goto yyerrlab;
01753   goto yyreduce;
01754 
01755 
01756 /*-----------------------------.
01757 | yyreduce -- Do a reduction.  |
01758 `-----------------------------*/
01759 yyreduce:
01760   /* yyn is the number of a rule to reduce with.  */
01761   yylen = yyr2[yyn];
01762 
01763   /* If YYLEN is nonzero, implement the default value of the action:
01764      `$$ = $1'.
01765 
01766      Otherwise, the following line sets YYVAL to garbage.
01767      This behavior is undocumented and Bison
01768      users should not rely upon it.  Assigning to YYVAL
01769      unconditionally makes the parser a bit smaller, and it avoids a
01770      GCC warning that YYVAL may be used uninitialized.  */
01771   yyval = yyvsp[1-yylen];
01772 
01773   /* Default location.  */
01774   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
01775   YY_REDUCE_PRINT (yyn);
01776   switch (yyn)
01777     {
01778         case 10:
01779 #line 106 "../mu32/mut.y"
01780     {  fatal_error(1,FEHLERZEILE); }
01781     break;
01782 
01783   case 14:
01784 #line 118 "../mu32/mut.y"
01785     { init_komplex_ton_list (); }
01786     break;
01787 
01788   case 16:
01789 #line 123 "../mu32/mut.y"
01790     { if ( fabs((yyvsp[(5) - (5)].f_value)) > 0.001 )
01791                          get_new_intervall ((yyvsp[(1) - (5)].identifier), (yyvsp[(3) - (5)].f_value) / (yyvsp[(5) - (5)].f_value));
01792                       else
01793                         fatal_error (46, mutC_STR((yyvsp[(1) - (5)].identifier)) ); }
01794     break;
01795 
01796   case 17:
01797 #line 129 "../mu32/mut.y"
01798     { if ( fabs ((yyvsp[(3) - (5)].f_value)) > 0.001 )
01799                           get_new_intervall ((yyvsp[(1) - (5)].identifier), pow ((yyvsp[(5) - (5)].f_value), 1 / (yyvsp[(3) - (5)].f_value)));
01800                       else
01801                         fatal_error (46, mutC_STR((yyvsp[(1) - (5)].identifier))); }
01802     break;
01803 
01804   case 18:
01805 #line 138 "../mu32/mut.y"
01806     { get_new_intervall_komplex ((yyvsp[(1) - (3)].identifier)); }
01807     break;
01808 
01809   case 19:
01810 #line 139 "../mu32/mut.y"
01811     { fatal_error(71, mutC_STR((yyvsp[(1) - (3)].identifier))); }
01812     break;
01813 
01814   case 20:
01815 #line 140 "../mu32/mut.y"
01816     { fatal_error(70,"'='",FEHLERZEILE); }
01817     break;
01818 
01819   case 24:
01820 #line 152 "../mu32/mut.y"
01821     { init_komplex_ton_list (); }
01822     break;
01823 
01824   case 26:
01825 #line 157 "../mu32/mut.y"
01826     { get_new_ton_absolut ((yyvsp[(1) - (3)].identifier), (yyvsp[(3) - (3)].f_value)); }
01827     break;
01828 
01829   case 27:
01830 #line 161 "../mu32/mut.y"
01831     { get_new_ton_komplex_negative ((yyvsp[(1) - (5)].identifier), (yyvsp[(3) - (5)].identifier)); }
01832     break;
01833 
01834   case 28:
01835 #line 165 "../mu32/mut.y"
01836     { get_new_ton_komplex_positive ((yyvsp[(1) - (3)].identifier), (yyvsp[(3) - (3)].identifier)); }
01837     break;
01838 
01839   case 29:
01840 #line 169 "../mu32/mut.y"
01841     { get_new_ton_komplex_positive ((yyvsp[(1) - (5)].identifier), (yyvsp[(3) - (5)].identifier)); }
01842     break;
01843 
01844   case 30:
01845 #line 171 "../mu32/mut.y"
01846     { fatal_error( 72, mutC_STR((yyvsp[(1) - (3)].identifier)) ); }
01847     break;
01848 
01849   case 34:
01850 #line 185 "../mu32/mut.y"
01851     { get_new_faktor_anteil ( (double) 1, (yyvsp[(2) - (2)].identifier)); }
01852     break;
01853 
01854   case 35:
01855 #line 188 "../mu32/mut.y"
01856     { get_new_faktor_anteil ( (double) -1, (yyvsp[(2) - (2)].identifier)); }
01857     break;
01858 
01859   case 36:
01860 #line 191 "../mu32/mut.y"
01861     { get_new_faktor_anteil ( (yyvsp[(2) - (3)].f_value), (yyvsp[(3) - (3)].identifier)); }
01862     break;
01863 
01864   case 37:
01865 #line 194 "../mu32/mut.y"
01866     { get_new_faktor_anteil ( -((yyvsp[(2) - (3)].f_value)), (yyvsp[(3) - (3)].identifier)); }
01867     break;
01868 
01869   case 38:
01870 #line 197 "../mu32/mut.y"
01871     { if ( fabs((yyvsp[(3) - (4)].f_value)) > 0.001 )
01872                        get_new_faktor_anteil ( (double) 1 / ((yyvsp[(3) - (4)].f_value)), (yyvsp[(4) - (4)].identifier));
01873                      else
01874                        fatal_error(53, FEHLERZEILE);  }
01875     break;
01876 
01877   case 39:
01878 #line 203 "../mu32/mut.y"
01879     { if ( fabs((yyvsp[(3) - (4)].f_value)) > 0.001 )
01880                        get_new_faktor_anteil ( (double) -1 / ((yyvsp[(3) - (4)].f_value)), (yyvsp[(4) - (4)].identifier));
01881                      else
01882                        fatal_error(53, FEHLERZEILE);  }
01883     break;
01884 
01885   case 40:
01886 #line 209 "../mu32/mut.y"
01887     { if ( fabs((yyvsp[(4) - (5)].f_value)) > 0.001 )
01888                        get_new_faktor_anteil ( ((yyvsp[(2) - (5)].f_value)) / ((yyvsp[(4) - (5)].f_value)), (yyvsp[(5) - (5)].identifier));
01889                      else
01890                        fatal_error(53, FEHLERZEILE);  }
01891     break;
01892 
01893   case 41:
01894 #line 215 "../mu32/mut.y"
01895     { if ( fabs((yyvsp[(4) - (5)].f_value)) > 0.001 )
01896                        get_new_faktor_anteil ( -((yyvsp[(2) - (5)].f_value)) / ((yyvsp[(4) - (5)].f_value)), (yyvsp[(5) - (5)].identifier));
01897                      else
01898                        fatal_error(53, FEHLERZEILE);  }
01899     break;
01900 
01901   case 42:
01902 #line 236 "../mu32/mut.y"
01903     { get_new_faktor_anteil ( (double) 1.0 , (yyvsp[(1) - (1)].identifier)); }
01904     break;
01905 
01906   case 43:
01907 #line 244 "../mu32/mut.y"
01908     { get_new_faktor_anteil ( (yyvsp[(1) - (2)].f_value), (yyvsp[(2) - (2)].identifier)); }
01909     break;
01910 
01911   case 44:
01912 #line 247 "../mu32/mut.y"
01913     { if ( fabs((yyvsp[(2) - (3)].f_value)) > 0.001 )
01914                        get_new_faktor_anteil ( (double) 1 / ((yyvsp[(2) - (3)].f_value)), (yyvsp[(3) - (3)].identifier));
01915                      else
01916                        fatal_error(53, FEHLERZEILE);  }
01917     break;
01918 
01919   case 45:
01920 #line 253 "../mu32/mut.y"
01921     { if ( fabs((yyvsp[(3) - (4)].f_value)) > 0.001 )
01922                        get_new_faktor_anteil ( ((yyvsp[(1) - (4)].f_value)) / ((yyvsp[(3) - (4)].f_value)), (yyvsp[(4) - (4)].identifier));
01923                      else
01924                        fatal_error(53, FEHLERZEILE);  }
01925     break;
01926 
01927   case 49:
01928 #line 286 "../mu32/mut.y"
01929     { init_ton_liste (); }
01930     break;
01931 
01932   case 51:
01933 #line 291 "../mu32/mut.y"
01934     { init_komplex_ton_list (); }
01935     break;
01936 
01937   case 52:
01938 #line 293 "../mu32/mut.y"
01939     { get_new_tonsystem ((yyvsp[(1) - (8)].identifier), (yyvsp[(3) - (8)].integer)); }
01940     break;
01941 
01942   case 53:
01943 #line 295 "../mu32/mut.y"
01944     { init_komplex_ton_list (); }
01945     break;
01946 
01947   case 54:
01948 #line 297 "../mu32/mut.y"
01949     { get_new_tonsystem_negative ((yyvsp[(1) - (9)].identifier), (yyvsp[(3) - (9)].integer)); }
01950     break;
01951 
01952   case 57:
01953 #line 303 "../mu32/mut.y"
01954     { get_new_ton_in_tonsystem ((yyvsp[(1) - (1)].identifier)); }
01955     break;
01956 
01957   case 58:
01958 #line 304 "../mu32/mut.y"
01959     { get_new_ton_in_tonsystem (NULL); }
01960     break;
01961 
01962   case 59:
01963 #line 305 "../mu32/mut.y"
01964     { fatal_error(73,FEHLERZEILE); }
01965     break;
01966 
01967   case 60:
01968 #line 309 "../mu32/mut.y"
01969     { get_new_name_in_parameterlist ((yyvsp[(1) - (1)].identifier)); }
01970     break;
01971 
01972   case 61:
01973 #line 311 "../mu32/mut.y"
01974     { get_new_name_in_parameterlist ((yyvsp[(3) - (3)].identifier)); }
01975     break;
01976 
01977   case 62:
01978 #line 312 "../mu32/mut.y"
01979     { fatal_error(74,FEHLERZEILE); }
01980     break;
01981 
01982   case 63:
01983 #line 317 "../mu32/mut.y"
01984     {}
01985     break;
01986 
01987   case 64:
01988 #line 318 "../mu32/mut.y"
01989     {}
01990     break;
01991 
01992   case 65:
01993 #line 319 "../mu32/mut.y"
01994     { fatal_error(74,FEHLERZEILE); }
01995     break;
01996 
01997   case 66:
01998 #line 324 "../mu32/mut.y"
01999     { get_new_name_in_argument_list ((yyvsp[(1) - (1)].identifier)) ;  }
02000     break;
02001 
02002   case 67:
02003 #line 325 "../mu32/mut.y"
02004     { get_new_number_in_argument_list ((yyvsp[(1) - (1)].integer)) ;  }
02005     break;
02006 
02007   case 68:
02008 #line 326 "../mu32/mut.y"
02009     { get_new_number_in_argument_list (-((yyvsp[(2) - (2)].integer))); }
02010     break;
02011 
02012   case 72:
02013 #line 341 "../mu32/mut.y"
02014     { init_umstimmung ((yyvsp[(1) - (1)].identifier));
02015                       init_parameter_liste (); }
02016     break;
02017 
02018   case 73:
02019 #line 343 "../mu32/mut.y"
02020     { eintrage_parameterliste_in_umstimmung (); }
02021     break;
02022 
02023   case 74:
02024 #line 345 "../mu32/mut.y"
02025     { get_new_umstimmung (); }
02026     break;
02027 
02028   case 75:
02029 #line 348 "../mu32/mut.y"
02030     { init_umstimmung ((yyvsp[(1) - (1)].identifier));
02031                       init_parameter_liste (); }
02032     break;
02033 
02034   case 76:
02035 #line 351 "../mu32/mut.y"
02036     { eintrage_parameterliste_in_umstimmung (); }
02037     break;
02038 
02039   case 77:
02040 #line 353 "../mu32/mut.y"
02041     { get_new_umstimmung (); }
02042     break;
02043 
02044   case 78:
02045 #line 357 "../mu32/mut.y"
02046     {}
02047     break;
02048 
02049   case 79:
02050 #line 358 "../mu32/mut.y"
02051     {}
02052     break;
02053 
02054   case 80:
02055 #line 359 "../mu32/mut.y"
02056     {}
02057     break;
02058 
02059   case 81:
02060 #line 360 "../mu32/mut.y"
02061     {}
02062     break;
02063 
02064   case 82:
02065 #line 361 "../mu32/mut.y"
02066     {}
02067     break;
02068 
02069   case 83:
02070 #line 362 "../mu32/mut.y"
02071     {}
02072     break;
02073 
02074   case 84:
02075 #line 363 "../mu32/mut.y"
02076     {}
02077     break;
02078 
02079   case 85:
02080 #line 364 "../mu32/mut.y"
02081     {}
02082     break;
02083 
02084   case 86:
02085 #line 365 "../mu32/mut.y"
02086     {}
02087     break;
02088 
02089   case 87:
02090 #line 366 "../mu32/mut.y"
02091     {}
02092     break;
02093 
02094   case 88:
02095 #line 367 "../mu32/mut.y"
02096     {fatal_error(75,FEHLERZEILE);}
02097     break;
02098 
02099   case 89:
02100 #line 373 "../mu32/mut.y"
02101     { get_umstimmung_taste_abs (zahl, (yyvsp[(1) - (3)].integer), NULL); }
02102     break;
02103 
02104   case 90:
02105 #line 375 "../mu32/mut.y"
02106     { get_umstimmung_taste_abs (parameter, 0.0, (yyvsp[(1) - (3)].identifier)); }
02107     break;
02108 
02109   case 91:
02110 #line 380 "../mu32/mut.y"
02111     { get_umstimmung_taste_rel (zahl, (yyvsp[(3) - (5)].integer), NULL, '+'); }
02112     break;
02113 
02114   case 92:
02115 #line 382 "../mu32/mut.y"
02116     { get_umstimmung_taste_rel (parameter, 0.0, (yyvsp[(3) - (5)].identifier), '+'); }
02117     break;
02118 
02119   case 93:
02120 #line 384 "../mu32/mut.y"
02121     { get_umstimmung_taste_rel (zahl, (yyvsp[(3) - (5)].integer), NULL, '-'); }
02122     break;
02123 
02124   case 94:
02125 #line 386 "../mu32/mut.y"
02126     { get_umstimmung_taste_rel (parameter, 0.0, (yyvsp[(3) - (5)].identifier), '-'); }
02127     break;
02128 
02129   case 95:
02130 #line 391 "../mu32/mut.y"
02131     { get_umstimmung_breite_abs (zahl, (yyvsp[(4) - (7)].integer), NULL); }
02132     break;
02133 
02134   case 96:
02135 #line 393 "../mu32/mut.y"
02136     { get_umstimmung_breite_abs (parameter, 0.0, (yyvsp[(4) - (7)].identifier)); }
02137     break;
02138 
02139   case 97:
02140 #line 398 "../mu32/mut.y"
02141     { get_umstimmung_breite_rel (zahl, (yyvsp[(6) - (9)].integer), NULL, '+'); }
02142     break;
02143 
02144   case 98:
02145 #line 400 "../mu32/mut.y"
02146     { get_umstimmung_breite_rel (parameter, 0.0, (yyvsp[(6) - (9)].identifier), '+'); }
02147     break;
02148 
02149   case 99:
02150 #line 402 "../mu32/mut.y"
02151     { get_umstimmung_breite_rel (zahl, (yyvsp[(6) - (9)].integer), NULL, '-'); }
02152     break;
02153 
02154   case 100:
02155 #line 404 "../mu32/mut.y"
02156     { get_umstimmung_breite_rel (parameter, 0.0, (yyvsp[(6) - (9)].identifier), '-'); }
02157     break;
02158 
02159   case 101:
02160 #line 406 "../mu32/mut.y"
02161     { get_umstimmung_breite_rel (zahl, (yyvsp[(6) - (9)].integer), NULL, '*'); }
02162     break;
02163 
02164   case 102:
02165 #line 408 "../mu32/mut.y"
02166     { get_umstimmung_breite_rel (parameter, 0.0, (yyvsp[(6) - (9)].identifier), '*'); }
02167     break;
02168 
02169   case 103:
02170 #line 410 "../mu32/mut.y"
02171     { get_umstimmung_breite_rel (zahl, (yyvsp[(6) - (9)].integer), NULL, '/'); }
02172     break;
02173 
02174   case 104:
02175 #line 412 "../mu32/mut.y"
02176     { get_umstimmung_breite_rel (parameter, 0.0, (yyvsp[(6) - (9)].identifier), '/'); }
02177     break;
02178 
02179   case 105:
02180 #line 417 "../mu32/mut.y"
02181     { init_umstimm_expression_list (); }
02182     break;
02183 
02184   case 106:
02185 #line 419 "../mu32/mut.y"
02186     { get_umstimmung_tonhoehe_veraendert (); }
02187     break;
02188 
02189   case 107:
02190 #line 426 "../mu32/mut.y"
02191     {}
02192     break;
02193 
02194   case 108:
02195 #line 427 "../mu32/mut.y"
02196     {}
02197     break;
02198 
02199   case 109:
02200 #line 429 "../mu32/mut.y"
02201     { init_komplex_ton_list();
02202                      get_new_umstimm_expression (NULL);
02203                    }
02204     break;
02205 
02206   case 110:
02207 #line 432 "../mu32/mut.y"
02208     {}
02209     break;
02210 
02211   case 111:
02212 #line 436 "../mu32/mut.y"
02213     {}
02214     break;
02215 
02216   case 112:
02217 #line 437 "../mu32/mut.y"
02218     {}
02219     break;
02220 
02221   case 113:
02222 #line 442 "../mu32/mut.y"
02223     { init_komplex_ton_list();
02224                      get_new_umstimm_expression (NULL);
02225                    }
02226     break;
02227 
02228   case 115:
02229 #line 450 "../mu32/mut.y"
02230     { get_new_umstimm_expression ((yyvsp[(1) - (1)].identifier)); }
02231     break;
02232 
02233   case 116:
02234 #line 451 "../mu32/mut.y"
02235     { get_new_umstimm_expression ("@"); }
02236     break;
02237 
02238   case 117:
02239 #line 453 "../mu32/mut.y"
02240     { init_komplex_ton_list (); }
02241     break;
02242 
02243   case 118:
02244 #line 455 "../mu32/mut.y"
02245     { get_new_umstimm_expression_positive ((yyvsp[(1) - (4)].identifier)); }
02246     break;
02247 
02248   case 119:
02249 #line 456 "../mu32/mut.y"
02250     { init_komplex_ton_list (); }
02251     break;
02252 
02253   case 120:
02254 #line 458 "../mu32/mut.y"
02255     { get_new_umstimm_expression_positive ( "@" ); }
02256     break;
02257 
02258   case 121:
02259 #line 459 "../mu32/mut.y"
02260     { init_komplex_ton_list (); }
02261     break;
02262 
02263   case 122:
02264 #line 461 "../mu32/mut.y"
02265     { get_new_umstimm_expression_negative ((yyvsp[(1) - (4)].identifier)); }
02266     break;
02267 
02268   case 123:
02269 #line 462 "../mu32/mut.y"
02270     { init_komplex_ton_list (); }
02271     break;
02272 
02273   case 124:
02274 #line 464 "../mu32/mut.y"
02275     { get_new_umstimm_expression_negative ( "@" ); }
02276     break;
02277 
02278   case 125:
02279 #line 469 "../mu32/mut.y"
02280     { init_komplex_ton_list (); }
02281     break;
02282 
02283   case 126:
02284 #line 471 "../mu32/mut.y"
02285     { get_umstimmung_wiederholung_abs (); }
02286     break;
02287 
02288   case 127:
02289 #line 472 "../mu32/mut.y"
02290     { init_komplex_ton_list (); }
02291     break;
02292 
02293   case 128:
02294 #line 474 "../mu32/mut.y"
02295     { get_umstimmung_wiederholung_abs_negative (); }
02296     break;
02297 
02298   case 129:
02299 #line 478 "../mu32/mut.y"
02300     { init_komplex_ton_list (); }
02301     break;
02302 
02303   case 130:
02304 #line 480 "../mu32/mut.y"
02305     { get_umstimmung_wiederholung_rel_positive (); }
02306     break;
02307 
02308   case 131:
02309 #line 481 "../mu32/mut.y"
02310     { init_komplex_ton_list (); }
02311     break;
02312 
02313   case 132:
02314 #line 483 "../mu32/mut.y"
02315     { get_umstimmung_wiederholung_rel_negative (); }
02316     break;
02317 
02318   case 133:
02319 #line 487 "../mu32/mut.y"
02320     { init_aktions_liste (); }
02321     break;
02322 
02323   case 134:
02324 #line 489 "../mu32/mut.y"
02325     { get_umstimmung_umstimmungs_bund (); }
02326     break;
02327 
02328   case 135:
02329 #line 493 "../mu32/mut.y"
02330     {}
02331     break;
02332 
02333   case 136:
02334 #line 494 "../mu32/mut.y"
02335     {}
02336     break;
02337 
02338   case 137:
02339 #line 498 "../mu32/mut.y"
02340     { init_argument_liste (); 
02341                        get_new_aktion_aufruf_element ((yyvsp[(1) - (1)].identifier)); }
02342     break;
02343 
02344   case 138:
02345 #line 500 "../mu32/mut.y"
02346     { init_argument_liste (); }
02347     break;
02348 
02349   case 139:
02350 #line 502 "../mu32/mut.y"
02351     { get_new_aktion_aufruf_element ((yyvsp[(1) - (5)].identifier)); }
02352     break;
02353 
02354   case 140:
02355 #line 504 "../mu32/mut.y"
02356     { init_integersequenz ();}
02357     break;
02358 
02359   case 141:
02360 #line 506 "../mu32/mut.y"
02361     { get_new_aktion_midi_out_element (); }
02362     break;
02363 
02364   case 142:
02365 #line 510 "../mu32/mut.y"
02366     { init_umstimmungs_case_liste (); }
02367     break;
02368 
02369   case 143:
02370 #line 512 "../mu32/mut.y"
02371     { get_umstimmung_umstimm_case_zahl ((yyvsp[(1) - (5)].integer)); }
02372     break;
02373 
02374   case 144:
02375 #line 513 "../mu32/mut.y"
02376     { init_umstimmungs_case_liste (); }
02377     break;
02378 
02379   case 145:
02380 #line 515 "../mu32/mut.y"
02381     { get_umstimmung_umstimm_case_parameter ((yyvsp[(1) - (5)].identifier)); }
02382     break;
02383 
02384   case 146:
02385 #line 519 "../mu32/mut.y"
02386     {}
02387     break;
02388 
02389   case 147:
02390 #line 520 "../mu32/mut.y"
02391     {}
02392     break;
02393 
02394   case 148:
02395 #line 525 "../mu32/mut.y"
02396     { init_aktions_liste (); }
02397     break;
02398 
02399   case 149:
02400 #line 527 "../mu32/mut.y"
02401     { get_umstimmungs_case_zahl_element ((yyvsp[(1) - (5)].integer)); }
02402     break;
02403 
02404   case 150:
02405 #line 529 "../mu32/mut.y"
02406     { init_aktions_liste (); }
02407     break;
02408 
02409   case 151:
02410 #line 531 "../mu32/mut.y"
02411     { get_umstimmungs_case_zahl_element (-((yyvsp[(2) - (6)].integer))); }
02412     break;
02413 
02414   case 152:
02415 #line 533 "../mu32/mut.y"
02416     { init_aktions_liste (); }
02417     break;
02418 
02419   case 153:
02420 #line 535 "../mu32/mut.y"
02421     { get_umstimmungs_case_default_element (); }
02422     break;
02423 
02424   case 154:
02425 #line 540 "../mu32/mut.y"
02426     { init_integersequenz ();}
02427     break;
02428 
02429   case 155:
02430 #line 542 "../mu32/mut.y"
02431     { get_umstimmung_midi_out (); }
02432     break;
02433 
02434   case 156:
02435 #line 547 "../mu32/mut.y"
02436     {}
02437     break;
02438 
02439   case 157:
02440 #line 551 "../mu32/mut.y"
02441     {}
02442     break;
02443 
02444   case 158:
02445 #line 552 "../mu32/mut.y"
02446     {}
02447     break;
02448 
02449   case 159:
02450 #line 557 "../mu32/mut.y"
02451     { init_tastenliste (); }
02452     break;
02453 
02454   case 160:
02455 #line 559 "../mu32/mut.y"
02456     { get_new_harmonie ((yyvsp[(1) - (7)].identifier), (yyvsp[(7) - (7)].integer)); }
02457     break;
02458 
02459   case 161:
02460 #line 561 "../mu32/mut.y"
02461     { fatal_error(76, mutC_STR((yyvsp[(1) - (3)].identifier))); }
02462     break;
02463 
02464   case 162:
02465 #line 565 "../mu32/mut.y"
02466     { (yyval.integer) = -1; }
02467     break;
02468 
02469   case 163:
02470 #line 566 "../mu32/mut.y"
02471     { (yyval.integer) = (yyvsp[(2) - (2)].integer); }
02472     break;
02473 
02474   case 164:
02475 #line 570 "../mu32/mut.y"
02476     {}
02477     break;
02478 
02479   case 165:
02480 #line 571 "../mu32/mut.y"
02481     {}
02482     break;
02483 
02484   case 166:
02485 #line 575 "../mu32/mut.y"
02486     { get_new_taste ( (yyvsp[(1) - (1)].integer), '+'); }
02487     break;
02488 
02489   case 167:
02490 #line 576 "../mu32/mut.y"
02491     { get_new_taste ( (yyvsp[(2) - (2)].integer), '*'); }
02492     break;
02493 
02494   case 168:
02495 #line 580 "../mu32/mut.y"
02496     {}
02497     break;
02498 
02499   case 169:
02500 #line 584 "../mu32/mut.y"
02501     {}
02502     break;
02503 
02504   case 170:
02505 #line 585 "../mu32/mut.y"
02506     { init_ausloeser ();
02507                          /* fr die Anfangsausloesung der Logik */
02508                        }
02509     break;
02510 
02511   case 171:
02512 #line 588 "../mu32/mut.y"
02513     {}
02514     break;
02515 
02516   case 172:
02517 #line 593 "../mu32/mut.y"
02518     { get_new_logik ((yyvsp[(1) - (4)].identifier), NULL);
02519                 init_anweisungs_liste (); }
02520     break;
02521 
02522   case 173:
02523 #line 596 "../mu32/mut.y"
02524     { vervollstaendige_logik (); }
02525     break;
02526 
02527   case 174:
02528 #line 598 "../mu32/mut.y"
02529     { get_new_logik ((yyvsp[(1) - (5)].identifier), (yyvsp[(4) - (5)].identifier));
02530                 init_anweisungs_liste (); }
02531     break;
02532 
02533   case 175:
02534 #line 601 "../mu32/mut.y"
02535     { vervollstaendige_logik (); }
02536     break;
02537 
02538   case 176:
02539 #line 605 "../mu32/mut.y"
02540     {}
02541     break;
02542 
02543   case 177:
02544 #line 606 "../mu32/mut.y"
02545     {}
02546     break;
02547 
02548   case 178:
02549 #line 611 "../mu32/mut.y"
02550     { init_aktions_liste (); }
02551     break;
02552 
02553   case 179:
02554 #line 613 "../mu32/mut.y"
02555     { get_new_anweisung (); }
02556     break;
02557 
02558   case 180:
02559 #line 615 "../mu32/mut.y"
02560     { init_aktions_liste (); }
02561     break;
02562 
02563   case 181:
02564 #line 617 "../mu32/mut.y"
02565     { get_new_anweisung (); }
02566     break;
02567 
02568   case 182:
02569 #line 622 "../mu32/mut.y"
02570     { get_harmoniebezeichner (  (yyvsp[(1) - (5)].integer), (yyvsp[(3) - (5)].identifier),  (yyvsp[(5) - (5)].integer)); }
02571     break;
02572 
02573   case 183:
02574 #line 624 "../mu32/mut.y"
02575     { get_harmoniebezeichner (-1, (yyvsp[(1) - (3)].identifier),  (yyvsp[(3) - (3)].integer)); }
02576     break;
02577 
02578   case 184:
02579 #line 626 "../mu32/mut.y"
02580     { get_harmoniebezeichner (  (yyvsp[(1) - (3)].integer), (yyvsp[(3) - (3)].identifier), -1); }
02581     break;
02582 
02583   case 185:
02584 #line 628 "../mu32/mut.y"
02585     { get_harmoniebezeichner (-1, (yyvsp[(1) - (1)].identifier), -1); }
02586     break;
02587 
02588   case 186:
02589 #line 632 "../mu32/mut.y"
02590     { get_ausloeser_default (); }
02591     break;
02592 
02593   case 187:
02594 #line 633 "../mu32/mut.y"
02595     { get_ausloeser_harmonie (); }
02596     break;
02597 
02598   case 188:
02599 #line 634 "../mu32/mut.y"
02600     { get_ausloeser_harmonie_form (); }
02601     break;
02602 
02603   case 189:
02604 #line 635 "../mu32/mut.y"
02605     { get_ausloeser_taste ((yyvsp[(2) - (2)].identifier)); }
02606     break;
02607 
02608   case 190:
02609 #line 636 "../mu32/mut.y"
02610     { init_integersequenz (); }
02611     break;
02612 
02613   case 191:
02614 #line 638 "../mu32/mut.y"
02615     { get_ausloeser_midi_in (); }
02616     break;
02617 
02618   case 192:
02619 #line 643 "../mu32/mut.y"
02620     { get_new_integer_in_integersequenz ((yyvsp[(1) - (1)].integer));}
02621     break;
02622 
02623   case 193:
02624 #line 645 "../mu32/mut.y"
02625     { get_new_integer_in_integersequenz ((yyvsp[(3) - (3)].integer));}
02626     break;
02627 
02628   case 194:
02629 #line 646 "../mu32/mut.y"
02630     { fatal_error( 77, FEHLERZEILE ); }
02631     break;
02632 
02633   case 195:
02634 #line 651 "../mu32/mut.y"
02635     {}
02636     break;
02637 
02638   case 196:
02639 #line 655 "../mu32/mut.y"
02640     {}
02641     break;
02642 
02643   case 197:
02644 #line 656 "../mu32/mut.y"
02645     {}
02646     break;
02647 
02648   case 198:
02649 #line 661 "../mu32/mut.y"
02650     { get_instrument_dekl ((yyvsp[(1) - (4)].integer), (yyvsp[(4) - (4)].integer), (yyvsp[(4) - (4)].integer), 0, & list_of_instrumente); }
02651     break;
02652 
02653   case 199:
02654 #line 663 "../mu32/mut.y"
02655     { get_instrument_dekl ((yyvsp[(1) - (6)].integer), (yyvsp[(4) - (6)].integer), (yyvsp[(6) - (6)].integer), 0, & list_of_instrumente); }
02656     break;
02657 
02658   case 200:
02659 #line 665 "../mu32/mut.y"
02660     { get_instrument_dekl ((yyvsp[(1) - (6)].integer), 0, 0, (yyvsp[(5) - (6)].integer), & list_of_instrumente); }
02661     break;
02662 
02663   case 201:
02664 #line 667 "../mu32/mut.y"
02665     { get_instrument_dekl ((yyvsp[(1) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(4) - (7)].integer), (yyvsp[(6) - (7)].integer), & list_of_instrumente); }
02666     break;
02667 
02668   case 202:
02669 #line 669 "../mu32/mut.y"
02670     { get_instrument_dekl ((yyvsp[(1) - (9)].integer), (yyvsp[(4) - (9)].integer), (yyvsp[(6) - (9)].integer), (yyvsp[(8) - (9)].integer), & list_of_instrumente); }
02671     break;
02672 
02673   case 203:
02674 #line 673 "../mu32/mut.y"
02675     { (yyval.f_value) = (yyvsp[(1) - (1)].f_value) ; }
02676     break;
02677 
02678   case 204:
02679 #line 674 "../mu32/mut.y"
02680     { (yyval.f_value) = (double) (yyvsp[(1) - (1)].integer) ; }
02681     break;
02682 
02683 
02684 /* Line 1267 of yacc.c.  */
02685 #line 2686 "y.tab.c"
02686       default: break;
02687     }
02688   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
02689 
02690   YYPOPSTACK (yylen);
02691   yylen = 0;
02692   YY_STACK_PRINT (yyss, yyssp);
02693 
02694   *++yyvsp = yyval;
02695   *++yylsp = yyloc;
02696 
02697   /* Now `shift' the result of the reduction.  Determine what state
02698      that goes to, based on the state we popped back to and the rule
02699      number reduced by.  */
02700 
02701   yyn = yyr1[yyn];
02702 
02703   yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
02704   if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
02705     yystate = yytable[yystate];
02706   else
02707     yystate = yydefgoto[yyn - YYNTOKENS];
02708 
02709   goto yynewstate;
02710 
02711 
02712 /*------------------------------------.
02713 | yyerrlab -- here on detecting error |
02714 `------------------------------------*/
02715 yyerrlab:
02716   /* If not already recovering from an error, report this error.  */
02717   if (!yyerrstatus)
02718     {
02719       ++yynerrs;
02720 #if ! YYERROR_VERBOSE
02721       yyerror (YY_("syntax error"));
02722 #else
02723       {
02724         YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
02725         if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
02726           {
02727             YYSIZE_T yyalloc = 2 * yysize;
02728             if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
02729               yyalloc = YYSTACK_ALLOC_MAXIMUM;
02730             if (yymsg != yymsgbuf)
02731               YYSTACK_FREE (yymsg);
02732             yymsg = (char *) YYSTACK_ALLOC (yyalloc);
02733             if (yymsg)
02734               yymsg_alloc = yyalloc;
02735             else
02736               {
02737                 yymsg = yymsgbuf;
02738                 yymsg_alloc = sizeof yymsgbuf;
02739               }
02740           }
02741 
02742         if (0 < yysize && yysize <= yymsg_alloc)
02743           {
02744             (void) yysyntax_error (yymsg, yystate, yychar);
02745             yyerror (yymsg);
02746           }
02747         else
02748           {
02749             yyerror (YY_("syntax error"));
02750             if (yysize != 0)
02751               goto yyexhaustedlab;
02752           }
02753       }
02754 #endif
02755     }
02756 
02757   yyerror_range[0] = yylloc;
02758 
02759   if (yyerrstatus == 3)
02760     {
02761       /* If just tried and failed to reuse look-ahead token after an
02762          error, discard it.  */
02763 
02764       if (yychar <= YYEOF)
02765         {
02766           /* Return failure if at end of input.  */
02767           if (yychar == YYEOF)
02768             YYABORT;
02769         }
02770       else
02771         {
02772           yydestruct ("Error: discarding",
02773                       yytoken, &yylval, &yylloc);
02774           yychar = YYEMPTY;
02775         }
02776     }
02777 
02778   /* Else will try to reuse look-ahead token after shifting the error
02779      token.  */
02780   goto yyerrlab1;
02781 
02782 
02783 /*---------------------------------------------------.
02784 | yyerrorlab -- error raised explicitly by YYERROR.  |
02785 `---------------------------------------------------*/
02786 yyerrorlab:
02787 
02788   /* Pacify compilers like GCC when the user code never invokes
02789      YYERROR and the label yyerrorlab therefore never appears in user
02790      code.  */
02791   if (/*CONSTCOND*/ 0)
02792      goto yyerrorlab;
02793 
02794   yyerror_range[0] = yylsp[1-yylen];
02795   /* Do not reclaim the symbols of the rule which action triggered
02796      this YYERROR.  */
02797   YYPOPSTACK (yylen);
02798   yylen = 0;
02799   YY_STACK_PRINT (yyss, yyssp);
02800   yystate = *yyssp;
02801   goto yyerrlab1;
02802 
02803 
02804 /*-------------------------------------------------------------.
02805 | yyerrlab1 -- common code for both syntax error and YYERROR.  |
02806 `-------------------------------------------------------------*/
02807 yyerrlab1:
02808   yyerrstatus = 3;      /* Each real token shifted decrements this.  */
02809 
02810   for (;;)
02811     {
02812       yyn = yypact[yystate];
02813       if (yyn != YYPACT_NINF)
02814         {
02815           yyn += YYTERROR;
02816           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
02817             {
02818               yyn = yytable[yyn];
02819               if (0 < yyn)
02820                 break;
02821             }
02822         }
02823 
02824       /* Pop the current state because it cannot handle the error token.  */
02825       if (yyssp == yyss)
02826         YYABORT;
02827 
02828       yyerror_range[0] = *yylsp;
02829       yydestruct ("Error: popping",
02830                   yystos[yystate], yyvsp, yylsp);
02831       YYPOPSTACK (1);
02832       yystate = *yyssp;
02833       YY_STACK_PRINT (yyss, yyssp);
02834     }
02835 
02836   if (yyn == YYFINAL)
02837     YYACCEPT;
02838 
02839   *++yyvsp = yylval;
02840 
02841   yyerror_range[1] = yylloc;
02842   /* Using YYLLOC is tempting, but would change the location of
02843      the look-ahead.  YYLOC is available though.  */
02844   YYLLOC_DEFAULT (yyloc, (yyerror_range - 1), 2);
02845   *++yylsp = yyloc;
02846 
02847   /* Shift the error token.  */
02848   YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
02849 
02850   yystate = yyn;
02851   goto yynewstate;
02852 
02853 
02854 /*-------------------------------------.
02855 | yyacceptlab -- YYACCEPT comes here.  |
02856 `-------------------------------------*/
02857 yyacceptlab:
02858   yyresult = 0;
02859   goto yyreturn;
02860 
02861 /*-----------------------------------.
02862 | yyabortlab -- YYABORT comes here.  |
02863 `-----------------------------------*/
02864 yyabortlab:
02865   yyresult = 1;
02866   goto yyreturn;
02867 
02868 #ifndef yyoverflow
02869 /*-------------------------------------------------.
02870 | yyexhaustedlab -- memory exhaustion comes here.  |
02871 `-------------------------------------------------*/
02872 yyexhaustedlab:
02873   yyerror (YY_("memory exhausted"));
02874   yyresult = 2;
02875   /* Fall through.  */
02876 #endif
02877 
02878 yyreturn:
02879   if (yychar != YYEOF && yychar != YYEMPTY)
02880      yydestruct ("Cleanup: discarding lookahead",
02881                  yytoken, &yylval, &yylloc);
02882   /* Do not reclaim the symbols of the rule which action triggered
02883      this YYABORT or YYACCEPT.  */
02884   YYPOPSTACK (yylen);
02885   YY_STACK_PRINT (yyss, yyssp);
02886   while (yyssp != yyss)
02887     {
02888       yydestruct ("Cleanup: popping",
02889                   yystos[*yyssp], yyvsp, yylsp);
02890       YYPOPSTACK (1);
02891     }
02892 #ifndef yyoverflow
02893   if (yyss != yyssa)
02894     YYSTACK_FREE (yyss);
02895 #endif
02896 #if YYERROR_VERBOSE
02897   if (yymsg != yymsgbuf)
02898     YYSTACK_FREE (yymsg);
02899 #endif
02900   /* Make sure YYID is used.  */
02901   return YYID (yyresult);
02902 }
02903 
02904 
02905 #line 678 "../mu32/mut.y"
02906 
02908 #ifdef __WXMSW__
02909 inline int mutabor_toupper(int c) {
02910         if (c == EOF) return c;
02911         else return toupper(c);
02912 }
02913 #ifdef toupper
02914 #undef toupper
02915 #endif
02916 #define toupper mutabor_toupper
02917 #endif
02918 
02919 int yylex(void) 
02920 {
02921     int c;
02922 
02923 start_lex:
02924 
02925     /* Ignore whitespace, get first nonwhitespace character */
02926     while ( anzahl_eingelesene_zeichen ++,
02927 
02928             isspace(c = toupper( intern_fgetc(quelldatei) ))) {
02929         DEBUGLOG2(other,_T("char %x"),c);
02930 
02931       if (c == '\n') {
02932         DEBUGLOG2(other,_T("New line"));
02933         if (!(yylloc.first_line ++ % LINE_DRAW_QUANTUM)) 
02934           show_line_number(yylloc.first_line);
02935       }
02936     }
02937     
02938     if (c == '"') {
02939        while (anzahl_eingelesene_zeichen ++,
02940        
02941               (c=intern_fgetc(quelldatei)) != '"' && c != EOF )
02942                     if (c == '\n') yylloc.first_line ++;
02943         
02944        goto start_lex;
02945     }
02946 
02947     if (c == EOF) {
02948       show_line_number(yylloc.first_line);
02949         return 0;
02950     }
02951 
02952         
02953     /* char starts a number => parse the number. */
02954     if (isdigit(c)) {
02955 
02956 #if 1
02957         double zahl = 0.0;
02958         while (isdigit(c)) {
02959             zahl *= 10;
02960             zahl += ( c - '0' );
02961             anzahl_eingelesene_zeichen ++;
02962             c = intern_fgetc (quelldatei);
02963         }
02964         if (c == '.') {    /* dann nachkommastellen */
02965             double faktor = 1.0;
02966             while (anzahl_eingelesene_zeichen ++,
02967                    isdigit (c = intern_fgetc (quelldatei))) {
02968                 faktor /= 10;
02969                 zahl += faktor * ( c - '0' );
02970             }
02971             intern_ungetc (c, quelldatei);
02972             anzahl_eingelesene_zeichen --;
02973             yylval.f_value = zahl;
02974             return F_NUMBER;
02975         }
02976         else {
02977             intern_ungetc (c, quelldatei);
02978             anzahl_eingelesene_zeichen --;
02979             
02980             if (zahl > INT_MAX) {
02981                 yylval.f_value = zahl;
02982                 return F_NUMBER;
02983             }
02984             else {
02985                 yylval.integer = (int)zahl;
02986                 return INTEGER;
02987             }
02988         }
02989 #else
02990 
02991         intern_ungetc (c, quelldatei);
02992         anzahl_eingelesene_zeichen --;
02993         fscanf (quelldatei, "%lf", &yylval.f_value);
02994 
02995 #endif
02996 
02997 /*
02998  printf("f_number:%lf:\n", yylval.f_value); 
02999 */
03000       
03001     }
03002     
03003     /* # starts a HEX-number => parse the number. */
03004     if (c == '#') {
03005         int help;
03006         if (fscanf (quelldatei, "%x", &help) == 0) {
03007             fatal_error (78, yylloc.first_line + 1);
03008             exit (1);
03009         }
03010         yylval.integer = help;
03011 
03012 /* printf("f_number:%lf:\n", yylval.f_value); */
03013 
03014         return INTEGER;
03015     }
03016     
03017     /* Test auf reserved word oder einen Identifier */
03018     if (isalpha (c) || (c == '_') || (c == '\'') ) {
03019 
03020 static struct { 
03021     const char *word;
03022     int token;
03023 } reserved_words [] = {
03024 /* German keywords : */
03025 { "INTERVALL"  , INTERVALL  },
03026 { "WURZEL"     , WURZEL     },
03027 { "TON"        , TON        },
03028 { "TONSYSTEM"  , TONSYSTEM  },
03029 { "UMSTIMMUNG" , UMSTIMMUNG },
03030 { "HARMONIE"   , HARMONIE   },
03031 { "LOGIK"      , LOGIK      },
03032 { "FORM"       , FORM       },
03033 { "MIDIKANAL"  , INSTRUMENT },
03034 { "TASTE"      , TASTE      },
03035 { "MIDIIN"     , MIDI_IN    },
03036 { "MIDIOUT"    , MIDI_OUT   },
03037 { "ANSONSTEN"  , ANSONSTEN  },
03038 /* English keywords : */
03039 { "INTERVAL"   , INTERVALL  },
03040 { "ROOT"       , WURZEL     },
03041 { "TONE"       , TON        },
03042 { "TONESYSTEM" , TONSYSTEM  },
03043 { "RETUNING"   , UMSTIMMUNG },
03044 { "PATTERN"    , HARMONIE   },
03045 { "LOGIC"      , LOGIK      },
03046 { "SHIFTED"    , FORM       },
03047 { "MIDICHANNEL", INSTRUMENT },
03048 { "KEY"        , TASTE      },
03049 { "ELSE"       , ANSONSTEN  },
03050 { NULL         , 0          }
03051 };
03052 
03053 
03054 #if 0
03055         char *symbuffer = xmalloc ((size_t)(MAX_IDENTIFIER_LEN + 1));
03056         int i=0;
03057         
03058         do {
03059             if (c == '\'') c = 'i';
03060             symbuffer[i++] = c;
03061             c = toupper(intern_fgetc (quelldatei));
03062         } while (c != EOF                && 
03063                  i < MAX_IDENTIFIER_LEN  && 
03064                  (isalnum (c) || (c == '_') || (c == '\'') ) );
03065         
03066         intern_ungetc (c, quelldatei);
03067         symbuffer[i] = '\0';
03068 #else
03069         int i = 0;
03070         int max_identifier_len = 10;
03071         char *symbuffer = (char*) xmalloc ((size_t) max_identifier_len);
03072 
03073         do {
03074             if (c == '\'') c = 'i';
03075 
03076             if ( i + 1 == max_identifier_len ) {
03077                 char * help = (char*) xrealloc (symbuffer, (size_t) (max_identifier_len += 10));
03078                 memmove (help, symbuffer, (size_t) max_identifier_len);
03079                 symbuffer = help;
03080             }
03081 
03082             symbuffer[i++] = c;
03083             DEBUGLOG2(other,_T("character #%d = %x"),i,c);
03084             c = intern_fgetc(quelldatei);
03085             DEBUGLOG2(other,_T("character #%d = %x"),i,c);
03086             c = toupper(c);
03087             DEBUGLOG2(other,_T("character #%d = %x"),i,c);
03088             anzahl_eingelesene_zeichen ++;
03089 
03090         } while ((c != EOF) && 
03091                  (isalnum (c) || (c == '_') || (c == '\'') ) );
03092         
03093         intern_ungetc (c, quelldatei);
03094         anzahl_eingelesene_zeichen --;
03095         symbuffer[i] = '\0';
03096 
03097 #endif
03098 
03099 /* printf("symbuffer:%s:\n", symbuffer); */
03100         
03101         for (i=0; reserved_words[i].word; i++) {
03102             if ( ! strcmp (symbuffer, reserved_words[i].word)) {
03103                 xfree (symbuffer);
03104                 return reserved_words[i].token;
03105             }
03106         }
03107         
03108         yylval.identifier = symbuffer;
03109         return IDENTIFIER;
03110     }
03111     
03112     /* Any other character is a token by itself */
03113     switch (c) {
03114         case '+':
03115         case '-':
03116         case '*':
03117         case '/':
03118         case '[':
03119         case ']':
03120         case ':':
03121         case '=':
03122         case '(':
03123         case ')':
03124         case ',':
03125         case '~':
03126         case '@':
03127         case '<':
03128         case '>':
03129         case '{':
03130         case '}':
03131         case ';':
03132                return c;
03133     }
03134 
03135     fatal_error(2,c,yylloc.first_line + 1);
03136     
03137     return 0;  /* um Compilerwarnungen zu vermeiden */
03138 
03139     
03140 } /* yylex */
03141 
03142 void init_yylex (void)
03143 {
03144     yylloc.first_line = 0;
03145     anzahl_eingelesene_zeichen = 0;
03146 }
03147 
03148 void yyerror(const char *s) {
03149 
03150 /* ignore it ! */
03151 
03152 } /* yyerror */
03153 
03154 
03155 
03156 /* END MUT_TAB.C */
03157 
03158 /* 
03159  * \}
03160  */
03161 

Erzeugt am Sun Aug 21 2011 10:51:52 für Mutabor von doxygen 1.7.4