/[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 143 by capela, Wed Jun 23 18:54:08 2004 UTC revision 170 by senkov, Sat Jul 3 20:08:07 2004 UTC
# Line 94  Line 94 
94       AUDIO_OUTPUT_DRIVER = 296,       AUDIO_OUTPUT_DRIVER = 296,
95       AUDIO_OUTPUT_DRIVER_PARAMETER = 297,       AUDIO_OUTPUT_DRIVER_PARAMETER = 297,
96       AUDIO_OUTPUT_TYPE = 298,       AUDIO_OUTPUT_TYPE = 298,
97       MIDI_INPUT_PORT = 299,       MIDI_INPUT = 299,
98       MIDI_INPUT_CHANNEL = 300,       MIDI_INPUT_TYPE = 300,
99       MIDI_INPUT_TYPE = 301,       MIDI_INPUT_PORT = 301,
100       VOLUME = 302,       MIDI_INPUT_CHANNEL = 302,
101       BYTES = 303,       VOLUME = 303,
102       PERCENTAGE = 304,       MIDI_INPUT_DRIVER = 304,
103       MISCELLANEOUS = 305       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
# Line 144  Line 152 
152  #define AUDIO_OUTPUT_DRIVER 296  #define AUDIO_OUTPUT_DRIVER 296
153  #define AUDIO_OUTPUT_DRIVER_PARAMETER 297  #define AUDIO_OUTPUT_DRIVER_PARAMETER 297
154  #define AUDIO_OUTPUT_TYPE 298  #define AUDIO_OUTPUT_TYPE 298
155  #define MIDI_INPUT_PORT 299  #define MIDI_INPUT 299
156  #define MIDI_INPUT_CHANNEL 300  #define MIDI_INPUT_TYPE 300
157  #define MIDI_INPUT_TYPE 301  #define MIDI_INPUT_PORT 301
158  #define VOLUME 302  #define MIDI_INPUT_CHANNEL 302
159  #define BYTES 303  #define VOLUME 303
160  #define PERCENTAGE 304  #define MIDI_INPUT_DRIVER 304
161  #define MISCELLANEOUS 305  #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 161  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 209  typedef int YYSTYPE; Line 226  typedef int YYSTYPE;
226    
227    
228  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
229  #line 212 "y.tab.c"  #line 229 "y.tab.c"
230    
231  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
232    
# Line 308  union yyalloc Line 325  union yyalloc
325  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
326  #define YYFINAL  30  #define YYFINAL  30
327  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
328  #define YYLAST   225  #define YYLAST   287
329    
330  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
331  #define YYNTOKENS  51  #define YYNTOKENS  59
332  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
333  #define YYNNTS  30  #define YYNNTS  32
334  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
335  #define YYNRULES  92  #define YYNRULES  106
336  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
337  #define YYNSTATES  239  #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   305  #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 359  static const unsigned char yytranslate[] Line 376  static const unsigned char yytranslate[]
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,    38,    39,    40,    41,    42,    43,    44,        35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
379        45,    46,    47,    48,    49,    50        45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
380          55,    56,    57,    58
381  };  };
382    
383  #if YYDEBUG  #if YYDEBUG
# Line 367  static const unsigned char yytranslate[] Line 385  static const unsigned char yytranslate[]
385     YYRHS.  */     YYRHS.  */
386  static const unsigned short yyprhs[] =  static const unsigned short yyprhs[] =
387  {  {
388         0,     0,     3,     5,     9,    14,    15,    17,    19,    21,         0,     0,     3,     6,     7,     9,    11,    13,    15,    18,
389        23,    26,    29,    32,    35,    39,    43,    47,    51,    55,        21,    24,    27,    31,    35,    39,    43,    47,    51,    57,
390        59,    65,    69,    73,    77,    83,    85,    87,    89,    91,        61,    65,    69,    75,    77,    79,    81,    83,    85,    87,
391        93,    95,    97,    99,   101,   103,   105,   107,   109,   111,        89,    91,    93,    95,    97,    99,   101,   103,   105,   111,
392       113,   119,   127,   137,   139,   145,   153,   163,   165,   171,       119,   129,   131,   137,   145,   155,   157,   159,   165,   171,
393       179,   185,   191,   197,   205,   215,   219,   225,   229,   233,       179,   187,   197,   199,   205,   213,   219,   225,   231,   239,
394       237,   241,   247,   255,   261,   267,   273,   279,   285,   289,       249,   257,   267,   271,   277,   281,   287,   291,   295,   299,
395       295,   297,   299,   301,   307,   315,   319,   321,   323,   325,       303,   307,   313,   321,   327,   337,   343,   349,   355,   361,
396       327,   329,   331,   333,   335,   337,   339,   341,   343,   345,       367,   371,   377,   379,   381,   383,   385,   391,   399,   403,
397       347,   349,   351       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        52,     0,    -1,    53,    -1,    52,     8,    53,    -1,    52,        60,     0,    -1,    61,     8,    -1,    -1,    62,    -1,    63,
405         9,     8,    53,    -1,    -1,    54,    -1,    55,    -1,     1,        -1,     1,    -1,    10,    -1,    62,    10,    -1,    62,     7,
406        -1,    10,    -1,    54,    10,    -1,    54,     7,    -1,    54,        -1,    62,     5,    -1,    62,    90,    -1,    12,     7,    25,
407         5,    -1,    54,    80,    -1,    12,     7,    25,    -1,    13,        -1,    13,     7,    66,    -1,    14,     7,    68,    -1,    15,
408         7,    58,    -1,    14,     7,    60,    -1,    15,     7,    61,         7,    69,    -1,    16,     7,    74,    -1,    17,     7,    70,
409        -1,    16,     7,    66,    -1,    17,     7,    62,    -1,    19,        -1,    19,     7,    25,     7,    85,    -1,    20,     7,    67,
410         7,    25,     7,    72,    -1,    20,     7,    59,    -1,    21,        -1,    21,     7,    64,    -1,    22,     7,    65,    -1,    23,
411         7,    56,    -1,    22,     7,    57,    -1,    23,     7,    25,         7,    25,     7,    85,    -1,    24,    -1,    29,    -1,    33,
412         7,    72,    -1,    24,    -1,    29,    -1,    33,    -1,    32,        -1,    32,    -1,    31,    -1,    30,    -1,    58,    -1,    29,
413        -1,    31,    -1,    30,    -1,    50,    -1,    29,    -1,    33,        -1,    33,    -1,    32,    -1,    31,    -1,    30,    -1,    58,
414        -1,    32,    -1,    31,    -1,    30,    -1,    50,    -1,    27,        -1,    27,    -1,    51,    -1,    49,     7,    30,     7,    90,
415        -1,    28,    -1,    41,     7,    30,     7,    80,    -1,    42,        -1,    50,     7,    30,     7,    90,     7,    90,    -1,    50,
416         7,    30,     7,    80,     7,    80,    -1,    42,     7,    30,         7,    30,     7,    90,     7,    90,     7,    72,    -1,    28,
417         7,    80,     7,    80,     7,    64,    -1,    39,    -1,    38,        -1,    41,     7,    30,     7,    90,    -1,    42,     7,    30,
418         7,    30,     7,     5,    -1,    36,     7,    30,     7,     5,         7,    90,     7,    90,    -1,    42,     7,    30,     7,    90,
419         7,     5,    -1,    37,     7,    30,     7,     5,     7,     5,         7,    90,     7,    72,    -1,    39,    -1,    53,    -1,    38,
420         7,    80,    -1,    29,    -1,    25,     7,    30,     7,    72,         7,    30,     7,     5,    -1,    52,     7,    30,     7,     5,
421        -1,    25,     7,    31,     7,    65,     7,    72,    -1,    25,        -1,    46,     7,    30,     7,     5,     7,     5,    -1,    36,
422         7,    32,     7,    72,    -1,    25,     7,    33,     7,    72,         7,    30,     7,     5,     7,     5,    -1,    37,     7,    30,
423        -1,    35,     7,    30,     7,    76,    -1,    40,     7,     5,         7,     5,     7,     5,     7,    90,    -1,    29,    -1,    25,
424         7,    80,    11,    79,    -1,    37,     7,     5,     7,     5,         7,    30,     7,    85,    -1,    25,     7,    31,     7,    73,
425         7,    80,    11,    79,    -1,    25,     7,    63,    -1,    38,         7,    85,    -1,    25,     7,    32,     7,    85,    -1,    25,
426         7,    80,     7,    64,    -1,    38,     7,    80,    -1,    38,         7,    33,     7,    85,    -1,    35,     7,    30,     7,    87,
427         7,     5,    -1,    34,     7,    67,    -1,    35,     7,    68,        -1,    40,     7,     5,     7,    90,    11,    89,    -1,    37,
428        -1,    38,     7,    72,     7,     5,    -1,    36,     7,    72,         7,     5,     7,     5,     7,    90,    11,    89,    -1,    54,
429         7,    74,     7,    74,    -1,    43,     7,    72,     7,    69,         7,     5,     7,    90,    11,    89,    -1,    55,     7,     5,
430        -1,    44,     7,    72,     7,    77,    -1,    45,     7,    72,         7,     5,     7,    90,    11,    89,    -1,    25,     7,    71,
431         7,    75,    -1,    46,     7,    72,     7,    70,    -1,    47,        -1,    38,     7,    90,     7,    72,    -1,    38,     7,    90,
432         7,    72,     7,    71,    -1,    80,    11,    79,    -1,    64,        -1,    52,     7,    90,     7,    72,    -1,    52,     7,    90,
433         7,    80,    11,    79,    -1,    48,    -1,    49,    -1,    39,        -1,    38,     7,     5,    -1,    52,     7,     5,    -1,    34,
434        -1,    78,     7,    73,     7,    72,    -1,    18,     7,    78,         7,    75,    -1,    35,     7,    76,    -1,    38,     7,    85,
435         7,    73,     7,    72,    -1,    76,     7,    72,    -1,    80,         7,    77,    -1,    36,     7,    85,     7,    78,     7,    78,
436        -1,    80,    -1,     4,    -1,     5,    -1,     5,    -1,     5,        -1,    43,     7,    85,     7,    79,    -1,    44,     7,    85,
437        -1,     5,    -1,     5,    -1,    80,    -1,     6,    -1,     6,         7,    80,     7,    81,     7,    82,    -1,    52,     7,    85,
438        -1,    80,    -1,     6,    -1,     5,    -1,     4,    -1,     3,         7,    80,    -1,    46,     7,    85,     7,    81,    -1,    47,
439        -1,    80,     3,    -1         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,    85,    88,         0,    79,    79,    81,    82,    83,    84,    87,    88,    89,
454        89,    90,    91,    92,    95,    96,    97,    98,    99,   100,        90,    91,    94,    95,    96,    97,    98,    99,   100,   101,
455       101,   102,   103,   104,   105,   106,   109,   110,   111,   112,       102,   103,   104,   105,   108,   109,   110,   111,   112,   113,
456       113,   114,   117,   118,   119,   120,   121,   122,   125,   126,       116,   117,   118,   119,   120,   121,   124,   125,   126,   127,
457       127,   128,   129,   130,   131,   132,   133,   134,   135,   136,       128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
458       137,   138,   139,   142,   143,   144,   147,   148,   151,   154,       138,   139,   140,   141,   142,   143,   144,   145,   148,   149,
459       155,   158,   159,   160,   161,   162,   163,   164,   167,   168,       150,   151,   152,   155,   156,   157,   158,   161,   162,   165,
460       171,   172,   175,   178,   179,   182,   185,   188,   191,   192,       166,   169,   170,   171,   172,   173,   174,   175,   176,   177,
461       195,   198,   201,   204,   207,   210,   213,   214,   217,   218,       180,   181,   184,   185,   188,   189,   192,   193,   196,   199,
462       219,   222,   223       202,   205,   208,   211,   214,   217,   220,   221,   224,   227,
463         230,   233,   236,   237,   238,   241,   242
464  };  };
465  #endif  #endif
466    
# Line 450  static const char *const yytname[] = Line 478  static const char *const yytname[] =
478    "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER",    "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
479    "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DEVICES",    "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DEVICES",
480    "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DRIVER",    "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DRIVER",
481    "AUDIO_OUTPUT_DRIVER_PARAMETER", "AUDIO_OUTPUT_TYPE", "MIDI_INPUT_PORT",    "AUDIO_OUTPUT_DRIVER_PARAMETER", "AUDIO_OUTPUT_TYPE", "MIDI_INPUT",
482    "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME", "BYTES",    "MIDI_INPUT_TYPE", "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "VOLUME",
483    "PERCENTAGE", "MISCELLANEOUS", "$accept", "input", "line", "comment",    "MIDI_INPUT_DRIVER", "MIDI_INPUT_DRIVER_PARAMETER",
484    "command", "subscribe_event", "unsubscribe_event", "get_instruction",    "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE",
485    "set_instruction", "create_instruction", "destroy_instruction",    "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE_PARAMETER",
486    "load_instruction", "set_chan_instruction", "key_val_list",    "MIDI_INPUT_PORT_PARAMETER", "BYTES", "PERCENTAGE", "MISCELLANEOUS",
487    "buffer_size_type", "list_instruction", "load_instr_args",    "$accept", "input", "line", "comment", "command", "subscribe_event",
488    "load_engine_args", "audio_output_type", "midi_input_type", "volume",    "unsubscribe_event", "get_instruction", "set_instruction",
489    "sampler_channel", "instrument_index", "audio_output_channel",    "create_instruction", "destroy_instruction", "load_instruction",
490    "midi_input_channel", "engine_name", "midi_input_port", "filename",    "set_chan_instruction", "key_val_list", "buffer_size_type",
491    "param_val", "string", 0    "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 474  static const unsigned short yytoknum[] = Line 506  static const unsigned short yytoknum[] =
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,   293,   294,       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
508       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
509       305       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,    51,    52,    52,    52,    53,    53,    53,    53,    54,         0,    59,    60,    61,    61,    61,    61,    62,    62,    62,
517        54,    54,    54,    54,    55,    55,    55,    55,    55,    55,        62,    62,    63,    63,    63,    63,    63,    63,    63,    63,
518        55,    55,    55,    55,    55,    55,    56,    56,    56,    56,        63,    63,    63,    63,    64,    64,    64,    64,    64,    64,
519        56,    56,    57,    57,    57,    57,    57,    57,    58,    58,        65,    65,    65,    65,    65,    65,    66,    66,    66,    66,
520        58,    58,    58,    58,    58,    58,    58,    58,    58,    58,        66,    66,    66,    66,    66,    66,    66,    66,    66,    66,
521        58,    58,    58,    59,    59,    59,    60,    60,    61,    62,        66,    66,    66,    66,    66,    66,    66,    66,    67,    67,
522        62,    63,    63,    63,    63,    63,    63,    63,    64,    64,        67,    67,    67,    68,    68,    68,    68,    69,    69,    70,
523        65,    65,    66,    67,    67,    68,    69,    70,    71,    71,        70,    71,    71,    71,    71,    71,    71,    71,    71,    71,
524        72,    73,    74,    75,    76,    77,    78,    78,    79,    79,        72,    72,    73,    73,    74,    74,    75,    75,    76,    77,
525        79,    80,    80        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,     1,     1,         0,     2,     2,     0,     1,     1,     1,     1,     2,     2,
533         2,     2,     2,     2,     3,     3,     3,     3,     3,     3,         2,     2,     3,     3,     3,     3,     3,     3,     5,     3,
534         5,     3,     3,     3,     5,     1,     1,     1,     1,     1,         3,     3,     5,     1,     1,     1,     1,     1,     1,     1,
535           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         5,     7,     9,     1,     5,     7,     9,     1,     5,     7,         1,     1,     1,     1,     1,     1,     2
        5,     5,     5,     7,     9,     3,     5,     3,     3,     3,  
        3,     5,     7,     5,     5,     5,     5,     5,     3,     5,  
        1,     1,     1,     5,     7,     3,     1,     1,     1,     1,  
        1,     1,     1,     1,     1,     1,     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 513  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,     8,     9,     0,     0,     0,     0,     0,     0,     0,         0,     6,     7,     0,     0,     0,     0,     0,     0,     0,
551         0,     0,     0,     0,    25,     0,     2,     6,     7,     0,         0,     0,     0,     0,    23,     0,     0,     4,     5,     0,
552           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
553           1,     2,   105,    10,     9,     8,    11,    12,     0,    36,
554          41,    52,     0,     0,     0,     0,    45,     0,     0,     0,
555           0,     0,    37,     0,    46,    13,     0,     0,    14,     0,
556           0,    15,    84,    85,    16,     0,     0,    17,     0,     0,
557           0,     0,     0,     0,    19,    24,    28,    27,    26,    25,
558          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,
561         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
562         1,     0,     0,    91,    12,    11,    10,    13,    14,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,    64,
563        38,    39,    47,     0,     0,     0,     0,    43,     0,     0,        66,    67,    68,   101,     0,    69,     0,    70,     0,   100,
564        15,     0,    16,     0,    17,    72,    18,     0,     0,    19,        98,    18,     0,     0,     0,     0,     0,     0,     0,     0,
565         0,     0,     0,     0,    21,    26,    30,    29,    28,    27,         0,    62,     0,     0,     0,     0,    22,     0,     0,     0,
       31,    22,    32,    36,    35,    34,    33,    37,    23,     0,  
        3,     0,    92,     0,     0,     0,     0,     0,     0,     0,  
        0,     0,     0,     0,     0,     0,     0,     0,     0,     4,  
566         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
       57,    58,    86,     0,    59,     0,    87,    60,     0,    84,  
       80,    20,     0,     0,     0,     0,     0,     0,     0,    55,  
        0,     0,    24,     0,     0,     0,     0,     0,     0,     0,  
567         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
568         0,     0,     0,     0,     0,     0,    48,    70,    71,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,    53,
569        50,    51,    52,     0,     0,    44,    40,     0,    56,     0,        82,    83,     0,    55,    56,    57,     0,     0,    47,    42,
570         0,    81,     0,    75,     0,     0,     0,     0,     0,     0,         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,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
573         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
574        49,    45,     0,    41,     0,    90,    89,    88,    68,     0,         0,     0,     0,     0,     0,     0,     0,     0,    54,    50,
575        73,    82,     0,    61,    63,    76,    85,    64,    83,    65,         0,    43,    49,    39,     0,   104,   103,   102,    80,     0,
576        66,    77,    78,    79,    67,     0,    53,     0,     0,     0,        86,    90,     0,    89,    71,    73,    91,    92,     0,    78,
577         0,     0,     0,    46,    42,    69,    74,    62,    54        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,    15,    16,    17,    18,    71,    78,    50,    64,    52,        -1,    15,    16,    17,    18,    81,    88,    55,    74,    58,
587        54,    59,   129,   168,   159,    56,   114,   117,   214,   220,        61,    67,   151,   205,   192,    64,   135,   137,   264,   262,
588       224,   121,   172,   212,   219,   118,   217,   115,   208,   116       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 -198  #define YYPACT_NINF -242
595  static const short yypact[] =  static const short yypact[] =
596  {  {
597         3,  -198,  -198,    -1,     1,    30,    53,    81,    83,   115,       163,  -242,  -242,     6,    20,    71,    82,    86,    90,   100,
598       116,   120,   121,   122,  -198,    21,  -198,    98,  -198,    22,       120,   122,   123,   124,  -242,   128,   125,    51,  -242,   107,
599        43,   -10,    20,    82,    40,   105,     8,    11,    33,   106,        67,   -27,   -26,   -25,    41,   109,   -22,   -23,   -10,   110,
600      -198,     3,   124,  -198,  -198,  -198,  -198,   131,  -198,   128,      -242,  -242,  -242,  -242,  -242,  -242,   133,  -242,   130,  -242,
601      -198,  -198,  -198,   129,   130,   132,   133,  -198,   134,   135,      -242,  -242,   131,   132,   134,   135,  -242,   136,   138,   139,
602      -198,   136,  -198,   137,  -198,  -198,  -198,   138,   139,  -198,       140,   143,  -242,   146,  -242,  -242,   147,   148,  -242,   149,
603       140,   141,   142,   143,  -198,  -198,  -198,  -198,  -198,  -198,       150,  -242,  -242,  -242,  -242,   151,   152,  -242,   153,   154,
604      -198,  -198,  -198,  -198,  -198,  -198,  -198,  -198,  -198,   144,       155,   156,   158,   159,  -242,  -242,  -242,  -242,  -242,  -242,
605      -198,     3,  -198,    79,   123,   125,   126,   127,   145,   147,      -242,  -242,  -242,  -242,  -242,  -242,  -242,  -242,  -242,   160,
606       149,   153,    28,   149,   154,    51,   155,   156,   154,  -198,      -242,    68,   142,   161,   162,   164,   165,   166,   167,   168,
607       157,   158,   159,   160,   161,   164,   165,   166,   167,   171,       169,   170,   137,   137,   176,   183,    11,   137,   184,    36,
608         2,  -198,  -198,   173,  -198,   175,   131,  -198,   176,   131,       185,   188,   196,   197,   184,   198,   199,   200,   201,   202,
609      -198,  -198,   177,   178,   179,   180,   181,   182,   183,  -198,       203,   205,   208,   209,   210,   211,   212,   214,   216,    33,
610       184,   185,  -198,   154,    68,   154,   154,   149,   188,   189,        34,  -242,  -242,  -242,   217,  -242,   218,  -242,   219,   133,
611       190,   149,   149,   149,   101,   191,   154,   154,   154,   154,      -242,  -242,   221,   222,   224,   225,   226,   227,   228,   229,
612       154,   154,   154,   154,   192,   149,  -198,  -198,  -198,   193,       230,  -242,   231,   232,   233,   234,  -242,   184,    54,   184,
613      -198,  -198,  -198,   194,   195,  -198,   131,     7,   196,    56,       184,   137,   237,   238,   239,   137,   137,   240,   137,   137,
614       197,  -198,   198,  -198,   199,   200,   201,   202,   205,   206,       241,   137,   137,   242,   244,   184,   184,   184,   184,   184,
615       207,   208,    66,   154,   211,   212,   149,   149,   109,   191,       184,   184,   184,   184,   184,   245,   137,   137,   246,  -242,
616       154,   213,   214,   149,   148,   215,   149,   114,   149,   109,      -242,  -242,   247,  -242,  -242,  -242,   248,   249,  -242,   133,
617      -198,  -198,   216,    99,    88,  -198,  -198,  -198,  -198,   217,        50,   250,   133,    52,  -242,   251,    13,   251,   252,  -242,
618      -198,  -198,   218,  -198,  -198,   131,  -198,  -198,  -198,  -198,       253,  -242,   254,   255,   256,   257,   258,   260,   261,   262,
619      -198,   131,  -198,  -198,  -198,    89,  -198,   149,   149,   109,       263,   264,    27,    28,   265,   184,   268,   269,   137,   270,
620       154,   213,   109,   131,   196,  -198,  -198,  -198,  -198       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 short yypgoto[] =  static const short yypgoto[] =
632  {  {
633      -198,  -198,   -24,  -198,  -198,  -198,  -198,  -198,  -198,  -198,      -242,  -242,  -242,  -242,  -242,  -242,  -242,  -242,  -242,  -242,
634      -198,  -198,  -198,   -66,  -198,  -198,  -198,  -198,  -198,  -198,      -242,  -242,  -242,  -170,  -242,  -242,  -242,  -242,  -242,  -120,
635      -198,   -97,   -26,   -33,  -198,    62,  -198,    77,  -197,   -17      -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 -6  #define YYTABLE_NINF -4
644  static const short yytable[] =  static const short yytable[] =
645  {  {
646        37,   132,   226,    -5,     1,    82,    19,    80,    20,   143,        36,   156,   207,    69,   280,   281,    75,    76,    77,    78,
647        82,    -5,    -5,     2,   186,     3,     4,     5,     6,     7,        79,    56,    59,    19,    62,    70,    90,   133,    71,    82,
648         8,    30,     9,    10,    11,    12,    13,    14,    51,    31,        83,    84,    85,    86,   232,    57,    60,    20,    63,   134,
649        32,    33,   235,    61,   112,   238,   156,    21,   160,   161,        90,    90,    72,    73,    90,    80,    90,    90,   245,   246,
650        65,    66,    67,    68,    69,    62,   113,    38,    63,   173,       171,   172,   286,    90,   189,   295,   193,   194,    87,   299,
651       174,   175,   176,   177,   178,   179,   180,    99,    53,    82,       300,   290,    90,    90,    32,    90,    33,   228,    34,   230,
652        22,    70,    72,    73,    74,    75,    76,   188,    39,    82,       291,    35,   211,   212,   213,   214,   215,   216,   217,   218,
653        40,    41,    42,   110,    57,    58,   119,   199,    43,    44,       219,   220,   142,    90,   143,    65,    66,   284,    21,   144,
654        45,    46,    47,    77,    48,    49,   200,   122,    23,   123,       145,   146,   147,   148,   149,   129,   130,    90,   150,    22,
655        24,    82,    82,   210,   124,   125,   126,   127,   128,   229,       139,   285,    38,    23,    39,    40,    41,    24,   115,   116,
656       232,    33,    82,    34,    33,    35,   228,   112,    36,   100,       117,   118,    42,    43,    44,    45,    46,    25,    47,    48,
657       101,   102,   103,   205,   206,   207,   157,   158,   222,   223,       190,   191,   248,    49,   293,   294,    50,    51,    52,    53,
658       119,    55,    25,    26,   166,   167,   169,    27,    28,    29,        54,   260,   255,   256,   257,   275,   276,    26,    30,    27,
659        60,    79,    81,   236,    82,    83,    84,    85,   182,    86,        28,    29,    37,    31,    68,    89,    90,    91,    92,    93,
660        87,    88,    89,    90,    91,    92,    93,    94,    95,    96,        32,    94,    95,    96,   139,    97,    98,    99,   199,   200,
661        97,    98,    33,   104,   216,   105,   106,   107,   111,   120,       100,   202,   203,   101,   102,   103,   104,   105,   106,   107,
662       130,   131,   234,   209,   133,   134,   135,   136,   137,   203,       108,   109,   110,   111,     1,   112,   113,   114,   297,   222,
663       204,   138,   139,   140,   141,   108,   215,   109,   142,   221,       223,    -3,   119,     2,   296,     3,     4,     5,     6,     7,
664       144,   225,   145,   146,   147,   148,   149,   150,   151,   152,         8,   131,     9,    10,    11,    12,    13,    14,   132,   140,
665       153,   154,   155,   163,   164,   165,   171,   181,   237,   162,       152,   120,   121,   153,   122,   123,   124,   125,   126,   127,
666       183,   184,   185,   187,   189,   190,   191,   192,   193,   194,       128,   154,   155,   278,   298,   157,   158,   159,   160,   161,
667       233,   169,   195,   196,   197,   198,   201,   202,   211,   213,       162,   251,   163,   253,   254,   164,   165,   166,   167,   168,
668       218,   170,     0,   227,   230,   231       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        17,    98,   199,     0,     1,     3,     7,    31,     7,     7,        17,   114,   172,    25,   245,   246,    29,    30,    31,    32,
680         3,     8,     9,    10,     7,    12,    13,    14,    15,    16,        33,    38,    38,     7,    39,    37,     3,     6,    40,    29,
681        17,     0,    19,    20,    21,    22,    23,    24,    38,     8,        30,    31,    32,    33,    11,    52,    52,     7,    53,    18,
682         9,     3,   229,    25,     6,   232,   133,     7,   135,   136,         3,     3,    54,    55,     3,    58,     3,     3,    11,    11,
683        29,    30,    31,    32,    33,    37,    18,    25,    40,   146,         7,     7,    11,     3,   157,   286,   159,   160,    58,   290,
684       147,   148,   149,   150,   151,   152,   153,    81,    38,     3,       291,    11,     3,     3,     3,     3,     5,     7,     7,     7,
685         7,    50,    29,    30,    31,    32,    33,    11,    25,     3,        11,    10,   175,   176,   177,   178,   179,   180,   181,   182,
686        27,    28,    29,    90,    34,    35,    93,    11,    35,    36,       183,   184,    36,     3,    38,    34,    35,     7,     7,    43,
687        37,    38,    39,    50,    41,    42,   183,    36,     7,    38,        44,    45,    46,    47,    48,   102,   103,     3,    52,     7,
688         7,     3,     3,   190,    43,    44,    45,    46,    47,    11,       107,     7,    25,     7,    27,    28,    29,     7,    30,    31,
689        11,     3,     3,     5,     3,     7,     7,     6,    10,    30,        32,    33,    35,    36,    37,    38,    39,     7,    41,    42,
690        31,    32,    33,     4,     5,     6,    48,    49,     4,     5,        56,    57,   225,    46,   284,   285,    49,    50,    51,    52,
691       137,    39,     7,     7,   141,   142,   143,     7,     7,     7,        53,   234,     4,     5,     6,     4,     5,     7,     0,     7,
692        25,    25,     8,   230,     3,     7,     7,     7,   155,     7,         7,     7,    25,     8,    25,    25,     3,     7,     7,     7,
693         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,         3,     7,     7,     7,   161,     7,     7,     7,   165,   166,
694         7,     7,     3,    30,     6,    30,    30,    30,     5,     5,         7,   168,   169,     7,     7,     7,     7,     7,     7,     7,
695         5,     5,   228,   189,     7,     7,     7,     7,     7,   186,         7,     7,     7,     7,     1,     7,     7,     7,   288,   186,
696       187,     7,     7,     7,     7,    30,   193,    30,     7,   196,       187,     8,    30,    10,   287,    12,    13,    14,    15,    16,
697         7,   198,     7,     7,     7,     7,     7,     7,     7,     7,        17,     5,    19,    20,    21,    22,    23,    24,     5,     5,
698         7,     7,     7,     5,     5,     5,     5,     5,   231,   137,         5,    30,    30,     5,    30,    30,    30,    30,    30,    30,
699         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,        30,     5,     5,   243,   289,     7,     7,     7,     7,     7,
700       227,   228,     7,     7,     7,     7,     5,     5,     5,     5,         7,   228,     7,   230,   231,     7,     7,     7,     7,     7,
701         5,   144,    -1,     7,     7,     7       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
# Line 650  static const short yycheck[] = Line 712  static const short yycheck[] =
712  static const unsigned char yystos[] =  static const unsigned char yystos[] =
713  {  {
714         0,     1,    10,    12,    13,    14,    15,    16,    17,    19,         0,     1,    10,    12,    13,    14,    15,    16,    17,    19,
715        20,    21,    22,    23,    24,    52,    53,    54,    55,     7,        20,    21,    22,    23,    24,    60,    61,    62,    63,     7,
716           7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
717           0,     8,     3,     5,     7,    10,    90,    25,    25,    27,
718          28,    29,    35,    36,    37,    38,    39,    41,    42,    46,
719          49,    50,    51,    52,    53,    66,    38,    52,    68,    38,
720          52,    69,    39,    53,    74,    34,    35,    70,    25,    25,
721          37,    40,    54,    55,    67,    29,    30,    31,    32,    33,
722          58,    64,    29,    30,    31,    32,    33,    58,    65,    25,
723           3,     7,     7,     7,     7,     7,     7,     7,     7,     7,
724         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
725         0,     8,     9,     3,     5,     7,    10,    80,    25,    25,         7,     7,     7,     7,     7,    30,    31,    32,    33,    30,
726        27,    28,    29,    35,    36,    37,    38,    39,    41,    42,        30,    30,    30,    30,    30,    30,    30,    30,    30,    90,
727        58,    38,    60,    38,    61,    39,    66,    34,    35,    62,        90,     5,     5,     6,    18,    75,    88,    76,    87,    90,
728        25,    25,    37,    40,    59,    29,    30,    31,    32,    33,         5,    85,    36,    38,    43,    44,    45,    46,    47,    48,
729        50,    56,    29,    30,    31,    32,    33,    50,    57,    25,        52,    71,     5,     5,     5,     5,    85,     7,     7,     7,
       53,     8,     3,     7,     7,     7,     7,     7,     7,     7,  
        7,     7,     7,     7,     7,     7,     7,     7,     7,    53,  
       30,    31,    32,    33,    30,    30,    30,    30,    30,    30,  
       80,     5,     6,    18,    67,    78,    80,    68,    76,    80,  
        5,    72,    36,    38,    43,    44,    45,    46,    47,    63,  
        5,     5,    72,     7,     7,     7,     7,     7,     7,     7,  
730         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
731         7,     7,     7,     7,     7,     7,    72,    48,    49,    65,         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,
732        72,    72,    76,     5,     5,     5,    80,    80,    64,    80,         7,     7,     7,     7,     7,     7,     7,     7,     7,    85,
733        78,     5,    73,    72,    72,    72,    72,    72,    72,    72,        56,    57,    73,    85,    85,    87,     5,     5,     5,    90,
734        72,     5,    80,     7,     7,     7,     7,     7,    11,     7,        90,     5,    90,    90,     5,    72,    90,    72,    88,     5,
735         7,     7,     7,     7,     7,     7,     7,     7,     7,    11,        86,    85,    85,    85,    85,    85,    85,    85,    85,    85,
736        72,     5,     5,    80,    80,     4,     5,     6,    79,    73,        85,     5,    90,    90,     5,     7,     7,     7,     7,     7,
737        72,     5,    74,     5,    69,    80,     6,    77,     5,    75,         7,     7,    11,     7,     7,     7,     7,     7,     7,     7,
738        70,    80,     4,     5,    71,    80,    79,     7,     7,    11,         7,     7,     7,     7,     7,    11,    11,     7,    85,     5,
739         7,     7,    11,    80,    64,    79,    72,    74,    79         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 1282  yyreduce: Line 1351  yyreduce:
1351    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
1352    switch (yyn)    switch (yyn)
1353      {      {
1354          case 7:          case 3:
1355  #line 84 "lscp.y"  #line 81 "lscp.y"
1356      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { return LSCP_DONE; }
1357        break;
1358    
1359      case 4:
1360    #line 82 "lscp.y"
1361        { return LSCP_DONE; }
1362        break;
1363    
1364      case 5:
1365    #line 83 "lscp.y"
1366        { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; }
1367      break;      break;
1368    
1369    case 8:    case 6:
1370  #line 85 "lscp.y"  #line 84 "lscp.y"
1371      { 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; }
1372      break;      break;
1373    
1374    case 14:    case 12:
1375  #line 95 "lscp.y"  #line 94 "lscp.y"
1376      { yyval.String = LSCPSERVER->AddChannel();                  }      { yyval.String = LSCPSERVER->AddChannel();                  }
1377      break;      break;
1378    
1379    case 15:    case 13:
1380    #line 95 "lscp.y"
1381        { yyval.String = yyvsp[0].String;                                        }
1382        break;
1383    
1384      case 14:
1385  #line 96 "lscp.y"  #line 96 "lscp.y"
1386      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1387      break;      break;
1388    
1389    case 16:    case 15:
1390  #line 97 "lscp.y"  #line 97 "lscp.y"
1391      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1392      break;      break;
1393    
1394    case 17:    case 16:
1395  #line 98 "lscp.y"  #line 98 "lscp.y"
1396      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1397      break;      break;
1398    
1399    case 18:    case 17:
1400  #line 99 "lscp.y"  #line 99 "lscp.y"
1401      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1402      break;      break;
1403    
1404    case 19:    case 18:
1405  #line 100 "lscp.y"  #line 100 "lscp.y"
1406      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }
1407      break;      break;
1408    
1409    case 20:    case 19:
1410  #line 101 "lscp.y"  #line 101 "lscp.y"
1411      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { yyval.String = yyvsp[0].String;                                        }
1412      break;      break;
1413    
1414    case 21:    case 20:
1415  #line 102 "lscp.y"  #line 102 "lscp.y"
1416      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1417      break;      break;
1418    
1419    case 22:    case 21:
1420  #line 103 "lscp.y"  #line 103 "lscp.y"
1421      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                        }
1422      break;      break;
1423    
1424    case 23:    case 22:
1425  #line 104 "lscp.y"  #line 104 "lscp.y"
1426      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }
1427      break;      break;
1428    
1429    case 24:    case 23:
1430  #line 105 "lscp.y"  #line 105 "lscp.y"
1431      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
1432        break;
1433    
1434      case 24:
1435    #line 108 "lscp.y"
1436        { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels); }
1437      break;      break;
1438    
1439    case 25:    case 25:
1440  #line 106 "lscp.y"  #line 109 "lscp.y"
1441      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count); }
1442      break;      break;
1443    
1444    case 26:    case 26:
1445  #line 109 "lscp.y"  #line 110 "lscp.y"
1446      { yyval.String = LSCPSERVER->SubscribeNotification(event_channels); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }
1447      break;      break;
1448    
1449    case 27:    case 27:
1450  #line 110 "lscp.y"  #line 111 "lscp.y"
1451      { yyval.String = LSCPSERVER->SubscribeNotification(event_voice_count); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill); }
1452      break;      break;
1453    
1454    case 28:    case 28:
1455  #line 111 "lscp.y"  #line 112 "lscp.y"
1456      { yyval.String = LSCPSERVER->SubscribeNotification(event_stream_count); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info); }
1457      break;      break;
1458    
1459    case 29:    case 29:
1460  #line 112 "lscp.y"  #line 113 "lscp.y"
1461      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_buffer_fill); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc); }
1462      break;      break;
1463    
1464    case 30:    case 30:
1465  #line 113 "lscp.y"  #line 116 "lscp.y"
1466      { yyval.String = LSCPSERVER->SubscribeNotification(event_channel_info); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels); }
1467      break;      break;
1468    
1469    case 31:    case 31:
1470  #line 114 "lscp.y"  #line 117 "lscp.y"
1471      { yyval.String = LSCPSERVER->SubscribeNotification(event_misc); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count); }
1472      break;      break;
1473    
1474    case 32:    case 32:
1475  #line 117 "lscp.y"  #line 118 "lscp.y"
1476      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channels); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }
1477      break;      break;
1478    
1479    case 33:    case 33:
1480  #line 118 "lscp.y"  #line 119 "lscp.y"
1481      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_voice_count); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill); }
1482      break;      break;
1483    
1484    case 34:    case 34:
1485  #line 119 "lscp.y"  #line 120 "lscp.y"
1486      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_stream_count); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info); }
1487      break;      break;
1488    
1489    case 35:    case 35:
1490  #line 120 "lscp.y"  #line 121 "lscp.y"
1491      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_buffer_fill); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc); }
1492      break;      break;
1493    
1494    case 36:    case 36:
1495  #line 121 "lscp.y"  #line 124 "lscp.y"
1496      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_channel_info); }      { yyval.String = LSCPSERVER->GetAvailableEngines();       }
1497      break;      break;
1498    
1499    case 37:    case 37:
1500  #line 122 "lscp.y"  #line 125 "lscp.y"
1501      { yyval.String = LSCPSERVER->UnsubscribeNotification(event_misc); }      { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();       }
1502      break;      break;
1503    
1504    case 38:    case 38:
1505  #line 125 "lscp.y"  #line 126 "lscp.y"
1506      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }      { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);       }
1507      break;      break;
1508    
1509    case 39:    case 39:
1510  #line 126 "lscp.y"  #line 127 "lscp.y"
1511      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);       }
1512      break;      break;
1513    
1514    case 40:    case 40:
1515  #line 127 "lscp.y"  #line 128 "lscp.y"
1516      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);       }
1517      break;      break;
1518    
1519    case 41:    case 41:
1520  #line 128 "lscp.y"  #line 129 "lscp.y"
1521      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();       }
1522      break;      break;
1523    
1524    case 42:    case 42:
1525  #line 129 "lscp.y"  #line 130 "lscp.y"
1526      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);       }
1527      break;      break;
1528    
1529    case 43:    case 43:
1530  #line 130 "lscp.y"  #line 131 "lscp.y"
1531      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);       }
1532      break;      break;
1533    
1534    case 44:    case 44:
1535  #line 131 "lscp.y"  #line 132 "lscp.y"
1536      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);       }
1537      break;      break;
1538    
1539    case 45:    case 45:
1540  #line 132 "lscp.y"  #line 133 "lscp.y"
1541      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();       }
1542      break;      break;
1543    
1544    case 46:    case 46:
1545  #line 133 "lscp.y"  #line 134 "lscp.y"
1546      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();       }
1547      break;      break;
1548    
1549    case 47:    case 47:
1550  #line 134 "lscp.y"  #line 135 "lscp.y"
1551      { yyval.String = LSCPSERVER->GetChannels();                                  }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);       }
1552      break;      break;
1553    
1554    case 48:    case 48:
1555  #line 135 "lscp.y"  #line 136 "lscp.y"
1556      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);       }
1557      break;      break;
1558    
1559    case 49:    case 49:
1560  #line 136 "lscp.y"  #line 137 "lscp.y"
1561      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);       }
1562      break;      break;
1563    
1564    case 50:    case 50:
1565  #line 137 "lscp.y"  #line 138 "lscp.y"
1566      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);       }
1567      break;      break;
1568    
1569    case 51:    case 51:
1570  #line 138 "lscp.y"  #line 139 "lscp.y"
1571      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);       }
1572      break;      break;
1573    
1574    case 52:    case 52:
1575  #line 139 "lscp.y"  #line 140 "lscp.y"
1576      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }      { yyval.String = LSCPSERVER->GetChannels();       }
1577      break;      break;
1578    
1579    case 53:    case 53:
1580  #line 142 "lscp.y"  #line 141 "lscp.y"
1581      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);       }
1582      break;      break;
1583    
1584    case 54:    case 54:
1585  #line 143 "lscp.y"  #line 142 "lscp.y"
1586      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);       }
1587      break;      break;
1588    
1589    case 55:    case 55:
1590  #line 144 "lscp.y"  #line 143 "lscp.y"
1591      { yyval.String = yyvsp[0].String;                                                         }      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);       }
1592      break;      break;
1593    
1594    case 56:    case 56:
1595  #line 147 "lscp.y"  #line 144 "lscp.y"
1596      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);       }
1597      break;      break;
1598    
1599    case 57:    case 57:
1600  #line 148 "lscp.y"  #line 145 "lscp.y"
1601      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String); }      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);       }
1602      break;      break;
1603    
1604    case 58:    case 58:
1605  #line 151 "lscp.y"  #line 148 "lscp.y"
1606      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1607      break;      break;
1608    
1609    case 59:    case 59:
1610  #line 154 "lscp.y"  #line 149 "lscp.y"
1611      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1612      break;      break;
1613    
1614    case 60:    case 60:
1615  #line 155 "lscp.y"  #line 150 "lscp.y"
1616      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1617      break;      break;
1618    
1619    case 61:    case 61:
1620  #line 158 "lscp.y"  #line 151 "lscp.y"
1621      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }      { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }
1622      break;      break;
1623    
1624    case 62:    case 62:
1625  #line 159 "lscp.y"  #line 152 "lscp.y"
1626      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }      { yyval.String = yyvsp[0].String;                                                         }
1627      break;      break;
1628    
1629    case 63:    case 63:
1630  #line 160 "lscp.y"  #line 155 "lscp.y"
1631      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
1632      break;      break;
1633    
1634    case 64:    case 64:
1635  #line 161 "lscp.y"  #line 156 "lscp.y"
1636      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }
1637      break;      break;
1638    
1639    case 65:    case 65:
1640  #line 162 "lscp.y"  #line 157 "lscp.y"
1641      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }
1642      break;      break;
1643    
1644    case 66:    case 66:
1645  #line 163 "lscp.y"  #line 158 "lscp.y"
1646      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }
1647      break;      break;
1648    
1649    case 67:    case 67:
1650  #line 164 "lscp.y"  #line 161 "lscp.y"
1651      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number);       }
1652      break;      break;
1653    
1654    case 68:    case 68:
1655  #line 167 "lscp.y"  #line 162 "lscp.y"
1656      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }      { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number);         }
1657      break;      break;
1658    
1659    case 69:    case 69:
1660  #line 168 "lscp.y"  #line 165 "lscp.y"
1661      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }      { yyval.String = yyvsp[0].String; }
1662      break;      break;
1663    
1664    case 70:    case 70:
1665  #line 171 "lscp.y"  #line 166 "lscp.y"
1666      { yyval.FillResponse = fill_response_bytes;      }      { yyval.String = yyvsp[0].String; }
1667      break;      break;
1668    
1669    case 71:    case 71:
1670  #line 172 "lscp.y"  #line 169 "lscp.y"
1671      { yyval.FillResponse = fill_response_percentage; }      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
1672      break;      break;
1673    
1674    case 72:    case 72:
1675  #line 175 "lscp.y"  #line 170 "lscp.y"
1676      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
1677      break;      break;
1678    
1679    case 73:    case 73:
1680  #line 178 "lscp.y"  #line 171 "lscp.y"
1681      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }
1682      break;      break;
1683    
1684    case 74:    case 74:
1685  #line 179 "lscp.y"  #line 172 "lscp.y"
1686      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); }      { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);  }
1687      break;      break;
1688    
1689    case 75:    case 75:
1690  #line 182 "lscp.y"  #line 173 "lscp.y"
1691      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { 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"
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;      break;
1708    
1709    case 79:    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"  #line 192 "lscp.y"
1746      { yyval.Dotnum = yyvsp[0].Number; }      { 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;      break;
1753    
1754    case 88:    case 88:
1755  #line 217 "lscp.y"  #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;                                             }      { yyval.String = yyvsp[0].String;                                             }
1767      break;      break;
1768    
1769    case 89:    case 103:
1770  #line 218 "lscp.y"  #line 237 "lscp.y"
1771      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }
1772      break;      break;
1773    
1774    case 90:    case 104:
1775  #line 219 "lscp.y"  #line 238 "lscp.y"
1776      { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str();       }      { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str();       }
1777      break;      break;
1778    
1779    case 91:    case 105:
1780  #line 222 "lscp.y"  #line 241 "lscp.y"
1781      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { std::string s; s = yyvsp[0].Char; yyval.String = s; }
1782      break;      break;
1783    
1784    case 92:    case 106:
1785  #line 223 "lscp.y"  #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 1636  yyreduce: Line 1790  yyreduce:
1790      }      }
1791    
1792  /* Line 999 of yacc.c.  */  /* Line 999 of yacc.c.  */
1793  #line 1639 "y.tab.c"  #line 1793 "y.tab.c"
1794    
1795    yyvsp -= yylen;    yyvsp -= yylen;
1796    yyssp -= yylen;    yyssp -= yylen;
# Line 1830  yyreturn: Line 1984  yyreturn:
1984  }  }
1985    
1986    
1987  #line 77 "lscp.y"  #line 79 "lscp.y"
1988    
1989    
1990  /**  /**
# Line 1846  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.143  
changed lines
  Added in v.170

  ViewVC Help
Powered by ViewVC