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

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

  ViewVC Help
Powered by ViewVC