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

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

  ViewVC Help
Powered by ViewVC