/[svn]/linuxsampler/trunk/src/network/lscpparser.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscpparser.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 160 by capela, Tue Jun 29 21:44:12 2004 UTC revision 214 by schoenebeck, Sat Aug 14 23:00:44 2004 UTC
# Line 1  Line 1 
1  /* A Bison parser, made by GNU Bison 1.875.  */  /* A Bison parser, made by GNU Bison 1.875a.  */
2    
3  /* Skeleton parser for Yacc-like parsing with Bison,  /* Skeleton parser for Yacc-like parsing with Bison,
4     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
5    
6     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 74  Line 74 
74       SUBSCRIBE = 276,       SUBSCRIBE = 276,
75       UNSUBSCRIBE = 277,       UNSUBSCRIBE = 277,
76       RESET = 278,       RESET = 278,
77       QUIT = 279,       ECHO = 279,
78       CHANNEL = 280,       QUIT = 280,
79       NOTIFICATION = 281,       CHANNEL = 281,
80       AVAILABLE_ENGINES = 282,       NOTIFICATION = 282,
81       AVAILABLE_AUDIO_OUTPUT_DRIVERS = 283,       AVAILABLE_ENGINES = 283,
82       CHANNELS = 284,       AVAILABLE_AUDIO_OUTPUT_DRIVERS = 284,
83       INFO = 285,       CHANNELS = 285,
84       BUFFER_FILL = 286,       INFO = 286,
85       STREAM_COUNT = 287,       BUFFER_FILL = 287,
86       VOICE_COUNT = 288,       STREAM_COUNT = 288,
87       INSTRUMENT = 289,       VOICE_COUNT = 289,
88       ENGINE = 290,       INSTRUMENT = 290,
89       AUDIO_OUTPUT_CHANNEL = 291,       ENGINE = 291,
90       AUDIO_OUTPUT_CHANNEL_PARAMETER = 292,       AUDIO_OUTPUT_CHANNEL = 292,
91       AUDIO_OUTPUT_DEVICE = 293,       AUDIO_OUTPUT_CHANNEL_PARAMETER = 293,
92       AUDIO_OUTPUT_DEVICES = 294,       AUDIO_OUTPUT_DEVICE = 294,
93       AUDIO_OUTPUT_DEVICE_PARAMETER = 295,       AUDIO_OUTPUT_DEVICES = 295,
94       AUDIO_OUTPUT_DRIVER = 296,       AUDIO_OUTPUT_DEVICE_PARAMETER = 296,
95       AUDIO_OUTPUT_DRIVER_PARAMETER = 297,       AUDIO_OUTPUT_DRIVER = 297,
96       AUDIO_OUTPUT_TYPE = 298,       AUDIO_OUTPUT_DRIVER_PARAMETER = 298,
97       MIDI_INPUT = 299,       AUDIO_OUTPUT_TYPE = 299,
98       MIDI_INPUT_TYPE = 300,       MIDI_INPUT = 300,
99       MIDI_INPUT_PORT = 301,       MIDI_INPUT_TYPE = 301,
100       MIDI_INPUT_CHANNEL = 302,       MIDI_INPUT_PORT = 302,
101       VOLUME = 303,       MIDI_INPUT_CHANNEL = 303,
102       MIDI_INPUT_DRIVER = 304,       VOLUME = 304,
103       MIDI_INPUT_DRIVER_PARAMETER = 305,       MIDI_INPUT_DRIVER = 305,
104       AVAILABLE_MIDI_INPUT_DRIVERS = 306,       MIDI_INPUT_DRIVER_PARAMETER = 306,
105       MIDI_INPUT_DEVICE = 307,       AVAILABLE_MIDI_INPUT_DRIVERS = 307,
106       MIDI_INPUT_DEVICES = 308,       MIDI_INPUT_DEVICE = 308,
107       MIDI_INPUT_DEVICE_PARAMETER = 309,       MIDI_INPUT_DEVICES = 309,
108       MIDI_INPUT_PORT_PARAMETER = 310,       MIDI_INPUT_DEVICE_PARAMETER = 310,
109       BYTES = 311,       MIDI_INPUT_PORT_PARAMETER = 311,
110       PERCENTAGE = 312,       BYTES = 312,
111       MISCELLANEOUS = 313       PERCENTAGE = 313,
112         MISCELLANEOUS = 314
113     };     };
114  #endif  #endif
115  #define CHAR 258  #define CHAR 258
# Line 132  Line 133 
133  #define SUBSCRIBE 276  #define SUBSCRIBE 276
134  #define UNSUBSCRIBE 277  #define UNSUBSCRIBE 277
135  #define RESET 278  #define RESET 278
136  #define QUIT 279  #define ECHO 279
137  #define CHANNEL 280  #define QUIT 280
138  #define NOTIFICATION 281  #define CHANNEL 281
139  #define AVAILABLE_ENGINES 282  #define NOTIFICATION 282
140  #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 283  #define AVAILABLE_ENGINES 283
141  #define CHANNELS 284  #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 284
142  #define INFO 285  #define CHANNELS 285
143  #define BUFFER_FILL 286  #define INFO 286
144  #define STREAM_COUNT 287  #define BUFFER_FILL 287
145  #define VOICE_COUNT 288  #define STREAM_COUNT 288
146  #define INSTRUMENT 289  #define VOICE_COUNT 289
147  #define ENGINE 290  #define INSTRUMENT 290
148  #define AUDIO_OUTPUT_CHANNEL 291  #define ENGINE 291
149  #define AUDIO_OUTPUT_CHANNEL_PARAMETER 292  #define AUDIO_OUTPUT_CHANNEL 292
150  #define AUDIO_OUTPUT_DEVICE 293  #define AUDIO_OUTPUT_CHANNEL_PARAMETER 293
151  #define AUDIO_OUTPUT_DEVICES 294  #define AUDIO_OUTPUT_DEVICE 294
152  #define AUDIO_OUTPUT_DEVICE_PARAMETER 295  #define AUDIO_OUTPUT_DEVICES 295
153  #define AUDIO_OUTPUT_DRIVER 296  #define AUDIO_OUTPUT_DEVICE_PARAMETER 296
154  #define AUDIO_OUTPUT_DRIVER_PARAMETER 297  #define AUDIO_OUTPUT_DRIVER 297
155  #define AUDIO_OUTPUT_TYPE 298  #define AUDIO_OUTPUT_DRIVER_PARAMETER 298
156  #define MIDI_INPUT 299  #define AUDIO_OUTPUT_TYPE 299
157  #define MIDI_INPUT_TYPE 300  #define MIDI_INPUT 300
158  #define MIDI_INPUT_PORT 301  #define MIDI_INPUT_TYPE 301
159  #define MIDI_INPUT_CHANNEL 302  #define MIDI_INPUT_PORT 302
160  #define VOLUME 303  #define MIDI_INPUT_CHANNEL 303
161  #define MIDI_INPUT_DRIVER 304  #define VOLUME 304
162  #define MIDI_INPUT_DRIVER_PARAMETER 305  #define MIDI_INPUT_DRIVER 305
163  #define AVAILABLE_MIDI_INPUT_DRIVERS 306  #define MIDI_INPUT_DRIVER_PARAMETER 306
164  #define MIDI_INPUT_DEVICE 307  #define AVAILABLE_MIDI_INPUT_DRIVERS 307
165  #define MIDI_INPUT_DEVICES 308  #define MIDI_INPUT_DEVICE 308
166  #define MIDI_INPUT_DEVICE_PARAMETER 309  #define MIDI_INPUT_DEVICES 309
167  #define MIDI_INPUT_PORT_PARAMETER 310  #define MIDI_INPUT_DEVICE_PARAMETER 310
168  #define BYTES 311  #define MIDI_INPUT_PORT_PARAMETER 311
169  #define PERCENTAGE 312  #define BYTES 312
170  #define MISCELLANEOUS 313  #define PERCENTAGE 313
171    #define MISCELLANEOUS 314
172    
173    
174    
175    
176  /* Copy the first part of user declarations.  */  /* Copy the first part of user declarations.  */
177  #line 23 "lscp.y"  #line 26 "lscp.y"
178    
179    
180  #include "lscpparser.h"  #include "lscpparser.h"
181  #include "lscpserver.h"  #include "lscpserver.h"
182    #include "lscpevent.h"
183    
184  // as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call  // as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call
185  #define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner  #define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner
# Line 225  typedef int YYSTYPE; Line 228  typedef int YYSTYPE;
228    
229    
230  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
231  #line 228 "y.tab.c"  #line 232 "y.tab.c"
232    
233  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
234    
# Line 324  union yyalloc Line 327  union yyalloc
327  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
328  #define YYFINAL  30  #define YYFINAL  30
329  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
330  #define YYLAST   293  #define YYLAST   310
331    
332  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
333  #define YYNTOKENS  59  #define YYNTOKENS  60
334  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
335  #define YYNNTS  32  #define YYNNTS  33
336  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
337  #define YYNRULES  108  #define YYNRULES  113
338  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
339  #define YYNSTATES  307  #define YYNSTATES  319
340    
341  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
342  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
343  #define YYMAXUTOK   313  #define YYMAXUTOK   314
344    
345  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
346    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 376  static const unsigned char yytranslate[] Line 379  static const unsigned char yytranslate[]
379        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
380        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
381        45,    46,    47,    48,    49,    50,    51,    52,    53,    54,        45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
382        55,    56,    57,    58        55,    56,    57,    58,    59
383  };  };
384    
385  #if YYDEBUG  #if YYDEBUG
# Line 384  static const unsigned char yytranslate[] Line 387  static const unsigned char yytranslate[]
387     YYRHS.  */     YYRHS.  */
388  static const unsigned short yyprhs[] =  static const unsigned short yyprhs[] =
389  {  {
390         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,         0,     0,     3,     6,     7,     9,    11,    13,    15,    18,
391        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,        21,    24,    27,    31,    35,    39,    43,    47,    51,    57,
392        59,    65,    69,    73,    77,    83,    85,    87,    89,    91,        61,    65,    69,    75,    77,    79,    81,    83,    85,    87,
393        93,    95,    97,    99,   101,   103,   105,   107,   109,   111,        89,    91,    93,    95,    97,    99,   101,   103,   105,   107,
394       113,   119,   127,   137,   139,   145,   153,   163,   165,   167,       113,   121,   131,   133,   139,   147,   157,   159,   161,   167,
395       173,   179,   187,   195,   205,   207,   213,   221,   227,   233,       173,   181,   191,   199,   209,   211,   217,   225,   231,   237,
396       239,   247,   257,   265,   275,   279,   285,   289,   295,   299,       243,   251,   261,   269,   279,   283,   287,   293,   297,   303,
397       303,   307,   311,   315,   321,   329,   335,   345,   351,   357,       307,   311,   315,   319,   323,   329,   337,   343,   353,   359,
398       363,   369,   375,   379,   385,   387,   389,   391,   393,   399,       365,   371,   377,   383,   387,   393,   395,   397,   399,   401,
399       407,   411,   413,   415,   417,   419,   421,   423,   425,   427,       403,   409,   417,   421,   423,   425,   427,   429,   431,   433,
400       429,   431,   433,   435,   437,   439,   441,   443,   445       435,   437,   439,   441,   443,   445,   447,   449,   451,   453,
401         455,   457,   459,   461
402  };  };
403    
404  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
405  static const yysigned_char yyrhs[] =  static const yysigned_char yyrhs[] =
406  {  {
407        60,     0,    -1,    61,    -1,    60,     8,    61,    -1,    60,        61,     0,    -1,    62,     8,    -1,    -1,    63,    -1,    64,
408         9,     8,    61,    -1,    -1,    62,    -1,    63,    -1,     1,        -1,     1,    -1,    10,    -1,    63,    10,    -1,    63,     7,
409        -1,    10,    -1,    62,    10,    -1,    62,     7,    -1,    62,        -1,    63,     5,    -1,    63,    92,    -1,    12,     7,    26,
410         5,    -1,    62,    90,    -1,    12,     7,    25,    -1,    13,        -1,    13,     7,    67,    -1,    14,     7,    69,    -1,    15,
411         7,    66,    -1,    14,     7,    68,    -1,    15,     7,    69,         7,    70,    -1,    16,     7,    75,    -1,    17,     7,    71,
412        -1,    16,     7,    74,    -1,    17,     7,    70,    -1,    19,        -1,    19,     7,    26,     7,    86,    -1,    20,     7,    68,
413         7,    25,     7,    85,    -1,    20,     7,    67,    -1,    21,        -1,    21,     7,    65,    -1,    22,     7,    66,    -1,    23,
414         7,    64,    -1,    22,     7,    65,    -1,    23,     7,    25,         7,    26,     7,    86,    -1,    23,    -1,    25,    -1,    30,
415         7,    85,    -1,    24,    -1,    29,    -1,    33,    -1,    32,        -1,    34,    -1,    33,    -1,    32,    -1,    31,    -1,    59,
416        -1,    31,    -1,    30,    -1,    58,    -1,    29,    -1,    33,        -1,    30,    -1,    34,    -1,    33,    -1,    32,    -1,    31,
417        -1,    32,    -1,    31,    -1,    30,    -1,    58,    -1,    27,        -1,    59,    -1,    28,    -1,    52,    -1,    50,     7,    31,
418        -1,    51,    -1,    49,     7,    30,     7,    90,    -1,    50,         7,    92,    -1,    51,     7,    31,     7,    92,     7,    92,
419         7,    30,     7,    90,     7,    90,    -1,    50,     7,    30,        -1,    51,     7,    31,     7,    92,     7,    92,     7,    73,
420         7,    90,     7,    90,     7,    72,    -1,    28,    -1,    41,        -1,    29,    -1,    42,     7,    31,     7,    92,    -1,    43,
421         7,    30,     7,    90,    -1,    42,     7,    30,     7,    90,         7,    31,     7,    92,     7,    92,    -1,    43,     7,    31,
422         7,    90,    -1,    42,     7,    30,     7,    90,     7,    90,         7,    92,     7,    92,     7,    73,    -1,    40,    -1,    54,
423         7,    72,    -1,    39,    -1,    53,    -1,    38,     7,    30,        -1,    39,     7,    31,     7,     5,    -1,    53,     7,    31,
424         7,     5,    -1,    52,     7,    30,     7,     5,    -1,    46,         7,     5,    -1,    47,     7,    31,     7,     5,     7,     5,
425         7,    30,     7,     5,     7,     5,    -1,    36,     7,    30,        -1,    56,     7,    31,     7,     5,     7,     5,     7,    92,
426         7,     5,     7,     5,    -1,    37,     7,    30,     7,     5,        -1,    37,     7,    31,     7,     5,     7,     5,    -1,    38,
427         7,     5,     7,    90,    -1,    29,    -1,    25,     7,    30,         7,    31,     7,     5,     7,     5,     7,    92,    -1,    30,
428         7,    85,    -1,    25,     7,    31,     7,    73,     7,    85,        -1,    26,     7,    31,     7,    86,    -1,    26,     7,    32,
429        -1,    25,     7,    32,     7,    85,    -1,    25,     7,    33,         7,    74,     7,    86,    -1,    26,     7,    33,     7,    86,
430         7,    85,    -1,    35,     7,    30,     7,    87,    -1,    40,        -1,    26,     7,    34,     7,    86,    -1,    36,     7,    31,
431         7,     5,     7,    90,    11,    89,    -1,    37,     7,     5,         7,    88,    -1,    41,     7,     5,     7,    92,    11,    90,
432         7,     5,     7,    90,    11,    89,    -1,    54,     7,     5,        -1,    38,     7,     5,     7,     5,     7,    92,    11,    90,
433         7,    90,    11,    89,    -1,    55,     7,     5,     7,     5,        -1,    55,     7,     5,     7,    92,    11,    90,    -1,    56,
434         7,    90,    11,    89,    -1,    25,     7,    71,    -1,    38,         7,     5,     7,     5,     7,    92,    11,    90,    -1,    26,
435         7,    90,     7,    72,    -1,    38,     7,    90,    -1,    52,         7,    72,    -1,    24,     7,    91,    -1,    39,     7,    92,
436         7,    90,     7,    72,    -1,    52,     7,    90,    -1,    38,         7,    73,    -1,    39,     7,    92,    -1,    53,     7,    92,
437         7,     5,    -1,    52,     7,     5,    -1,    34,     7,    75,         7,    73,    -1,    53,     7,    92,    -1,    39,     7,     5,
438        -1,    35,     7,    76,    -1,    38,     7,    85,     7,    77,        -1,    53,     7,     5,    -1,    35,     7,    76,    -1,    36,
439        -1,    36,     7,    85,     7,    78,     7,    78,    -1,    43,         7,    77,    -1,    39,     7,    86,     7,    78,    -1,    37,
440         7,    85,     7,    79,    -1,    44,     7,    85,     7,    80,         7,    86,     7,    79,     7,    79,    -1,    44,     7,    86,
441         7,    81,     7,    82,    -1,    52,     7,    85,     7,    80,         7,    80,    -1,    45,     7,    86,     7,    81,     7,    82,
442        -1,    46,     7,    85,     7,    81,    -1,    47,     7,    85,         7,    83,    -1,    53,     7,    86,     7,    81,    -1,    47,
443         7,    82,    -1,    45,     7,    85,     7,    83,    -1,    48,         7,    86,     7,    82,    -1,    48,     7,    86,     7,    83,
444         7,    85,     7,    84,    -1,    90,    11,    89,    -1,    72,        -1,    46,     7,    86,     7,    84,    -1,    49,     7,    86,
445         7,    90,    11,    89,    -1,    56,    -1,    57,    -1,    39,         7,    85,    -1,    92,    11,    90,    -1,    73,     7,    92,
446        -1,    53,    -1,    88,     7,    86,     7,    85,    -1,    18,        11,    90,    -1,    57,    -1,    58,    -1,    40,    -1,    54,
447         7,    88,     7,    86,     7,    85,    -1,    87,     7,    85,        -1,    30,    -1,    89,     7,    87,     7,    86,    -1,    18,
448        -1,     5,    -1,     5,    -1,    90,    -1,     5,    -1,     5,         7,    89,     7,    87,     7,    86,    -1,    88,     7,    86,
449        -1,     5,    -1,    90,    -1,     4,    -1,     5,    -1,     5,        -1,     5,    -1,     5,    -1,    92,    -1,     5,    -1,     5,
450        -1,     5,    -1,    90,    -1,     6,    -1,     6,    -1,     5,        -1,     5,    -1,    92,    -1,     4,    -1,     5,    -1,     5,
451        -1,     4,    -1,     3,    -1,    90,     3,    -1        -1,     5,    -1,    92,    -1,     6,    -1,    92,    -1,     6,
452          -1,     5,    -1,     4,    -1,     5,    -1,    92,    -1,     3,
453          -1,    92,     3,    -1
454  };  };
455    
456  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
457  static const unsigned char yyrline[] =  static const unsigned char yyrline[] =
458  {  {
459         0,    78,    78,    79,    80,    83,    84,    85,    86,    89,         0,    82,    82,    84,    85,    86,    87,    90,    91,    92,
460        90,    91,    92,    93,    96,    97,    98,    99,   100,   101,        93,    94,    97,    98,    99,   100,   101,   102,   103,   104,
461       102,   103,   104,   105,   106,   107,   110,   111,   112,   113,       105,   106,   107,   108,   109,   112,   113,   114,   115,   116,
462       114,   115,   118,   119,   120,   121,   122,   123,   126,   127,       117,   120,   121,   122,   123,   124,   125,   128,   129,   130,
463       128,   129,   130,   131,   132,   133,   134,   135,   136,   137,       131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
464       138,   139,   140,   141,   142,   143,   144,   145,   146,   147,       141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
465       150,   151,   152,   153,   154,   157,   158,   159,   160,   163,       153,   154,   155,   156,   157,   158,   161,   162,   163,   164,
466       164,   167,   168,   171,   172,   173,   174,   175,   176,   177,       167,   168,   171,   172,   175,   176,   177,   178,   179,   180,
467       178,   179,   182,   183,   186,   187,   190,   191,   194,   195,       181,   182,   183,   186,   187,   190,   191,   194,   195,   196,
468       198,   201,   204,   207,   210,   213,   216,   219,   222,   223,       199,   200,   203,   206,   209,   212,   215,   218,   221,   224,
469       226,   229,   232,   235,   238,   239,   240,   243,   244       227,   228,   231,   234,   237,   240,   243,   244,   245,   246,
470         249,   250,   253,   254
471  };  };
472  #endif  #endif
473    
# Line 472  static const char *const yytname[] = Line 479  static const char *const yytname[] =
479    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "STRINGVAL",    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "STRINGVAL",
480    "SP", "LF", "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY",    "SP", "LF", "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY",
481    "LIST", "LOAD", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE",    "LIST", "LOAD", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE",
482    "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL", "NOTIFICATION",    "UNSUBSCRIBE", "RESET", "ECHO", "QUIT", "CHANNEL", "NOTIFICATION",
483    "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",    "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",
484    "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT",    "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT",
485    "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER",    "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
# Line 492  static const char *const yytname[] = Line 499  static const char *const yytname[] =
499    "audio_output_device", "audio_output_channel", "audio_output_type",    "audio_output_device", "audio_output_channel", "audio_output_type",
500    "midi_input_device", "midi_input_port", "midi_input_channel",    "midi_input_device", "midi_input_port", "midi_input_channel",
501    "midi_input_type", "volume", "sampler_channel", "instrument_index",    "midi_input_type", "volume", "sampler_channel", "instrument_index",
502    "engine_name", "filename", "param_val", "string", 0    "engine_name", "filename", "param_val", "boolean", "string", 0
503  };  };
504  #endif  #endif
505    
# Line 506  static const unsigned short yytoknum[] = Line 513  static const unsigned short yytoknum[] =
513       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
514       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
515       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
516       305,   306,   307,   308,   309,   310,   311,   312,   313       305,   306,   307,   308,   309,   310,   311,   312,   313,   314
517  };  };
518  # endif  # endif
519    
520  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
521  static const unsigned char yyr1[] =  static const unsigned char yyr1[] =
522  {  {
523         0,    59,    60,    60,    60,    61,    61,    61,    61,    62,         0,    60,    61,    62,    62,    62,    62,    63,    63,    63,
524        62,    62,    62,    62,    63,    63,    63,    63,    63,    63,        63,    63,    64,    64,    64,    64,    64,    64,    64,    64,
525        63,    63,    63,    63,    63,    63,    64,    64,    64,    64,        64,    64,    64,    64,    64,    65,    65,    65,    65,    65,
526        64,    64,    65,    65,    65,    65,    65,    65,    66,    66,        65,    66,    66,    66,    66,    66,    66,    67,    67,    67,
527        66,    66,    66,    66,    66,    66,    66,    66,    66,    66,        67,    67,    67,    67,    67,    67,    67,    67,    67,    67,
528        66,    66,    66,    66,    66,    66,    66,    66,    66,    66,        67,    67,    67,    67,    67,    67,    67,    67,    67,    67,
529        67,    67,    67,    67,    67,    68,    68,    68,    68,    69,        68,    68,    68,    68,    68,    68,    69,    69,    69,    69,
530        69,    70,    70,    71,    71,    71,    71,    71,    71,    71,        70,    70,    71,    71,    72,    72,    72,    72,    72,    72,
531        71,    71,    72,    72,    73,    73,    74,    74,    75,    75,        72,    72,    72,    73,    73,    74,    74,    75,    75,    75,
532        76,    77,    78,    79,    80,    81,    82,    83,    84,    84,        76,    76,    77,    78,    79,    80,    81,    82,    83,    84,
533        85,    86,    87,    88,    89,    89,    89,    90,    90        85,    85,    86,    87,    88,    89,    90,    90,    90,    90,
534          91,    91,    92,    92
535  };  };
536    
537  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
538  static const unsigned char yyr2[] =  static const unsigned char yyr2[] =
539  {  {
540         0,     2,     1,     3,     4,     0,     1,     1,     1,     1,         0,     2,     2,     0,     1,     1,     1,     1,     2,     2,
541         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,         2,     2,     3,     3,     3,     3,     3,     3,     5,     3,
542         5,     3,     3,     3,     5,     1,     1,     1,     1,     1,         3,     3,     5,     1,     1,     1,     1,     1,     1,     1,
543           1,     1,     1,     1,     1,     1,     1,     1,     1,     5,
544           7,     9,     1,     5,     7,     9,     1,     1,     5,     5,
545           7,     9,     7,     9,     1,     5,     7,     5,     5,     5,
546           7,     9,     7,     9,     3,     3,     5,     3,     5,     3,
547           3,     3,     3,     3,     5,     7,     5,     9,     5,     5,
548           5,     5,     5,     3,     5,     1,     1,     1,     1,     1,
549           5,     7,     3,     1,     1,     1,     1,     1,     1,     1,
550         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
551         5,     7,     9,     1,     5,     7,     9,     1,     1,     5,         1,     1,     1,     2
        5,     7,     7,     9,     1,     5,     7,     5,     5,     5,  
        7,     9,     7,     9,     3,     5,     3,     5,     3,     3,  
        3,     3,     3,     5,     7,     5,     9,     5,     5,     5,  
        5,     5,     3,     5,     1,     1,     1,     1,     5,     7,  
        3,     1,     1,     1,     1,     1,     1,     1,     1,     1,  
        1,     1,     1,     1,     1,     1,     1,     1,     2  
552  };  };
553    
554  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
# Line 547  static const unsigned char yyr2[] = Line 556  static const unsigned char yyr2[] =
556     means the default is an error.  */     means the default is an error.  */
557  static const unsigned char yydefact[] =  static const unsigned char yydefact[] =
558  {  {
559         0,     8,     9,     0,     0,     0,     0,     0,     0,     0,         0,     6,     7,     0,     0,     0,     0,     0,     0,     0,
560         0,     0,     0,     0,    25,     0,     2,     6,     7,     0,         0,     0,     0,    23,    24,     0,     0,     4,     5,     0,
561         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
562         1,     0,     0,   107,    12,    11,    10,    13,    14,     0,         1,     2,   112,    10,     9,     8,    11,    12,     0,    37,
563        38,    43,    54,     0,     0,     0,     0,    47,     0,     0,        42,    54,     0,     0,     0,     0,    46,     0,     0,     0,
564         0,     0,     0,    39,     0,    48,    15,     0,     0,    16,         0,     0,    38,     0,    47,     0,    13,     0,     0,    14,
565         0,     0,    17,    86,    87,    18,     0,     0,    19,     0,         0,     0,    15,    89,    87,    88,    16,     0,     0,    17,
566         0,     0,     0,     0,     0,    21,    26,    30,    29,    28,         0,     0,     0,     0,     0,     0,     0,    19,    25,    29,
567        27,    31,    22,    32,    36,    35,    34,    33,    37,    23,        28,    27,    26,    30,    20,    31,    35,    34,    33,    32,
568         0,     3,     0,   108,     0,     0,     0,     0,     0,     0,        36,    21,     0,   113,     0,     0,     0,     0,     0,     0,
569         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     4,     0,  
570         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    66,    68,    69,    70,   103,     0,    71,  
        0,    72,     0,   102,   100,    20,     0,     0,     0,     0,  
        0,     0,     0,     0,     0,    64,     0,     0,     0,     0,  
       24,     0,     0,     0,     0,     0,     0,     0,     0,     0,  
571         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
572           0,     0,     0,     0,     0,    67,    69,    70,    71,   105,
573           0,    72,     0,    73,     0,   104,   102,    18,   110,    65,
574         111,     0,     0,     0,     0,     0,     0,     0,     0,     0,
575          64,     0,     0,     0,     0,    22,     0,     0,     0,     0,
576         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,    55,    84,    85,     0,    57,    58,    59,  
        0,     0,    49,    44,     0,     0,    40,     0,    50,    65,  
        0,    67,     0,   101,     0,    90,     0,     0,     0,     0,  
577         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
578           0,     0,     0,     0,     0,     0,     0,     0,     0,    55,
579          85,    86,     0,    57,    58,    59,     0,     0,    48,    43,
580           0,     0,    39,     0,    49,     0,    66,     0,    68,     0,
581         103,     0,    92,     0,     0,     0,     0,     0,     0,     0,
582         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
583         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
584         0,     0,    56,    52,     0,    45,    51,    41,     0,   106,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
585       105,   104,    82,     0,    88,    92,     0,    91,    73,    75,        56,    52,     0,    44,    50,    40,     0,     0,   109,   108,
586        93,    94,     0,    80,    97,    95,    78,    96,    79,    98,       107,    83,   106,     0,    90,    94,     0,    93,    74,    76,
587        99,    81,    77,     0,    60,    62,     0,     0,     0,     0,        95,    96,     0,    81,    99,    97,    79,    98,    80,   100,
588         0,     0,     0,     0,     0,     0,    53,    46,    42,    83,       101,    82,    78,     0,    60,    62,     0,     0,     0,     0,
589        89,    74,     0,    61,    63,     0,    76         0,     0,     0,     0,     0,     0,     0,    53,    45,    41,
590          51,    84,    91,    75,     0,    61,    63,     0,    77
591  };  };
592    
593  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
594  static const short yydefgoto[] =  static const short yydefgoto[] =
595  {  {
596        -1,    15,    16,    17,    18,    82,    89,    56,    75,    59,        -1,    15,    16,    17,    18,    84,    91,    56,    77,    59,
597        62,    68,   155,   209,   196,    65,   139,   141,   268,   266,        62,    69,   160,   216,   202,    66,   141,   143,   278,   276,
598       269,   272,   276,   278,   273,   281,   145,   214,   142,   140,       279,   282,   286,   288,   283,   291,   147,   221,   144,   142,
599       262,   210       271,   149,   272
600  };  };
601    
602  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
603     STATE-NUM.  */     STATE-NUM.  */
604  #define YYPACT_NINF -245  #define YYPACT_NINF -253
605  static const short yypact[] =  static const short yypact[] =
606  {  {
607       168,  -245,  -245,    30,    51,    68,   101,   105,   109,   129,        85,  -253,  -253,    23,    33,    81,   133,   134,   145,   147,
608       130,   131,   132,   133,  -245,    34,  -245,    52,  -245,    16,       148,   149,   152,   155,  -253,     9,    84,   124,  -253,    57,
609        82,   -21,    -8,    -1,   -27,    55,   -22,    -9,    -4,    70,       -15,   -27,   -10,   -23,    45,    89,   -22,    25,    32,   125,
610      -245,   168,    90,  -245,  -245,  -245,  -245,    93,  -245,   134,      -253,  -253,  -253,  -253,  -253,  -253,   160,  -253,   159,  -253,
611      -245,  -245,  -245,   135,   136,   137,   138,  -245,   139,   140,      -253,  -253,   161,   162,   163,   164,  -253,   165,   166,   167,
612       142,   143,   144,  -245,   147,  -245,  -245,   150,   151,  -245,       168,   169,  -253,   170,  -253,   171,  -253,   174,   175,  -253,
613       152,   153,  -245,  -245,  -245,  -245,   154,   155,  -245,   156,       176,   178,  -253,  -253,  -253,  -253,  -253,   179,   180,  -253,
614       157,   158,   159,   160,   163,  -245,  -245,  -245,  -245,  -245,       181,   182,   183,   184,   185,   186,   187,  -253,  -253,  -253,
615      -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,  -245,      -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,
616       164,  -245,   168,  -245,    73,   149,   165,   166,   167,   169,      -253,  -253,   188,  -253,   112,   136,   172,   173,   177,   189,
617       170,   171,   172,   173,   174,   183,   183,   188,   189,    -2,       190,   192,   194,   196,   197,   198,   193,   193,   195,   200,
618       183,   193,    38,   200,   201,   202,   203,   193,  -245,   204,         2,   193,   201,    42,    77,   202,   204,   205,   206,   201,
619       205,   206,   207,   209,   212,   213,   214,   215,   216,   218,       191,   207,   208,   209,   210,   211,   212,   223,   224,   226,
620       220,   221,   222,     6,     7,  -245,  -245,  -245,   223,  -245,       228,   229,   230,   231,   233,    39,    75,  -253,  -253,  -253,
621       225,  -245,   226,    93,  -245,  -245,   228,   229,   230,   231,       234,  -253,   236,  -253,   237,   160,  -253,  -253,  -253,  -253,
622       232,   233,   234,   235,   236,  -245,   237,   238,   239,   240,       160,   238,   239,   240,   241,   242,   243,   244,   245,   246,
623      -245,   193,    21,   193,   193,   183,   243,   244,   245,   183,      -253,   247,   248,   249,   250,  -253,   201,     3,   201,   201,
624       183,   246,   183,   183,   247,   183,   183,   248,   250,   193,       193,   253,   254,   255,   193,   193,   256,   193,   193,   257,
625       193,   193,   193,   193,   193,   193,   193,   193,   193,   251,       258,   193,   193,   259,   261,   201,   201,   201,   201,   201,
626       183,   183,   252,  -245,  -245,  -245,   253,  -245,  -245,  -245,       201,   201,   201,   201,   201,   262,   193,   193,   263,  -253,
627       254,   255,  -245,    93,    32,   256,    93,    33,  -245,   257,      -253,  -253,   264,  -253,  -253,  -253,   265,   266,  -253,   160,
628         8,   257,   258,  -245,   259,  -245,   260,   261,   262,   264,       129,   267,   160,   130,  -253,   268,   269,     7,   269,   270,
629       265,   266,   267,   268,   269,   270,    50,    76,   271,   193,      -253,   271,  -253,   272,   277,   278,   279,   280,   281,   282,
630       274,   275,   183,   276,   183,   183,   121,   250,   193,   277,       283,   284,   285,    41,    74,   286,   201,   289,   290,   193,
631       278,   183,   279,   183,   280,   281,   125,   279,   183,   121,       291,   193,   292,   193,   144,   261,   201,   293,   294,   193,
632       121,   183,  -245,  -245,   282,    53,  -245,    94,    88,  -245,       295,   193,   296,   297,   108,   295,   193,   144,   144,   193,
633      -245,  -245,  -245,   283,  -245,  -245,   284,  -245,  -245,  -245,      -253,  -253,   298,   132,  -253,   135,   299,    76,  -253,  -253,
634        93,  -245,   285,  -245,    93,  -245,  -245,  -245,  -245,  -245,      -253,  -253,   160,   300,  -253,  -253,   301,  -253,  -253,  -253,
635      -245,  -245,  -245,    89,  -245,  -245,    91,   183,   183,   183,       160,  -253,   302,  -253,   160,  -253,  -253,  -253,  -253,  -253,
636       121,   193,   277,   280,   121,   121,    93,   257,   257,  -245,      -253,  -253,  -253,   100,  -253,  -253,   106,   193,   193,   193,
637      -245,  -245,   286,  -245,  -245,   281,  -245       193,   144,   201,   293,   296,   144,   144,   160,   269,   269,
638         160,  -253,  -253,  -253,   303,  -253,  -253,   297,  -253
639  };  };
640    
641  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
642  static const short yypgoto[] =  static const short yypgoto[] =
643  {  {
644      -245,  -245,   -19,  -245,  -245,  -245,  -245,  -245,  -245,  -245,      -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,
645      -245,  -245,  -245,  -174,  -245,  -245,  -245,  -245,  -245,  -120,      -253,  -253,  -253,  -179,  -253,  -253,  -253,  -253,  -253,  -106,
646      -245,   -38,   -83,   -52,  -245,  -245,  -116,    22,   122,    81,      -253,   -56,  -103,  -115,  -253,  -253,  -118,   -33,    43,    86,
647      -244,   -17      -252,  -253,   -17
648  };  };
649    
650  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
651     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
652     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
653     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
654  #define YYTABLE_NINF -6  #define YYTABLE_NINF -4
655  static const short yytable[] =  static const short yytable[] =
656  {  {
657        37,   160,   211,    70,   137,   284,   285,    66,    67,    93,        36,   165,    71,   218,    72,   294,   295,    63,   139,    30,
658        93,    93,    91,   175,   176,    71,   138,    57,    72,   236,        93,    38,    57,    39,    40,    41,    73,    64,   244,    74,
659        76,    77,    78,    79,    80,    83,    84,    85,    86,    87,       140,    42,    43,    44,    45,    46,    58,    47,    48,    60,
660        60,    58,    73,    74,    30,    93,    93,    19,    63,   232,        19,    65,    49,    75,    76,    50,    51,    52,    53,    54,
661       234,    38,    31,    32,    61,   193,   299,   197,   198,    81,        20,    55,    93,    61,    93,    32,   181,   148,   199,   311,
662       303,   304,    64,    93,    88,    33,    93,    34,    20,    35,       203,   204,   257,   315,   316,    78,    79,    80,    81,    82,
663       288,   249,    36,   215,   216,   217,   218,   219,   220,   221,       200,   201,    85,    86,    87,    88,    89,   222,   223,   224,
664       222,   223,   224,   118,   146,    21,   147,   194,   195,    93,       225,   226,   227,   228,   229,   230,   231,    93,    93,    93,
665        69,   148,   149,   150,   151,   152,   153,   250,   133,   134,        67,    68,   182,    37,    83,   258,     1,   301,    21,   135,
666       154,    93,    93,   143,    93,    90,    93,    93,    92,   290,       136,    90,    31,    -3,   145,     2,   150,     3,     4,     5,
667       294,   289,   295,   119,   120,   121,   122,    39,    22,    40,         6,     7,     8,    93,     9,    10,    11,    12,    13,    93,
668        41,    42,    23,   252,   297,   298,    24,    43,    44,    45,        14,   305,   289,   290,   151,    70,   152,   306,   260,   308,
669        46,    47,   264,    48,    49,   259,   260,   261,    50,   279,       309,   153,   154,   155,   156,   157,   158,    32,   274,    33,
670       280,    51,    52,    53,    54,    55,    25,    26,    27,    28,       159,    34,    93,    93,    35,    93,   239,   241,    93,   298,
671        29,    94,    95,    96,    97,    98,    99,   100,   143,   101,        22,    23,   299,   120,   121,   122,   123,    32,   268,   269,
672       102,   103,   203,   204,   104,   206,   207,   105,   106,   107,       270,    92,    24,   145,    25,    26,    27,   209,   210,    28,
673       108,   109,   110,   111,   112,   113,   114,   115,    -5,     1,       212,   213,    29,    93,   217,   217,    94,   124,    95,    96,
674       116,   117,   301,   226,   227,   300,    -5,    -5,     2,   123,        97,    98,    99,   100,   101,   102,   103,   104,   105,   233,
675         3,     4,     5,     6,     7,     8,    33,     9,    10,    11,       234,   106,   107,   108,   312,   109,   110,   111,   112,   113,
676        12,    13,    14,   135,   136,   124,   125,   126,   144,   127,       114,   115,   116,   117,   118,   119,    32,   313,   166,   292,
677       128,   129,   130,   131,   132,   156,   157,   158,   159,   282,       137,   314,   318,   125,   126,   138,   146,   161,   127,   162,
678       302,   161,   162,   163,   164,   255,   165,   257,   258,   166,       163,   164,   273,   205,   167,   168,   169,   170,   171,   172,
679       167,   168,   169,   170,   270,   171,   274,   172,   173,   174,       128,   129,   263,   130,   265,   131,   267,   132,   133,   134,
680       177,   283,   178,   179,   286,   180,   181,   182,   183,   184,       173,   174,   280,   175,   284,   176,   177,   178,   179,   293,
681       185,   186,   187,   188,   189,   190,   191,   192,   200,   201,       180,   183,   296,   184,   185,   186,   187,   188,   189,   190,
682       202,   205,   208,   306,   137,   213,   225,   228,   212,   263,       191,   192,   193,   194,   195,   196,   197,   198,   206,   207,
683       229,   230,   231,   233,   235,   237,   238,   239,   240,   241,       208,   211,   214,   215,     0,   139,   220,   232,   235,   219,
684       296,   242,   243,   244,   245,   246,   247,   248,   251,   253,         0,   236,   237,   238,   240,   242,   243,   245,   246,   247,
685       254,   256,   265,   267,   271,   275,   277,   199,     0,   287,       307,   217,   217,   310,   248,   249,   250,   251,   252,   253,
686       291,   292,   293,   305       254,   255,   256,   259,   261,   262,   264,   266,   275,   277,
687         281,   285,   287,     0,     0,   297,   300,   302,   303,   304,
688         317
689  };  };
690    
691  static const short yycheck[] =  static const short yycheck[] =
692  {  {
693        17,   117,   176,    25,     6,   249,   250,    34,    35,     3,        17,   119,    24,   182,    26,   257,   258,    30,     6,     0,
694         3,     3,    31,     7,     7,    37,    18,    38,    40,    11,         3,    26,    39,    28,    29,    30,    38,    40,    11,    41,
695        29,    30,    31,    32,    33,    29,    30,    31,    32,    33,        18,    36,    37,    38,    39,    40,    53,    42,    43,    39,
696        38,    52,    54,    55,     0,     3,     3,     7,    39,     7,         7,    54,    47,    55,    56,    50,    51,    52,    53,    54,
697         7,    25,     8,     9,    52,   161,   290,   163,   164,    58,         7,    56,     3,    53,     3,     3,     7,     5,   166,   301,
698       294,   295,    53,     3,    58,     3,     3,     5,     7,     7,       168,   169,    11,   305,   306,    30,    31,    32,    33,    34,
699         7,    11,    10,   179,   180,   181,   182,   183,   184,   185,        57,    58,    30,    31,    32,    33,    34,   185,   186,   187,
700       186,   187,   188,    92,    36,     7,    38,    56,    57,     3,       188,   189,   190,   191,   192,   193,   194,     3,     3,     3,
701        25,    43,    44,    45,    46,    47,    48,    11,   105,   106,        35,    36,     7,    26,    59,    11,     1,    11,     7,   106,
702        52,     3,     3,   110,     3,    25,     3,     3,     8,    11,       107,    59,     8,     8,   111,    10,   113,    12,    13,    14,
703        11,     7,    11,    30,    31,    32,    33,    25,     7,    27,        15,    16,    17,     3,    19,    20,    21,    22,    23,     3,
704        28,    29,     7,   229,   288,   289,     7,    35,    36,    37,        25,    11,     4,     5,    37,    26,    39,    11,   236,   298,
705        38,    39,   238,    41,    42,     4,     5,     6,    46,     4,       299,    44,    45,    46,    47,    48,    49,     3,   246,     5,
706         5,    49,    50,    51,    52,    53,     7,     7,     7,     7,        53,     7,     3,     3,    10,     3,     7,     7,     3,     7,
707         7,     7,     7,     7,     7,     7,     7,     7,   165,     7,         7,     7,     7,    31,    32,    33,    34,     3,     4,     5,
708         7,     7,   169,   170,     7,   172,   173,     7,     7,     7,         6,    26,     7,   170,     7,     7,     7,   174,   175,     7,
709         7,     7,     7,     7,     7,     7,     7,     7,     0,     1,       177,   178,     7,     3,   181,   182,     7,    31,     7,     7,
710         7,     7,   292,   190,   191,   291,     8,     9,    10,    30,         7,     7,     7,     7,     7,     7,     7,     7,     7,   196,
711        12,    13,    14,    15,    16,    17,     3,    19,    20,    21,       197,     7,     7,     7,   302,     7,     7,     7,     7,     7,
712        22,    23,    24,     5,     5,    30,    30,    30,     5,    30,         7,     7,     7,     7,     7,     7,     3,   303,     7,   255,
713        30,    30,    30,    30,    30,     5,     5,     5,     5,   247,         5,   304,   317,    31,    31,     5,     5,     5,    31,     5,
714       293,     7,     7,     7,     7,   232,     7,   234,   235,     7,         5,     5,   245,   170,     7,     7,     7,     7,     7,     7,
715         7,     7,     7,     7,   241,     7,   243,     7,     7,     7,        31,    31,   239,    31,   241,    31,   243,    31,    31,    31,
716         7,   248,     7,     7,   251,     7,     7,     7,     7,     7,         7,     7,   249,     7,   251,     7,     7,     7,     7,   256,
717           7,     7,   259,     7,     7,     7,     7,     7,     7,     7,
718         7,     7,     7,     7,     7,     7,     7,     7,     5,     5,         7,     7,     7,     7,     7,     7,     7,     7,     5,     5,
719         5,     5,     5,   305,     6,     5,     5,     5,   177,   237,         5,     5,     5,     5,    -1,     6,     5,     5,     5,   183,
720         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,        -1,     7,     7,     7,     7,     7,     7,     7,     7,     7,
721       287,     7,     7,     7,     7,     7,     7,     7,     7,     5,       297,   298,   299,   300,     7,     7,     7,     7,     7,     7,
722         5,     5,     5,     5,     5,     5,     5,   165,    -1,     7,         7,     7,     7,     7,     5,     5,     5,     5,     5,     5,
723         7,     7,     7,     7         5,     5,     5,    -1,    -1,     7,     7,     7,     7,     7,
724           7
725  };  };
726    
727  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
# Line 714  static const short yycheck[] = Line 729  static const short yycheck[] =
729  static const unsigned char yystos[] =  static const unsigned char yystos[] =
730  {  {
731         0,     1,    10,    12,    13,    14,    15,    16,    17,    19,         0,     1,    10,    12,    13,    14,    15,    16,    17,    19,
732        20,    21,    22,    23,    24,    60,    61,    62,    63,     7,        20,    21,    22,    23,    25,    61,    62,    63,    64,     7,
733         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
734         0,     8,     9,     3,     5,     7,    10,    90,    25,    25,         0,     8,     3,     5,     7,    10,    92,    26,    26,    28,
735        27,    28,    29,    35,    36,    37,    38,    39,    41,    42,        29,    30,    36,    37,    38,    39,    40,    42,    43,    47,
736        46,    49,    50,    51,    52,    53,    66,    38,    52,    68,        50,    51,    52,    53,    54,    56,    67,    39,    53,    69,
737        38,    52,    69,    39,    53,    74,    34,    35,    70,    25,        39,    53,    70,    30,    40,    54,    75,    35,    36,    71,
738        25,    37,    40,    54,    55,    67,    29,    30,    31,    32,        26,    24,    26,    38,    41,    55,    56,    68,    30,    31,
739        33,    58,    64,    29,    30,    31,    32,    33,    58,    65,        32,    33,    34,    59,    65,    30,    31,    32,    33,    34,
740        25,    61,     8,     3,     7,     7,     7,     7,     7,     7,        59,    66,    26,     3,     7,     7,     7,     7,     7,     7,
741         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
        7,     7,     7,     7,     7,     7,     7,     7,    61,    30,  
       31,    32,    33,    30,    30,    30,    30,    30,    30,    30,  
       30,    30,    30,    90,    90,     5,     5,     6,    18,    75,  
       88,    76,    87,    90,     5,    85,    36,    38,    43,    44,  
       45,    46,    47,    48,    52,    71,     5,     5,     5,     5,  
       85,     7,     7,     7,     7,     7,     7,     7,     7,     7,  
742         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
743          31,    32,    33,    34,    31,    31,    31,    31,    31,    31,
744          31,    31,    31,    31,    31,    92,    92,     5,     5,     6,
745          18,    76,    89,    77,    88,    92,     5,    86,     5,    91,
746          92,    37,    39,    44,    45,    46,    47,    48,    49,    53,
747          72,     5,     5,     5,     5,    86,     7,     7,     7,     7,
748         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
749         7,     7,     7,    85,    56,    57,    73,    85,    85,    87,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
750         5,     5,     5,    90,    90,     5,    90,    90,     5,    72,         7,     7,     7,     7,     7,     7,     7,     7,     7,    86,
751        90,    72,    88,     5,    86,    85,    85,    85,    85,    85,        57,    58,    74,    86,    86,    88,     5,     5,     5,    92,
752        85,    85,    85,    85,    85,     5,    90,    90,     5,     7,        92,     5,    92,    92,     5,     5,    73,    92,    73,    89,
753         7,     7,     7,     7,     7,     7,    11,     7,     7,     7,         5,    87,    86,    86,    86,    86,    86,    86,    86,    86,
754         7,     7,     7,     7,     7,     7,     7,     7,     7,    11,        86,    86,     5,    92,    92,     5,     7,     7,     7,     7,
755        11,     7,    85,     5,     5,    90,     5,    90,    90,     4,         7,     7,     7,     7,    11,     7,     7,     7,     7,     7,
756         5,     6,    89,    86,    85,     5,    78,     5,    77,    79,         7,     7,     7,     7,     7,     7,     7,    11,    11,     7,
757        90,     5,    80,    83,    90,     5,    81,     5,    82,     4,        86,     5,     5,    92,     5,    92,     5,    92,     4,     5,
758         5,    84,    80,    90,    89,    89,    90,     7,     7,     7,         6,    90,    92,    87,    86,     5,    79,     5,    78,    80,
759        11,     7,     7,     7,    11,    11,    90,    72,    72,    89,        92,     5,    81,    84,    92,     5,    82,     5,    83,     4,
760        85,    78,    81,    89,    89,     7,    82         5,    85,    81,    92,    90,    90,    92,     7,     7,     7,
761           7,    11,     7,     7,     7,    11,    11,    92,    73,    73,
762          92,    90,    86,    79,    82,    90,    90,     7,    83
763  };  };
764    
765  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 771  static const unsigned char yystos[] = Line 787  static const unsigned char yystos[] =
787  #define YYABORT         goto yyabortlab  #define YYABORT         goto yyabortlab
788  #define YYERROR         goto yyerrlab1  #define YYERROR         goto yyerrlab1
789    
790    
791  /* Like YYERROR except do call yyerror.  This remains here temporarily  /* Like YYERROR except do call yyerror.  This remains here temporarily
792     to ease the transition to the new meaning of YYERROR, for GCC.     to ease the transition to the new meaning of YYERROR, for GCC.
793     Once GCC version 2 has supplanted version 1, this can go.  */     Once GCC version 2 has supplanted version 1, this can go.  */
# Line 1352  yyreduce: Line 1369  yyreduce:
1369    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
1370    switch (yyn)    switch (yyn)
1371      {      {
1372          case 7:          case 3:
1373    #line 84 "lscp.y"
1374        { return LSCP_DONE; }
1375        break;
1376    
1377      case 4:
1378  #line 85 "lscp.y"  #line 85 "lscp.y"
1379      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { return LSCP_DONE; }
1380      break;      break;
1381    
1382    case 8:    case 5:
1383  #line 86 "lscp.y"  #line 86 "lscp.y"
1384      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }      { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; }
1385      break;      break;
1386    
1387    case 14:    case 6:
1388  #line 96 "lscp.y"  #line 87 "lscp.y"
1389      { yyval.String = LSCPSERVER->AddChannel();                  }      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
1390      break;      break;
1391    
1392    case 15:    case 12:
1393  #line 97 "lscp.y"  #line 97 "lscp.y"
1394      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->AddChannel();                  }
1395      break;      break;
1396    
1397    case 16:    case 13:
1398  #line 98 "lscp.y"  #line 98 "lscp.y"
1399      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1400      break;      break;
1401    
1402    case 17:    case 14:
1403  #line 99 "lscp.y"  #line 99 "lscp.y"
1404      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1405      break;      break;
1406    
1407    case 18:    case 15:
1408  #line 100 "lscp.y"  #line 100 "lscp.y"
1409      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1410      break;      break;
1411    
1412    case 19:    case 16:
1413  #line 101 "lscp.y"  #line 101 "lscp.y"
1414      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1415      break;      break;
1416    
1417    case 20:    case 17:
1418  #line 102 "lscp.y"  #line 102 "lscp.y"
1419      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { yyval.String = yyvsp[0].String;                                        }
1420      break;      break;
1421    
1422    case 21:    case 18:
1423  #line 103 "lscp.y"  #line 103 "lscp.y"
1424      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }
1425      break;      break;
1426    
1427    case 22:    case 19:
1428  #line 104 "lscp.y"  #line 104 "lscp.y"
1429      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1430      break;      break;
1431    
1432    case 23:    case 20:
1433  #line 105 "lscp.y"  #line 105 "lscp.y"
1434      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1435      break;      break;
1436    
1437    case 24:    case 21:
1438  #line 106 "lscp.y"  #line 106 "lscp.y"
1439        { yyval.String = yyvsp[0].String;                                        }
1440        break;
1441    
1442      case 22:
1443    #line 107 "lscp.y"
1444      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }
1445      break;      break;
1446    
1447      case 23:
1448    #line 108 "lscp.y"
1449        { yyval.String = LSCPSERVER->ResetSampler();                }
1450        break;
1451    
1452      case 24:
1453    #line 109 "lscp.y"
1454        { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
1455        break;
1456    
1457    case 25:    case 25:
1458  #line 107 "lscp.y"  #line 112 "lscp.y"
1459      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels); }
1460      break;      break;
1461    
1462    case 26:    case 26:
1463  #line 110 "lscp.y"  #line 113 "lscp.y"
1464      { yyval.String = LSCPSERVER->SubscribeNotification(event_channels); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count); }
1465      break;      break;
1466    
1467    case 27:    case 27:
1468  #line 111 "lscp.y"  #line 114 "lscp.y"
1469      { yyval.String = LSCPSERVER->SubscribeNotification(event_voice_count); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }
1470      break;      break;
1471    
1472    case 28:    case 28:
1473  #line 112 "lscp.y"  #line 115 "lscp.y"
1474      { yyval.String = LSCPSERVER->SubscribeNotification(event_stream_count); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill); }
1475      break;      break;
1476    
1477    case 29:    case 29:
1478  #line 113 "lscp.y"  #line 116 "lscp.y"
1479      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_buffer_fill); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info); }
1480      break;      break;
1481    
1482    case 30:    case 30:
1483  #line 114 "lscp.y"  #line 117 "lscp.y"
1484      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_info); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc); }
1485      break;      break;
1486    
1487    case 31:    case 31:
1488  #line 115 "lscp.y"  #line 120 "lscp.y"
1489      { yyval.String = LSCPSERVER->SubscribeNotification(event_misc); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels); }
1490      break;      break;
1491    
1492    case 32:    case 32:
1493  #line 118 "lscp.y"  #line 121 "lscp.y"
1494      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channels); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count); }
1495      break;      break;
1496    
1497    case 33:    case 33:
1498  #line 119 "lscp.y"  #line 122 "lscp.y"
1499      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_voice_count); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }
1500      break;      break;
1501    
1502    case 34:    case 34:
1503  #line 120 "lscp.y"  #line 123 "lscp.y"
1504      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_stream_count); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill); }
1505      break;      break;
1506    
1507    case 35:    case 35:
1508  #line 121 "lscp.y"  #line 124 "lscp.y"
1509      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_buffer_fill); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info); }
1510      break;      break;
1511    
1512    case 36:    case 36:
1513  #line 122 "lscp.y"  #line 125 "lscp.y"
1514      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_info); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc); }
1515      break;      break;
1516    
1517    case 37:    case 37:
1518  #line 123 "lscp.y"  #line 128 "lscp.y"
1519      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_misc); }      { yyval.String = LSCPSERVER->GetAvailableEngines();       }
1520      break;      break;
1521    
1522    case 38:    case 38:
1523  #line 126 "lscp.y"  #line 129 "lscp.y"
1524      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }      { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();       }
1525      break;      break;
1526    
1527    case 39:    case 39:
1528  #line 127 "lscp.y"  #line 130 "lscp.y"
1529      { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();               }      { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);       }
1530      break;      break;
1531    
1532    case 40:    case 40:
1533  #line 128 "lscp.y"  #line 131 "lscp.y"
1534      { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);                   }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);       }
1535      break;      break;
1536    
1537    case 41:    case 41:
1538  #line 129 "lscp.y"  #line 132 "lscp.y"
1539      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);       }
1540      break;      break;
1541    
1542    case 42:    case 42:
1543  #line 130 "lscp.y"  #line 133 "lscp.y"
1544      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();       }
1545      break;      break;
1546    
1547    case 43:    case 43:
1548  #line 131 "lscp.y"  #line 134 "lscp.y"
1549      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);       }
1550      break;      break;
1551    
1552    case 44:    case 44:
1553  #line 132 "lscp.y"  #line 135 "lscp.y"
1554      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);       }
1555      break;      break;
1556    
1557    case 45:    case 45:
1558  #line 133 "lscp.y"  #line 136 "lscp.y"
1559      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);       }
1560      break;      break;
1561    
1562    case 46:    case 46:
1563  #line 134 "lscp.y"  #line 137 "lscp.y"
1564      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();       }
1565      break;      break;
1566    
1567    case 47:    case 47:
1568  #line 135 "lscp.y"  #line 138 "lscp.y"
1569      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }      { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();       }
1570      break;      break;
1571    
1572    case 48:    case 48:
1573  #line 136 "lscp.y"  #line 139 "lscp.y"
1574      { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();                    }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);       }
1575      break;      break;
1576    
1577    case 49:    case 49:
1578  #line 137 "lscp.y"  #line 140 "lscp.y"
1579      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);       }
1580      break;      break;
1581    
1582    case 50:    case 50:
1583  #line 138 "lscp.y"  #line 141 "lscp.y"
1584      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);                   }      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);       }
1585      break;      break;
1586    
1587    case 51:    case 51:
1588  #line 139 "lscp.y"  #line 142 "lscp.y"
1589      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);                   }      { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);       }
1590      break;      break;
1591    
1592    case 52:    case 52:
1593  #line 140 "lscp.y"  #line 143 "lscp.y"
1594      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);       }
1595      break;      break;
1596    
1597    case 53:    case 53:
1598  #line 141 "lscp.y"  #line 144 "lscp.y"
1599      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);       }
1600      break;      break;
1601    
1602    case 54:    case 54:
1603  #line 142 "lscp.y"  #line 145 "lscp.y"
1604      { yyval.String = LSCPSERVER->GetChannels();                                  }      { yyval.String = LSCPSERVER->GetChannels();       }
1605      break;      break;
1606    
1607    case 55:    case 55:
1608  #line 143 "lscp.y"  #line 146 "lscp.y"
1609      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);       }
1610      break;      break;
1611    
1612    case 56:    case 56:
1613  #line 144 "lscp.y"  #line 147 "lscp.y"
1614      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);       }
1615      break;      break;
1616    
1617    case 57:    case 57:
1618  #line 145 "lscp.y"  #line 148 "lscp.y"
1619      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);       }
1620      break;      break;
1621    
1622    case 58:    case 58:
1623  #line 146 "lscp.y"  #line 149 "lscp.y"
1624      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);       }
1625      break;      break;
1626    
1627    case 59:    case 59:
1628  #line 147 "lscp.y"  #line 150 "lscp.y"
1629      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);       }
1630      break;      break;
1631    
1632    case 60:    case 60:
1633  #line 150 "lscp.y"  #line 153 "lscp.y"
1634      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1635      break;      break;
1636    
1637    case 61:    case 61:
1638  #line 151 "lscp.y"  #line 154 "lscp.y"
1639      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1640      break;      break;
1641    
1642    case 62:    case 62:
1643  #line 152 "lscp.y"  #line 155 "lscp.y"
1644      { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1645      break;      break;
1646    
1647    case 63:    case 63:
1648  #line 153 "lscp.y"  #line 156 "lscp.y"
1649      { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1650      break;      break;
1651    
1652    case 64:    case 64:
1653  #line 154 "lscp.y"  #line 157 "lscp.y"
1654      { yyval.String = yyvsp[0].String;                                                         }      { yyval.String = yyvsp[0].String;                                                         }
1655      break;      break;
1656    
1657    case 65:    case 65:
1658  #line 157 "lscp.y"  #line 158 "lscp.y"
1659      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }      { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum);  }
1660      break;      break;
1661    
1662    case 66:    case 66:
1663  #line 158 "lscp.y"  #line 161 "lscp.y"
1664      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
1665      break;      break;
1666    
1667    case 67:    case 67:
1668  #line 159 "lscp.y"  #line 162 "lscp.y"
1669      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }
1670      break;      break;
1671    
1672    case 68:    case 68:
1673  #line 160 "lscp.y"  #line 163 "lscp.y"
1674      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }
1675      break;      break;
1676    
1677    case 69:    case 69:
1678  #line 163 "lscp.y"  #line 164 "lscp.y"
1679      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }
1680      break;      break;
1681    
1682    case 70:    case 70:
1683  #line 164 "lscp.y"  #line 167 "lscp.y"
1684      { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number); }      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number);       }
1685      break;      break;
1686    
1687    case 71:    case 71:
1688  #line 167 "lscp.y"  #line 168 "lscp.y"
1689      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number);         }
1690      break;      break;
1691    
1692    case 72:    case 72:
1693  #line 168 "lscp.y"  #line 171 "lscp.y"
1694      { yyval.String = yyvsp[0].String; }      { yyval.String = yyvsp[0].String; }
1695      break;      break;
1696    
1697    case 73:    case 73:
1698  #line 171 "lscp.y"  #line 172 "lscp.y"
1699      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }      { yyval.String = yyvsp[0].String; }
1700      break;      break;
1701    
1702    case 74:    case 74:
1703  #line 172 "lscp.y"  #line 175 "lscp.y"
1704      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
1705      break;      break;
1706    
1707    case 75:    case 75:
1708  #line 173 "lscp.y"  #line 176 "lscp.y"
1709      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
1710      break;      break;
1711    
1712    case 76:    case 76:
1713  #line 174 "lscp.y"  #line 177 "lscp.y"
1714      { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);  }      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }
1715      break;      break;
1716    
1717    case 77:    case 77:
1718  #line 175 "lscp.y"  #line 178 "lscp.y"
1719      { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number);        }      { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);  }
1720      break;      break;
1721    
1722    case 78:    case 78:
1723  #line 176 "lscp.y"  #line 179 "lscp.y"
1724      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number);        }
1725      break;      break;
1726    
1727    case 79:    case 79:
1728  #line 177 "lscp.y"  #line 180 "lscp.y"
1729      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number);          }
1730      break;      break;
1731    
1732    case 80:    case 80:
1733  #line 178 "lscp.y"  #line 181 "lscp.y"
1734      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }
1735      break;      break;
1736    
1737    case 81:    case 81:
1738  #line 179 "lscp.y"  #line 182 "lscp.y"
1739      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }
1740      break;      break;
1741    
1742    case 82:    case 82:
1743  #line 182 "lscp.y"  #line 183 "lscp.y"
1744      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }
1745      break;      break;
1746    
1747    case 83:    case 83:
1748  #line 183 "lscp.y"  #line 186 "lscp.y"
1749      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }
1750      break;      break;
1751    
1752    case 84:    case 84:
1753  #line 186 "lscp.y"  #line 187 "lscp.y"
1754      { yyval.FillResponse = fill_response_bytes;      }      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }
1755      break;      break;
1756    
1757    case 85:    case 85:
1758  #line 187 "lscp.y"  #line 190 "lscp.y"
1759      { yyval.FillResponse = fill_response_percentage; }      { yyval.FillResponse = fill_response_bytes;      }
1760      break;      break;
1761    
1762    case 86:    case 86:
1763  #line 190 "lscp.y"  #line 191 "lscp.y"
1764      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }      { yyval.FillResponse = fill_response_percentage; }
1765      break;      break;
1766    
1767    case 87:    case 87:
1768  #line 191 "lscp.y"  #line 194 "lscp.y"
1769      { yyval.String = LSCPSERVER->GetMidiInputDevices(); }      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }
1770      break;      break;
1771    
1772    case 88:    case 88:
1773  #line 194 "lscp.y"  #line 195 "lscp.y"
1774      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->GetMidiInputDevices();   }
1775      break;      break;
1776    
1777    case 89:    case 89:
1778  #line 195 "lscp.y"  #line 196 "lscp.y"
1779      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); }      { yyval.String = LSCPSERVER->ListChannels();          }
1780      break;      break;
1781    
1782    case 90:    case 90:
1783  #line 198 "lscp.y"  #line 199 "lscp.y"
1784      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number);       }
1785      break;      break;
1786    
1787    case 99:    case 91:
1788  #line 223 "lscp.y"  #line 200 "lscp.y"
1789      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true);       }
1790        break;
1791    
1792      case 92:
1793    #line 203 "lscp.y"
1794        { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number);       }
1795      break;      break;
1796    
1797    case 104:    case 101:
1798  #line 238 "lscp.y"  #line 228 "lscp.y"
1799      { yyval.String = yyvsp[0].String;                                             }      { yyval.Dotnum = yyvsp[0].Number; }
1800      break;      break;
1801    
1802    case 105:    case 108:
1803  #line 239 "lscp.y"  #line 245 "lscp.y"
1804      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }
1805      break;      break;
1806    
1807    case 106:    case 109:
1808  #line 240 "lscp.y"  #line 246 "lscp.y"
1809      { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str();       }      { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str();       }
1810      break;      break;
1811    
1812    case 107:    case 110:
1813  #line 243 "lscp.y"  #line 249 "lscp.y"
1814        { yyval.Dotnum = yyvsp[0].Number; }
1815        break;
1816    
1817      case 111:
1818    #line 250 "lscp.y"
1819        { yyval.Dotnum = -1; }
1820        break;
1821    
1822      case 112:
1823    #line 253 "lscp.y"
1824      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { std::string s; s = yyvsp[0].Char; yyval.String = s; }
1825      break;      break;
1826    
1827    case 108:    case 113:
1828  #line 244 "lscp.y"  #line 254 "lscp.y"
1829      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }
1830      break;      break;
1831    
1832    
1833      }      }
1834    
1835  /* Line 991 of yacc.c.  */  /* Line 999 of yacc.c.  */
1836  #line 1784 "y.tab.c"  #line 1837 "y.tab.c"
1837    
1838    yyvsp -= yylen;    yyvsp -= yylen;
1839    yyssp -= yylen;    yyssp -= yylen;
# Line 1895  yyerrlab: Line 1947  yyerrlab:
1947    
1948    /* Else will try to reuse lookahead token after shifting the error    /* Else will try to reuse lookahead token after shifting the error
1949       token.  */       token.  */
1950    goto yyerrlab2;    goto yyerrlab1;
1951    
1952    
1953  /*----------------------------------------------------.  /*----------------------------------------------------.
1954  | yyerrlab1 -- error raised explicitly by an action.  |  | yyerrlab1 -- error raised explicitly by an action.  |
1955  `----------------------------------------------------*/  `----------------------------------------------------*/
1956  yyerrlab1:  yyerrlab1:
   
   /* Suppress GCC warning that yyerrlab1 is unused when no action  
      invokes YYERROR.  */  
 #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__) \  
     && !defined __cplusplus  
   __attribute__ ((__unused__))  
 #endif  
   
   
   goto yyerrlab2;  
   
   
 /*---------------------------------------------------------------.  
 | yyerrlab2 -- pop states until the error token can be shifted.  |  
 `---------------------------------------------------------------*/  
 yyerrlab2:  
1957    yyerrstatus = 3;      /* Each real token shifted decrements this.  */    yyerrstatus = 3;      /* Each real token shifted decrements this.  */
1958    
1959    for (;;)    for (;;)
# Line 1991  yyreturn: Line 2027  yyreturn:
2027  }  }
2028    
2029    
2030  #line 247 "lscp.y"  #line 257 "lscp.y"
2031    
2032    
2033  /**  /**
# Line 2007  void yyerror(const char* s) { Line 2043  void yyerror(const char* s) {
2043  void restart(yyparse_param_t* pparam, int& yychar) {  void restart(yyparse_param_t* pparam, int& yychar) {
2044      // restart scanner      // restart scanner
2045      yyrestart(stdin, pparam->pScanner);      yyrestart(stdin, pparam->pScanner);
     // flush input buffer  
     static char buf[1024];  
     while(recv(hSession, buf, 1024, MSG_DONTWAIT) > 0);  
2046      // reset lookahead symbol      // reset lookahead symbol
2047      yyclearin;      yyclearin;
2048  }  }

Legend:
Removed from v.160  
changed lines
  Added in v.214

  ViewVC Help
Powered by ViewVC