00001
00002
00003
00004 #define IDENTIFIER 258
00005 #define F_NUMBER 259
00006 #define INTEGER 260
00007 #define INTERVALL 261
00008 #define WURZEL 262
00009 #define TON 263
00010 #define ton_system 264
00011 #define UMSTIMMUNG 265
00012 #define HARMONIE 266
00013 #define LOGIK 267
00014 #define FORM 268
00015 #define INSTRUMENT 269
00016 #define TASTE 270
00017 #define MIDI_IN 271
00018 #define MIDI_OUT 272
00019 #define ANSONSTEN 273
00020
00021 #line 3 "mut.y"
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #include <ctype.h>
00034 #include <alloca.h>
00035 #include <limits.h>
00036 #include "Global.h"
00037 #include "GrafKern.h"
00038 #include "Hilfs.h"
00039
00040 #define MAX_IDENTIFIER_LEN 80
00041
00042 #define FEHLERZEILE yylloc.first_line+1
00043
00044
00045 #define alloca xmalloc
00046 #define YYMAXLIMIT (HEAP_PORTION_SYNTAX / sizeof(YYLTYPE) - 1)
00047
00048
00049
00050 #line 30 "mut.y"
00051 typedef union {
00052 double f_value;
00053 int integer;
00054 char *identifier;
00055 } YYSTYPE;
00056
00057 #ifndef YYLTYPE
00058 typedef
00059 struct yyltype
00060 {
00061 int timestamp;
00062 int first_line;
00063 int first_column;
00064 int last_line;
00065 int last_column;
00066 char *text;
00067 }
00068 yyltype;
00069
00070 #define YYLTYPE yyltype
00071 #endif
00072
00073 #include <stdio.h>
00074
00075 #ifndef __STDC__
00076 #define const
00077 #endif
00078
00079
00080
00081 #define YYFINAL 376
00082 #define YYFLAG -32768
00083 #define YYNTBASE 37
00084
00085 #define YYTRANSLATE(x) ((unsigned)(x) <= 273 ? yytranslate[x] : 134)
00086
00087 static const char yytranslate[] = { 0,
00088 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00089 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00090 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00091 2, 2, 2, 2, 2, 2, 2, 2, 2, 27,
00092 28, 32, 22, 26, 21, 35, 23, 2, 2, 2,
00093 2, 2, 2, 2, 2, 2, 2, 20, 2, 30,
00094 19, 31, 2, 29, 2, 2, 2, 2, 2, 2,
00095 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00096 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00097 24, 2, 25, 2, 2, 2, 2, 2, 2, 2,
00098 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00099 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00100 2, 2, 33, 2, 34, 36, 2, 2, 2, 2,
00101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00104 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00105 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00106 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00107 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00108 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00112 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00113 2, 2, 2, 2, 2, 1, 2, 3, 4, 5,
00114 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
00115 16, 17, 18
00116 };
00117
00118 static const short yyrline[] = { 0,
00119 61, 62, 63, 64, 65, 66, 67, 68, 69, 72,
00120 75, 77, 80, 82, 84, 91, 100, 102, 103, 106,
00121 109, 111, 114, 116, 118, 122, 126, 130, 134, 137,
00122 142, 144, 146, 150, 153, 156, 159, 165, 171, 177,
00123 197, 206, 209, 215, 240, 243, 245, 248, 250, 252,
00124 256, 257, 259, 263, 263, 265, 267, 268, 271, 273,
00125 275, 279, 281, 282, 285, 288, 289, 294, 297, 299,
00126 302, 306, 308, 309, 313, 316, 319, 321, 322, 323,
00127 324, 325, 326, 327, 328, 329, 330, 334, 337, 341,
00128 344, 346, 348, 352, 355, 359, 362, 364, 366, 368,
00129 370, 372, 374, 378, 381, 388, 390, 392, 395, 398,
00130 400, 403, 408, 412, 414, 416, 418, 419, 421, 422,
00131 424, 425, 427, 431, 434, 435, 436, 440, 443, 444,
00132 446, 449, 451, 455, 457, 460, 463, 464, 466, 468,
00133 472, 474, 476, 477, 481, 483, 486, 490, 491, 494,
00134 495, 498, 501, 504, 509, 513, 515, 518, 521, 524,
00135 527, 529, 532, 534, 537, 539, 542, 546, 548, 551,
00136 554, 558, 560, 563, 567, 569, 573, 575, 577, 580,
00137 583, 586, 588, 590, 594, 596, 597, 598, 599, 600,
00138 604, 607, 609, 613, 617, 619, 622, 625, 627, 629,
00139 631, 635, 637
00140 };
00141
00142 static const char * const yytname[] = { 0,
00143 "error","$illegal.","IDENTIFIER","F_NUMBER","INTEGER","INTERVALL","WURZEL","TON","ton_system","UMSTIMMUNG",
00144 "HARMONIE","LOGIK","FORM","INSTRUMENT","TASTE","MIDI_IN","MIDI_OUT","ANSONSTEN","'='","':'",
00145 "'-'","'+'","'/'","'['","']'","','","'('","')'","'@'","'<'",
00146 "'>'","'*'","'{'","'}'","'.'","'~'","start"
00147 };
00148
00149 static const short yyr1[] = { 0,
00150 37, 37, 37, 37, 37, 37, 37, 37, 37, 38,
00151 39, 39, 41, 40, 42, 42, 42, 42, 42, 43,
00152 44, 44, 46, 45, 47, 47, 47, 47, 47, 48,
00153 49, 49, 50, 50, 50, 50, 50, 50, 50, 50,
00154 51, 51, 51, 51, 52, 53, 53, 55, 54, 57,
00155 56, 58, 56, 59, 59, 60, 60, 60, 61, 61,
00156 61, 62, 62, 62, 63, 63, 63, 64, 65, 65,
00157 67, 68, 66, 69, 70, 66, 71, 71, 71, 71,
00158 71, 71, 71, 71, 71, 71, 71, 72, 72, 73,
00159 73, 73, 73, 74, 74, 75, 75, 75, 75, 75,
00160 75, 75, 75, 77, 76, 78, 78, 79, 78, 80,
00161 80, 81, 81, 82, 82, 83, 82, 84, 82, 85,
00162 82, 86, 82, 88, 87, 89, 87, 91, 90, 92,
00163 90, 94, 93, 95, 95, 96, 97, 96, 98, 96,
00164 100, 99, 101, 99, 102, 102, 104, 103, 105, 103,
00165 106, 103, 108, 107, 109, 110, 110, 112, 111, 111,
00166 113, 113, 114, 114, 115, 115, 116, 117, 118, 117,
00167 120, 119, 121, 119, 122, 122, 124, 123, 125, 123,
00168 126, 126, 126, 126, 127, 127, 127, 127, 128, 127,
00169 129, 129, 129, 130, 131, 131, 132, 132, 132, 132,
00170 132, 133, 133
00171 };
00172
00173 static const short yyr2[] = { 0,
00174 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
00175 0, 2, 0, 2, 5, 5, 3, 3, 2, 2,
00176 0, 2, 0, 2, 3, 5, 3, 5, 3, 2,
00177 0, 2, 2, 2, 3, 3, 4, 4, 5, 5,
00178 1, 2, 3, 4, 2, 0, 2, 0, 2, 0,
00179 8, 0, 9, 1, 3, 1, 0, 1, 1, 3,
00180 1, 1, 3, 1, 1, 1, 2, 2, 0, 2,
00181 0, 0, 5, 0, 0, 8, 1, 1, 1, 1,
00182 1, 1, 1, 1, 1, 1, 1, 3, 3, 5,
00183 5, 5, 5, 7, 7, 9, 9, 9, 9, 9,
00184 9, 9, 9, 0, 4, 1, 3, 0, 3, 1,
00185 3, 0, 1, 1, 1, 0, 4, 0, 4, 0,
00186 4, 0, 4, 0, 4, 0, 5, 0, 6, 0,
00187 6, 0, 4, 1, 3, 1, 0, 5, 0, 5,
00188 0, 5, 0, 5, 1, 2, 0, 5, 0, 6,
00189 0, 5, 0, 5, 2, 0, 2, 0, 7, 3,
00190 0, 2, 1, 3, 1, 2, 2, 0, 0, 3,
00191 0, 7, 0, 8, 0, 2, 0, 7, 0, 5,
00192 5, 3, 3, 1, 1, 1, 2, 2, 0, 5,
00193 1, 3, 1, 2, 0, 2, 4, 6, 6, 7,
00194 9, 1, 1
00195 };
00196
00197 static const short yydefact[] = { 1,
00198 0, 9, 11, 21, 46, 69, 156, 168, 195, 2,
00199 3, 4, 5, 6, 7, 8, 10, 20, 45, 68,
00200 155, 167, 194, 12, 0, 22, 0, 47, 0, 71,
00201 70, 0, 157, 0, 0, 196, 0, 14, 0, 24,
00202 0, 49, 0, 0, 0, 0, 170, 0, 19, 0,
00203 0, 0, 72, 0, 160, 158, 184, 0, 0, 0,
00204 0, 185, 186, 0, 0, 18, 41, 202, 203, 0,
00205 17, 31, 0, 29, 27, 25, 0, 0, 61, 59,
00206 0, 0, 0, 0, 187, 188, 189, 0, 197, 0,
00207 0, 30, 42, 0, 0, 0, 0, 0, 0, 87,
00208 0, 0, 0, 104, 0, 132, 73, 77, 78, 79,
00209 80, 81, 82, 83, 84, 85, 86, 0, 0, 165,
00210 0, 0, 163, 182, 183, 0, 0, 171, 0, 0,
00211 0, 43, 0, 0, 32, 16, 15, 0, 26, 0,
00212 28, 58, 56, 0, 54, 0, 143, 0, 141, 153,
00213 124, 0, 0, 0, 0, 0, 60, 75, 166, 0,
00214 161, 0, 193, 191, 0, 173, 175, 198, 0, 199,
00215 34, 0, 0, 33, 0, 0, 44, 50, 0, 89,
00216 0, 88, 0, 0, 0, 0, 0, 0, 114, 108,
00217 115, 0, 106, 0, 0, 0, 0, 136, 0, 0,
00218 134, 0, 164, 0, 159, 181, 0, 190, 175, 0,
00219 0, 200, 0, 36, 0, 0, 35, 0, 0, 0,
00220 55, 0, 0, 0, 0, 145, 0, 0, 130, 128,
00221 125, 0, 0, 0, 0, 120, 116, 112, 122, 118,
00222 105, 112, 0, 0, 0, 0, 137, 139, 0, 133,
00223 76, 162, 192, 0, 172, 176, 0, 0, 38, 0,
00224 37, 0, 51, 0, 0, 0, 0, 144, 146, 142,
00225 154, 0, 0, 127, 0, 0, 0, 0, 0, 0,
00226 0, 0, 109, 110, 113, 0, 0, 107, 93, 92,
00227 91, 90, 0, 0, 135, 174, 0, 201, 40, 39,
00228 53, 147, 151, 0, 131, 129, 0, 0, 0, 0,
00229 0, 0, 0, 0, 0, 0, 121, 117, 112, 123,
00230 119, 64, 65, 66, 0, 0, 62, 0, 179, 0,
00231 0, 149, 95, 94, 0, 0, 0, 0, 0, 0,
00232 0, 0, 111, 67, 0, 138, 140, 177, 0, 148,
00233 152, 0, 0, 0, 0, 0, 0, 0, 0, 0,
00234 63, 0, 180, 150, 99, 98, 97, 96, 103, 102,
00235 101, 100, 0, 178, 0, 0
00236 };
00237
00238 static const short yydefgoto[] = { 1,
00239 10, 17, 24, 25, 38, 11, 18, 26, 27, 40,
00240 71, 92, 135, 72, 12, 19, 28, 29, 42, 219,
00241 220, 144, 145, 81, 326, 327, 13, 20, 31, 43,
00242 78, 44, 202, 107, 108, 109, 110, 111, 112, 153,
00243 192, 238, 283, 284, 285, 282, 287, 281, 286, 113,
00244 186, 187, 114, 273, 272, 115, 156, 200, 201, 293,
00245 294, 116, 183, 181, 225, 226, 330, 352, 331, 117,
00246 184, 14, 21, 33, 82, 205, 122, 123, 15, 22,
00247 34, 47, 167, 209, 210, 256, 362, 349, 63, 257,
00248 126, 165, 16, 23, 36, 140
00249 };
00250
00251 static const short yypact[] = {-32768,
00252 138,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00253 -32768,-32768,-32768,-32768,-32768,-32768, 13, 95, 111, 133,
00254 163, 166, 177,-32768, 197,-32768, 201,-32768, 206, 160,
00255 -32768, 191,-32768, 216, 199,-32768, 66,-32768, 202,-32768,
00256 203,-32768, 204, 200, 6, 127,-32768, 193,-32768, 72,
00257 115, 220,-32768, 56,-32768,-32768, 195, 205, 153, 223,
00258 207,-32768,-32768, 209, 83,-32768,-32768,-32768,-32768, 198,
00259 -32768,-32768, 76,-32768, 184,-32768, 208, 5,-32768,-32768,
00260 134, 4, 224, 227,-32768,-32768,-32768, 11, 113, 228,
00261 232, 186,-32768, 198, 198, 198, 77, 77, 29,-32768,
00262 -7, 37, 210, -12, 190,-32768,-32768,-32768,-32768,-32768,
00263 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 233, 219,-32768,
00264 234, 89,-32768,-32768, 211, 92, 218,-32768, 235, 238,
00265 221,-32768, 87, 98,-32768,-32768,-32768, 241,-32768, 18,
00266 -32768,-32768,-32768, 148,-32768, 225,-32768, 226,-32768,-32768,
00267 112, 215, 16, 158, 167, 114,-32768,-32768,-32768, 4,
00268 213, 244,-32768,-32768, 151,-32768,-32768, 229, 230,-32768,
00269 -32768, 198, 61,-32768, 198, 71,-32768, 231, 29,-32768,
00270 108,-32768, 108, 92, 192, 77, 236, 22, 194,-32768,
00271 196, 237, 239, 240, 242, 243, 245, 246, 247, 125,
00272 -32768, 5,-32768, 249,-32768,-32768, 251,-32768,-32768, 47,
00273 253,-32768, 256,-32768, 198, 257,-32768, 198, 77, 250,
00274 -32768, 254, 255, 258, 10,-32768, 19, 152,-32768,-32768,
00275 -32768, 77, 248, 252, 132,-32768,-32768, 17,-32768,-32768,
00276 -32768, 17, 259, 260, 261, 262,-32768,-32768, 114,-32768,
00277 -32768,-32768,-32768, 53,-32768,-32768, 267, 264,-32768, 265,
00278 -32768, 269,-32768, 77, 263, 266, 270,-32768,-32768,-32768,
00279 -32768, 77, 77,-32768, 268, 271, 178, 183, 188, 189,
00280 77, 77, 272,-32768,-32768, 77, 77, 272,-32768,-32768,
00281 -32768,-32768, 103, 92,-32768,-32768, 273,-32768,-32768,-32768,
00282 -32768,-32768,-32768, 274,-32768,-32768, 275, 276, 277, 278,
00283 279, 280, 281, 282, 283, 284,-32768,-32768, 17,-32768,
00284 -32768,-32768,-32768,-32768, 285, 169,-32768, 170, 286, 114,
00285 114,-32768,-32768,-32768, 287, 289, 290, 291, 292, 293,
00286 294, 295,-32768,-32768, 106,-32768,-32768,-32768, 114, 301,
00287 301, 114, 303, 304, 305, 306, 307, 308, 309, 310,
00288 -32768, 114,-32768, 301,-32768,-32768,-32768,-32768,-32768,-32768,
00289 -32768,-32768, 131,-32768, 296,-32768
00290 };
00291
00292 static const short yypgoto[] = {-32768,
00293 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00294 -97,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00295 -32768,-32768, 82,-32768,-32768, -75,-32768,-32768,-32768,-32768,
00296 -32768,-32768,-32768, 75,-32768,-32768,-32768,-32768,-32768,-32768,
00297 -32768,-32768, 36, -39, 128,-32768,-32768,-32768,-32768,-32768,
00298 -32768,-32768,-32768,-32768,-32768,-32768,-32768, -319, -244,-32768,
00299 -32768,-32768,-32768,-32768, 99, -26,-32768,-32768,-32768,-32768,
00300 -32768,-32768,-32768,-32768,-32768,-32768,-32768, 135,-32768,-32768,
00301 -32768,-32768,-32768,-32768, 84,-32768,-32768,-32768, 288, 297,
00302 -32768, -182,-32768,-32768,-32768, -47
00303 };
00304
00305
00306 #define YYLAST 347
00307
00308
00309 static const short yytable[] = { 139,
00310 141, 228, 73, 76, 295, 100, 55, 101, 120, 102,
00311 350, 351, 151, 127, 222, -13, 146, 152, 189, 189,
00312 93, 103, 91, 222, 233, 147, 234, 223, 104, 142,
00313 224, 143, 364, 105, 128, 121, 223, 106, 56, 224,
00314 96, 190, 373, 268, 191, 191, 136, 137, 138, 57,
00315 235, 58, 270, -57, -57, 57, 79, 58, 80, 59,
00316 148, 60, 61, 214, 62, 59, 49, 60, 61, 149,
00317 62, 255, 66, 217, 67, 68, 69, 296, 93, 67,
00318 68, 69, 94, 215, 50, 173, 176, 89, 231, 171,
00319 68, 69, 163, 218, 70, 95, 164, -23, 96, 70,
00320 174, 68, 69, 322, 363, 323, 90, 324, 323, 172,
00321 324, 328, 222, -48, 160, 74, 198, 75, 68, 69,
00322 175, 263, 161, 325, 213, 223, 325, 216, 224, 57,
00323 199, 58, -126, 129, 274, 30, 130, 375, 2, 59,
00324 185, 60, 61, 3, 62, 4, 5, 6, 7, 8,
00325 249, 9, 277, 278, 279, 57, 249, 58, 250, 118,
00326 194, 119, 195, 280, 374, 32, 301, 260, -169, 196,
00327 262, 197, 178, 179, 305, 306, 207, 207, 208, 271,
00328 309, 35, 310, 317, 318, 311, -74, 312, 320, 321,
00329 313, 315, 314, 316, 345, 207, 346, 347, 269, 37,
00330 269, 68, 69, 39, 97, 98, 133, 134, 41, 45,
00331 154, 155, 229, 230, 236, 237, 239, 240, 46, 48,
00332 51, 52, 53, 65, 77, 86, 54, 88, 124, 125,
00333 83, 99, 131, 87, 132, 157, 150, 158, 159, 168,
00334 84, 166, 169, 177, 188, 170, 162, 204, 206, 180,
00335 182, -52, 211, 252, 212, 253, 232, 258, 259, 261,
00336 221, 241, 267, 243, 242, 244, 245, 299, 246, 361,
00337 264, 300, 247, 248, 265, 266, 251, 288, 275, 343,
00338 193, 227, 276, 289, 290, 291, 292, 297, 298, 344,
00339 304, 0, 254, 302, 203, 376, 303, 319, 307, 333,
00340 334, 308, 0, 329, 332, 0, 0, 335, 336, 337,
00341 338, 339, 340, 341, 342, 0, 0, 353, 348, 354,
00342 355, 356, 357, 358, 359, 360, 249, 365, 366, 367,
00343 368, 369, 370, 371, 372, 0, 0, 0, 0, 0,
00344 0, 0, 64, 0, 0, 0, 85
00345 };
00346
00347 static const short yycheck[] = { 97,
00348 98, 184, 50, 51, 249, 1, 1, 3, 5, 5,
00349 330, 331, 25, 3, 5, 3, 24, 30, 3, 3,
00350 3, 17, 70, 5, 3, 33, 5, 18, 24, 1,
00351 21, 3, 352, 29, 24, 32, 18, 33, 33, 21,
00352 23, 26, 362, 34, 29, 29, 94, 95, 96, 3,
00353 29, 5, 34, 25, 26, 3, 1, 5, 3, 13,
00354 24, 15, 16, 3, 18, 13, 1, 15, 16, 33,
00355 18, 25, 1, 3, 3, 4, 5, 25, 3, 3,
00356 4, 5, 7, 23, 19, 133, 134, 5, 186, 3,
00357 4, 5, 1, 23, 23, 20, 5, 3, 23, 23,
00358 3, 4, 5, 1, 349, 3, 24, 5, 3, 23,
00359 5, 294, 5, 3, 26, 1, 3, 3, 4, 5,
00360 23, 219, 34, 21, 172, 18, 21, 175, 21, 3,
00361 17, 5, 21, 21, 232, 3, 24, 0, 1, 13,
00362 29, 15, 16, 6, 18, 8, 9, 10, 11, 12,
00363 26, 14, 21, 22, 23, 3, 26, 5, 34, 26,
00364 3, 28, 5, 32, 34, 3, 264, 215, 3, 3,
00365 218, 5, 25, 26, 272, 273, 26, 26, 28, 28,
00366 3, 5, 5, 281, 282, 3, 27, 5, 286, 287,
00367 3, 3, 5, 5, 26, 26, 28, 28, 225, 3,
00368 227, 4, 5, 3, 21, 22, 21, 22, 3, 19,
00369 21, 22, 21, 22, 21, 22, 21, 22, 3, 21,
00370 19, 19, 19, 31, 5, 3, 27, 19, 5, 3,
00371 36, 24, 5, 27, 3, 3, 27, 19, 5, 5,
00372 36, 24, 5, 3, 30, 25, 36, 35, 5, 25,
00373 25, 21, 24, 5, 25, 5, 21, 5, 3, 3,
00374 179, 25, 5, 24, 26, 24, 24, 3, 24, 345,
00375 21, 3, 27, 27, 21, 21, 202, 242, 31, 319,
00376 153, 183, 31, 25, 25, 25, 25, 21, 25, 5,
00377 21, -1, 209, 31, 160, 0, 31, 26, 31, 25,
00378 25, 31, -1, 31, 31, -1, -1, 31, 31, 31,
00379 31, 31, 31, 31, 31, -1, -1, 31, 33, 31,
00380 31, 31, 31, 31, 31, 31, 26, 25, 25, 25,
00381 25, 25, 25, 25, 25, -1, -1, -1, -1, -1,
00382 -1, -1, 46, -1, -1, -1, 59
00383 };
00384 #define YYPURE 1
00385
00386
00387 #line 3 "bison.simple"
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__)
00408 #include <alloca.h>
00409 #endif
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420 #define yyerrok (yyerrstatus = 0)
00421 #define yyclearin (yychar = YYEMPTY)
00422 #define YYEMPTY -2
00423 #define YYEOF 0
00424 #define YYFAIL goto yyerrlab;
00425 #define YYACCEPT return(0)
00426 #define YYABORT return(1)
00427 #define YYERROR goto yyerrlab
00428
00429 #define YYTERROR 1
00430 #define YYERRCODE 256
00431
00432 #ifndef YYIMPURE
00433 #define YYLEX yylex()
00434 #endif
00435
00436 #ifndef YYPURE
00437 #define YYLEX yylex(&yylval, &yylloc)
00438 #endif
00439
00440
00441
00442 #ifndef YYIMPURE
00443
00444 int yychar;
00445 YYSTYPE yylval;
00446
00447
00448 YYLTYPE yylloc;
00449
00450
00451 int yynerrs;
00452 #endif
00453
00454 #if YYDEBUG != 0
00455 int yydebug;
00456
00457
00458 #endif
00459
00460
00461
00462 #ifndef YYMAXDEPTH
00463 #define YYMAXDEPTH 200
00464 #endif
00465
00466
00467
00468
00469 #ifndef YYMAXLIMIT
00470 #define YYMAXLIMIT 10000
00471 #endif
00472
00473
00474 #line 90 "bison.simple"
00475 int
00476 yyparse()
00477 {
00478 register int yystate;
00479 register int yyn;
00480 register short *yyssp;
00481 register YYSTYPE *yyvsp;
00482 YYLTYPE *yylsp;
00483 int yyerrstatus;
00484 int yychar1;
00485
00486 short yyssa[YYMAXDEPTH];
00487 YYSTYPE yyvsa[YYMAXDEPTH];
00488 YYLTYPE yylsa[YYMAXDEPTH];
00489
00490 short *yyss = yyssa;
00491 YYSTYPE *yyvs = yyvsa;
00492 YYLTYPE *yyls = yylsa;
00493
00494 int yymaxdepth = YYMAXDEPTH;
00495
00496 #ifndef YYPURE
00497 int yychar;
00498 YYSTYPE yylval;
00499 YYLTYPE yylloc;
00500 int yynerrs;
00501 #endif
00502
00503 YYSTYPE yyval;
00504
00505
00506
00507 int yylen;
00508
00509 #if YYDEBUG != 0
00510 if (yydebug)
00511 fprintf(stderr, "Starting parse\n");
00512 #endif
00513
00514 yystate = 0;
00515 yyerrstatus = 0;
00516 yynerrs = 0;
00517 yychar = YYEMPTY;
00518
00519
00520
00521
00522
00523 yyssp = yyss - 1;
00524 yyvsp = yyvs;
00525 yylsp = yyls;
00526
00527
00528
00529
00530 yynewstate:
00531
00532 *++yyssp = yystate;
00533
00534 if (yyssp >= yyss + yymaxdepth - 1)
00535 {
00536
00537
00538 YYSTYPE *yyvs1 = yyvs;
00539 YYLTYPE *yyls1 = yyls;
00540 short *yyss1 = yyss;
00541
00542
00543 int size = yyssp - yyss + 1;
00544
00545 #ifdef yyoverflow
00546
00547
00548 yyoverflow("parser stack overflow",
00549 &yyss1, size * sizeof (*yyssp),
00550 &yyvs1, size * sizeof (*yyvsp),
00551 &yyls1, size * sizeof (*yylsp),
00552 &yymaxdepth);
00553
00554 yyss = yyss1; yyvs = yyvs1; yyls = yyls1;
00555 #else
00556
00557 if (yymaxdepth >= YYMAXLIMIT)
00558 yyerror("parser stack overflow");
00559 yymaxdepth *= 2;
00560 if (yymaxdepth > YYMAXLIMIT)
00561 yymaxdepth = YYMAXLIMIT;
00562 yyss = (short *) alloca (yymaxdepth * sizeof (*yyssp));
00563 bcopy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp));
00564 yyvs = (YYSTYPE *) alloca (yymaxdepth * sizeof (*yyvsp));
00565 bcopy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp));
00566 #ifdef YYLSP_NEEDED
00567 yyls = (YYLTYPE *) alloca (yymaxdepth * sizeof (*yylsp));
00568 bcopy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp));
00569 #endif
00570 #endif
00571
00572 yyssp = yyss + size - 1;
00573 yyvsp = yyvs + size - 1;
00574 #ifdef YYLSP_NEEDED
00575 yylsp = yyls + size - 1;
00576 #endif
00577
00578 #if YYDEBUG != 0
00579 if (yydebug)
00580 fprintf(stderr, "Stack size increased to %d\n", yymaxdepth);
00581 #endif
00582
00583 if (yyssp >= yyss + yymaxdepth - 1)
00584 YYABORT;
00585 }
00586
00587 #if YYDEBUG != 0
00588 if (yydebug)
00589 fprintf(stderr, "Entering state %d\n", yystate);
00590 #endif
00591
00592
00593
00594 yyresume:
00595
00596
00597
00598 yyn = yypact[yystate];
00599 if (yyn == YYFLAG)
00600 goto yydefault;
00601
00602
00603
00604
00605
00606
00607 if (yychar == YYEMPTY)
00608 {
00609 #if YYDEBUG != 0
00610 if (yydebug)
00611 fprintf(stderr, "Reading a token: ");
00612 #endif
00613 yychar = YYLEX;
00614 }
00615
00616
00617
00618 if (yychar <= 0)
00619 {
00620 yychar1 = 0;
00621 yychar = YYEOF;
00622
00623 #if YYDEBUG != 0
00624 if (yydebug)
00625 fprintf(stderr, "Now at end of input.\n");
00626 #endif
00627 }
00628 else
00629 {
00630 yychar1 = YYTRANSLATE(yychar);
00631
00632 #if YYDEBUG != 0
00633 if (yydebug)
00634 fprintf(stderr, "Next token is %d (%s)\n", yychar, yytname[yychar1]);
00635 #endif
00636 }
00637
00638 yyn += yychar1;
00639 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
00640 goto yydefault;
00641
00642 yyn = yytable[yyn];
00643
00644
00645
00646
00647
00648
00649
00650
00651 if (yyn < 0)
00652 {
00653 if (yyn == YYFLAG)
00654 goto yyerrlab;
00655 yyn = -yyn;
00656 goto yyreduce;
00657 }
00658 else if (yyn == 0)
00659 goto yyerrlab;
00660
00661 if (yyn == YYFINAL)
00662 YYACCEPT;
00663
00664
00665
00666 #if YYDEBUG != 0
00667 if (yydebug)
00668 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
00669 #endif
00670
00671
00672 if (yychar != YYEOF)
00673 yychar = YYEMPTY;
00674
00675 *++yyvsp = yylval;
00676 #ifdef YYLSP_NEEDED
00677 *++yylsp = yylloc;
00678 #endif
00679
00680
00681 if (yyerrstatus) yyerrstatus--;
00682
00683 yystate = yyn;
00684 goto yynewstate;
00685
00686
00687 yydefault:
00688
00689 yyn = yydefact[yystate];
00690 if (yyn == 0)
00691 goto yyerrlab;
00692
00693
00694 yyreduce:
00695 yylen = yyr2[yyn];
00696 yyval = yyvsp[1-yylen];
00697
00698 #if YYDEBUG != 0
00699 if (yydebug)
00700 {
00701 if (yylen == 1)
00702 fprintf (stderr, "Reducing 1 value via line %d, ",
00703 yyrline[yyn]);
00704 else
00705 fprintf (stderr, "Reducing %d values via line %d, ",
00706 yylen, yyrline[yyn]);
00707 }
00708 #endif
00709
00710
00711 switch (yyn) {
00712
00713 case 9:
00714 #line 69 "mut.y"
00715 { fatal_error(1,FEHLERZEILE); ;
00716 break;}
00717 case 13:
00718 #line 81 "mut.y"
00719 { init_komplex_ton_list (); ;
00720 break;}
00721 case 15:
00722 #line 86 "mut.y"
00723 { if ( fabs(yyvsp[0].f_value) > 0.001 )
00724 get_new_intervall (yyvsp[-4].identifier, yyvsp[-2].f_value / yyvsp[0].f_value);
00725 else
00726 fatal_error (46, yyvsp[-4].identifier ); ;
00727 break;}
00728 case 16:
00729 #line 92 "mut.y"
00730 { if ( fabs (yyvsp[-2].f_value) > 0.001 )
00731 get_new_intervall (yyvsp[-4].identifier, pow (yyvsp[0].f_value, 1 / yyvsp[-2].f_value));
00732 else
00733 fatal_error (46, yyvsp[-4].identifier); ;
00734 break;}
00735 case 17:
00736 #line 101 "mut.y"
00737 { get_new_intervall_komplex (yyvsp[-2].identifier); ;
00738 break;}
00739 case 18:
00740 #line 102 "mut.y"
00741 { fatal_error(71,yyvsp[-2].identifier); ;
00742 break;}
00743 case 19:
00744 #line 103 "mut.y"
00745 { fatal_error(70,"'='",FEHLERZEILE); ;
00746 break;}
00747 case 23:
00748 #line 115 "mut.y"
00749 { init_komplex_ton_list (); ;
00750 break;}
00751 case 25:
00752 #line 120 "mut.y"
00753 { get_new_ton_absolut (yyvsp[-2].identifier, yyvsp[0].f_value); ;
00754 break;}
00755 case 26:
00756 #line 124 "mut.y"
00757 { get_new_ton_komplex_negative (yyvsp[-4].identifier, yyvsp[-2].identifier); ;
00758 break;}
00759 case 27:
00760 #line 128 "mut.y"
00761 { get_new_ton_komplex_positive (yyvsp[-2].identifier, yyvsp[0].identifier); ;
00762 break;}
00763 case 28:
00764 #line 132 "mut.y"
00765 { get_new_ton_komplex_positive (yyvsp[-4].identifier, yyvsp[-2].identifier); ;
00766 break;}
00767 case 29:
00768 #line 134 "mut.y"
00769 { fatal_error( 72, yyvsp[-2].identifier ); ;
00770 break;}
00771 case 33:
00772 #line 148 "mut.y"
00773 { get_new_faktor_anteil ( (double) 1, yyvsp[0].identifier); ;
00774 break;}
00775 case 34:
00776 #line 151 "mut.y"
00777 { get_new_faktor_anteil ( (double) -1, yyvsp[0].identifier); ;
00778 break;}
00779 case 35:
00780 #line 154 "mut.y"
00781 { get_new_faktor_anteil ( yyvsp[-1].f_value, yyvsp[0].identifier); ;
00782 break;}
00783 case 36:
00784 #line 157 "mut.y"
00785 { get_new_faktor_anteil ( -(yyvsp[-1].f_value), yyvsp[0].identifier); ;
00786 break;}
00787 case 37:
00788 #line 160 "mut.y"
00789 { if ( fabs(yyvsp[-1].f_value) > 0.001 )
00790 get_new_faktor_anteil ( (double) 1 / (yyvsp[-1].f_value), yyvsp[0].identifier);
00791 else
00792 fatal_error(53, FEHLERZEILE); ;
00793 break;}
00794 case 38:
00795 #line 166 "mut.y"
00796 { if ( fabs(yyvsp[-1].f_value) > 0.001 )
00797 get_new_faktor_anteil ( (double) -1 / (yyvsp[-1].f_value), yyvsp[0].identifier);
00798 else
00799 fatal_error(53, FEHLERZEILE); ;
00800 break;}
00801 case 39:
00802 #line 172 "mut.y"
00803 { if ( fabs(yyvsp[-1].f_value) > 0.001 )
00804 get_new_faktor_anteil ( (yyvsp[-3].f_value) / (yyvsp[-1].f_value), yyvsp[0].identifier);
00805 else
00806 fatal_error(53, FEHLERZEILE); ;
00807 break;}
00808 case 40:
00809 #line 178 "mut.y"
00810 { if ( fabs(yyvsp[-1].f_value) > 0.001 )
00811 get_new_faktor_anteil ( -(yyvsp[-3].f_value) / (yyvsp[-1].f_value), yyvsp[0].identifier);
00812 else
00813 fatal_error(53, FEHLERZEILE); ;
00814 break;}
00815 case 41:
00816 #line 199 "mut.y"
00817 { get_new_faktor_anteil ( (double) 1.0 , yyvsp[0].identifier); ;
00818 break;}
00819 case 42:
00820 #line 207 "mut.y"
00821 { get_new_faktor_anteil ( yyvsp[-1].f_value, yyvsp[0].identifier); ;
00822 break;}
00823 case 43:
00824 #line 210 "mut.y"
00825 { if ( fabs(yyvsp[-1].f_value) > 0.001 )
00826 get_new_faktor_anteil ( (double) 1 / (yyvsp[-1].f_value), yyvsp[0].identifier);
00827 else
00828 fatal_error(53, FEHLERZEILE); ;
00829 break;}
00830 case 44:
00831 #line 216 "mut.y"
00832 { if ( fabs(yyvsp[-1].f_value) > 0.001 )
00833 get_new_faktor_anteil ( (yyvsp[-3].f_value) / (yyvsp[-1].f_value), yyvsp[0].identifier);
00834 else
00835 fatal_error(53, FEHLERZEILE); ;
00836 break;}
00837 case 48:
00838 #line 249 "mut.y"
00839 { init_ton_liste (); ;
00840 break;}
00841 case 50:
00842 #line 254 "mut.y"
00843 { init_komplex_ton_list (); ;
00844 break;}
00845 case 51:
00846 #line 256 "mut.y"
00847 { get_new_tonsystem (yyvsp[-7].identifier, yyvsp[-5].integer); ;
00848 break;}
00849 case 52:
00850 #line 258 "mut.y"
00851 { init_komplex_ton_list (); ;
00852 break;}
00853 case 53:
00854 #line 260 "mut.y"
00855 { get_new_tonsystem_negative (yyvsp[-8].identifier, yyvsp[-6].integer); ;
00856 break;}
00857 case 56:
00858 #line 266 "mut.y"
00859 { get_new_ton_in_tonsystem (yyvsp[0].identifier); ;
00860 break;}
00861 case 57:
00862 #line 267 "mut.y"
00863 { get_new_ton_in_tonsystem (NULL); ;
00864 break;}
00865 case 58:
00866 #line 268 "mut.y"
00867 { fatal_error(73,FEHLERZEILE); ;
00868 break;}
00869 case 59:
00870 #line 272 "mut.y"
00871 { get_new_name_in_parameterlist (yyvsp[0].identifier) ;
00872 break;}
00873 case 60:
00874 #line 274 "mut.y"
00875 { get_new_name_in_parameterlist (yyvsp[0].identifier) ;
00876 break;}
00877 case 61:
00878 #line 275 "mut.y"
00879 { fatal_error(74,FEHLERZEILE); ;
00880 break;}
00881 case 62:
00882 #line 280 "mut.y"
00883 {;
00884 break;}
00885 case 63:
00886 #line 281 "mut.y"
00887 {;
00888 break;}
00889 case 64:
00890 #line 282 "mut.y"
00891 { fatal_error(74,FEHLERZEILE); ;
00892 break;}
00893 case 65:
00894 #line 287 "mut.y"
00895 { get_new_name_in_argument_list (yyvsp[0].identifier) ;
00896 break;}
00897 case 66:
00898 #line 288 "mut.y"
00899 { get_new_number_in_argument_list (yyvsp[0].integer) ;
00900 break;}
00901 case 67:
00902 #line 289 "mut.y"
00903 { get_new_number_in_argument_list (-(yyvsp[0].integer)) ;
00904 break;}
00905 case 71:
00906 #line 304 "mut.y"
00907 { init_umstimmung (yyvsp[0].identifier);
00908 init_parameter_liste (); ;
00909 break;}
00910 case 72:
00911 #line 306 "mut.y"
00912 { eintrage_parameterliste_in_umstimmung (); ;
00913 break;}
00914 case 73:
00915 #line 308 "mut.y"
00916 { get_new_umstimmung (); ;
00917 break;}
00918 case 74:
00919 #line 311 "mut.y"
00920 { init_umstimmung (yyvsp[0].identifier);
00921 init_parameter_liste (); ;
00922 break;}
00923 case 75:
00924 #line 314 "mut.y"
00925 { eintrage_parameterliste_in_umstimmung (); ;
00926 break;}
00927 case 76:
00928 #line 316 "mut.y"
00929 { get_new_umstimmung (); ;
00930 break;}
00931 case 77:
00932 #line 320 "mut.y"
00933 {;
00934 break;}
00935 case 78:
00936 #line 321 "mut.y"
00937 {;
00938 break;}
00939 case 79:
00940 #line 322 "mut.y"
00941 {;
00942 break;}
00943 case 80:
00944 #line 323 "mut.y"
00945 {;
00946 break;}
00947 case 81:
00948 #line 324 "mut.y"
00949 {;
00950 break;}
00951 case 82:
00952 #line 325 "mut.y"
00953 {;
00954 break;}
00955 case 83:
00956 #line 326 "mut.y"
00957 {;
00958 break;}
00959 case 84:
00960 #line 327 "mut.y"
00961 {;
00962 break;}
00963 case 85:
00964 #line 328 "mut.y"
00965 {;
00966 break;}
00967 case 86:
00968 #line 329 "mut.y"
00969 {;
00970 break;}
00971 case 87:
00972 #line 330 "mut.y"
00973 {fatal_error(75,FEHLERZEILE);;
00974 break;}
00975 case 88:
00976 #line 336 "mut.y"
00977 { get_umstimmung_taste_abs (zahl, yyvsp[-2].integer, NULL); ;
00978 break;}
00979 case 89:
00980 #line 338 "mut.y"
00981 { get_umstimmung_taste_abs (parameter, 0.0, yyvsp[-2].identifier); ;
00982 break;}
00983 case 90:
00984 #line 343 "mut.y"
00985 { get_umstimmung_taste_rel (zahl, yyvsp[-2].integer, NULL, '+'); ;
00986 break;}
00987 case 91:
00988 #line 345 "mut.y"
00989 { get_umstimmung_taste_rel (parameter, 0.0, yyvsp[-2].identifier, '+'); ;
00990 break;}
00991 case 92:
00992 #line 347 "mut.y"
00993 { get_umstimmung_taste_rel (zahl, yyvsp[-2].integer, NULL, '-'); ;
00994 break;}
00995 case 93:
00996 #line 349 "mut.y"
00997 { get_umstimmung_taste_rel (parameter, 0.0, yyvsp[-2].identifier, '-'); ;
00998 break;}
00999 case 94:
01000 #line 354 "mut.y"
01001 { get_umstimmung_breite_abs (zahl, yyvsp[-3].integer, NULL); ;
01002 break;}
01003 case 95:
01004 #line 356 "mut.y"
01005 { get_umstimmung_breite_abs (parameter, 0.0, yyvsp[-3].identifier); ;
01006 break;}
01007 case 96:
01008 #line 361 "mut.y"
01009 { get_umstimmung_breite_rel (zahl, yyvsp[-3].integer, NULL, '+'); ;
01010 break;}
01011 case 97:
01012 #line 363 "mut.y"
01013 { get_umstimmung_breite_rel (parameter, 0.0, yyvsp[-3].identifier, '+'); ;
01014 break;}
01015 case 98:
01016 #line 365 "mut.y"
01017 { get_umstimmung_breite_rel (zahl, yyvsp[-3].integer, NULL, '-'); ;
01018 break;}
01019 case 99:
01020 #line 367 "mut.y"
01021 { get_umstimmung_breite_rel (parameter, 0.0, yyvsp[-3].identifier, '-'); ;
01022 break;}
01023 case 100:
01024 #line 369 "mut.y"
01025 { get_umstimmung_breite_rel (zahl, yyvsp[-3].integer, NULL, '*'); ;
01026 break;}
01027 case 101:
01028 #line 371 "mut.y"
01029 { get_umstimmung_breite_rel (parameter, 0.0, yyvsp[-3].identifier, '*'); ;
01030 break;}
01031 case 102:
01032 #line 373 "mut.y"
01033 { get_umstimmung_breite_rel (zahl, yyvsp[-3].integer, NULL, '/'); ;
01034 break;}
01035 case 103:
01036 #line 375 "mut.y"
01037 { get_umstimmung_breite_rel (parameter, 0.0, yyvsp[-3].identifier, '/'); ;
01038 break;}
01039 case 104:
01040 #line 380 "mut.y"
01041 { init_umstimm_expression_list (); ;
01042 break;}
01043 case 105:
01044 #line 382 "mut.y"
01045 { get_umstimmung_tonhoehe_veraendert (); ;
01046 break;}
01047 case 106:
01048 #line 389 "mut.y"
01049 {;
01050 break;}
01051 case 107:
01052 #line 390 "mut.y"
01053 {;
01054 break;}
01055 case 108:
01056 #line 392 "mut.y"
01057 { init_komplex_ton_list();
01058 get_new_umstimm_expression (NULL);
01059 ;
01060 break;}
01061 case 109:
01062 #line 395 "mut.y"
01063 {;
01064 break;}
01065 case 110:
01066 #line 399 "mut.y"
01067 {;
01068 break;}
01069 case 111:
01070 #line 400 "mut.y"
01071 {;
01072 break;}
01073 case 112:
01074 #line 405 "mut.y"
01075 { init_komplex_ton_list();
01076 get_new_umstimm_expression (NULL);
01077 ;
01078 break;}
01079 case 114:
01080 #line 413 "mut.y"
01081 { get_new_umstimm_expression (yyvsp[0].identifier); ;
01082 break;}
01083 case 115:
01084 #line 414 "mut.y"
01085 { get_new_umstimm_expression ("@"); ;
01086 break;}
01087 case 116:
01088 #line 416 "mut.y"
01089 { init_komplex_ton_list (); ;
01090 break;}
01091 case 117:
01092 #line 418 "mut.y"
01093 { get_new_umstimm_expression_positive (yyvsp[-3].identifier); ;
01094 break;}
01095 case 118:
01096 #line 419 "mut.y"
01097 { init_komplex_ton_list (); ;
01098 break;}
01099 case 119:
01100 #line 421 "mut.y"
01101 { get_new_umstimm_expression_positive ( "@" ); ;
01102 break;}
01103 case 120:
01104 #line 422 "mut.y"
01105 { init_komplex_ton_list (); ;
01106 break;}
01107 case 121:
01108 #line 424 "mut.y"
01109 { get_new_umstimm_expression_negative (yyvsp[-3].identifier); ;
01110 break;}
01111 case 122:
01112 #line 425 "mut.y"
01113 { init_komplex_ton_list (); ;
01114 break;}
01115 case 123:
01116 #line 427 "mut.y"
01117 { get_new_umstimm_expression_negative ( "@" ); ;
01118 break;}
01119 case 124:
01120 #line 432 "mut.y"
01121 { init_komplex_ton_list (); ;
01122 break;}
01123 case 125:
01124 #line 434 "mut.y"
01125 { get_umstimmung_wiederholung_abs (); ;
01126 break;}
01127 case 126:
01128 #line 435 "mut.y"
01129 { init_komplex_ton_list (); ;
01130 break;}
01131 case 127:
01132 #line 437 "mut.y"
01133 { get_umstimmung_wiederholung_abs_negative (); ;
01134 break;}
01135 case 128:
01136 #line 441 "mut.y"
01137 { init_komplex_ton_list (); ;
01138 break;}
01139 case 129:
01140 #line 443 "mut.y"
01141 { get_umstimmung_wiederholung_rel_positive (); ;
01142 break;}
01143 case 130:
01144 #line 444 "mut.y"
01145 { init_komplex_ton_list (); ;
01146 break;}
01147 case 131:
01148 #line 446 "mut.y"
01149 { get_umstimmung_wiederholung_rel_negative (); ;
01150 break;}
01151 case 132:
01152 #line 450 "mut.y"
01153 { init_aktions_liste (); ;
01154 break;}
01155 case 133:
01156 #line 452 "mut.y"
01157 { get_umstimmung_umstimmungs_bund (); ;
01158 break;}
01159 case 134:
01160 #line 456 "mut.y"
01161 {;
01162 break;}
01163 case 135:
01164 #line 457 "mut.y"
01165 {;
01166 break;}
01167 case 136:
01168 #line 461 "mut.y"
01169 { init_argument_liste ();
01170 get_new_aktion_aufruf_element (yyvsp[0].identifier); ;
01171 break;}
01172 case 137:
01173 #line 463 "mut.y"
01174 { init_argument_liste (); ;
01175 break;}
01176 case 138:
01177 #line 465 "mut.y"
01178 { get_new_aktion_aufruf_element (yyvsp[-4].identifier); ;
01179 break;}
01180 case 139:
01181 #line 467 "mut.y"
01182 { init_integersequenz ();;
01183 break;}
01184 case 140:
01185 #line 469 "mut.y"
01186 { get_new_aktion_midi_out_element (); ;
01187 break;}
01188 case 141:
01189 #line 473 "mut.y"
01190 { init_umstimmungs_case_liste (); ;
01191 break;}
01192 case 142:
01193 #line 475 "mut.y"
01194 { get_umstimmung_umstimm_case_zahl (yyvsp[-4].integer); ;
01195 break;}
01196 case 143:
01197 #line 476 "mut.y"
01198 { init_umstimmungs_case_liste (); ;
01199 break;}
01200 case 144:
01201 #line 478 "mut.y"
01202 { get_umstimmung_umstimm_case_parameter (yyvsp[-4].identifier); ;
01203 break;}
01204 case 145:
01205 #line 482 "mut.y"
01206 {;
01207 break;}
01208 case 146:
01209 #line 483 "mut.y"
01210 {;
01211 break;}
01212 case 147:
01213 #line 488 "mut.y"
01214 { init_aktions_liste (); ;
01215 break;}
01216 case 148:
01217 #line 490 "mut.y"
01218 { get_umstimmungs_case_zahl_element (yyvsp[-4].integer); ;
01219 break;}
01220 case 149:
01221 #line 492 "mut.y"
01222 { init_aktions_liste (); ;
01223 break;}
01224 case 150:
01225 #line 494 "mut.y"
01226 { get_umstimmungs_case_zahl_element (-(yyvsp[-4].integer)); ;
01227 break;}
01228 case 151:
01229 #line 496 "mut.y"
01230 { init_aktions_liste (); ;
01231 break;}
01232 case 152:
01233 #line 498 "mut.y"
01234 { get_umstimmungs_case_default_element (); ;
01235 break;}
01236 case 153:
01237 #line 503 "mut.y"
01238 { init_integersequenz ();;
01239 break;}
01240 case 154:
01241 #line 505 "mut.y"
01242 { get_umstimmung_midi_out (); ;
01243 break;}
01244 case 155:
01245 #line 510 "mut.y"
01246 {;
01247 break;}
01248 case 156:
01249 #line 514 "mut.y"
01250 {;
01251 break;}
01252 case 157:
01253 #line 515 "mut.y"
01254 {;
01255 break;}
01256 case 158:
01257 #line 520 "mut.y"
01258 { init_tastenliste (); ;
01259 break;}
01260 case 159:
01261 #line 522 "mut.y"
01262 { get_new_harmonie (yyvsp[-6].identifier, yyvsp[0].integer); ;
01263 break;}
01264 case 160:
01265 #line 524 "mut.y"
01266 { fatal_error(76,yyvsp[-2].identifier); ;
01267 break;}
01268 case 161:
01269 #line 528 "mut.y"
01270 { yyval.integer = -1; ;
01271 break;}
01272 case 162:
01273 #line 529 "mut.y"
01274 { yyval.integer = yyvsp[0].integer; ;
01275 break;}
01276 case 163:
01277 #line 533 "mut.y"
01278 {;
01279 break;}
01280 case 164:
01281 #line 534 "mut.y"
01282 {;
01283 break;}
01284 case 165:
01285 #line 538 "mut.y"
01286 { get_new_taste ( yyvsp[0].integer, '+'); ;
01287 break;}
01288 case 166:
01289 #line 539 "mut.y"
01290 { get_new_taste ( yyvsp[0].integer, '*'); ;
01291 break;}
01292 case 167:
01293 #line 543 "mut.y"
01294 {;
01295 break;}
01296 case 168:
01297 #line 547 "mut.y"
01298 {;
01299 break;}
01300 case 169:
01301 #line 548 "mut.y"
01302 { init_ausloeser ();
01303
01304 ;
01305 break;}
01306 case 170:
01307 #line 551 "mut.y"
01308 {;
01309 break;}
01310 case 171:
01311 #line 556 "mut.y"
01312 { get_new_logik (yyvsp[-3].identifier, NULL);
01313 init_anweisungs_liste (); ;
01314 break;}
01315 case 172:
01316 #line 559 "mut.y"
01317 { vervollstaendige_logik (); ;
01318 break;}
01319 case 173:
01320 #line 561 "mut.y"
01321 { get_new_logik (yyvsp[-4].identifier, yyvsp[-1].identifier);
01322 init_anweisungs_liste (); ;
01323 break;}
01324 case 174:
01325 #line 564 "mut.y"
01326 { vervollstaendige_logik (); ;
01327 break;}
01328 case 175:
01329 #line 568 "mut.y"
01330 {;
01331 break;}
01332 case 176:
01333 #line 569 "mut.y"
01334 {;
01335 break;}
01336 case 177:
01337 #line 574 "mut.y"
01338 { init_aktions_liste (); ;
01339 break;}
01340 case 178:
01341 #line 576 "mut.y"
01342 { get_new_anweisung (); ;
01343 break;}
01344 case 179:
01345 #line 578 "mut.y"
01346 { init_aktions_liste (); ;
01347 break;}
01348 case 180:
01349 #line 580 "mut.y"
01350 { get_new_anweisung (); ;
01351 break;}
01352 case 181:
01353 #line 585 "mut.y"
01354 { get_harmoniebezeichner ( yyvsp[-4].integer, yyvsp[-2].identifier, yyvsp[0].integer); ;
01355 break;}
01356 case 182:
01357 #line 587 "mut.y"
01358 { get_harmoniebezeichner (-1, yyvsp[-2].identifier, yyvsp[0].integer); ;
01359 break;}
01360 case 183:
01361 #line 589 "mut.y"
01362 { get_harmoniebezeichner ( yyvsp[-2].integer, yyvsp[0].identifier, -1); ;
01363 break;}
01364 case 184:
01365 #line 591 "mut.y"
01366 { get_harmoniebezeichner (-1, yyvsp[0].identifier, -1); ;
01367 break;}
01368 case 185:
01369 #line 595 "mut.y"
01370 { get_ausloeser_default (); ;
01371 break;}
01372 case 186:
01373 #line 596 "mut.y"
01374 { get_ausloeser_harmonie (); ;
01375 break;}
01376 case 187:
01377 #line 597 "mut.y"
01378 { get_ausloeser_harmonie_form (); ;
01379 break;}
01380 case 188:
01381 #line 598 "mut.y"
01382 { get_ausloeser_taste (yyvsp[0].identifier); ;
01383 break;}
01384 case 189:
01385 #line 599 "mut.y"
01386 { init_integersequenz (); ;
01387 break;}
01388 case 190:
01389 #line 601 "mut.y"
01390 { get_ausloeser_midi_in (); ;
01391 break;}
01392 case 191:
01393 #line 606 "mut.y"
01394 { get_new_integer_in_integersequenz (yyvsp[0].integer);;
01395 break;}
01396 case 192:
01397 #line 608 "mut.y"
01398 { get_new_integer_in_integersequenz (yyvsp[0].integer);;
01399 break;}
01400 case 193:
01401 #line 609 "mut.y"
01402 { fatal_error( 77, FEHLERZEILE ); ;
01403 break;}
01404 case 194:
01405 #line 614 "mut.y"
01406 {;
01407 break;}
01408 case 195:
01409 #line 618 "mut.y"
01410 {;
01411 break;}
01412 case 196:
01413 #line 619 "mut.y"
01414 {;
01415 break;}
01416 case 197:
01417 #line 624 "mut.y"
01418 { get_instrument_dekl (yyvsp[-3].integer, yyvsp[0].integer, yyvsp[0].integer, 0, & list_of_instrumente); ;
01419 break;}
01420 case 198:
01421 #line 626 "mut.y"
01422 { get_instrument_dekl (yyvsp[-5].integer, yyvsp[-2].integer, yyvsp[0].integer, 0, & list_of_instrumente); ;
01423 break;}
01424 case 199:
01425 #line 628 "mut.y"
01426 { get_instrument_dekl (yyvsp[-5].integer, 0, 0, yyvsp[-1].integer, & list_of_instrumente); ;
01427 break;}
01428 case 200:
01429 #line 630 "mut.y"
01430 { get_instrument_dekl (yyvsp[-6].integer, yyvsp[-3].integer, yyvsp[-3].integer, yyvsp[-1].integer, & list_of_instrumente); ;
01431 break;}
01432 case 201:
01433 #line 632 "mut.y"
01434 { get_instrument_dekl (yyvsp[-8].integer, yyvsp[-5].integer, yyvsp[-3].integer, yyvsp[-1].integer, & list_of_instrumente); ;
01435 break;}
01436 case 202:
01437 #line 636 "mut.y"
01438 { yyval.f_value = yyvsp[0].f_value ;
01439 break;}
01440 case 203:
01441 #line 637 "mut.y"
01442 { yyval.f_value = (double) yyvsp[0].integer ;
01443 break;}
01444 }
01445
01446 #line 327 "bison.simple"
01447
01448 yyvsp -= yylen;
01449 yyssp -= yylen;
01450 #ifdef YYLSP_NEEDED
01451 yylsp -= yylen;
01452 #endif
01453
01454 #if YYDEBUG != 0
01455 if (yydebug)
01456 {
01457 short *ssp1 = yyss - 1;
01458 fprintf (stderr, "state stack now");
01459 while (ssp1 != yyssp)
01460 fprintf (stderr, " %d", *++ssp1);
01461 fprintf (stderr, "\n");
01462 }
01463 #endif
01464
01465 *++yyvsp = yyval;
01466
01467 #ifdef YYLSP_NEEDED
01468 yylsp++;
01469 if (yylen == 0)
01470 {
01471 yylsp->first_line = yylloc.first_line;
01472 yylsp->first_column = yylloc.first_column;
01473 yylsp->last_line = (yylsp-1)->last_line;
01474 yylsp->last_column = (yylsp-1)->last_column;
01475 yylsp->text = 0;
01476 }
01477 else
01478 {
01479 yylsp->last_line = (yylsp+yylen-1)->last_line;
01480 yylsp->last_column = (yylsp+yylen-1)->last_column;
01481 }
01482 #endif
01483
01484
01485
01486
01487
01488
01489 yyn = yyr1[yyn];
01490
01491 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
01492 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
01493 yystate = yytable[yystate];
01494 else
01495 yystate = yydefgoto[yyn - YYNTBASE];
01496
01497 goto yynewstate;
01498
01499 yyerrlab:
01500
01501 if (! yyerrstatus)
01502
01503 {
01504 ++yynerrs;
01505 yyerror("parse error");
01506 }
01507
01508 if (yyerrstatus == 3)
01509 {
01510
01511
01512
01513 if (yychar == YYEOF)
01514 YYABORT;
01515
01516 #if YYDEBUG != 0
01517 if (yydebug)
01518 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
01519 #endif
01520
01521 yychar = YYEMPTY;
01522 }
01523
01524
01525
01526
01527 yyerrstatus = 3;
01528
01529 goto yyerrhandle;
01530
01531 yyerrdefault:
01532
01533 #if 0
01534
01535
01536 yyn = yydefact[yystate];
01537 if (yyn) goto yydefault;
01538 #endif
01539
01540 yyerrpop:
01541
01542 if (yyssp == yyss) YYABORT;
01543 yyvsp--;
01544 yystate = *--yyssp;
01545 #ifdef YYLSP_NEEDED
01546 yylsp--;
01547 #endif
01548
01549 #if YYDEBUG != 0
01550 if (yydebug)
01551 {
01552 short *ssp1 = yyss - 1;
01553 fprintf (stderr, "Error: state stack now");
01554 while (ssp1 != yyssp)
01555 fprintf (stderr, " %d", *++ssp1);
01556 fprintf (stderr, "\n");
01557 }
01558 #endif
01559
01560 yyerrhandle:
01561
01562 yyn = yypact[yystate];
01563 if (yyn == YYFLAG)
01564 goto yyerrdefault;
01565
01566 yyn += YYTERROR;
01567 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
01568 goto yyerrdefault;
01569
01570 yyn = yytable[yyn];
01571 if (yyn < 0)
01572 {
01573 if (yyn == YYFLAG)
01574 goto yyerrpop;
01575 yyn = -yyn;
01576 goto yyreduce;
01577 }
01578 else if (yyn == 0)
01579 goto yyerrpop;
01580
01581 if (yyn == YYFINAL)
01582 YYACCEPT;
01583
01584 #if YYDEBUG != 0
01585 if (yydebug)
01586 fprintf(stderr, "Shifting error token, ");
01587 #endif
01588
01589 *++yyvsp = yylval;
01590 #ifdef YYLSP_NEEDED
01591 *++yylsp = yylloc;
01592 #endif
01593
01594 yystate = yyn;
01595 goto yynewstate;
01596 }
01597 #line 641 "mut.y"
01598
01599
01600 int yylex(void)
01601 {
01602 int c;
01603
01604 start_lex:
01605
01606
01607 while ( anzahl_eingelesene_zeichen ++,
01608
01609 isspace(c = toupper( intern_fgetc(quelldatei) ))
01610
01611
01612 ) {
01613
01614 if (c == '\n')
01615 #ifdef ACS_VERSION
01616 if (!(yylloc.first_line ++ % LINE_DRAW_QUANTUM))
01617 show_line_number(yylloc.first_line);
01618 #else
01619 yylloc.first_line ++;
01620 #endif
01621 }
01622
01623 if (c == '"') {
01624 while (anzahl_eingelesene_zeichen ++,
01625
01626 (c=intern_fgetc(quelldatei)) != '"' && c != EOF )
01627 if (c == '\n') yylloc.first_line ++;
01628
01629 goto start_lex;
01630 }
01631
01632 if (c == EOF)
01633 return 0;
01634
01635
01636
01637 if (isdigit(c)) {
01638
01639 #if 1
01640 double zahl = 0.0;
01641 while (isdigit(c)) {
01642 zahl *= 10;
01643 zahl += ( c - '0' );
01644 anzahl_eingelesene_zeichen ++;
01645 c = intern_fgetc (quelldatei);
01646 }
01647 if (c == '.') {
01648 double faktor = 1.0;
01649 while (anzahl_eingelesene_zeichen ++,
01650 isdigit (c = intern_fgetc (quelldatei))) {
01651 faktor /= 10;
01652 zahl += faktor * ( c - '0' );
01653 }
01654 intern_ungetc (c, quelldatei);
01655 anzahl_eingelesene_zeichen --;
01656 yylval.f_value = zahl;
01657 return F_NUMBER;
01658 }
01659 else {
01660 intern_ungetc (c, quelldatei);
01661 anzahl_eingelesene_zeichen --;
01662
01663 if (zahl > INT_MAX) {
01664 yylval.f_value = zahl;
01665 return F_NUMBER;
01666 }
01667 else {
01668 yylval.integer = (int)zahl;
01669 return INTEGER;
01670 }
01671 }
01672 #else
01673
01674 intern_ungetc (c, quelldatei);
01675 anzahl_eingelesene_zeichen --;
01676 fscanf (quelldatei, "%lf", &yylval.f_value);
01677
01678 #endif
01679
01680
01681
01682
01683
01684 }
01685
01686
01687 if (c == '#') {
01688 int help;
01689 if (fscanf (quelldatei, "%x", &help) == 0) {
01690 fatal_error (78, yylloc.first_line + 1);
01691 exit (1);
01692 }
01693 yylval.integer = help;
01694
01695
01696
01697 return INTEGER;
01698 }
01699
01700
01701 if (isalpha (c) || (c == '_') || (c == '\'') ) {
01702
01703 static struct {
01704 char *word;
01705 int token;
01706 } reserved_words [] = {
01707
01708 { "INTERVALL" , INTERVALL },
01709 { "WURZEL" , WURZEL },
01710 { "TON" , TON },
01711 { "ton_system" , ton_system },
01712 { "UMSTIMMUNG" , UMSTIMMUNG },
01713 { "HARMONIE" , HARMONIE },
01714 { "LOGIK" , LOGIK },
01715 { "FORM" , FORM },
01716 { "MIDIKANAL" , INSTRUMENT },
01717 { "TASTE" , TASTE },
01718 { "MIDIIN" , MIDI_IN },
01719 { "MIDIOUT" , MIDI_OUT },
01720 { "ANSONSTEN" , ANSONSTEN },
01721
01722 { "INTERVAL" , INTERVALL },
01723 { "ROOT" , WURZEL },
01724 { "TONE" , TON },
01725 { "TONESYSTEM" , ton_system },
01726 { "RETUNING" , UMSTIMMUNG },
01727 { "PATTERN" , HARMONIE },
01728 { "LOGIC" , LOGIK },
01729 { "SHIFTED" , FORM },
01730 { "MIDICHANNEL" , INSTRUMENT },
01731 { "KEY" , TASTE },
01732 { "ELSE" , ANSONSTEN },
01733 { NULL , 0 }
01734 };
01735
01736
01737 #if 0
01738 char *symbuffer = xmalloc ((size_t)(MAX_IDENTIFIER_LEN + 1));
01739 int i=0;
01740
01741 do {
01742 if (c == '\'') c = 'i';
01743 symbuffer[i++] = c;
01744 c = toupper(intern_fgetc (quelldatei));
01745 } while (c != EOF &&
01746 i < MAX_IDENTIFIER_LEN &&
01747 (isalnum (c) || (c == '_') || (c == '\'') ) );
01748
01749 intern_ungetc (c, quelldatei);
01750 symbuffer[i] = '\0';
01751 #else
01752 int i = 0;
01753 int max_identifier_len = 10;
01754 char *symbuffer = (char*) xmalloc ((size_t) max_identifier_len);
01755
01756 do {
01757 if (c == '\'') c = 'i';
01758
01759 if ( i + 1 == max_identifier_len ) {
01760 char * help = (char*) xrealloc (symbuffer, (size_t) (max_identifier_len += 10));
01761 memmove (help, symbuffer, (size_t) max_identifier_len);
01762 symbuffer = help;
01763 }
01764
01765 symbuffer[i++] = c;
01766 c = toupper(intern_fgetc (quelldatei));
01767 anzahl_eingelesene_zeichen ++;
01768
01769 } while (c != EOF &&
01770 (isalnum (c) || (c == '_') || (c == '\'') ) );
01771
01772 intern_ungetc (c, quelldatei);
01773 anzahl_eingelesene_zeichen --;
01774 symbuffer[i] = '\0';
01775
01776 #endif
01777
01778
01779
01780 for (i=0; reserved_words[i].word; i++) {
01781 if ( ! strcmp (symbuffer, reserved_words[i].word)) {
01782 xfree (symbuffer);
01783 return reserved_words[i].token;
01784 }
01785 }
01786
01787 yylval.identifier = symbuffer;
01788 return IDENTIFIER;
01789 }
01790
01791
01792 switch (c) {
01793 case '+':
01794 case '-':
01795 case '*':
01796 case '/':
01797 case '[':
01798 case ']':
01799 case ':':
01800 case '=':
01801 case '(':
01802 case ')':
01803 case ',':
01804 case '~':
01805 case '@':
01806 case '<':
01807 case '>':
01808 case '{':
01809 case '}':
01810 case ';':
01811 return c;
01812 }
01813
01814 fatal_error(2,c,yylloc.first_line + 1);
01815
01816 return 0;
01817
01818
01819 }
01820
01821 void init_yylex (void)
01822 {
01823 yylloc.first_line = 0;
01824 anzahl_eingelesene_zeichen = 0;
01825 }
01826
01827 void yyerror(char *s) {
01828
01829
01830
01831 }
01832
01833
01834
01835