/[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 123 by schoenebeck, Mon Jun 14 19:33:16 2004 UTC revision 138 by senkov, Sun Jun 20 23:18:24 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       HASH = 264,       CR = 264,
63       EQ = 265,       HASH = 265,
64       ADD = 266,       EQ = 266,
65       GET = 267,       ADD = 267,
66       CREATE = 268,       GET = 268,
67       DESTROY = 269,       CREATE = 269,
68       LIST = 270,       DESTROY = 270,
69       LOAD = 271,       LIST = 271,
70       REMOVE = 272,       LOAD = 272,
71       SET = 273,       LOAD_BACKGROUND = 273,
72       SUBSCRIBE = 274,       REMOVE = 274,
73       UNSUBSCRIBE = 275,       SET = 275,
74       RESET = 276,       SUBSCRIBE = 276,
75       QUIT = 277,       UNSUBSCRIBE = 277,
76       CHANNEL = 278,       RESET = 278,
77       NOTIFICATION = 279,       QUIT = 279,
78       AVAILABLE_ENGINES = 280,       CHANNEL = 280,
79       AVAILABLE_AUDIO_OUTPUT_DRIVERS = 281,       NOTIFICATION = 281,
80       CHANNELS = 282,       AVAILABLE_ENGINES = 282,
81       INFO = 283,       AVAILABLE_AUDIO_OUTPUT_DRIVERS = 283,
82       BUFFER_FILL = 284,       CHANNELS = 284,
83       STREAM_COUNT = 285,       INFO = 285,
84       VOICE_COUNT = 286,       BUFFER_FILL = 286,
85       INSTRUMENT = 287,       STREAM_COUNT = 287,
86       ENGINE = 288,       VOICE_COUNT = 288,
87       AUDIO_OUTPUT_CHANNEL = 289,       INSTRUMENT = 289,
88       AUDIO_OUTPUT_CHANNEL_PARAMETER = 290,       ENGINE = 290,
89       AUDIO_OUTPUT_DEVICE = 291,       AUDIO_OUTPUT_CHANNEL = 291,
90       AUDIO_OUTPUT_DEVICES = 292,       AUDIO_OUTPUT_CHANNEL_PARAMETER = 292,
91       AUDIO_OUTPUT_DEVICE_PARAMETER = 293,       AUDIO_OUTPUT_DEVICE = 293,
92       AUDIO_OUTPUT_DRIVER = 294,       AUDIO_OUTPUT_DEVICES = 294,
93       AUDIO_OUTPUT_DRIVER_PARAMETER = 295,       AUDIO_OUTPUT_DEVICE_PARAMETER = 295,
94       MIDI_INPUT_PORT = 296,       AUDIO_OUTPUT_DRIVER = 296,
95       MIDI_INPUT_CHANNEL = 297,       AUDIO_OUTPUT_DRIVER_PARAMETER = 297,
96       MIDI_INPUT_TYPE = 298,       MIDI_INPUT_PORT = 298,
97       VOLUME = 299,       MIDI_INPUT_CHANNEL = 299,
98       BYTES = 300,       MIDI_INPUT_TYPE = 300,
99       PERCENTAGE = 301       VOLUME = 301,
100         BYTES = 302,
101         PERCENTAGE = 303,
102         MISCELLANEOUS = 304
103     };     };
104  #endif  #endif
105  #define CHAR 258  #define CHAR 258
106  #define DOTNUM 259  #define DOTNUM 259
107  #define NUMBER 260  #define NUMBER 260
108  #define SP 261  #define STRINGVAL 261
109  #define LF 262  #define SP 262
110  #define CR 263  #define LF 263
111  #define HASH 264  #define CR 264
112  #define EQ 265  #define HASH 265
113  #define ADD 266  #define EQ 266
114  #define GET 267  #define ADD 267
115  #define CREATE 268  #define GET 268
116  #define DESTROY 269  #define CREATE 269
117  #define LIST 270  #define DESTROY 270
118  #define LOAD 271  #define LIST 271
119  #define REMOVE 272  #define LOAD 272
120  #define SET 273  #define LOAD_BACKGROUND 273
121  #define SUBSCRIBE 274  #define REMOVE 274
122  #define UNSUBSCRIBE 275  #define SET 275
123  #define RESET 276  #define SUBSCRIBE 276
124  #define QUIT 277  #define UNSUBSCRIBE 277
125  #define CHANNEL 278  #define RESET 278
126  #define NOTIFICATION 279  #define QUIT 279
127  #define AVAILABLE_ENGINES 280  #define CHANNEL 280
128  #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 281  #define NOTIFICATION 281
129  #define CHANNELS 282  #define AVAILABLE_ENGINES 282
130  #define INFO 283  #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 283
131  #define BUFFER_FILL 284  #define CHANNELS 284
132  #define STREAM_COUNT 285  #define INFO 285
133  #define VOICE_COUNT 286  #define BUFFER_FILL 286
134  #define INSTRUMENT 287  #define STREAM_COUNT 287
135  #define ENGINE 288  #define VOICE_COUNT 288
136  #define AUDIO_OUTPUT_CHANNEL 289  #define INSTRUMENT 289
137  #define AUDIO_OUTPUT_CHANNEL_PARAMETER 290  #define ENGINE 290
138  #define AUDIO_OUTPUT_DEVICE 291  #define AUDIO_OUTPUT_CHANNEL 291
139  #define AUDIO_OUTPUT_DEVICES 292  #define AUDIO_OUTPUT_CHANNEL_PARAMETER 292
140  #define AUDIO_OUTPUT_DEVICE_PARAMETER 293  #define AUDIO_OUTPUT_DEVICE 293
141  #define AUDIO_OUTPUT_DRIVER 294  #define AUDIO_OUTPUT_DEVICES 294
142  #define AUDIO_OUTPUT_DRIVER_PARAMETER 295  #define AUDIO_OUTPUT_DEVICE_PARAMETER 295
143  #define MIDI_INPUT_PORT 296  #define AUDIO_OUTPUT_DRIVER 296
144  #define MIDI_INPUT_CHANNEL 297  #define AUDIO_OUTPUT_DRIVER_PARAMETER 297
145  #define MIDI_INPUT_TYPE 298  #define MIDI_INPUT_PORT 298
146  #define VOLUME 299  #define MIDI_INPUT_CHANNEL 299
147  #define BYTES 300  #define MIDI_INPUT_TYPE 300
148  #define PERCENTAGE 301  #define VOLUME 301
149    #define BYTES 302
150    #define PERCENTAGE 303
151    #define MISCELLANEOUS 304
152    
153    
154    
# Line 173  extern void yyrestart(FILE* input_file, Line 179  extern void yyrestart(FILE* input_file,
179  // we provide our own version of yyerror() so we don't have to link against the yacc library  // we provide our own version of yyerror() so we don't have to link against the yacc library
180  void yyerror(const char* s);  void yyerror(const char* s);
181    
182    bool background;
183    
184    
185  /* Enabling traces.  */  /* Enabling traces.  */
# Line 201  typedef int YYSTYPE; Line 208  typedef int YYSTYPE;
208    
209    
210  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
211  #line 205 "y.tab.c"  #line 211 "y.tab.c"
212    
213  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
214    
# Line 298  union yyalloc Line 305  union yyalloc
305  #endif  #endif
306    
307  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
308  #define YYFINAL  30  #define YYFINAL  32
309  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
310  #define YYLAST   222  #define YYLAST   219
311    
312  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
313  #define YYNTOKENS  47  #define YYNTOKENS  50
314  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
315  #define YYNNTS  29  #define YYNNTS  29
316  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
317  #define YYNRULES  81  #define YYNRULES  89
318  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
319  #define YYNSTATES  225  #define YYNSTATES  228
320    
321  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
322  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
323  #define YYMAXUTOK   301  #define YYMAXUTOK   304
324    
325  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
326    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 351  static const unsigned char yytranslate[] Line 358  static const unsigned char yytranslate[]
358        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,        15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
359        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,        25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
360        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
361        45,    46        45,    46,    47,    48,    49
362  };  };
363    
364  #if YYDEBUG  #if YYDEBUG
# Line 361  static const unsigned short yyprhs[] = Line 368  static const unsigned short yyprhs[] =
368  {  {
369         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,
370        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,
371        59,    65,    69,    75,    81,    87,    89,    91,    93,    99,        59,    63,    69,    73,    77,    81,    87,    89,    91,    93,
372       107,   117,   119,   125,   133,   143,   145,   151,   159,   165,        95,    97,    99,   101,   103,   105,   107,   109,   111,   113,
373       171,   177,   185,   193,   203,   213,   217,   223,   227,   231,       115,   117,   123,   131,   141,   143,   149,   157,   167,   169,
374       235,   241,   249,   255,   261,   267,   273,   277,   283,   285,       175,   183,   189,   195,   201,   209,   219,   223,   229,   233,
375       287,   289,   295,   299,   301,   303,   305,   307,   309,   311,       237,   241,   245,   251,   259,   265,   271,   277,   283,   287,
376       313,   315,   317,   319,   321,   323,   327,   329,   331,   334,       293,   295,   297,   299,   305,   309,   311,   313,   315,   317,
377       337,   339       319,   321,   323,   325,   327,   329,   331,   333,   335,   337
378  };  };
379    
380  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
381  static const yysigned_char yyrhs[] =  static const yysigned_char yyrhs[] =
382  {  {
383        48,     0,    -1,    49,    -1,    48,     7,    49,    -1,    48,        51,     0,    -1,    52,    -1,    51,     8,    52,    -1,    51,
384         8,     7,    49,    -1,    -1,    50,    -1,    51,    -1,     1,         9,     8,    52,    -1,    -1,    53,    -1,    54,    -1,     1,
385        -1,     9,    -1,    50,     9,    -1,    50,     6,    -1,    50,        -1,    10,    -1,    53,    10,    -1,    53,     7,    -1,    53,
386         5,    -1,    50,    75,    -1,    11,     6,    23,    -1,    12,         5,    -1,    53,    78,    -1,    12,     7,    25,    -1,    13,
387         6,    52,    -1,    13,     6,    54,    -1,    14,     6,    55,         7,    57,    -1,    14,     7,    59,    -1,    15,     7,    60,
388        -1,    15,     6,    60,    -1,    16,     6,    56,    -1,    17,        -1,    16,     7,    65,    -1,    17,     7,    61,    -1,    18,
389         6,    23,     6,    65,    -1,    18,     6,    53,    -1,    19,         7,    61,    -1,    19,     7,    25,     7,    70,    -1,    20,
390         6,    24,     6,    67,    -1,    20,     6,    24,     6,    70,         7,    58,    -1,    21,     7,    55,    -1,    22,     7,    56,
391        -1,    21,     6,    23,     6,    65,    -1,    22,    -1,    25,        -1,    23,     7,    25,     7,    70,    -1,    24,    -1,    29,
392        -1,    26,    -1,    39,     6,    28,     6,    75,    -1,    40,        -1,    33,    -1,    32,    -1,    31,    -1,    30,    -1,    49,
393         6,    28,     6,    75,     6,    75,    -1,    40,     6,    28,        -1,    29,    -1,    33,    -1,    32,    -1,    31,    -1,    30,
394         6,    75,     6,    75,     6,    58,    -1,    37,    -1,    36,        -1,    49,    -1,    27,    -1,    28,    -1,    41,     7,    30,
395         6,    28,     6,     5,    -1,    34,     6,    28,     6,     5,         7,    78,    -1,    42,     7,    30,     7,    78,     7,    78,
396         6,     5,    -1,    35,     6,    28,     6,     5,     6,     5,        -1,    42,     7,    30,     7,    78,     7,    78,     7,    63,
397         6,    75,    -1,    27,    -1,    23,     6,    28,     6,    65,        -1,    39,    -1,    38,     7,    30,     7,     5,    -1,    36,
398        -1,    23,     6,    29,     6,    59,     6,    65,    -1,    23,         7,    30,     7,     5,     7,     5,    -1,    37,     7,    30,
399         6,    30,     6,    65,    -1,    23,     6,    31,     6,    65,         7,     5,     7,     5,     7,    78,    -1,    29,    -1,    25,
400        -1,    33,     6,    28,     6,    71,    -1,    38,     6,     5,         7,    30,     7,    70,    -1,    25,     7,    31,     7,    64,
401         6,    75,     6,    74,    -1,    38,     6,     5,     6,    75,         7,    70,    -1,    25,     7,    32,     7,    70,    -1,    25,
402        10,    74,    -1,    35,     6,     5,     6,     5,     6,    75,         7,    33,     7,    70,    -1,    35,     7,    30,     7,    74,
403         6,    74,    -1,    35,     6,     5,     6,     5,     6,    75,        -1,    40,     7,     5,     7,    78,    11,    77,    -1,    37,
404        10,    74,    -1,    23,     6,    57,    -1,    36,     6,    75,         7,     5,     7,     5,     7,    78,    11,    77,    -1,    25,
405         6,    58,    -1,    36,     6,     5,    -1,    32,     6,    61,         7,    62,    -1,    38,     7,    78,     7,    63,    -1,    38,
406        -1,    33,     6,    62,    -1,    36,     6,    65,     6,     5,         7,    78,    -1,    38,     7,     5,    -1,    34,     7,    66,
407        -1,    34,     6,    65,     6,    68,     6,    68,    -1,    41,        -1,    35,     7,    67,    -1,    38,     7,    70,     7,     5,
408         6,    65,     6,    72,    -1,    42,     6,    65,     6,    69,        -1,    36,     7,    70,     7,    72,     7,    72,    -1,    43,
409        -1,    43,     6,    65,     6,    63,    -1,    44,     6,    65,         7,    70,     7,    75,    -1,    44,     7,    70,     7,    73,
410         6,    64,    -1,    75,    10,    74,    -1,    58,     6,    75,        -1,    45,     7,    70,     7,    68,    -1,    46,     7,    70,
411        10,    74,    -1,    45,    -1,    46,    -1,    37,    -1,    73,         7,    69,    -1,    78,    11,    77,    -1,    63,     7,    78,
412         6,    66,     6,    65,    -1,    71,     6,    65,    -1,    75,        11,    77,    -1,    47,    -1,    48,    -1,    39,    -1,    76,
413           7,    71,     7,    70,    -1,    74,     7,    70,    -1,    78,
414        -1,     4,    -1,     5,    -1,     5,    -1,     5,    -1,     5,        -1,     4,    -1,     5,    -1,     5,    -1,     5,    -1,     5,
415        -1,     5,    -1,     5,    -1,    74,    -1,    75,    -1,    74,        -1,     5,    -1,    78,    -1,     6,    -1,     6,    -1,     6,
416        -1,    74,    -1,    73,     6,    74,    -1,    75,    -1,     5,        -1,     5,    -1,     4,    -1,     3,    -1,    78,     3,    -1
       -1,    74,    75,    -1,    74,     5,    -1,     3,    -1,    75,  
        3,    -1  
417  };  };
418    
419  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
420  static const unsigned char yyrline[] =  static const unsigned char yyrline[] =
421  {  {
422         0,    75,    75,    76,    77,    80,    81,    82,    83,    86,         0,    78,    78,    79,    80,    83,    84,    85,    86,    89,
423        87,    88,    89,    90,    93,    94,    95,    96,    97,    98,        90,    91,    92,    93,    96,    97,    98,    99,   100,   101,
424        99,   100,   101,   102,   103,   104,   107,   108,   109,   110,       102,   103,   104,   105,   106,   107,   108,   111,   112,   113,
425       111,   112,   113,   114,   115,   116,   117,   118,   119,   120,       114,   115,   116,   119,   120,   121,   122,   123,   124,   127,
426       121,   124,   125,   126,   127,   128,   131,   134,   137,   138,       128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
427       141,   142,   143,   144,   145,   146,   149,   150,   152,   153,       138,   139,   140,   141,   144,   145,   146,   149,   150,   153,
428       156,   159,   162,   165,   168,   169,   172,   175,   178,   181,       156,   157,   160,   161,   162,   163,   164,   165,   168,   169,
429       184,   187,   190,   193,   196,   197,   200,   201,   202,   203,       172,   173,   176,   179,   182,   185,   188,   189,   192,   195,
430       206,   207       198,   201,   204,   207,   210,   213,   214,   215,   218,   219
431  };  };
432  #endif  #endif
433    
# Line 430  static const unsigned char yyrline[] = Line 436  static const unsigned char yyrline[] =
436     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
437  static const char *const yytname[] =  static const char *const yytname[] =
438  {  {
439    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF",    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "STRINGVAL",
440    "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY", "LIST", "LOAD",    "SP", "LF", "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY",
441    "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL",    "LIST", "LOAD", "LOAD_BACKGROUND", "REMOVE", "SET", "SUBSCRIBE",
442    "NOTIFICATION", "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS",    "UNSUBSCRIBE", "RESET", "QUIT", "CHANNEL", "NOTIFICATION",
443    "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",    "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",
444    "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL",    "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT",
445    "AUDIO_OUTPUT_CHANNEL_PARAMETER", "AUDIO_OUTPUT_DEVICE",    "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
446    "AUDIO_OUTPUT_DEVICES", "AUDIO_OUTPUT_DEVICE_PARAMETER",    "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DEVICES",
447    "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_DRIVER_PARAMETER",    "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DRIVER",
448    "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME",    "AUDIO_OUTPUT_DRIVER_PARAMETER", "MIDI_INPUT_PORT",
449    "BYTES", "PERCENTAGE", "$accept", "input", "line", "comment", "command",    "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME", "BYTES",
450    "get_instruction", "set_instruction", "create_instruction",    "PERCENTAGE", "MISCELLANEOUS", "$accept", "input", "line", "comment",
451    "destroy_instruction", "load_instruction", "set_chan_instruction",    "command", "subscribe_event", "unsubscribe_event", "get_instruction",
452    "key_val_list", "buffer_size_type", "list_instruction",    "set_instruction", "create_instruction", "destroy_instruction",
453    "load_instr_args", "load_engine_args", "midi_input_type", "volume",    "load_instruction", "set_chan_instruction", "key_val_list",
454    "sampler_channel", "instrument_index", "udp_port",    "buffer_size_type", "list_instruction", "load_instr_args",
455    "audio_output_channel", "midi_input_channel", "session_id",    "load_engine_args", "midi_input_type", "volume", "sampler_channel",
456    "engine_name", "midi_input_port", "filename", "alpha_num_string",    "instrument_index", "audio_output_channel", "midi_input_channel",
457    "string", 0    "engine_name", "midi_input_port", "filename", "param_val", "string", 0
458  };  };
459  #endif  #endif
460    
# Line 461  static const unsigned short yytoknum[] = Line 467  static const unsigned short yytoknum[] =
467       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
468       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
469       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
470       295,   296,   297,   298,   299,   300,   301       295,   296,   297,   298,   299,   300,   301,   302,   303,   304
471  };  };
472  # endif  # endif
473    
474  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
475  static const unsigned char yyr1[] =  static const unsigned char yyr1[] =
476  {  {
477         0,    47,    48,    48,    48,    49,    49,    49,    49,    50,         0,    50,    51,    51,    51,    52,    52,    52,    52,    53,
478        50,    50,    50,    50,    51,    51,    51,    51,    51,    51,        53,    53,    53,    53,    54,    54,    54,    54,    54,    54,
479        51,    51,    51,    51,    51,    51,    52,    52,    52,    52,        54,    54,    54,    54,    54,    54,    54,    55,    55,    55,
480        52,    52,    52,    52,    52,    52,    52,    52,    52,    52,        55,    55,    55,    56,    56,    56,    56,    56,    56,    57,
481        52,    53,    53,    53,    53,    53,    54,    55,    56,    56,        57,    57,    57,    57,    57,    57,    57,    57,    57,    57,
482        57,    57,    57,    57,    57,    57,    58,    58,    59,    59,        57,    57,    57,    57,    58,    58,    58,    59,    59,    60,
483        60,    61,    62,    63,    64,    64,    65,    66,    67,    68,        61,    61,    62,    62,    62,    62,    62,    62,    63,    63,
484        69,    70,    71,    72,    73,    73,    74,    74,    74,    74,        64,    64,    65,    66,    67,    68,    69,    69,    70,    71,
485        75,    75        72,    73,    74,    75,    76,    77,    77,    77,    78,    78
486  };  };
487    
488  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
# Line 484  static const unsigned char yyr2[] = Line 490  static const unsigned char yyr2[] =
490  {  {
491         0,     2,     1,     3,     4,     0,     1,     1,     1,     1,         0,     2,     1,     3,     4,     0,     1,     1,     1,     1,
492         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,
493         5,     3,     5,     5,     5,     1,     1,     1,     5,     7,         3,     5,     3,     3,     3,     5,     1,     1,     1,     1,
494         9,     1,     5,     7,     9,     1,     5,     7,     5,     5,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
495         5,     7,     7,     9,     9,     3,     5,     3,     3,     3,         1,     5,     7,     9,     1,     5,     7,     9,     1,     5,
496         5,     7,     5,     5,     5,     5,     3,     5,     1,     1,         7,     5,     5,     5,     7,     9,     3,     5,     3,     3,
497         1,     5,     3,     1,     1,     1,     1,     1,     1,     1,         3,     3,     5,     7,     5,     5,     5,     5,     3,     5,
498         1,     1,     1,     1,     1,     3,     1,     1,     2,     2,         1,     1,     1,     5,     3,     1,     1,     1,     1,     1,
499         1,     2         1,     1,     1,     1,     1,     1,     1,     1,     1,     2
500  };  };
501    
502  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
# Line 499  static const unsigned char yyr2[] = Line 505  static const unsigned char yyr2[] =
505  static const unsigned char yydefact[] =  static const unsigned char yydefact[] =
506  {  {
507         0,     8,     9,     0,     0,     0,     0,     0,     0,     0,         0,     8,     9,     0,     0,     0,     0,     0,     0,     0,
508         0,     0,     0,     0,    25,     0,     2,     6,     7,     0,         0,     0,     0,     0,     0,    26,     0,     2,     6,     7,
509         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
510         1,     0,     0,    80,    12,    11,    10,    13,    14,     0,         0,     0,     1,     0,     0,    88,    12,    11,    10,    13,
511        26,    27,    35,     0,     0,     0,     0,    31,     0,     0,        14,     0,    39,    40,    48,     0,     0,     0,     0,    44,
512        15,     0,    16,     0,    17,    60,    18,     0,     0,    19,         0,     0,    15,     0,    16,     0,    17,    72,    18,     0,
513         0,     0,     0,     0,    21,     0,     0,     0,     3,     0,         0,    19,    20,     0,     0,     0,     0,    22,    27,    31,
514        81,     0,     0,     0,     0,     0,     0,     0,     0,     0,        30,    29,    28,    32,    23,    33,    37,    36,    35,    34,
515         0,     0,     0,     0,     0,     0,     0,     0,     0,     4,        38,    24,     0,     3,     0,    89,     0,     0,     0,     0,
516         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
517         0,    47,    77,    48,     0,    74,    76,    49,     0,    72,         0,     0,     4,     0,     0,     0,     0,     0,     0,     0,
518        66,    20,     0,     0,     0,     0,     0,     0,    45,     0,         0,     0,     0,    58,    59,    84,    60,     0,    61,     0,
519         0,    68,    22,    23,    71,    24,     0,     0,     0,     0,        82,    78,    21,     0,     0,     0,     0,     0,     0,    56,
520         0,     0,     0,     0,     0,     0,     0,     0,    79,    78,         0,     0,    25,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    36,  
       58,    59,     0,    38,    39,    40,     0,     0,    32,    28,  
        0,    46,     0,    77,     0,    75,    62,     0,     0,     0,  
521         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
522           0,     0,     0,     0,    49,    70,    71,     0,    51,    52,
523          53,     0,     0,    45,    41,     0,    57,     0,    79,     0,
524          74,     0,     0,     0,     0,     0,     0,     0,     0,     0,
525         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
526         0,    37,    33,     0,    29,     0,    56,    61,    69,     0,         0,     0,     0,     0,    50,    46,     0,    42,     0,    87,
527        50,    52,    73,    70,    53,    54,    63,    64,    65,    55,        86,    85,    68,    73,    80,     0,    62,    83,    64,    81,
528         0,    41,    42,     0,     0,     0,     0,     0,     0,    34,        65,    66,    75,    76,    77,    67,     0,    54,     0,     0,
529        30,    57,    51,    43,    44         0,     0,     0,    47,    43,    69,    63,    55
530  };  };
531    
532  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
533  static const short yydefgoto[] =  static const short yydefgoto[] =
534  {  {
535        -1,    15,    16,    17,    18,    50,    64,    52,    54,    59,        -1,    16,    17,    18,    19,    74,    81,    52,    67,    54,
536       118,   161,   152,    56,   103,   107,   205,   209,   111,   164,        56,    61,   129,   166,   157,    58,   116,   118,   211,   215,
537       122,   199,   204,   123,   108,   201,   104,   105,   106       122,   169,   205,   210,   119,   208,   117,   202,   120
538  };  };
539    
540  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
541     STATE-NUM.  */     STATE-NUM.  */
542  #define YYPACT_NINF -86  #define YYPACT_NINF -191
543  static const short yypact[] =  static const short yypact[] =
544  {  {
545         3,   -86,   -86,    21,    25,    43,    67,    86,    91,    96,         4,  -191,  -191,     2,    22,    24,    37,    85,    87,    96,
546       105,   106,   108,   109,   -86,    28,   -86,    84,   -86,   -14,        99,   107,   109,   110,   111,  -191,    34,  -191,    97,  -191,
547         7,    80,    85,    83,     5,    87,    22,    99,   100,   102,       -14,    45,   -23,    77,    80,   -27,   -27,    95,    27,     8,
548       -86,     3,   115,   -86,   -86,   -86,   -86,   123,   -86,   121,        29,   101,  -191,     4,   113,  -191,  -191,  -191,  -191,   119,
549       -86,   -86,   -86,   122,   128,   129,   130,   -86,   131,   132,      -191,   120,  -191,  -191,  -191,   121,   122,   123,   124,  -191,
550       -86,   133,   -86,   134,   -86,   -86,   -86,   135,   136,   -86,       125,   126,  -191,   127,  -191,   129,  -191,  -191,  -191,   130,
551       137,   138,   139,   140,   -86,   141,   143,   144,   -86,     3,       131,  -191,  -191,   132,   133,   134,   135,  -191,  -191,  -191,
552       -86,   -23,   101,   124,   125,   126,   127,   142,   148,   151,      -191,  -191,  -191,  -191,  -191,  -191,  -191,  -191,  -191,  -191,
553        45,   148,   152,    38,   153,   154,   155,    45,   152,   -86,      -191,  -191,   136,  -191,     4,  -191,    78,   114,   115,   116,
554       157,   158,   159,   160,   161,   162,   166,   167,   168,   169,       117,   118,   128,   146,   145,   147,   146,   149,    52,   150,
555        23,   -86,   -86,   -86,   170,    93,   123,   -86,   171,   123,       151,   149,  -191,   144,   152,   153,   154,   155,   156,   159,
556       -86,   -86,   172,   174,   175,   176,   177,   178,   -86,   180,       160,   161,   162,     3,  -191,  -191,  -191,   163,  -191,   164,
557       181,   -86,   -86,   -86,    93,   -86,   152,    40,   152,   152,       119,  -191,  -191,   166,   168,   169,   170,   171,   172,  -191,
558       148,   183,   184,   185,   148,   148,   148,    98,   -86,   123,       173,   174,  -191,   149,    18,   149,   149,   146,   177,   178,
559       152,   152,   152,   152,   152,   152,   152,   186,   148,   -86,       179,   146,   146,   146,   180,   149,   149,   149,   149,   149,
560       -86,   -86,   187,   -86,   -86,   -86,   192,   193,   -86,   123,       149,   149,   181,   146,  -191,  -191,  -191,   182,  -191,  -191,
561        72,   194,    73,   195,   196,    93,   -86,   197,   199,   202,      -191,   183,   184,  -191,   119,    86,   185,    60,  -191,   186,
562       203,   204,   205,   206,    52,   152,   208,   209,   148,   148,      -191,   187,   188,   189,   190,   191,   192,   195,    65,   149,
563        45,   152,   210,   211,    45,   212,   148,   104,   148,    45,       198,   199,   146,   146,    50,   149,   200,   201,   202,   204,
564        45,   -86,   -86,   213,    88,    74,    93,   -86,   -86,   214,       146,   108,   146,    50,  -191,  -191,   203,    98,    66,  -191,
565       -86,   -86,    93,   -86,   -86,   -86,   123,   -86,   -86,   -86,      -191,  -191,  -191,  -191,  -191,   205,  -191,  -191,  -191,  -191,
566        53,    93,    93,   148,   148,    45,   210,    45,    45,   123,      -191,  -191,   119,  -191,  -191,  -191,    88,  -191,   146,   146,
567       194,    93,   -86,    93,    93        50,   200,    50,   119,   185,  -191,  -191,  -191
568  };  };
569    
570  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
571  static const yysigned_char yypgoto[] =  static const short yypgoto[] =
572  {  {
573       -86,   -86,   -30,   -86,   -86,   -86,   -86,   -86,   -86,   -86,      -191,  -191,   -31,  -191,  -191,  -191,  -191,  -191,  -191,  -191,
574       -86,   -22,   -86,   -86,   -86,   -86,   -86,   -86,   -75,   -86,      -191,   193,  -191,   -67,  -191,  -191,  -191,  -191,  -191,  -191,
575       -86,     2,   -86,   -86,    92,   -86,   -86,   -85,   -17      -100,  -191,   -64,  -191,    51,  -191,  -191,  -190,   -18
576  };  };
577    
578  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
579     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
580     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
581     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
582  #define YYTABLE_NINF -68  #define YYTABLE_NINF -6
583  static const short yytable[] =  static const short yytable[] =
584  {  {
585        37,    68,   124,    -5,     1,    90,    91,    92,    93,    38,        39,   132,    83,   217,    -5,     1,    85,    59,    60,    20,
586        -5,    -5,     2,   125,     3,     4,     5,     6,     7,     8,       143,    40,    -5,    -5,     2,    53,     3,     4,     5,     6,
587         9,    10,    11,    12,    13,    14,    70,    19,    30,   136,         7,     8,     9,    10,    11,    12,    13,    14,    15,    21,
588        39,    20,    40,    41,    42,    31,    32,    57,    58,    89,       225,    22,   227,   154,    32,   158,   159,    68,    69,    70,
589        43,    44,    45,    46,    47,    61,    48,    49,    33,    21,        71,    72,    33,    34,    23,   170,   171,   172,   173,   174,
590       102,   149,   165,   153,   154,    70,    70,    62,   189,   217,       175,   176,    64,   102,   199,   200,   201,    73,    75,    76,
591        63,   100,   190,   218,   109,   166,   167,   168,   169,   170,        77,    78,    79,    85,    65,   155,   156,    66,    85,    85,
592       171,   172,   112,    22,   113,    70,    70,    70,   178,   114,        41,   184,    42,    43,    44,   113,   193,   220,    80,   194,
593       115,   116,   117,   180,   215,   150,   151,    33,   139,    34,        45,    46,    47,    48,    49,   203,    50,    51,   123,    85,
594        35,    70,    23,    36,   214,   196,    33,    24,   138,   202,       124,    85,    24,   182,    25,   125,   126,   127,   128,   222,
595       191,    33,    25,   163,   211,   212,   197,   139,   207,   208,        35,    85,    36,    26,    37,   219,    27,    38,   103,   104,
596        60,    26,    27,   109,    28,    29,    51,   159,   160,   162,       105,   106,   213,   214,    28,    55,    29,    30,    31,    57,
597        55,    53,    69,    65,    66,    67,    70,    71,    72,    94,        63,    84,    85,   164,   165,   167,    82,    86,    87,    88,
598       221,   174,   223,   224,    73,    74,    75,    76,    77,    78,        89,    90,    91,    92,    93,   178,    94,    95,    96,    97,
599        79,    80,    81,    82,    83,    84,    85,    86,   139,    87,        98,    99,   100,   101,   107,   108,   109,   110,   111,    35,
600        88,    33,    95,    96,    97,    98,   101,   110,   119,   120,       114,   133,   224,   115,   121,   130,   131,   226,   112,   134,
601       121,   194,   195,   126,   127,   128,   129,   130,   131,   206,       135,   136,   137,   138,   197,   198,   139,   140,   141,   142,
602        99,   210,   132,   133,   134,   135,   137,   140,   141,   139,       144,   145,   212,   146,   216,   147,   148,   149,   150,   151,
603       142,   143,   144,   145,   146,   139,   147,   148,   156,   157,       152,   153,   161,   162,   163,   168,   177,     0,   160,   179,
604       158,   173,   220,   175,   139,   139,   219,   162,   176,   177,       180,   181,   183,   185,   186,   187,   188,   189,   190,   191,
605       179,   -67,   181,   182,   139,   183,   139,   139,   184,   185,       223,   167,   192,   195,   196,   204,   206,     0,   207,   209,
606       186,   187,   188,   192,   193,   198,   200,   203,   222,   213,       218,     0,   221,     0,     0,     0,     0,     0,     0,    62
      216,     0,   155  
607  };  };
608    
609  static const short yycheck[] =  static const short yycheck[] =
610  {  {
611        17,    31,    87,     0,     1,    28,    29,    30,    31,    23,        18,   101,    33,   193,     0,     1,     3,    34,    35,     7,
612         7,     8,     9,    88,    11,    12,    13,    14,    15,    16,         7,    25,     8,     9,    10,    38,    12,    13,    14,    15,
613        17,    18,    19,    20,    21,    22,     3,     6,     0,     6,        16,    17,    18,    19,    20,    21,    22,    23,    24,     7,
614        23,     6,    25,    26,    27,     7,     8,    32,    33,    69,       220,     7,   222,   133,     0,   135,   136,    29,    30,    31,
615        33,    34,    35,    36,    37,    23,    39,    40,     3,     6,        32,    33,     8,     9,     7,   145,   146,   147,   148,   149,
616         5,   126,   137,   128,   129,     3,     3,    35,     6,     6,       150,   151,    25,    84,     4,     5,     6,    49,    29,    30,
617        38,    78,    10,    10,    81,   140,   141,   142,   143,   144,        31,    32,    33,     3,    37,    47,    48,    40,     3,     3,
618       145,   146,    34,     6,    36,     3,     3,     3,     6,    41,        25,    11,    27,    28,    29,    93,    11,    11,    49,   179,
619        42,    43,    44,    10,    10,    45,    46,     3,   105,     5,        35,    36,    37,    38,    39,   185,    41,    42,    36,     3,
620         6,     3,     6,     9,     6,   180,     3,     6,     5,   184,        38,     3,     7,     7,     7,    43,    44,    45,    46,    11,
621       175,     3,     6,     5,   189,   190,   181,   124,     4,     5,         3,     3,     5,     7,     7,     7,     7,    10,    30,    31,
622        23,     6,     6,   130,     6,     6,    36,   134,   135,   136,        32,    33,     4,     5,     7,    38,     7,     7,     7,    39,
623        37,    36,     7,    24,    24,    23,     3,     6,     6,    28,        25,     8,     3,   141,   142,   143,    25,     7,     7,     7,
624       215,   148,   217,   218,     6,     6,     6,     6,     6,     6,         7,     7,     7,     7,     7,   153,     7,     7,     7,     7,
625         6,     6,     6,     6,     6,     6,     6,     6,   165,     6,         7,     7,     7,     7,    30,    30,    30,    30,    30,     3,
626         6,     3,    28,    28,    28,    28,     5,     5,     5,     5,         5,     7,   219,     6,     5,     5,     5,   221,    30,     7,
627         5,   178,   179,     6,     6,     6,     6,     6,     6,   186,         7,     7,     7,     7,   182,   183,     7,     7,     7,     7,
628        28,   188,     6,     6,     6,     6,     6,     6,     6,   196,         7,     7,   190,     7,   192,     7,     7,     7,     7,     7,
629         6,     6,     6,     6,     6,   202,     6,     6,     5,     5,         7,     7,     5,     5,     5,     5,     5,    -1,   137,     7,
630         5,     5,   214,     6,   211,   212,   213,   214,     6,     6,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
631         6,     6,     6,     6,   221,     6,   223,   224,     6,     6,       218,   219,     7,     5,     5,     5,     5,    -1,     6,     5,
632         6,     6,     6,     5,     5,     5,     5,     5,   216,     6,         7,    -1,     7,    -1,    -1,    -1,    -1,    -1,    -1,    26
        6,    -1,   130  
633  };  };
634    
635  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
636     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
637  static const unsigned char yystos[] =  static const unsigned char yystos[] =
638  {  {
639         0,     1,     9,    11,    12,    13,    14,    15,    16,    17,         0,     1,    10,    12,    13,    14,    15,    16,    17,    18,
640        18,    19,    20,    21,    22,    48,    49,    50,    51,     6,        19,    20,    21,    22,    23,    24,    51,    52,    53,    54,
641         6,     6,     6,     6,     6,     6,     6,     6,     6,     6,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
642         0,     7,     8,     3,     5,     6,     9,    75,    23,    23,         7,     7,     0,     8,     9,     3,     5,     7,    10,    78,
643        25,    26,    27,    33,    34,    35,    36,    37,    39,    40,        25,    25,    27,    28,    29,    35,    36,    37,    38,    39,
644        52,    36,    54,    36,    55,    37,    60,    32,    33,    56,        41,    42,    57,    38,    59,    38,    60,    39,    65,    34,
645        23,    23,    35,    38,    53,    24,    24,    23,    49,     7,        35,    61,    61,    25,    25,    37,    40,    58,    29,    30,
646         3,     6,     6,     6,     6,     6,     6,     6,     6,     6,        31,    32,    33,    49,    55,    29,    30,    31,    32,    33,
647         6,     6,     6,     6,     6,     6,     6,     6,     6,    49,        49,    56,    25,    52,     8,     3,     7,     7,     7,     7,
648        28,    29,    30,    31,    28,    28,    28,    28,    28,    28,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
649        75,     5,     5,    61,    73,    74,    75,    62,    71,    75,         7,     7,    52,    30,    31,    32,    33,    30,    30,    30,
650         5,    65,    34,    36,    41,    42,    43,    44,    57,     5,        30,    30,    30,    78,     5,     6,    66,    76,    67,    74,
651         5,     5,    67,    70,    74,    65,     6,     6,     6,     6,        78,     5,    70,    36,    38,    43,    44,    45,    46,    62,
652         6,     6,     6,     6,     6,     6,     6,     6,     5,    75,         5,     5,    70,     7,     7,     7,     7,     7,     7,     7,
653         6,     6,     6,     6,     6,     6,     6,     6,     6,    65,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
654        45,    46,    59,    65,    65,    71,     5,     5,     5,    75,         7,     7,     7,     7,    70,    47,    48,    64,    70,    70,
655        75,    58,    75,     5,    66,    74,    65,    65,    65,    65,        74,     5,     5,     5,    78,    78,    63,    78,     5,    71,
656        65,    65,    65,     5,    75,     6,     6,     6,     6,     6,        70,    70,    70,    70,    70,    70,    70,     5,    78,     7,
657        10,     6,     6,     6,     6,     6,     6,     6,     6,     6,         7,     7,     7,     7,    11,     7,     7,     7,     7,     7,
658        10,    65,     5,     5,    75,    75,    74,    65,     5,    68,         7,     7,     7,    11,    70,     5,     5,    78,    78,     4,
659         5,    72,    74,     5,    69,    63,    75,     4,     5,    64,         5,     6,    77,    70,     5,    72,     5,     6,    75,     5,
660        75,    74,    74,     6,     6,    10,     6,     6,    10,    75,        73,    68,    78,     4,     5,    69,    78,    77,     7,     7,
661        58,    74,    68,    74,    74        11,     7,    11,    78,    63,    77,    72,    77
662  };  };
663    
664  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 1265  yyreduce: Line 1269  yyreduce:
1269    switch (yyn)    switch (yyn)
1270      {      {
1271          case 7:          case 7:
1272  #line 82 "lscp.y"  #line 85 "lscp.y"
1273      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { LSCPSERVER->AnswerClient(yyvsp[0].String); }
1274      break;      break;
1275    
1276    case 8:    case 8:
1277  #line 83 "lscp.y"  #line 86 "lscp.y"
1278      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
1279      break;      break;
1280    
1281    case 14:    case 14:
1282  #line 93 "lscp.y"  #line 96 "lscp.y"
1283      { yyval.String = LSCPSERVER->AddChannel();                  }      { yyval.String = LSCPSERVER->AddChannel();                  }
1284      break;      break;
1285    
1286    case 15:    case 15:
1287  #line 94 "lscp.y"  #line 97 "lscp.y"
1288      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1289      break;      break;
1290    
1291    case 16:    case 16:
1292  #line 95 "lscp.y"  #line 98 "lscp.y"
1293      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1294      break;      break;
1295    
1296    case 17:    case 17:
1297  #line 96 "lscp.y"  #line 99 "lscp.y"
1298      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1299      break;      break;
1300    
1301    case 18:    case 18:
1302  #line 97 "lscp.y"  #line 100 "lscp.y"
1303      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1304      break;      break;
1305    
1306    case 19:    case 19:
1307  #line 98 "lscp.y"  #line 101 "lscp.y"
1308      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String; background = false;                    }
1309      break;      break;
1310    
1311    case 20:    case 20:
1312  #line 99 "lscp.y"  #line 102 "lscp.y"
1313      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { yyval.String = yyvsp[0].String; background = true;                     }
1314      break;      break;
1315    
1316    case 21:    case 21:
1317  #line 100 "lscp.y"  #line 103 "lscp.y"
1318      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }
1319      break;      break;
1320    
1321    case 22:    case 22:
1322  #line 101 "lscp.y"  #line 104 "lscp.y"
1323      { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number);     }      { yyval.String = yyvsp[0].String;                                        }
1324      break;      break;
1325    
1326    case 23:    case 23:
1327  #line 102 "lscp.y"  #line 105 "lscp.y"
1328      { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String);   }      { yyval.String = yyvsp[0].String;                                        }
1329      break;      break;
1330    
1331    case 24:    case 24:
1332  #line 103 "lscp.y"  #line 106 "lscp.y"
1333      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { yyval.String = yyvsp[0].String;                                        }
1334      break;      break;
1335    
1336    case 25:    case 25:
1337  #line 104 "lscp.y"  #line 107 "lscp.y"
1338      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }
1339      break;      break;
1340    
1341    case 26:    case 26:
1342  #line 107 "lscp.y"  #line 108 "lscp.y"
1343      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }
1344      break;      break;
1345    
1346    case 27:    case 27:
1347  #line 108 "lscp.y"  #line 111 "lscp.y"
1348      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }      { yyval.String = LSCPSERVER->SubscribeNotification(event_channels); }
1349      break;      break;
1350    
1351    case 28:    case 28:
1352  #line 109 "lscp.y"  #line 112 "lscp.y"
1353      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }      { yyval.String = LSCPSERVER->SubscribeNotification(event_voice_count); }
1354      break;      break;
1355    
1356    case 29:    case 29:
1357  #line 110 "lscp.y"  #line 113 "lscp.y"
1358      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->SubscribeNotification(event_stream_count); }
1359      break;      break;
1360    
1361    case 30:    case 30:
1362  #line 111 "lscp.y"  #line 114 "lscp.y"
1363      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_buffer_fill); }
1364      break;      break;
1365    
1366    case 31:    case 31:
1367  #line 112 "lscp.y"  #line 115 "lscp.y"
1368      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_info); }
1369      break;      break;
1370    
1371    case 32:    case 32:
1372  #line 113 "lscp.y"  #line 116 "lscp.y"
1373      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }      { yyval.String = LSCPSERVER->SubscribeNotification(event_misc); }
1374      break;      break;
1375    
1376    case 33:    case 33:
1377  #line 114 "lscp.y"  #line 119 "lscp.y"
1378      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channels); }
1379      break;      break;
1380    
1381    case 34:    case 34:
1382  #line 115 "lscp.y"  #line 120 "lscp.y"
1383      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_voice_count); }
1384      break;      break;
1385    
1386    case 35:    case 35:
1387  #line 116 "lscp.y"  #line 121 "lscp.y"
1388      { yyval.String = LSCPSERVER->GetChannels();                                  }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_stream_count); }
1389      break;      break;
1390    
1391    case 36:    case 36:
1392  #line 117 "lscp.y"  #line 122 "lscp.y"
1393      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_buffer_fill); }
1394      break;      break;
1395    
1396    case 37:    case 37:
1397  #line 118 "lscp.y"  #line 123 "lscp.y"
1398      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_info); }
1399      break;      break;
1400    
1401    case 38:    case 38:
1402  #line 119 "lscp.y"  #line 124 "lscp.y"
1403      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_misc); }
1404      break;      break;
1405    
1406    case 39:    case 39:
1407  #line 120 "lscp.y"  #line 127 "lscp.y"
1408      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }
1409      break;      break;
1410    
1411    case 40:    case 40:
1412  #line 121 "lscp.y"  #line 128 "lscp.y"
1413      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
1414      break;      break;
1415    
1416    case 41:    case 41:
1417  #line 124 "lscp.y"  #line 129 "lscp.y"
1418      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }
1419      break;      break;
1420    
1421    case 42:    case 42:
1422  #line 125 "lscp.y"  #line 130 "lscp.y"
1423      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }
1424      break;      break;
1425    
1426    case 43:    case 43:
1427  #line 126 "lscp.y"  #line 131 "lscp.y"
1428      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }
1429      break;      break;
1430    
1431    case 44:    case 44:
1432  #line 127 "lscp.y"  #line 132 "lscp.y"
1433      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }
1434      break;      break;
1435    
1436    case 45:    case 45:
1437  #line 128 "lscp.y"  #line 133 "lscp.y"
1438      { yyval.String = yyvsp[0].String;                                                         }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }
1439      break;      break;
1440    
1441    case 46:    case 46:
1442  #line 131 "lscp.y"  #line 134 "lscp.y"
1443      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }
1444      break;      break;
1445    
1446    case 47:    case 47:
1447  #line 134 "lscp.y"  #line 135 "lscp.y"
1448      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }
1449      break;      break;
1450    
1451    case 48:    case 48:
1452  #line 137 "lscp.y"  #line 136 "lscp.y"
1453      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetChannels();                                  }
1454      break;      break;
1455    
1456    case 49:    case 49:
1457  #line 138 "lscp.y"  #line 137 "lscp.y"
1458      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }
1459      break;      break;
1460    
1461    case 50:    case 50:
1462  #line 141 "lscp.y"  #line 138 "lscp.y"
1463      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }
1464      break;      break;
1465    
1466    case 51:    case 51:
1467  #line 142 "lscp.y"  #line 139 "lscp.y"
1468      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }
1469      break;      break;
1470    
1471    case 52:    case 52:
1472  #line 143 "lscp.y"  #line 140 "lscp.y"
1473      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }
1474      break;      break;
1475    
1476    case 53:    case 53:
1477  #line 144 "lscp.y"  #line 141 "lscp.y"
1478      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }
1479      break;      break;
1480    
1481    case 54:    case 54:
1482  #line 145 "lscp.y"  #line 144 "lscp.y"
1483      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
1484      break;      break;
1485    
1486    case 55:    case 55:
1487  #line 146 "lscp.y"  #line 145 "lscp.y"
1488      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }
1489      break;      break;
1490    
1491    case 56:    case 56:
1492  #line 149 "lscp.y"  #line 146 "lscp.y"
1493      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }      { yyval.String = yyvsp[0].String;                                                         }
1494      break;      break;
1495    
1496    case 57:    case 57:
1497  #line 150 "lscp.y"  #line 149 "lscp.y"
1498      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
1499      break;      break;
1500    
1501    case 58:    case 58:
1502  #line 152 "lscp.y"  #line 150 "lscp.y"
1503      { yyval.FillResponse = fill_response_bytes;      }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String); }
1504      break;      break;
1505    
1506    case 59:    case 59:
1507  #line 153 "lscp.y"  #line 153 "lscp.y"
1508      { yyval.FillResponse = fill_response_percentage; }      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }
1509      break;      break;
1510    
1511    case 60:    case 60:
1512  #line 156 "lscp.y"  #line 156 "lscp.y"
1513      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }      { yyval.String = yyvsp[0].String; }
1514      break;      break;
1515    
1516    case 61:    case 61:
1517  #line 159 "lscp.y"  #line 157 "lscp.y"
1518      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { yyval.String = yyvsp[0].String; }
1519      break;      break;
1520    
1521    case 62:    case 62:
1522    #line 160 "lscp.y"
1523        { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
1524        break;
1525    
1526      case 63:
1527    #line 161 "lscp.y"
1528        { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
1529        break;
1530    
1531      case 64:
1532  #line 162 "lscp.y"  #line 162 "lscp.y"
1533      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);          }
1534      break;      break;
1535    
1536    case 65:    case 65:
1537    #line 163 "lscp.y"
1538        { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }
1539        break;
1540    
1541      case 66:
1542    #line 164 "lscp.y"
1543        { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }
1544        break;
1545    
1546      case 67:
1547    #line 165 "lscp.y"
1548        { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }
1549        break;
1550    
1551      case 68:
1552    #line 168 "lscp.y"
1553        { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }
1554        break;
1555    
1556      case 69:
1557  #line 169 "lscp.y"  #line 169 "lscp.y"
1558      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }
1559      break;      break;
1560    
1561    case 75:    case 70:
1562  #line 197 "lscp.y"  #line 172 "lscp.y"
1563      { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; }      { yyval.FillResponse = fill_response_bytes;      }
1564      break;      break;
1565    
1566    case 76:    case 71:
1567  #line 200 "lscp.y"  #line 173 "lscp.y"
1568      { yyval.String = yyvsp[0].String;                                             }      { yyval.FillResponse = fill_response_percentage; }
1569        break;
1570    
1571      case 72:
1572    #line 176 "lscp.y"
1573        { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }
1574        break;
1575    
1576      case 73:
1577    #line 179 "lscp.y"
1578        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, background); }
1579        break;
1580    
1581      case 74:
1582    #line 182 "lscp.y"
1583        { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }
1584      break;      break;
1585    
1586    case 77:    case 77:
1587  #line 201 "lscp.y"  #line 189 "lscp.y"
1588      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { yyval.Dotnum = yyvsp[0].Number; }
1589      break;      break;
1590    
1591    case 78:    case 85:
1592  #line 202 "lscp.y"  #line 213 "lscp.y"
1593      { yyval.String = yyvsp[-1].String + yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                             }
1594        break;
1595    
1596      case 86:
1597    #line 214 "lscp.y"
1598        { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }
1599      break;      break;
1600    
1601    case 79:    case 87:
1602  #line 203 "lscp.y"  #line 215 "lscp.y"
1603      { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); }      { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str();       }
1604      break;      break;
1605    
1606    case 80:    case 88:
1607  #line 206 "lscp.y"  #line 218 "lscp.y"
1608      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { std::string s; s = yyvsp[0].Char; yyval.String = s; }
1609      break;      break;
1610    
1611    case 81:    case 89:
1612  #line 207 "lscp.y"  #line 219 "lscp.y"
1613      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }
1614      break;      break;
1615    
# Line 1563  yyreduce: Line 1617  yyreduce:
1617      }      }
1618    
1619  /* Line 999 of yacc.c.  */  /* Line 999 of yacc.c.  */
1620  #line 1567 "y.tab.c"  #line 1620 "y.tab.c"
1621    
1622    yyvsp -= yylen;    yyvsp -= yylen;
1623    yyssp -= yylen;    yyssp -= yylen;
# Line 1757  yyreturn: Line 1811  yyreturn:
1811  }  }
1812    
1813    
1814  #line 210 "lscp.y"  #line 78 "lscp.y"
1815    
1816    
1817  /**  /**

Legend:
Removed from v.123  
changed lines
  Added in v.138

  ViewVC Help
Powered by ViewVC