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

Legend:
Removed from v.111  
changed lines
  Added in v.209

  ViewVC Help
Powered by ViewVC