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

Legend:
Removed from v.64  
changed lines
  Added in v.170

  ViewVC Help
Powered by ViewVC