/[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 218 by schoenebeck, Sat Aug 14 23:00:44 2004 UTC revision 219 by schoenebeck, Tue Aug 17 20:35:04 2004 UTC
# Line 47  Line 47 
47    
48    
49    
 /* Tokens.  */  
 #ifndef YYTOKENTYPE  
 # define YYTOKENTYPE  
    /* Put the tokens into the symbol table, so that GDB and other debuggers  
       know about them.  */  
    enum yytokentype {  
      CHAR = 258,  
      DOTNUM = 259,  
      NUMBER = 260,  
      STRINGVAL = 261,  
      SP = 262,  
      LF = 263,  
      CR = 264,  
      HASH = 265,  
      EQ = 266,  
      ADD = 267,  
      GET = 268,  
      CREATE = 269,  
      DESTROY = 270,  
      LIST = 271,  
      LOAD = 272,  
      NON_MODAL = 273,  
      REMOVE = 274,  
      SET = 275,  
      SUBSCRIBE = 276,  
      UNSUBSCRIBE = 277,  
      RESET = 278,  
      ECHO = 279,  
      QUIT = 280,  
      CHANNEL = 281,  
      NOTIFICATION = 282,  
      AVAILABLE_ENGINES = 283,  
      AVAILABLE_AUDIO_OUTPUT_DRIVERS = 284,  
      CHANNELS = 285,  
      INFO = 286,  
      BUFFER_FILL = 287,  
      STREAM_COUNT = 288,  
      VOICE_COUNT = 289,  
      INSTRUMENT = 290,  
      ENGINE = 291,  
      AUDIO_OUTPUT_CHANNEL = 292,  
      AUDIO_OUTPUT_CHANNEL_PARAMETER = 293,  
      AUDIO_OUTPUT_DEVICE = 294,  
      AUDIO_OUTPUT_DEVICES = 295,  
      AUDIO_OUTPUT_DEVICE_PARAMETER = 296,  
      AUDIO_OUTPUT_DRIVER = 297,  
      AUDIO_OUTPUT_DRIVER_PARAMETER = 298,  
      AUDIO_OUTPUT_TYPE = 299,  
      MIDI_INPUT = 300,  
      MIDI_INPUT_TYPE = 301,  
      MIDI_INPUT_PORT = 302,  
      MIDI_INPUT_CHANNEL = 303,  
      VOLUME = 304,  
      MIDI_INPUT_DRIVER = 305,  
      MIDI_INPUT_DRIVER_PARAMETER = 306,  
      AVAILABLE_MIDI_INPUT_DRIVERS = 307,  
      MIDI_INPUT_DEVICE = 308,  
      MIDI_INPUT_DEVICES = 309,  
      MIDI_INPUT_DEVICE_PARAMETER = 310,  
      MIDI_INPUT_PORT_PARAMETER = 311,  
      BYTES = 312,  
      PERCENTAGE = 313,  
      MISCELLANEOUS = 314  
    };  
 #endif  
 #define CHAR 258  
 #define DOTNUM 259  
 #define NUMBER 260  
 #define STRINGVAL 261  
 #define SP 262  
 #define LF 263  
 #define CR 264  
 #define HASH 265  
 #define EQ 266  
 #define ADD 267  
 #define GET 268  
 #define CREATE 269  
 #define DESTROY 270  
 #define LIST 271  
 #define LOAD 272  
 #define NON_MODAL 273  
 #define REMOVE 274  
 #define SET 275  
 #define SUBSCRIBE 276  
 #define UNSUBSCRIBE 277  
 #define RESET 278  
 #define ECHO 279  
 #define QUIT 280  
 #define CHANNEL 281  
 #define NOTIFICATION 282  
 #define AVAILABLE_ENGINES 283  
 #define AVAILABLE_AUDIO_OUTPUT_DRIVERS 284  
 #define CHANNELS 285  
 #define INFO 286  
 #define BUFFER_FILL 287  
 #define STREAM_COUNT 288  
 #define VOICE_COUNT 289  
 #define INSTRUMENT 290  
 #define ENGINE 291  
 #define AUDIO_OUTPUT_CHANNEL 292  
 #define AUDIO_OUTPUT_CHANNEL_PARAMETER 293  
 #define AUDIO_OUTPUT_DEVICE 294  
 #define AUDIO_OUTPUT_DEVICES 295  
 #define AUDIO_OUTPUT_DEVICE_PARAMETER 296  
 #define AUDIO_OUTPUT_DRIVER 297  
 #define AUDIO_OUTPUT_DRIVER_PARAMETER 298  
 #define AUDIO_OUTPUT_TYPE 299  
 #define MIDI_INPUT 300  
 #define MIDI_INPUT_TYPE 301  
 #define MIDI_INPUT_PORT 302  
 #define MIDI_INPUT_CHANNEL 303  
 #define VOLUME 304  
 #define MIDI_INPUT_DRIVER 305  
 #define MIDI_INPUT_DRIVER_PARAMETER 306  
 #define AVAILABLE_MIDI_INPUT_DRIVERS 307  
 #define MIDI_INPUT_DEVICE 308  
 #define MIDI_INPUT_DEVICES 309  
 #define MIDI_INPUT_DEVICE_PARAMETER 310  
 #define MIDI_INPUT_PORT_PARAMETER 311  
 #define BYTES 312  
 #define PERCENTAGE 313  
 #define MISCELLANEOUS 314  
   
50    
51    
52    
# Line 181  Line 58 
58  #include "lscpserver.h"  #include "lscpserver.h"
59  #include "lscpevent.h"  #include "lscpevent.h"
60    
 // as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call  
 #define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner  
   
61  // to save us typing work in the rules action definitions  // to save us typing work in the rules action definitions
62  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
63    
64  // clears input buffer and restarts scanner.  // clears input buffer
65  void restart(yyparse_param_t* pparam, int& yychar);  void restart(yyparse_param_t* pparam, int& yychar);
66  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
67    
 // external reference to the main scanner function yylex()  
 extern YY_DECL;  
   
 // external reference to restart the lex scanner  
 extern void yyrestart(FILE* input_file, yyscan_t yyscanner);  
   
68  // we provide our own version of yyerror() so we don't have to link against the yacc library  // we provide our own version of yyerror() so we don't have to link against the yacc library
69  void yyerror(const char* s);  void yyerror(const char* s);
70    
71    static char buf[1024]; // input buffer to feed the parser with new characters
72    static int bytes = 0;  // current number of characters in the input buffer
73    static int ptr   = 0;  // current position in the input buffer
74    
75    // external reference to the function which actually reads from the socket
76    extern int GetLSCPCommand( void *buf, int max_size);
77    
78    // custom scanner function which reads from the socket
79    int yylex(YYSTYPE* yylval) {
80        // check if we have to read new characters
81        if (ptr >= bytes) {
82            bytes = GetLSCPCommand(buf, 1023);
83            ptr   = 0;
84            if (bytes < 0) {
85                bytes = 0;
86                return 0;
87            }
88        }
89        return (int) buf[ptr++];
90    }
91    
92    
93    
94  /* Enabling traces.  */  /* Enabling traces.  */
# Line 228  typedef int YYSTYPE; Line 117  typedef int YYSTYPE;
117    
118    
119  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
120  #line 232 "y.tab.c"  #line 121 "y.tab.c"
121    
122  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
123    
# Line 325  union yyalloc Line 214  union yyalloc
214  #endif  #endif
215    
216  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
217  #define YYFINAL  30  #define YYFINAL  39
218  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
219  #define YYLAST   310  #define YYLAST   3961
220    
221  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
222  #define YYNTOKENS  60  #define YYNTOKENS  226
223  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
224  #define YYNNTS  33  #define YYNNTS  88
225  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
226  #define YYNRULES  113  #define YYNRULES  408
227  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
228  #define YYNSTATES  319  #define YYNSTATES  1128
229    
230  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
231  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
232  #define YYMAXUTOK   314  #define YYMAXUTOK   257
233    
234  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
235    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 349  union yyalloc Line 238  union yyalloc
238  static const unsigned char yytranslate[] =  static const unsigned char yytranslate[] =
239  {  {
240         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
241         224,     2,     2,   225,     2,     2,     2,     2,     2,     2,
242         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
243         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,   223,    70,   222,     3,    71,    72,    73,   221,
244         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        74,    75,    76,     6,     2,     7,     5,    77,     8,     9,
245         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        10,    11,    12,    13,    14,    15,    16,    17,    78,    79,
246         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        80,     4,    81,    82,    83,    18,    19,    20,    21,    22,
247         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
248         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
249         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        43,    84,    85,    86,    87,    88,     2,    44,    45,    46,
250         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
251         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
252         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        67,    68,    69,    89,    90,    91,    92,     2,    93,    94,
253         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
254         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
255         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
256         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
257         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
258         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
259         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
260         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
261         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
262         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
263         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
264         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
265         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       215,   216,   217,   218,   219,   220,     1,     2
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,  
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,  
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,  
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,  
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,  
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,  
       55,    56,    57,    58,    59  
266  };  };
267    
268  #if YYDEBUG  #if YYDEBUG
# Line 387  static const unsigned char yytranslate[] Line 270  static const unsigned char yytranslate[]
270     YYRHS.  */     YYRHS.  */
271  static const unsigned short yyprhs[] =  static const unsigned short yyprhs[] =
272  {  {
273         0,     0,     3,     6,     7,     9,    11,    13,    15,    18,         0,     0,     3,     6,    10,    11,    13,    15,    17,    19,
274        21,    24,    27,    31,    35,    39,    43,    47,    51,    57,        22,    25,    28,    31,    35,    39,    43,    47,    51,    55,
275        61,    65,    69,    75,    77,    79,    81,    83,    85,    87,        61,    65,    69,    73,    79,    81,    83,    85,    87,    89,
276        89,    91,    93,    95,    97,    99,   101,   103,   105,   107,        91,    93,    95,    97,    99,   101,   103,   105,   107,   109,
277       113,   121,   131,   133,   139,   147,   157,   159,   161,   167,       111,   117,   125,   135,   137,   143,   151,   161,   163,   165,
278       173,   181,   191,   199,   209,   211,   217,   225,   231,   237,       171,   177,   185,   195,   203,   213,   215,   221,   229,   235,
279       243,   251,   261,   269,   279,   283,   287,   293,   297,   303,       241,   247,   255,   265,   273,   283,   287,   291,   297,   301,
280       307,   311,   315,   319,   323,   329,   337,   343,   353,   359,       307,   311,   315,   319,   323,   327,   333,   341,   347,   357,
281       365,   371,   377,   383,   387,   393,   395,   397,   399,   401,       363,   369,   375,   381,   387,   391,   397,   399,   401,   403,
282       403,   409,   417,   421,   423,   425,   427,   429,   431,   433,       405,   407,   413,   421,   425,   427,   429,   431,   433,   435,
283       435,   437,   439,   441,   443,   445,   447,   449,   451,   453,       437,   439,   441,   443,   445,   447,   449,   451,   453,   455,
284       455,   457,   459,   461       457,   459,   461,   463,   466,   470,   475,   480,   482,   485,
285         487,   489,   491,   493,   495,   497,   499,   501,   503,   505,
286         507,   510,   513,   516,   519,   522,   525,   528,   531,   534,
287         536,   538,   540,   542,   544,   546,   548,   550,   552,   554,
288         556,   558,   560,   562,   564,   566,   568,   570,   572,   574,
289         576,   578,   580,   582,   584,   586,   588,   590,   592,   594,
290         596,   598,   600,   602,   604,   606,   608,   610,   612,   614,
291         616,   618,   620,   622,   624,   626,   628,   630,   632,   634,
292         636,   638,   640,   642,   644,   646,   648,   650,   652,   654,
293         656,   658,   660,   662,   664,   666,   668,   670,   672,   674,
294         676,   678,   680,   682,   684,   686,   688,   690,   692,   694,
295         696,   698,   700,   702,   704,   706,   708,   710,   712,   714,
296         716,   718,   720,   722,   724,   726,   728,   730,   732,   734,
297         736,   738,   740,   742,   744,   746,   748,   750,   752,   754,
298         756,   758,   760,   762,   764,   766,   768,   770,   772,   774,
299         776,   778,   780,   782,   784,   786,   788,   790,   792,   794,
300         796,   798,   800,   802,   804,   806,   808,   810,   812,   814,
301         816,   818,   820,   822,   824,   826,   828,   830,   832,   834,
302         836,   838,   840,   842,   844,   846,   848,   850,   852,   854,
303         856,   858,   860,   862,   864,   866,   868,   870,   872,   874,
304         876,   878,   880,   882,   884,   886,   888,   890,   892,   894,
305         896,   898,   900,   902,   904,   906,   908,   910,   912,   914,
306         916,   918,   920,   922,   924,   926,   928,   930,   932,   934,
307         936,   938,   940,   942,   944,   946,   948,   950,   952,   954,
308         956,   958,   960,   962,   964,   966,   968,   970,   974,   978,
309         980,   982,   984,   988,   992,   999,  1007,  1012,  1017,  1027,
310        1034,  1038,  1048,  1060,  1068,  1086,  1117,  1126,  1131,  1143,
311        1156,  1168,  1179,  1186,  1216,  1237,  1257,  1287,  1307,  1338,
312        1359,  1377,  1406,  1434,  1460,  1479,  1497,  1525,  1543,  1559,
313        1578,  1594,  1605,  1612,  1618,  1629,  1635,  1649,  1654
314  };  };
315    
316  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
317  static const yysigned_char yyrhs[] =  static const short yyrhs[] =
318  {  {
319        61,     0,    -1,    62,     8,    -1,    -1,    63,    -1,    64,       227,     0,    -1,   228,   265,    -1,   228,   266,   265,    -1,
320        -1,     1,    -1,    10,    -1,    63,    10,    -1,    63,     7,        -1,   229,    -1,   230,    -1,     1,    -1,     3,    -1,   229,
321        -1,    63,     5,    -1,    63,    92,    -1,    12,     7,    26,         3,    -1,   229,   264,    -1,   229,   261,    -1,   229,   257,
322        -1,    13,     7,    67,    -1,    14,     7,    69,    -1,    15,        -1,   267,   264,   278,    -1,   268,   264,   233,    -1,   269,
323         7,    70,    -1,    16,     7,    75,    -1,    17,     7,    71,       264,   235,    -1,   270,   264,   236,    -1,   271,   264,   241,
324        -1,    19,     7,    26,     7,    86,    -1,    20,     7,    68,        -1,   272,   264,   237,    -1,   274,   264,   278,   264,   251,
325        -1,    21,     7,    65,    -1,    22,     7,    66,    -1,    23,        -1,   275,   264,   234,    -1,   276,   264,   231,    -1,   277,
326         7,    26,     7,    86,    -1,    23,    -1,    25,    -1,    30,       264,   232,    -1,   310,   264,   278,   264,   251,    -1,   310,
327        -1,    34,    -1,    33,    -1,    32,    -1,    31,    -1,    59,        -1,   313,    -1,   281,    -1,   285,    -1,   284,    -1,   283,
328        -1,    30,    -1,    34,    -1,    33,    -1,    32,    -1,    31,        -1,   282,    -1,   311,    -1,   281,    -1,   285,    -1,   284,
329        -1,    59,    -1,    28,    -1,    52,    -1,    50,     7,    31,        -1,   283,    -1,   282,    -1,   311,    -1,   279,    -1,   296,
330         7,    92,    -1,    51,     7,    31,     7,    92,     7,    92,        -1,   302,   264,   282,   264,   257,    -1,   301,   264,   282,
331        -1,    51,     7,    31,     7,    92,     7,    92,     7,    73,       264,   257,   264,   257,    -1,   301,   264,   282,   264,   257,
332        -1,    29,    -1,    42,     7,    31,     7,    92,    -1,    43,       264,   257,   264,   239,    -1,   280,    -1,   292,   264,   282,
333         7,    31,     7,    92,     7,    92,    -1,    43,     7,    31,       264,   257,    -1,   291,   264,   282,   264,   257,   264,   257,
334         7,    92,     7,    92,     7,    73,    -1,    40,    -1,    54,        -1,   291,   264,   282,   264,   257,   264,   257,   264,   239,
335        -1,    39,     7,    31,     7,     5,    -1,    53,     7,    31,        -1,   289,    -1,   299,    -1,   290,   264,   282,   264,   261,
336         7,     5,    -1,    47,     7,    31,     7,     5,     7,     5,        -1,   300,   264,   282,   264,   261,    -1,   303,   264,   282,
337        -1,    56,     7,    31,     7,     5,     7,     5,     7,    92,       264,   261,   264,   261,    -1,   298,   264,   282,   264,   261,
338        -1,    37,     7,    31,     7,     5,     7,     5,    -1,    38,       264,   261,   264,   257,    -1,   294,   264,   282,   264,   261,
339         7,    31,     7,     5,     7,     5,     7,    92,    -1,    30,       264,   261,    -1,   293,   264,   282,   264,   261,   264,   261,
340        -1,    26,     7,    31,     7,    86,    -1,    26,     7,    32,       264,   257,    -1,   281,    -1,   278,   264,   282,   264,   251,
341         7,    74,     7,    86,    -1,    26,     7,    33,     7,    86,        -1,   278,   264,   283,   264,   240,   264,   251,    -1,   278,
342        -1,    26,     7,    34,     7,    86,    -1,    36,     7,    31,       264,   284,   264,   251,    -1,   278,   264,   285,   264,   251,
343         7,    88,    -1,    41,     7,     5,     7,    92,    11,    90,        -1,   287,   264,   282,   264,   253,    -1,   288,   264,   261,
344        -1,    38,     7,     5,     7,     5,     7,    92,    11,    90,       264,   257,     4,   255,    -1,   293,   264,   261,   264,   261,
345        -1,    55,     7,     5,     7,    92,    11,    90,    -1,    56,       264,   257,     4,   255,    -1,   297,   264,   261,   264,   257,
346         7,     5,     7,     5,     7,    92,    11,    90,    -1,    26,         4,   255,    -1,   298,   264,   261,   264,   261,   264,   257,
347         7,    72,    -1,    24,     7,    91,    -1,    39,     7,    92,         4,   255,    -1,   278,   264,   238,    -1,   312,   264,   256,
348         7,    73,    -1,    39,     7,    92,    -1,    53,     7,    92,        -1,   290,   264,   257,   264,   239,    -1,   290,   264,   257,
349         7,    73,    -1,    53,     7,    92,    -1,    39,     7,     5,        -1,   300,   264,   257,   264,   239,    -1,   300,   264,   257,
350        -1,    53,     7,     5,    -1,    35,     7,    76,    -1,    36,        -1,   290,   264,   261,    -1,   300,   264,   261,    -1,   286,
351         7,    77,    -1,    39,     7,    86,     7,    78,    -1,    37,       264,   242,    -1,   287,   264,   243,    -1,   290,   264,   251,
352         7,    86,     7,    79,     7,    79,    -1,    44,     7,    86,       264,   244,    -1,   294,   264,   251,   264,   245,   264,   245,
353         7,    80,    -1,    45,     7,    86,     7,    81,     7,    82,        -1,   295,   264,   251,   264,   246,    -1,   306,   264,   251,
354         7,    83,    -1,    53,     7,    86,     7,    81,    -1,    47,       264,   244,   264,   247,   264,   248,    -1,   300,   264,   251,
355         7,    86,     7,    82,    -1,    48,     7,    86,     7,    83,       264,   244,    -1,   303,   264,   251,   264,   247,    -1,   304,
356        -1,    46,     7,    86,     7,    84,    -1,    49,     7,    86,       264,   251,   264,   248,    -1,   305,   264,   251,   264,   249,
357         7,    85,    -1,    92,    11,    90,    -1,    73,     7,    92,        -1,   307,   264,   251,   264,   250,    -1,   257,     4,   255,
358        11,    90,    -1,    57,    -1,    58,    -1,    40,    -1,    54,        -1,   239,   264,   257,     4,   255,    -1,   308,    -1,   309,
359        -1,    30,    -1,    89,     7,    87,     7,    86,    -1,    18,        -1,   289,    -1,   299,    -1,   281,    -1,   254,   264,   252,
360         7,    89,     7,    87,     7,    86,    -1,    88,     7,    86,       264,   251,    -1,   273,   264,   254,   264,   252,   264,   251,
361        -1,     5,    -1,     5,    -1,    92,    -1,     5,    -1,     5,        -1,   253,   264,   251,    -1,   261,    -1,   261,    -1,   257,
362        -1,     5,    -1,    92,    -1,     4,    -1,     5,    -1,     5,        -1,   261,    -1,   261,    -1,   257,    -1,   258,    -1,   261,
363        -1,     5,    -1,    92,    -1,     6,    -1,    92,    -1,     6,        -1,   261,    -1,   261,    -1,   257,    -1,   263,    -1,   257,
364        -1,     5,    -1,     4,    -1,     5,    -1,    92,    -1,     3,        -1,   263,    -1,   261,    -1,   258,    -1,   261,    -1,   257,
365        -1,    92,     3,    -1        -1,   262,    -1,   257,   262,    -1,   259,     5,   259,    -1,
366           6,   259,     5,   259,    -1,     7,   259,     5,   259,    -1,
367         260,    -1,   259,   260,    -1,     8,    -1,     9,    -1,    10,
368          -1,    11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,
369          -1,    16,    -1,    17,    -1,   260,    -1,     9,   259,    -1,
370          10,   259,    -1,    11,   259,    -1,    12,   259,    -1,    13,
371         259,    -1,    14,   259,    -1,    15,   259,    -1,    16,   259,
372          -1,    17,   259,    -1,    18,    -1,    19,    -1,    20,    -1,
373          21,    -1,    22,    -1,    23,    -1,    24,    -1,    25,    -1,
374          26,    -1,    27,    -1,    28,    -1,    29,    -1,    30,    -1,
375          31,    -1,    32,    -1,    33,    -1,    34,    -1,    35,    -1,
376          36,    -1,    37,    -1,    38,    -1,    39,    -1,    40,    -1,
377          41,    -1,    42,    -1,    43,    -1,    44,    -1,    45,    -1,
378          46,    -1,    47,    -1,    48,    -1,    49,    -1,    50,    -1,
379          51,    -1,    52,    -1,    53,    -1,    54,    -1,    55,    -1,
380          56,    -1,    57,    -1,    58,    -1,    59,    -1,    60,    -1,
381          61,    -1,    62,    -1,    63,    -1,    64,    -1,    65,    -1,
382          66,    -1,    67,    -1,    68,    -1,    69,    -1,     8,    -1,
383           9,    -1,    10,    -1,    11,    -1,    12,    -1,    13,    -1,
384          14,    -1,    15,    -1,    16,    -1,    17,    -1,    70,    -1,
385           3,    -1,    71,    -1,    72,    -1,    73,    -1,    74,    -1,
386          75,    -1,    76,    -1,     6,    -1,     7,    -1,     5,    -1,
387          77,    -1,    78,    -1,    79,    -1,    80,    -1,     4,    -1,
388          81,    -1,    82,    -1,    83,    -1,    84,    -1,    85,    -1,
389          86,    -1,    87,    -1,    88,    -1,    89,    -1,    90,    -1,
390          91,    -1,    92,    -1,    93,    -1,    94,    -1,    95,    -1,
391          96,    -1,    97,    -1,    98,    -1,    99,    -1,   100,    -1,
392         101,    -1,   102,    -1,   103,    -1,   104,    -1,   105,    -1,
393         106,    -1,   107,    -1,   108,    -1,   109,    -1,   110,    -1,
394         111,    -1,   112,    -1,   113,    -1,   114,    -1,   115,    -1,
395         116,    -1,   117,    -1,   118,    -1,   119,    -1,   120,    -1,
396         121,    -1,   122,    -1,   123,    -1,   124,    -1,   125,    -1,
397         126,    -1,   127,    -1,   128,    -1,   129,    -1,   130,    -1,
398         131,    -1,   132,    -1,   133,    -1,   134,    -1,   135,    -1,
399         136,    -1,   137,    -1,   138,    -1,   139,    -1,   140,    -1,
400         141,    -1,   142,    -1,   143,    -1,   144,    -1,   145,    -1,
401         146,    -1,   147,    -1,   148,    -1,   149,    -1,   150,    -1,
402         151,    -1,   152,    -1,   153,    -1,   154,    -1,   155,    -1,
403         156,    -1,   157,    -1,   158,    -1,   159,    -1,   160,    -1,
404         161,    -1,   162,    -1,   163,    -1,   164,    -1,   165,    -1,
405         166,    -1,   167,    -1,   168,    -1,   169,    -1,   170,    -1,
406         171,    -1,   172,    -1,   173,    -1,   174,    -1,   175,    -1,
407         176,    -1,   177,    -1,   178,    -1,   179,    -1,   180,    -1,
408         181,    -1,   182,    -1,   183,    -1,   184,    -1,   185,    -1,
409         186,    -1,   187,    -1,   188,    -1,   189,    -1,   190,    -1,
410         191,    -1,   192,    -1,   193,    -1,   194,    -1,   195,    -1,
411         196,    -1,   197,    -1,   198,    -1,   199,    -1,   200,    -1,
412         201,    -1,   202,    -1,   203,    -1,   204,    -1,   205,    -1,
413         206,    -1,   207,    -1,   208,    -1,   209,    -1,   210,    -1,
414         211,    -1,   212,    -1,   213,    -1,   214,    -1,   215,    -1,
415         216,    -1,   217,    -1,   218,    -1,   219,    -1,   220,    -1,
416         221,   257,   221,    -1,   222,   257,   222,    -1,   223,    -1,
417         224,    -1,   225,    -1,    18,    21,    21,    -1,    24,    22,
418          37,    -1,    20,    35,    22,    18,    37,    22,    -1,    21,
419          22,    36,    37,    35,    32,    42,    -1,    29,    26,    36,
420          37,    -1,    29,    32,    18,    21,    -1,    31,    32,    31,
421          88,    30,    32,    21,    18,    29,    -1,    35,    22,    30,
422          32,    39,    22,    -1,    36,    22,    37,    -1,    36,    38,
423          19,    36,    20,    35,    26,    19,    22,    -1,    38,    31,
424          36,    38,    19,    36,    20,    35,    26,    19,    22,    -1,
425          20,    25,    18,    31,    31,    22,    29,    -1,    18,    39,
426          18,    26,    29,    18,    19,    29,    22,    88,    22,    31,
427          24,    26,    31,    22,    36,    -1,    18,    39,    18,    26,
428          29,    18,    19,    29,    22,    88,    18,    38,    21,    26,
429          32,    88,    32,    38,    37,    33,    38,    37,    88,    21,
430          35,    26,    39,    22,    35,    36,    -1,    20,    25,    18,
431          31,    31,    22,    29,    36,    -1,    26,    31,    23,    32,
432          -1,    19,    38,    23,    23,    22,    35,    88,    23,    26,
433          29,    29,    -1,    36,    37,    35,    22,    18,    30,    88,
434          20,    32,    38,    31,    37,    -1,    39,    32,    26,    20,
435          22,    88,    20,    32,    38,    31,    37,    -1,    26,    31,
436          36,    37,    35,    38,    30,    22,    31,    37,    -1,    22,
437          31,    24,    26,    31,    22,    -1,    18,    38,    21,    26,
438          32,    88,    32,    38,    37,    33,    38,    37,    88,    21,
439          22,    39,    26,    20,    22,    88,    33,    18,    35,    18,
440          30,    22,    37,    22,    35,    -1,    18,    38,    21,    26,
441          32,    88,    32,    38,    37,    33,    38,    37,    88,    21,
442          22,    39,    26,    20,    22,    36,    -1,    18,    38,    21,
443          26,    32,    88,    32,    38,    37,    33,    38,    37,    88,
444          21,    22,    39,    26,    20,    22,    -1,    18,    38,    21,
445          26,    32,    88,    32,    38,    37,    33,    38,    37,    88,
446          21,    35,    26,    39,    22,    35,    88,    33,    18,    35,
447          18,    30,    22,    37,    22,    35,    -1,    18,    38,    21,
448          26,    32,    88,    32,    38,    37,    33,    38,    37,    88,
449          21,    35,    26,    39,    22,    35,    -1,    18,    38,    21,
450          26,    32,    88,    32,    38,    37,    33,    38,    37,    88,
451          20,    25,    18,    31,    31,    22,    29,    88,    33,    18,
452          35,    18,    30,    22,    37,    22,    35,    -1,    18,    38,
453          21,    26,    32,    88,    32,    38,    37,    33,    38,    37,
454          88,    20,    25,    18,    31,    31,    22,    29,    -1,    18,
455          38,    21,    26,    32,    88,    32,    38,    37,    33,    38,
456          37,    88,    37,    42,    33,    22,    -1,    18,    39,    18,
457          26,    29,    18,    19,    29,    22,    88,    30,    26,    21,
458          26,    88,    26,    31,    33,    38,    37,    88,    21,    35,
459          26,    39,    22,    35,    36,    -1,    30,    26,    21,    26,
460          88,    26,    31,    33,    38,    37,    88,    21,    22,    39,
461          26,    20,    22,    88,    33,    18,    35,    18,    30,    22,
462          37,    22,    35,    -1,    30,    26,    21,    26,    88,    26,
463          31,    33,    38,    37,    88,    33,    32,    35,    37,    88,
464          33,    18,    35,    18,    30,    22,    37,    22,    35,    -1,
465          30,    26,    21,    26,    88,    26,    31,    33,    38,    37,
466          88,    21,    22,    39,    26,    20,    22,    36,    -1,    30,
467          26,    21,    26,    88,    26,    31,    33,    38,    37,    88,
468          21,    22,    39,    26,    20,    22,    -1,    30,    26,    21,
469          26,    88,    26,    31,    33,    38,    37,    88,    21,    35,
470          26,    39,    22,    35,    88,    33,    18,    35,    18,    30,
471          22,    37,    22,    35,    -1,    30,    26,    21,    26,    88,
472          26,    31,    33,    38,    37,    88,    21,    35,    26,    39,
473          22,    35,    -1,    30,    26,    21,    26,    88,    26,    31,
474          33,    38,    37,    88,    33,    32,    35,    37,    -1,    30,
475          26,    21,    26,    88,    26,    31,    33,    38,    37,    88,
476          20,    25,    18,    31,    31,    22,    29,    -1,    30,    26,
477          21,    26,    88,    26,    31,    33,    38,    37,    88,    37,
478          42,    33,    22,    -1,    30,    26,    21,    26,    88,    26,
479          31,    33,    38,    37,    -1,    39,    32,    29,    38,    30,
480          22,    -1,    19,    42,    37,    22,    36,    -1,    33,    22,
481          35,    20,    22,    31,    37,    18,    24,    22,    -1,    35,
482          22,    36,    22,    37,    -1,    30,    26,    36,    20,    22,
483          29,    29,    18,    31,    22,    32,    38,    36,    -1,    22,
484          20,    25,    32,    -1,    34,    38,    26,    37,    -1
485  };  };
486    
487  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
488  static const unsigned char yyrline[] =  static const unsigned short yyrline[] =
489  {  {
490         0,    82,    82,    84,    85,    86,    87,    90,    91,    92,         0,    81,    81,    82,    85,    86,    87,    88,    91,    92,
491        93,    94,    97,    98,    99,   100,   101,   102,   103,   104,        93,    94,    95,    98,    99,   100,   101,   102,   103,   104,
492       105,   106,   107,   108,   109,   112,   113,   114,   115,   116,       105,   106,   107,   108,   109,   110,   113,   114,   115,   116,
493       117,   120,   121,   122,   123,   124,   125,   128,   129,   130,       117,   118,   121,   122,   123,   124,   125,   126,   129,   130,
494       131,   132,   133,   134,   135,   136,   137,   138,   139,   140,       131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
495       141,   142,   143,   144,   145,   146,   147,   148,   149,   150,       141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
496       153,   154,   155,   156,   157,   158,   161,   162,   163,   164,       151,   154,   155,   156,   157,   158,   159,   162,   163,   164,
497       167,   168,   171,   172,   175,   176,   177,   178,   179,   180,       165,   168,   169,   172,   173,   176,   177,   178,   179,   180,
498       181,   182,   183,   186,   187,   190,   191,   194,   195,   196,       181,   182,   183,   184,   187,   188,   191,   192,   195,   196,
499       199,   200,   203,   206,   209,   212,   215,   218,   221,   224,       197,   200,   201,   204,   207,   210,   213,   216,   219,   222,
500       227,   228,   231,   234,   237,   240,   243,   244,   245,   246,       225,   226,   229,   232,   235,   238,   241,   242,   243,   244,
501       249,   250,   253,   254       250,   251,   254,   255,   258,   259,   260,   264,   265,   268,
502         269,   270,   271,   272,   273,   274,   275,   276,   277,   280,
503         281,   282,   283,   284,   285,   286,   287,   288,   289,   291,
504         291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
505         291,   291,   291,   291,   291,   291,   291,   291,   291,   291,
506         291,   291,   291,   291,   291,   292,   292,   292,   292,   292,
507         292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
508         292,   292,   292,   292,   292,   292,   292,   292,   292,   292,
509         292,   293,   293,   293,   293,   293,   293,   293,   293,   293,
510         293,   294,   294,   294,   294,   294,   294,   294,   294,   294,
511         294,   294,   294,   295,   295,   295,   295,   295,   295,   295,
512         296,   296,   296,   296,   296,   297,   297,   297,   297,   298,
513         298,   298,   299,   299,   299,   300,   300,   300,   301,   301,
514         301,   302,   302,   302,   303,   303,   303,   304,   304,   304,
515         305,   305,   305,   306,   306,   306,   307,   307,   307,   308,
516         308,   308,   309,   309,   309,   310,   310,   310,   311,   311,
517         311,   312,   312,   312,   313,   313,   313,   314,   314,   314,
518         315,   315,   315,   316,   316,   316,   317,   317,   317,   318,
519         318,   318,   319,   319,   319,   320,   320,   320,   321,   321,
520         321,   322,   322,   322,   323,   323,   323,   324,   324,   324,
521         325,   325,   325,   326,   326,   326,   327,   327,   327,   328,
522         328,   328,   329,   329,   329,   330,   330,   330,   331,   331,
523         331,   332,   332,   332,   333,   333,   333,   334,   334,   334,
524         335,   335,   335,   336,   336,   336,   337,   337,   337,   338,
525         338,   338,   339,   339,   339,   340,   340,   343,   344,   350,
526         353,   356,   359,   362,   365,   368,   371,   374,   377,   380,
527         383,   386,   389,   392,   395,   398,   401,   404,   407,   410,
528         413,   416,   419,   422,   425,   428,   431,   434,   437,   440,
529         443,   446,   449,   452,   455,   458,   461,   464,   467,   470,
530         473,   476,   479,   482,   485,   488,   491,   494,   497
531  };  };
532  #endif  #endif
533    
# Line 476  static const unsigned char yyrline[] = Line 536  static const unsigned char yyrline[] =
536     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
537  static const char *const yytname[] =  static const char *const yytname[] =
538  {  {
539    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "STRINGVAL",    "$end", "error", "$undefined", "'#'", "'='", "'.'", "'+'", "'-'", "'0'",
540    "SP", "LF", "CR", "HASH", "EQ", "ADD", "GET", "CREATE", "DESTROY",    "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "'A'",
541    "LIST", "LOAD", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE",    "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'", "'J'", "'K'",
542    "UNSUBSCRIBE", "RESET", "ECHO", "QUIT", "CHANNEL", "NOTIFICATION",    "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'",
543    "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",    "'V'", "'W'", "'X'", "'Y'", "'Z'", "'a'", "'b'", "'c'", "'d'", "'e'",
544    "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT",    "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
545    "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_CHANNEL_PARAMETER",    "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
546    "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DEVICES",    "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "'/'", "':'",
547    "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DRIVER",    "';'", "'<'", "'>'", "'?'", "'@'", "'['", "'\\\\'", "']'", "'^'", "'_'",
548    "AUDIO_OUTPUT_DRIVER_PARAMETER", "AUDIO_OUTPUT_TYPE", "MIDI_INPUT",    "'{'", "'|'", "'}'", "'~'", "'\\200'", "'\\201'", "'\\202'", "'\\203'",
549    "MIDI_INPUT_TYPE", "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "VOLUME",    "'\\204'", "'\\205'", "'\\206'", "'\\207'", "'\\210'", "'\\211'",
550    "MIDI_INPUT_DRIVER", "MIDI_INPUT_DRIVER_PARAMETER",    "'\\212'", "'\\213'", "'\\214'", "'\\215'", "'\\216'", "'\\217'",
551    "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE",    "'\\220'", "'\\221'", "'\\222'", "'\\223'", "'\\224'", "'\\225'",
552    "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE_PARAMETER",    "'\\226'", "'\\227'", "'\\230'", "'\\231'", "'\\232'", "'\\233'",
553    "MIDI_INPUT_PORT_PARAMETER", "BYTES", "PERCENTAGE", "MISCELLANEOUS",    "'\\234'", "'\\235'", "'\\236'", "'\\237'", "' '", "'¡'", "'¢'", "'£'",
554    "$accept", "input", "line", "comment", "command", "subscribe_event",    "'¤'", "'¥'", "'¦'", "'§'", "'¨'", "'©'", "'ª'", "'«'", "'¬'", "'­'",
555      "'®'", "'¯'", "'°'", "'±'", "'²'", "'³'", "'´'", "'µ'", "'¶'", "'·'",
556      "'¸'", "'¹'", "'º'", "'»'", "'¼'", "'½'", "'¾'", "'¿'", "'À'", "'Á'",
557      "'Â'", "'Ã'", "'Ä'", "'Å'", "'Æ'", "'Ç'", "'È'", "'É'", "'Ê'", "'Ë'",
558      "'Ì'", "'Í'", "'Î'", "'Ï'", "'Ð'", "'Ñ'", "'Ò'", "'Ó'", "'Ô'", "'Õ'",
559      "'Ö'", "'×'", "'Ø'", "'Ù'", "'Ú'", "'Û'", "'Ü'", "'Ý'", "'Þ'", "'ß'",
560      "'à'", "'á'", "'â'", "'ã'", "'ä'", "'å'", "'æ'", "'ç'", "'è'", "'é'",
561      "'ê'", "'ë'", "'ì'", "'í'", "'î'", "'ï'", "'ð'", "'ñ'", "'ò'", "'ó'",
562      "'ô'", "'õ'", "'ö'", "'÷'", "'ø'", "'ù'", "'ú'", "'û'", "'ü'", "'ý'",
563      "'þ'", "'ÿ'", "'''", "'\"'", "' '", "'\\n'", "'\\r'", "$accept",
564      "input", "line", "comment", "command", "subscribe_event",
565    "unsubscribe_event", "get_instruction", "set_instruction",    "unsubscribe_event", "get_instruction", "set_instruction",
566    "create_instruction", "destroy_instruction", "load_instruction",    "create_instruction", "destroy_instruction", "load_instruction",
567    "set_chan_instruction", "key_val_list", "buffer_size_type",    "set_chan_instruction", "key_val_list", "buffer_size_type",
568    "list_instruction", "load_instr_args", "load_engine_args",    "list_instruction", "load_instr_args", "load_engine_args",
569    "audio_output_device", "audio_output_channel", "audio_output_type",    "device_index", "audio_channel_index", "audio_output_type_name",
570    "midi_input_device", "midi_input_port", "midi_input_channel",    "midi_input_port_index", "midi_input_channel_index",
571    "midi_input_type", "volume", "sampler_channel", "instrument_index",    "midi_input_type_name", "volume_value", "sampler_channel",
572    "engine_name", "filename", "param_val", "boolean", "string", 0    "instrument_index", "engine_name", "filename", "param_val", "boolean",
573      "string", "dotnum", "digits", "digit", "number", "char", "stringval",
574      "SP", "LF", "CR", "ADD", "GET", "CREATE", "DESTROY", "LIST", "LOAD",
575      "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE", "CHANNEL",
576      "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",
577      "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT",
578      "ENGINE", "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
579      "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
580      "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
581      "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",
582      "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE_PARAMETER",
583      "MIDI_INPUT_PORT_PARAMETER", "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE",
584      "MIDI_INPUT_DRIVER_PARAMETER", "MIDI_INPUT_DRIVER", "MIDI_INPUT_PORT",
585      "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT", "VOLUME",
586      "BYTES", "PERCENTAGE", "RESET", "MISCELLANEOUS", "ECHO", "QUIT", 0
587  };  };
588  #endif  #endif
589    
# Line 508  static const char *const yytname[] = Line 592  static const char *const yytname[] =
592     token YYLEX-NUM.  */     token YYLEX-NUM.  */
593  static const unsigned short yytoknum[] =  static const unsigned short yytoknum[] =
594  {  {
595         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,         0,   256,   257,    35,    61,    46,    43,    45,    48,    49,
596       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,        50,    51,    52,    53,    54,    55,    56,    57,    65,    66,
597       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
598       285,   286,   287,   288,   289,   290,   291,   292,   293,   294,        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
599       295,   296,   297,   298,   299,   300,   301,   302,   303,   304,        87,    88,    89,    90,    97,    98,    99,   100,   101,   102,
600       305,   306,   307,   308,   309,   310,   311,   312,   313,   314       103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
601         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
602          33,    36,    37,    38,    40,    41,    42,    47,    58,    59,
603          60,    62,    63,    64,    91,    92,    93,    94,    95,   123,
604         124,   125,   126,   128,   129,   130,   131,   132,   133,   134,
605         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
606         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
607         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
608         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
609         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
610         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
611         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
612         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
613         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
614         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
615         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
616         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
617         255,    39,    34,    32,    10,    13
618  };  };
619  # endif  # endif
620    
621  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
622  static const unsigned char yyr1[] =  static const unsigned short yyr1[] =
623  {  {
624         0,    60,    61,    62,    62,    62,    62,    63,    63,    63,         0,   226,   227,   227,   228,   228,   228,   228,   229,   229,
625        63,    63,    64,    64,    64,    64,    64,    64,    64,    64,       229,   229,   229,   230,   230,   230,   230,   230,   230,   230,
626        64,    64,    64,    64,    64,    65,    65,    65,    65,    65,       230,   230,   230,   230,   230,   230,   231,   231,   231,   231,
627        65,    66,    66,    66,    66,    66,    66,    67,    67,    67,       231,   231,   232,   232,   232,   232,   232,   232,   233,   233,
628        67,    67,    67,    67,    67,    67,    67,    67,    67,    67,       233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
629        67,    67,    67,    67,    67,    67,    67,    67,    67,    67,       233,   233,   233,   233,   233,   233,   233,   233,   233,   233,
630        68,    68,    68,    68,    68,    68,    69,    69,    69,    69,       233,   234,   234,   234,   234,   234,   234,   235,   235,   235,
631        70,    70,    71,    71,    72,    72,    72,    72,    72,    72,       235,   236,   236,   237,   237,   238,   238,   238,   238,   238,
632        72,    72,    72,    73,    73,    74,    74,    75,    75,    75,       238,   238,   238,   238,   239,   239,   240,   240,   241,   241,
633        76,    76,    77,    78,    79,    80,    81,    82,    83,    84,       241,   242,   242,   243,   244,   245,   246,   247,   248,   249,
634        85,    85,    86,    87,    88,    89,    90,    90,    90,    90,       250,   250,   251,   252,   253,   254,   255,   255,   255,   255,
635        91,    91,    92,    92       256,   256,   257,   257,   258,   258,   258,   259,   259,   260,
636         260,   260,   260,   260,   260,   260,   260,   260,   260,   261,
637         261,   261,   261,   261,   261,   261,   261,   261,   261,   262,
638         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
639         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
640         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
641         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
642         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
643         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
644         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
645         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
646         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
647         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
648         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
649         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
650         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
651         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
652         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
653         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
654         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
655         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
656         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
657         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
658         262,   262,   262,   262,   262,   262,   262,   262,   262,   262,
659         262,   262,   262,   262,   262,   262,   262,   263,   263,   264,
660         265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
661         275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
662         285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
663         295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
664         305,   306,   307,   308,   309,   310,   311,   312,   313
665  };  };
666    
667  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
668  static const unsigned char yyr2[] =  static const unsigned char yyr2[] =
669  {  {
670         0,     2,     2,     0,     1,     1,     1,     1,     2,     2,         0,     2,     2,     3,     0,     1,     1,     1,     1,     2,
671         2,     2,     3,     3,     3,     3,     3,     3,     5,     3,         2,     2,     2,     3,     3,     3,     3,     3,     3,     5,
672         3,     3,     5,     1,     1,     1,     1,     1,     1,     1,         3,     3,     3,     5,     1,     1,     1,     1,     1,     1,
673         1,     1,     1,     1,     1,     1,     1,     1,     1,     5,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
674         7,     9,     1,     5,     7,     9,     1,     1,     5,     5,         5,     7,     9,     1,     5,     7,     9,     1,     1,     5,
675         7,     9,     7,     9,     1,     5,     7,     5,     5,     5,         5,     7,     9,     7,     9,     1,     5,     7,     5,     5,
676         7,     9,     7,     9,     3,     3,     5,     3,     5,     3,         5,     7,     9,     7,     9,     3,     3,     5,     3,     5,
677         3,     3,     3,     3,     5,     7,     5,     9,     5,     5,         3,     3,     3,     3,     3,     5,     7,     5,     9,     5,
678         5,     5,     5,     3,     5,     1,     1,     1,     1,     1,         5,     5,     5,     5,     3,     5,     1,     1,     1,     1,
679         5,     7,     3,     1,     1,     1,     1,     1,     1,     1,         1,     5,     7,     3,     1,     1,     1,     1,     1,     1,
680           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
681           1,     1,     1,     2,     3,     4,     4,     1,     2,     1,
682           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
683           2,     2,     2,     2,     2,     2,     2,     2,     2,     1,
684           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
685           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
686           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
687           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
688           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
689           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
690           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
691           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
692           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
693           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
694           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
695           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
696           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
697         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
698         1,     1,     1,     2         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
699           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
700           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
701           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
702           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
703           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
704           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
705           1,     1,     1,     1,     1,     1,     1,     3,     3,     1,
706           1,     1,     3,     3,     6,     7,     4,     4,     9,     6,
707           3,     9,    11,     7,    17,    30,     8,     4,    11,    12,
708          11,    10,     6,    29,    20,    19,    29,    19,    30,    20,
709          17,    28,    27,    25,    18,    17,    27,    17,    15,    18,
710          15,    10,     6,     5,    10,     5,    13,     4,     4
711  };  };
712    
713  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
714     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
715     means the default is an error.  */     means the default is an error.  */
716  static const unsigned char yydefact[] =  static const unsigned short yydefact[] =
717  {  {
718         0,     6,     7,     0,     0,     0,     0,     0,     0,     0,         0,     7,     8,     0,     0,     0,     0,     0,     0,     0,
719         0,     0,     0,    23,    24,     0,     0,     4,     5,     0,         0,     0,     0,     0,     5,     6,     0,     0,     0,     0,
720           0,     0,     0,     0,     0,     0,    24,    25,     0,     0,
721           0,     0,     0,     0,     0,     0,     0,     0,     0,     1,
722         360,   361,     2,     0,     9,   216,   211,   209,   210,   119,
723         120,   121,   122,   123,   124,   125,   126,   127,   128,   139,
724         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
725         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
726         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
727         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
728         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
729         190,   201,   203,   204,   205,   206,   207,   208,   212,   213,
730         214,   215,   217,   218,   219,   220,   221,   222,   223,   224,
731         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
732         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
733         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
734         255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
735         265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
736         275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
737         285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
738         295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
739         305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
740         315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
741         325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
742         335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
743         345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
744         355,   356,   359,    12,   129,    11,   112,    10,     0,     0,
745           0,     0,     0,     0,     0,     0,     0,     0,     0,   362,
746           0,     0,   363,     0,     0,     0,     0,     0,   370,     0,
747           0,     3,   119,   120,   121,   122,   123,   124,   125,   126,
748         127,   128,   130,   117,   131,   132,   133,   134,   135,   136,
749         137,   138,   202,   191,   192,   193,   194,   195,   196,   197,
750         198,   199,   200,   113,     0,    13,     0,     0,     0,     0,
751          14,     0,    38,    43,    55,     0,    47,     0,     0,     0,
752           0,     0,    39,     0,    48,     0,     0,     0,     0,     0,
753           0,    15,     0,     0,    16,     0,     0,     0,     0,     0,
754          17,    90,    88,    89,     0,    18,     0,     0,     0,     0,
755           0,     0,    20,     0,     0,     0,     0,     0,     0,     0,
756           0,     0,     0,     0,    21,    26,    30,    29,    28,    27,
757          31,    22,    32,    36,    35,    34,    33,    37,     0,     0,
758           0,   366,   367,   408,     0,     0,     0,     0,   118,     0,
759           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
760           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
761           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
762           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
763           0,     0,     0,     0,     0,     0,     0,     0,   405,     0,
764           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
765           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
766           0,     0,     0,     0,    68,    70,   120,   121,   122,   123,
767         124,   125,   126,   127,   128,    71,    72,     0,     0,     0,
768           0,     0,     0,     0,    73,     0,   105,     0,    74,     0,
769         104,    19,   102,     0,     0,     0,     0,     0,     0,    65,
770           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
771           0,     0,     0,    66,   111,   110,     0,     0,     0,     0,
772           0,    23,   364,     0,   369,     0,     0,     0,     0,     0,
773           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
774           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
775           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
776           0,     0,     0,   407,     0,     0,     0,     0,     0,     0,
777         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
778         1,     2,   112,    10,     9,     8,    11,    12,     0,    37,         0,     0,   377,     0,     0,     0,   365,     0,     0,     0,
779        42,    54,     0,     0,     0,     0,    46,     0,     0,     0,         0,     0,     0,     0,     0,    56,     0,     0,     0,    86,
780         0,     0,    38,     0,    47,     0,    13,     0,     0,    14,        87,    58,    59,    60,    49,     0,    44,     0,     0,     0,
781         0,     0,    15,    89,    87,    88,    16,     0,     0,    17,        50,     0,    40,     0,     0,     0,    67,     0,    69,     0,
782         0,     0,     0,     0,     0,     0,     0,    19,    25,    29,         0,     0,     0,     0,   357,   358,     0,   103,     0,    93,
       28,    27,    26,    30,    20,    31,    35,    34,    33,    32,  
       36,    21,     0,   113,     0,     0,     0,     0,     0,     0,  
783         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
784         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
785           0,     0,     0,     0,     0,     0,     0,     0,   382,     0,
786         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,    67,    69,    70,    71,   105,  
        0,    72,     0,    73,     0,   104,   102,    18,   110,    65,  
      111,     0,     0,     0,     0,     0,     0,     0,     0,     0,  
       64,     0,     0,     0,     0,    22,     0,     0,     0,     0,  
787         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
788         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,    55,  
       85,    86,     0,    57,    58,    59,     0,     0,    48,    43,  
        0,     0,    39,     0,    49,     0,    66,     0,    68,     0,  
      103,     0,    92,     0,     0,     0,     0,     0,     0,     0,  
789         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
790           0,     0,   371,     0,   373,     0,     0,   373,     0,     0,
791           0,    57,    45,     0,    53,     0,    41,    51,     0,     0,
792           0,   209,   210,    84,   106,   109,     0,   117,   108,   107,
793           0,     0,     0,     0,     0,    91,     0,     0,     0,     0,
794           0,     0,    75,    94,     0,    95,    77,    96,    79,    80,
795          97,    81,    98,    82,    99,     0,     0,     0,    83,   100,
796         101,    61,     0,    63,     0,     0,     0,     0,     0,     0,
797           0,     0,   376,     0,     0,     0,     0,     0,     0,     0,
798         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
799           0,     0,     0,     0,     0,   402,     0,     0,     0,     0,
800           0,     0,     0,     0,   372,     0,     0,     0,   403,     0,
801          46,    54,    52,    42,     0,     0,    85,     0,     0,   114,
802           0,     0,     0,     0,    92,     0,     0,     0,     0,    76,
803           0,    62,    64,     0,     0,     0,     0,     0,     0,     0,
804           0,     0,     0,   115,   116,     0,     0,   381,     0,     0,
805         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
806        56,    52,     0,    44,    50,    40,     0,     0,   109,   108,         0,     0,     0,     0,     0,     0,     0,     0,   368,     0,
807       107,    83,   106,     0,    90,    94,     0,    93,    74,    76,         0,     0,     0,    78,   378,     0,     0,   380,     0,     0,
808        95,    96,     0,    81,    99,    97,    79,    98,    80,   100,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
809       101,    82,    78,     0,    60,    62,     0,     0,     0,     0,         0,     0,     0,   401,     0,   379,     0,     0,     0,     0,
810         0,     0,     0,     0,     0,     0,     0,    53,    45,    41,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
811        51,    84,    91,    75,     0,    61,    63,     0,    77         0,     0,     0,   406,     0,     0,     0,     0,     0,     0,
812           0,     0,   404,     0,     0,     0,     0,     0,     0,     0,
813           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
814           0,     0,     0,   398,     0,     0,     0,     0,     0,     0,
815           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
816           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
817           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
818           0,   374,     0,   395,   397,     0,     0,   395,     0,     0,
819           0,     0,     0,     0,     0,     0,   398,   400,     0,     0,
820           0,     0,     0,   394,     0,     0,     0,     0,     0,     0,
821           0,     0,     0,     0,     0,   385,   387,     0,     0,     0,
822           0,   385,     0,     0,     0,     0,     0,   390,     0,   389,
823         384,     0,     0,     0,     0,     0,     0,     0,     0,     0,
824         399,     0,     0,     0,     0,     0,     0,     0,     0,     0,
825           0,     0,     0,     0,     0,     0,     0,     0,   389,     0,
826           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
827           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
828         393,     0,     0,     0,     0,     0,     0,     0,     0,     0,
829           0,     0,     0,     0,   396,     0,   392,     0,     0,     0,
830         391,     0,     0,   386,     0,   383,   388,   375
831  };  };
832    
833  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
834  static const short yydefgoto[] =  static const short yydefgoto[] =
835  {  {
836        -1,    15,    16,    17,    18,    84,    91,    56,    77,    59,        -1,    12,    13,    14,    15,   384,   391,   330,   372,   351,
837        62,    69,   160,   216,   202,    66,   141,   143,   278,   276,       354,   365,   519,   636,   618,   360,   504,   508,   762,   764,
838       279,   282,   286,   288,   283,   291,   147,   221,   144,   142,       766,   769,   771,   773,   778,   511,   646,   509,   505,   743,
839       271,   149,   272       533,   744,   745,   746,   264,   512,   266,   749,   691,    42,
840          43,    16,    17,    18,    19,    20,    21,   507,    22,    23,
841          24,    25,   325,   332,   333,   334,   386,   387,   388,   389,
842         366,   335,   374,   336,   337,   338,   339,   340,   341,   522,
843         342,   376,   343,   344,   345,   346,   347,   348,   525,   526,
844         527,   528,   619,   620,    26,   390,   378,    27
845  };  };
846    
847  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
848     STATE-NUM.  */     STATE-NUM.  */
849  #define YYPACT_NINF -253  #define YYPACT_NINF -694
850  static const short yypact[] =  static const short yypact[] =
851  {  {
852        85,  -253,  -253,    23,    33,    81,   133,   134,   145,   147,        31,  -694,  -694,     8,    26,    50,    57,    -4,    44,    73,
853       148,   149,   152,   155,  -253,     9,    84,   124,  -253,    57,        40,    71,   100,   -25,  1114,  -694,   -96,   -96,   -96,   -96,
854       -15,   -27,   -10,   -23,    45,    89,   -22,    25,    32,   125,       -96,   -96,   -96,   -96,   -96,   -96,   -96,  -694,   125,   165,
855      -253,  -253,  -253,  -253,  -253,  -253,   160,  -253,   159,  -253,       149,   156,   159,   179,   177,    69,   196,   224,   208,  -694,
856      -253,  -253,   161,   162,   163,   164,  -253,   165,   166,   167,      -694,  -694,  -694,    21,  -694,  -694,  -694,  -694,  -694,  -694,
857       168,   169,  -253,   170,  -253,   171,  -253,   174,   175,  -253,       211,   211,   211,   211,   211,   211,   211,   211,   211,  -694,
858       176,   178,  -253,  -253,  -253,  -253,  -253,   179,   180,  -253,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
859       181,   182,   183,   184,   185,   186,   187,  -253,  -253,  -253,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
860      -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
861      -253,  -253,   188,  -253,   112,   136,   172,   173,   177,   189,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
862       190,   192,   194,   196,   197,   198,   193,   193,   195,   200,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
863         2,   193,   201,    42,    77,   202,   204,   205,   206,   201,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
864       191,   207,   208,   209,   210,   211,   212,   223,   224,   226,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
865       228,   229,   230,   231,   233,    39,    75,  -253,  -253,  -253,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
866       234,  -253,   236,  -253,   237,   160,  -253,  -253,  -253,  -253,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
867       160,   238,   239,   240,   241,   242,   243,   244,   245,   246,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
868      -253,   247,   248,   249,   250,  -253,   201,     3,   201,   201,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
869       193,   253,   254,   255,   193,   193,   256,   193,   193,   257,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
870       258,   193,   193,   259,   261,   201,   201,   201,   201,   201,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
871       201,   201,   201,   201,   201,   262,   193,   193,   263,  -253,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
872      -253,  -253,   264,  -253,  -253,  -253,   265,   266,  -253,   160,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
873       129,   267,   160,   130,  -253,   268,   269,     7,   269,   270,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
874      -253,   271,  -253,   272,   277,   278,   279,   280,   281,   282,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
875       283,   284,   285,    41,    74,   286,   201,   289,   290,   193,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
876       291,   193,   292,   193,   144,   261,   201,   293,   294,   193,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
877       295,   193,   296,   297,   108,   295,   193,   144,   144,   193,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
878      -253,  -253,   298,   132,  -253,   135,   299,    76,  -253,  -253,      -694,  -694,  -694,  2215,  -694,  -694,  -694,  -694,   227,   168,
879      -253,  -253,   160,   300,  -253,  -253,   301,  -253,  -253,  -253,        90,    90,   103,    49,   227,   174,    38,    38,   227,  -694,
880       160,  -253,   302,  -253,   160,  -253,  -253,  -253,  -253,  -253,       230,   212,  -694,   213,   231,   214,   221,   232,  -694,   233,
881      -253,  -253,  -253,   100,  -253,  -253,   106,   193,   193,   193,       229,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
882       193,   144,   201,   293,   296,   144,   144,   160,   269,   269,      -694,  -694,   211,  -694,   211,   211,   211,   211,   211,   211,
883       160,  -253,  -253,  -253,   303,  -253,  -253,   297,  -253       211,   211,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
884        -694,  -694,  -694,  -694,   243,  -694,   163,   245,   240,   246,
885        -694,   -96,  -694,  -694,  -694,   -96,  -694,   -96,   -96,   -96,
886         -96,   -96,  -694,   -96,  -694,   -96,   -96,   -96,   -96,   235,
887         248,  -694,   -96,   -96,  -694,   -96,   -96,   237,   251,   252,
888        -694,  -694,  -694,  -694,   250,  -694,   -96,   -96,   -96,   239,
889         259,   254,  -694,   -96,   -96,   -96,   -96,   -96,   -96,   244,
890         253,   257,   256,   255,  -694,  -694,  -694,  -694,  -694,  -694,
891        -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,   -96,   265,
892         268,  -694,  -694,  -694,   247,   267,   269,   266,  -694,   270,
893         284,   272,   288,   283,   287,    37,   285,   285,   285,   285,
894         285,   285,   285,   285,   285,   285,   285,   289,   291,  2215,
895        2215,   249,   249,   292,   296,   294,   280,   -16,  2215,   249,
896         298,   295,   300,    20,   249,   249,   249,   249,  2433,   286,
897         306,   281,   301,   297,   249,   315,   309,   316,  -694,   310,
898         308,   260,   320,   321,   318,   322,   324,   -96,   -96,   -96,
899         -96,   -96,   -96,   -96,   -96,   -96,   -96,   -96,   -96,   -96,
900         -96,   -96,   325,   326,  1335,  1335,   211,   211,   211,   211,
901         211,   211,   211,   211,   211,  -694,  -694,   330,   328,   331,
902         329,   335,  2215,  2215,  -694,   -96,  -694,   -96,  -694,   -96,
903        2215,  -694,  -694,   342,   337,   344,   333,   346,   341,  -694,
904         -96,   -96,   -96,   -96,   -96,   -96,   -96,   -96,   -96,   -96,
905         -96,   -96,   -96,  -694,  2215,  -694,   351,   343,   356,   355,
906         358,  -694,  -694,   338,  -694,   353,   361,   352,   350,   357,
907         359,   360,   299,   249,     6,   249,   249,  2215,   249,  2215,
908        2215,   249,   249,   249,   249,  2215,  2215,   249,   362,   304,
909        2215,  2215,   363,   365,   305,   349,   366,  1996,  1776,   249,
910          10,   249,   367,  -694,   312,   368,   377,   372,   249,   249,
911         249,   249,   249,   249,   249,   249,   249,  2215,   249,  2215,
912         249,   380,  -694,   381,   370,   382,  -694,   386,   371,   385,
913         323,   390,   387,   388,   389,  -694,   374,   391,   -96,  -694,
914        -694,  -694,  -694,  -694,  -694,  1335,  2215,   -96,   -96,   -96,
915        -694,  1335,  2215,   -96,   332,   393,   -96,  2651,   -96,   334,
916         392,   395,   397,   336,  -694,  -694,   -96,  -694,   -96,  -694,
917         339,   399,   400,   402,   398,   -96,   -96,   -96,   -96,   -96,
918         -96,   -96,   -96,   -96,  2869,   -96,  3087,   -96,   394,   383,
919         407,   354,   401,   412,   410,   408,   422,   414,  -694,   413,
920         409,   415,   249,  2215,   249,   249,   249,  2215,   249,   416,
921         418,  2215,  1556,   419,   423,   438,   417,   440,   249,   249,
922         421,   442,   443,   403,   444,   249,   249,  2215,   249,   249,
923         249,  2215,   249,   201,  1556,  2215,  1556,  2215,   405,   456,
924         411,   425,  -694,   467,  -694,   449,   459,   453,   457,   473,
925         477,  -694,  1335,   -96,  -694,   -96,  1335,  -694,   460,   468,
926        3305,   211,   211,  -694,  2215,  -694,   102,   -93,  -694,  -694,
927         462,   453,   469,   481,   472,  -694,   -96,   491,   497,   445,
928         479,   484,  -694,  -694,   -96,  -694,  -694,  2215,  -694,  -694,
929        -694,  -694,  -694,  -694,  2215,   -96,   211,   211,  -694,  -694,
930        -694,  -694,  3523,  -694,  3741,   508,   514,   515,   502,   516,
931         500,   517,  -694,   503,   504,   520,  2215,  2215,  2215,  2215,
932         506,   507,  1556,   140,   167,   211,   509,   513,   521,   533,
933         249,   518,   519,   524,   527,  -694,   249,   249,  1556,  1556,
934         534,   528,   529,   525,  -694,   531,   474,   530,  -694,   535,
935         -96,  2215,  2215,   -96,   536,   537,  -694,   211,   211,   211,
936         538,   539,   540,   550,  -694,   542,   541,   532,   546,  -694,
937         -96,  -694,  -694,   543,   551,   544,   549,   545,    76,   493,
938         548,   552,   499,   211,   211,   553,   501,  -694,   559,   554,
939         505,   557,   558,   249,   566,   565,   567,   562,   563,   564,
940         570,   577,   101,   586,   569,   587,   572,   589,  -694,   574,
941         114,   580,   582,  -694,  -694,   579,   584,  -694,   568,   601,
942         583,   602,     2,   592,   603,   571,   604,   573,   606,   575,
943         607,   593,   594,   576,   595,  -694,   216,   608,   610,   611,
944         591,   612,   605,   617,   620,   614,   630,   616,   220,   618,
945         623,   625,    60,  -694,   635,    61,   633,   636,   578,   642,
946         634,   632,  -694,   653,   650,   655,   654,   656,   657,   658,
947         646,   598,   662,   661,   647,   670,   651,   671,   613,   683,
948         681,   688,   687,   622,   672,   692,   674,   694,   697,   677,
949         698,   622,    33,   699,   686,   691,   695,   701,   689,   693,
950         702,   703,   707,   700,   704,   713,   708,   714,   711,   710,
951         716,   722,   720,   706,   718,   715,   728,   723,   733,   734,
952         721,  -694,   727,   725,   675,   746,   748,  -694,   749,   725,
953         739,   751,   684,   755,   741,   747,  -694,  -694,   757,   758,
954         742,   744,   752,  -694,   753,   750,   760,   762,   765,   767,
955         763,   766,   769,   776,   770,   764,   724,   768,   777,   788,
956         795,  -694,   764,   786,   729,   798,   787,  -694,   792,   735,
957        -694,   789,   793,   736,   790,   796,   735,   797,   799,   810,
958        -694,   800,   817,   801,   815,   822,   819,   824,   825,   816,
959         826,   811,   759,   813,   827,   812,   820,   828,  -694,   821,
960         834,   839,   835,   840,   841,   846,   843,   848,   837,   833,
961         830,   836,   844,   845,   847,   850,   856,   855,   863,   864,
962        -694,   867,   868,   869,   857,   831,   858,   860,   859,   862,
963         865,   870,   878,   871,  -694,   879,  -694,   881,   873,   874,
964        -694,   876,   877,  -694,   882,  -694,  -694,  -694
965  };  };
966    
967  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
968  static const short yypgoto[] =  static const short yypgoto[] =
969  {  {
970      -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,  -253,      -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
971      -253,  -253,  -253,  -179,  -253,  -253,  -253,  -253,  -253,  -106,      -694,  -694,  -694,  -557,  -694,  -694,  -694,  -694,  -584,    97,
972      -253,   -56,  -103,  -115,  -253,  -253,  -118,   -33,    43,    86,      -694,    89,    42,  -694,  -694,  -452,   218,   364,   340,  -693,
973      -252,  -253,   -17      -694,   317,   206,    34,   -10,   -14,   273,  -410,   -13,   880,
974        -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,  -694,
975        -694,  -694,   -40,  -694,  -694,  -246,  -257,  -244,  -242,  -241,
976        -694,   649,  -694,   652,  -254,  -694,  -694,   659,   482,  -694,
977        -694,  -694,   660,   664,  -252,  -694,  -694,   483,  -694,  -694,
978        -694,  -694,  -694,  -694,  -694,   663,  -694,  -694
979  };  };
980    
981  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
982     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
983     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
984     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
985  #define YYTABLE_NINF -4  #define YYTABLE_NINF -130
986  static const short yytable[] =  static const short yytable[] =
987  {  {
988        36,   165,    71,   218,    72,   294,   295,    63,   139,    30,       265,   267,   541,   268,   269,   270,   271,   272,   273,   274,
989        93,    38,    57,    39,    40,    41,    73,    64,   244,    74,       275,   276,   277,   278,   638,   501,   352,   355,   353,   356,
990       140,    42,    43,    44,    45,    46,    58,    47,    48,    60,       393,   781,    32,   783,   920,   616,   361,   506,    33,    28,
991        19,    65,    49,    75,    76,    50,    51,    52,    53,    54,       385,   392,     1,   394,     2,   395,   396,   921,   516,   617,
992        20,    55,    93,    61,    93,    32,   181,   148,   199,   311,       303,   303,   303,   303,   303,   303,   303,   303,   303,     3,
993       203,   204,   257,   315,   316,    78,    79,    80,    81,    82,       517,     4,     5,   992,   943,     6,   379,   379,   358,   518,
994       200,   201,    85,    86,    87,    88,    89,   222,   223,   224,         7,    29,    36,   380,   380,     8,     9,    10,   381,    11,
995       225,   226,   227,   228,   229,   230,   231,    93,    93,    93,       993,   328,    30,   382,   382,   364,   383,   383,    37,    31,
996        67,    68,   182,    37,    83,   258,     1,   301,    21,   135,       952,   906,    34,   956,   302,   304,   305,   306,   307,   308,
997       136,    90,    31,    -3,   145,     2,   150,     3,     4,     5,       309,   310,   311,   953,   879,    35,   957,   954,   880,   286,
998         6,     7,     8,    93,     9,    10,    11,    12,    13,    93,        39,   615,    38,   621,   622,   287,   881,   805,   349,   836,
999        14,   305,   289,   290,   151,    70,   152,   306,   260,   308,       292,   293,   294,   295,   296,   297,   298,   299,   300,   301,
1000       309,   153,   154,   155,   156,   157,   158,    32,   274,    33,       350,   357,   902,   358,   768,   851,   852,   262,   775,   649,
1001       159,    34,    93,    93,    35,    93,   239,   241,    93,   298,      -129,  -129,  -129,   359,   903,   910,   655,   656,   657,   658,
1002        22,    23,   299,   120,   121,   122,   123,    32,   268,   269,       659,   660,   661,   662,   663,   837,   279,   911,   292,   293,
1003       270,    92,    24,   145,    25,    26,    27,   209,   210,    28,       294,   295,   296,   297,   298,   299,   300,   301,   467,   471,
1004       212,   213,    29,    93,   217,   217,    94,   124,    95,    96,       472,   473,   474,   475,   476,   477,   478,   479,   480,   481,
1005        97,    98,    99,   100,   101,   102,   103,   104,   105,   233,       506,   468,   838,   469,   470,   292,   293,   294,   295,   296,
1006       234,   106,   107,   108,   312,   109,   110,   111,   112,   113,       297,   298,   299,   300,   301,   281,   326,   280,   327,   520,
1007       114,   115,   116,   117,   118,   119,    32,   313,   166,   292,       328,   523,   369,   282,   324,   283,   370,   284,   329,    40,
1008       137,   314,   318,   125,   126,   138,   146,   161,   127,   162,        41,   410,   411,   285,   371,   502,   503,   776,   777,   292,
1009       163,   164,   273,   205,   167,   168,   169,   170,   171,   172,       486,   487,   488,   489,   490,   491,   492,   493,   494,   292,
1010       128,   129,   263,   130,   265,   131,   267,   132,   133,   134,       293,   294,   295,   296,   297,   298,   299,   300,   301,   331,
1011       173,   174,   280,   175,   284,   176,   177,   178,   179,   293,       731,   502,   503,   288,   368,   373,   934,   935,   398,   830,
1012       180,   183,   296,   184,   185,   186,   187,   188,   189,   190,       947,   948,   833,   289,   290,    40,   755,   324,   399,   400,
1013       191,   192,   193,   194,   195,   196,   197,   198,   206,   207,       401,   403,   402,   404,   405,    -4,    -4,   292,   486,   487,
1014       208,   211,   214,   215,     0,   139,   220,   232,   235,   219,       488,   489,   490,   491,   492,   493,   494,   407,   409,   406,
1015         0,   236,   237,   238,   240,   242,   243,   245,   246,   247,       412,   413,   414,   427,   428,   433,   434,   440,   435,   441,
1016       307,   217,   217,   310,   248,   249,   250,   251,   252,   253,       442,   436,   449,   451,   450,   460,   457,   453,   461,   459,
1017       254,   255,   256,   259,   261,   262,   264,   266,   275,   277,       463,   547,   408,   452,   408,   408,   408,   408,   408,   408,
1018       281,   285,   287,     0,     0,   297,   300,   302,   303,   304,       408,   408,   455,   456,   458,   462,   464,   465,   466,   536,
1019       317       482,   380,   483,   497,   498,   499,   500,   538,   415,   513,
1020         514,   515,   416,   540,   417,   418,   419,   420,   421,   537,
1021         422,   263,   423,   424,   425,   426,   539,   542,   544,   429,
1022         430,   543,   431,   432,   546,   545,   548,   549,   551,   550,
1023         552,   568,   569,   437,   438,   439,   572,   574,   844,   573,
1024         443,   444,   445,   446,   447,   448,   575,   576,   582,   583,
1025         584,   585,   586,   587,   601,   602,   603,   604,   605,   607,
1026         606,   608,   610,   609,   642,   454,   611,   614,   670,   652,
1027         612,   613,   635,   641,   634,   639,   640,   643,   653,   650,
1028         651,   654,   668,   669,   671,   672,   673,   674,   676,   677,
1029         678,   675,   719,   681,   694,   679,   680,   495,   496,   690,
1030         689,   695,   693,   722,   697,   701,   702,   700,   703,   718,
1031         529,   530,   531,   532,   535,   696,   704,   720,   723,   724,
1032         725,   726,   721,   727,   728,   788,   729,   753,   738,   739,
1033         730,   750,   751,   757,   553,   554,   555,   556,   557,   558,
1034         559,   560,   561,   562,   563,   564,   565,   566,   567,   752,
1035         754,   570,   571,   758,   761,   759,   303,   303,   303,   303,
1036         303,   303,   303,   303,   303,   786,   789,   790,   791,   792,
1037         793,   760,   579,   785,   580,   794,   581,   795,   800,   787,
1038         806,   801,   807,   808,   809,   814,   815,   588,   589,   590,
1039         591,   592,   593,   594,   595,   596,   597,   598,   599,   600,
1040         302,   304,   305,   306,   307,   308,   309,   310,   311,   811,
1041         812,   820,   821,   813,   823,   822,   323,   825,   824,   826,
1042         828,   827,   829,   834,   624,   835,   840,   627,   628,   629,
1043         630,   841,   842,   633,   843,   845,   847,   846,   848,   854,
1044         853,   855,   858,   856,   857,   647,   860,   859,   868,   861,
1045         871,   865,   874,   875,   862,   869,   866,   867,   870,   872,
1046         877,   882,   876,   878,   665,   883,   667,   885,   888,   887,
1047         884,   886,   889,   890,   891,   894,   892,   895,   896,   897,
1048         898,   900,   899,   901,   904,   682,   905,   918,   906,   907,
1049         908,   909,   683,   912,   684,   685,   686,   914,   687,   913,
1050         688,   915,   917,   919,   922,   930,   925,   923,   927,   929,
1051         939,   933,   931,   698,   936,   699,   937,   938,   940,   942,
1052         941,   943,   705,   706,   707,   708,   709,   710,   711,   712,
1053         713,   945,   715,   944,   717,   946,   916,   949,   950,   924,
1054         955,   926,   951,   928,   932,   958,   960,   959,   961,   963,
1055         733,   734,   735,   962,   737,   964,   965,   966,   748,   969,
1056         967,   968,   747,   971,   970,   647,   972,   973,   976,   975,
1057         977,   763,   765,   974,   763,   770,   772,   978,   763,   780,
1058         748,   979,   748,   747,   747,   980,   747,   981,   982,   983,
1059         984,   985,   986,   987,   988,   989,   990,   994,   991,   796,
1060         797,   995,   798,   799,   996,  1000,   997,   998,   999,  1003,
1061        1007,   303,   303,  1009,  1002,  1004,   408,  1005,  1001,  1006,
1062        1008,  1010,  1011,   810,  1012,  1013,   484,   485,  1014,  1015,
1063        1017,   816,  1016,  1019,  1018,   510,  1020,   323,   323,  1021,
1064        1022,  1023,   817,  1024,  1025,   534,   303,   303,  1026,  1027,
1065        1028,  1029,  1030,  1031,  1032,   803,   804,  1036,  1033,  1034,
1066        1035,  1037,  1041,   323,  1042,  1040,  1039,  1043,   748,  1044,
1067        1038,  1047,   747,   408,   408,   303,  1045,  1046,  1048,  1049,
1068        1050,  1052,   765,   770,   748,   748,  1054,   323,   747,   747,
1069         803,   804,  1051,  1055,  1053,  1056,  1058,  1057,  1059,   577,
1070         578,  1060,  1062,  1061,  1064,  1065,  1066,   303,   303,   408,
1071        1067,  1063,  1069,  1070,  1068,  1071,  1073,   873,  1072,   839,
1072        1074,  1075,  1076,  1077,  1079,  1078,  1080,  1081,  1082,  1084,
1073         323,   323,  1088,   408,   408,  1085,  1087,  1083,  1086,   772,
1074        1089,  1090,  1091,  1092,  1093,  1094,  1095,  1096,  1097,  1098,
1075        1112,   863,   864,  1099,   510,  1101,   625,   626,  1104,  1100,
1076        1103,  1105,   631,   632,  1102,  1106,  1107,   637,   637,  1108,
1077        1109,  1110,  1118,  1113,  1111,  1114,  1115,  1116,   323,   323,
1078        1119,  1121,  1117,  1122,   323,   323,   850,  1120,  1123,  1124,
1079         323,  1125,  1126,   849,   664,   893,   666,   756,  1127,   779,
1080         648,   623,   367,   291,   362,   521,   524,     0,     0,     0,
1081           0,     0,     0,     0,   375,   377,   363,   323,     0,   323,
1082         397,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1083           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1084           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1085           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1086           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1087           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1088         732,     0,     0,     0,   736,   323,     0,     0,   740,   323,
1089           0,     0,     0,   323,     0,     0,     0,   323,     0,     0,
1090           0,     0,     0,     0,   767,     0,     0,     0,   774,     0,
1091           0,     0,   782,     0,   784,     0,     0,     0,     0,     0,
1092         323,     0,     0,     0,     0,     0,     0,   323,     0,     0,
1093           0,     0,     0,     0,     0,   323,     0,   323,     0,     0,
1094           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1095           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1096           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1097           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1098           0,     0,     0,     0,   323,   323,     0,     0,     0,     0,
1099           0,     0,     0,   637,   831,   832,   637,    44,    45,    46,
1100          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1101          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1102          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1103          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1104          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1105          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1106         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1107         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1108         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1109         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1110         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1111         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1112         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1113         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1114         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1115         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1116         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1117         217,   218,   219,   220,   221,   222,   223,   224,   225,   226,
1118         227,   228,   229,   230,   231,   232,   233,   234,   235,   236,
1119         237,   238,   239,   240,   241,   242,   243,   244,   245,   246,
1120         247,   248,   249,   250,   251,   252,   253,   254,   255,   256,
1121         257,   258,   259,   260,   261,     0,     0,   262,   312,    45,
1122          46,    47,    48,   313,   314,   315,   316,   317,   318,   319,
1123         320,   321,   322,    59,    60,    61,    62,    63,    64,    65,
1124          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1125          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1126          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1127          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1128         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1129         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1130         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1131         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1132         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1133         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1134         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1135         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1136         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1137         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1138         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1139         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1140         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1141         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1142         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1143         256,   257,   258,   259,   260,   261,     0,     0,   262,   312,
1144          45,    46,   741,   742,    49,    50,    51,    52,    53,    54,
1145          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1146          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1147          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1148          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1149          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1150         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1151         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1152         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1153         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1154         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1155         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1156         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1157         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1158         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1159         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1160         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1161         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1162         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1163         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1164         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1165         255,   256,   257,   258,   259,   260,   261,   502,   503,   312,
1166          45,    46,    47,    48,   313,   314,   315,   316,   317,   318,
1167         319,   320,   321,   322,    59,    60,    61,    62,    63,    64,
1168          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1169          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1170          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1171          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1172         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1173         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1174         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1175         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1176         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1177         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1178         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1179         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1180         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1181         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1182         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1183         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1184         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1185         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1186         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1187         255,   256,   257,   258,   259,   260,   261,     0,   645,   312,
1188          45,    46,    47,    48,   313,   314,   315,   316,   317,   318,
1189         319,   320,   321,   322,    59,    60,    61,    62,    63,    64,
1190          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1191          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1192          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1193          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1194         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1195         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1196         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1197         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1198         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1199         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1200         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1201         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1202         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1203         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1204         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1205         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1206         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1207         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1208         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1209         255,   256,   257,   258,   259,   260,   261,   644,   312,    45,
1210          46,    47,    48,   313,   314,   315,   316,   317,   318,   319,
1211         320,   321,   322,    59,    60,    61,    62,    63,    64,    65,
1212          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1213          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1214          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1215          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1216         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1217         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1218         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1219         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1220         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1221         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1222         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1223         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1224         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1225         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1226         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1227         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1228         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1229         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1230         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1231         256,   257,   258,   259,   260,   261,   312,    45,    46,    47,
1232          48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1233          58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1234          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1235          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1236          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1237          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1238         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1239         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1240         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1241         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1242         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1243         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1244         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1245         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1246         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1247         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1248         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1249         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1250         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1251         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1252         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1253         258,   259,   260,   261,   312,   692,    46,    47,    48,   313,
1254         314,   315,   316,   317,   318,   319,   320,   321,   322,    59,
1255          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1256          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1257          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1258          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1259         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1260         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1261         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1262         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1263         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1264         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1265         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1266         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1267         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1268         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1269         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1270         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1271         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1272         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1273         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1274         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1275         260,   261,   312,   714,    46,    47,    48,   313,   314,   315,
1276         316,   317,   318,   319,   320,   321,   322,    59,    60,    61,
1277          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1278          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1279          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1280          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1281         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1282         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1283         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1284         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1285         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1286         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1287         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1288         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1289         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1290         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1291         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1292         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1293         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1294         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1295         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1296         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1297         312,   716,    46,    47,    48,   313,   314,   315,   316,   317,
1298         318,   319,   320,   321,   322,    59,    60,    61,    62,    63,
1299          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1300          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1301          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1302          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1303         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1304         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1305         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1306         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1307         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1308         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1309         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1310         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1311         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1312         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1313         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1314         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1315         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1316         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1317         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1318         254,   255,   256,   257,   258,   259,   260,   261,   312,   802,
1319          46,    47,    48,   313,   314,   315,   316,   317,   318,   319,
1320         320,   321,   322,    59,    60,    61,    62,    63,    64,    65,
1321          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1322          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1323          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1324          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1325         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1326         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1327         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1328         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1329         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1330         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1331         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1332         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1333         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1334         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1335         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1336         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1337         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1338         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1339         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1340         256,   257,   258,   259,   260,   261,   312,   818,    46,    47,
1341          48,   313,   314,   315,   316,   317,   318,   319,   320,   321,
1342         322,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1343          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1344          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1345          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1346          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1347         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1348         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1349         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1350         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1351         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1352         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1353         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1354         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1355         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1356         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1357         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1358         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1359         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1360         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1361         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1362         258,   259,   260,   261,   312,   819,    46,    47,    48,   313,
1363         314,   315,   316,   317,   318,   319,   320,   321,   322,    59,
1364          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1365          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1366          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1367          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1368         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1369         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1370         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1371         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1372         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1373         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1374         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1375         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1376         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1377         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1378         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1379         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1380         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1381         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1382         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1383         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1384         260,   261
1385  };  };
1386    
1387  static const short yycheck[] =  static const short yycheck[] =
1388  {  {
1389        17,   119,    24,   182,    26,   257,   258,    30,     6,     0,        14,    14,   454,    16,    17,    18,    19,    20,    21,    22,
1390         3,    26,    39,    28,    29,    30,    38,    40,    11,    41,        23,    24,    25,    26,   571,    31,   270,   271,   270,   271,
1391        18,    36,    37,    38,    39,    40,    53,    42,    43,    39,       277,   714,    26,   716,    22,    19,   272,   437,    32,    21,
1392         7,    54,    47,    55,    56,    50,    51,    52,    53,    54,       276,   277,     1,   277,     3,   277,   277,    35,    18,    33,
1393         7,    56,     3,    53,     3,     3,     7,     5,   166,   301,        50,    51,    52,    53,    54,    55,    56,    57,    58,    18,
1394       168,   169,    11,   305,   306,    30,    31,    32,    33,    34,        30,    20,    21,    20,    21,    24,    19,    19,    20,    39,
1395        57,    58,    30,    31,    32,    33,    34,   185,   186,   187,        29,    35,    22,    26,    26,    34,    35,    36,    30,    38,
1396       188,   189,   190,   191,   192,   193,   194,     3,     3,     3,        37,    22,    22,    36,    36,    26,    39,    39,    38,    22,
1397        35,    36,     7,    26,    59,    11,     1,    11,     7,   106,        20,    21,    38,    22,    50,    51,    52,    53,    54,    55,
1398       107,    59,     8,     8,   111,    10,   113,    12,    13,    14,        56,    57,    58,    33,    18,    22,    35,    37,    22,    30,
1399        15,    16,    17,     3,    19,    20,    21,    22,    23,     3,         0,   553,    31,   555,   556,    36,    30,     5,    18,   802,
1400        25,    11,     4,     5,    37,    26,    39,    11,   236,   298,         8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1401       299,    44,    45,    46,    47,    48,    49,     3,   246,     5,        30,    18,    21,    20,   708,   818,   819,   223,   712,   581,
1402        53,     7,     3,     3,    10,     3,     7,     7,     3,     7,       223,   224,   225,    30,    33,    21,   588,   589,   590,   591,
1403         7,     7,     7,    31,    32,    33,    34,     3,     4,     5,       592,   593,   594,   595,   596,     5,    21,    33,     8,     9,
1404         6,    26,     7,   170,     7,     7,     7,   174,   175,     7,        10,    11,    12,    13,    14,    15,    16,    17,   415,   416,
1405       177,   178,     7,     3,   181,   182,     7,    31,     7,     7,       417,   418,   419,   420,   421,   422,   423,   424,   425,   426,
1406         7,     7,     7,     7,     7,     7,     7,     7,     7,   196,       580,   415,     5,   415,   415,     8,     9,    10,    11,    12,
1407       197,     7,     7,     7,   302,     7,     7,     7,     7,     7,        13,    14,    15,    16,    17,    36,    18,    22,    20,   443,
1408         7,     7,     7,     7,     7,     7,     3,   303,     7,   255,        22,   443,    18,    37,    20,    36,    22,    18,    30,   224,
1409         5,   304,   317,    31,    31,     5,     5,     5,    31,     5,       225,    38,    39,    26,    30,   221,   222,     6,     7,     8,
1410         5,     5,   245,   170,     7,     7,     7,     7,     7,     7,         9,    10,    11,    12,    13,    14,    15,    16,    17,     8,
1411        31,    31,   239,    31,   241,    31,   243,    31,    31,    31,         9,    10,    11,    12,    13,    14,    15,    16,    17,   269,
1412         7,     7,   249,     7,   251,     7,     7,     7,     7,   256,       682,   221,   222,    37,   274,   275,    20,    21,   278,   796,
1413         7,     7,   259,     7,     7,     7,     7,     7,     7,     7,        20,    21,   799,    19,    36,   224,   698,    20,    18,    37,
1414         7,     7,     7,     7,     7,     7,     7,     7,     5,     5,        37,    37,    21,    32,    22,   224,   225,     8,     9,    10,
1415         5,     5,     5,     5,    -1,     6,     5,     5,     5,   183,        11,    12,    13,    14,    15,    16,    17,    38,    25,    36,
1416        -1,     7,     7,     7,     7,     7,     7,     7,     7,     7,        25,    31,    26,    38,    26,    38,    25,    38,    26,    20,
1417       297,   298,   299,   300,     7,     7,     7,     7,     7,     7,        26,    31,    38,    26,    31,    19,    39,    32,    18,    20,
1418         7,     7,     7,     7,     5,     5,     5,     5,     5,     5,        18,    31,   302,    37,   304,   305,   306,   307,   308,   309,
1419         5,     5,     5,    -1,    -1,     7,     7,     7,     7,     7,       310,   311,    37,    35,    37,    21,    18,    24,    21,    23,
1420         7        21,    26,    21,    21,    18,    21,    36,    36,   331,    21,
1421          25,    21,   335,    26,   337,   338,   339,   340,   341,    23,
1422         343,    14,   345,   346,   347,   348,    35,    22,    22,   352,
1423         353,    32,   355,   356,    36,    35,    26,    26,    26,    31,
1424          26,    26,    26,   366,   367,   368,    26,    26,   810,    31,
1425         373,   374,   375,   376,   377,   378,    37,    32,    26,    32,
1426          26,    38,    26,    32,    23,    32,    20,    22,    20,    26,
1427          42,    20,    32,    31,    35,   398,    29,    88,    18,    21,
1428          31,    31,    88,    88,    32,    32,    31,    31,    21,    32,
1429          88,    29,    22,    22,    22,    19,    35,    22,    18,    22,
1430          22,    88,    29,    22,    22,    26,    42,   431,   432,    26,
1431          88,    26,    88,    22,    88,    26,    26,    88,    26,    35,
1432         444,   445,   446,   447,   448,    38,    38,    30,    26,    29,
1433          32,    19,    88,    29,    31,    20,    37,    30,    32,    31,
1434          35,    32,    29,    32,   467,   468,   469,   470,   471,   472,
1435         473,   474,   475,   476,   477,   478,   479,   480,   481,    31,
1436          30,   484,   485,    31,    30,    32,   486,   487,   488,   489,
1437         490,   491,   492,   493,   494,    29,    19,    38,    29,    36,
1438          33,    88,   505,    88,   507,    22,   509,    20,    38,    88,
1439          38,    33,    33,    22,    32,    26,    22,   520,   521,   522,
1440         523,   524,   525,   526,   527,   528,   529,   530,   531,   532,
1441         486,   487,   488,   489,   490,   491,   492,   493,   494,    38,
1442          33,    23,    18,    88,    32,    20,   263,    37,    22,    22,
1443          36,    38,    22,    37,   558,    38,    37,   561,   562,   563,
1444         564,    38,    31,   567,    21,    37,    32,    38,    31,    31,
1445          26,    32,    88,    38,    33,   579,    31,    37,    18,    33,
1446          38,    33,    29,    22,    37,    33,    37,    37,    37,    33,
1447          31,    88,    38,    38,   598,    37,   600,    88,    29,    88,
1448          38,    38,    38,    88,    37,    29,    38,    32,    31,    37,
1449          37,    31,    38,    26,    18,   618,    37,    24,    21,    37,
1450          21,    37,   625,    33,   627,   628,   629,    38,   631,    37,
1451         633,    37,    21,    21,    32,    32,    22,    24,    22,    22,
1452          39,    36,    38,   646,    26,   648,    26,    26,    26,    22,
1453          35,    21,   655,   656,   657,   658,   659,   660,   661,   662,
1454         663,    21,   665,    39,   667,    39,    88,    39,    35,    88,
1455          25,    88,    37,    88,    88,    32,    88,    31,    26,    37,
1456         684,   685,   686,    39,   688,    22,    26,    22,   692,    22,
1457          26,    25,   692,    37,    26,   699,    88,    25,    18,    42,
1458          39,   705,   706,    32,   708,   709,   710,    26,   712,   713,
1459         714,    88,   716,   713,   714,    22,   716,    26,    20,    22,
1460          88,    39,    20,    39,    20,    18,    39,    18,    20,   732,
1461         733,    35,   735,   736,    33,    32,    31,    26,    39,    22,
1462          22,   741,   742,    22,    31,    35,   746,    33,    36,    26,
1463          26,    31,    26,   756,    22,    25,   429,   430,    42,    31,
1464          22,   764,    37,    20,    31,   438,    22,   484,   485,    38,
1465          33,    36,   775,    88,    18,   448,   776,   777,    20,    20,
1466          31,    20,    88,    18,    33,   741,   742,    35,    31,    22,
1467          22,    37,    22,   510,    22,    35,    33,    22,   802,    22,
1468          38,    22,   802,   803,   804,   805,    33,    31,    22,    29,
1469          36,    33,   816,   817,   818,   819,    18,   534,   818,   819,
1470         776,   777,    88,    18,    37,    29,    18,    88,    31,   502,
1471         503,    29,    33,    88,    88,    35,    30,   837,   838,   839,
1472          33,    38,    22,    33,    35,    18,    21,   850,    37,   805,
1473          18,    22,    18,    18,    18,    29,    35,    88,    35,    37,
1474         577,   578,    18,   863,   864,    35,    35,    30,    30,   873,
1475          21,    26,    22,    22,    18,    22,    18,    30,    35,    39,
1476          39,   837,   838,    37,   557,    30,   559,   560,    22,    35,
1477          30,    26,   565,   566,    37,    22,    22,   570,   571,    22,
1478          22,    22,    22,    35,    37,    35,    37,    35,   625,   626,
1479          22,    22,    37,    22,   631,   632,   817,    36,    35,    35,
1480         637,    35,    35,   816,   597,   873,   599,   699,    36,   713,
1481         580,   557,   273,    43,   272,   443,   443,    -1,    -1,    -1,
1482          -1,    -1,    -1,    -1,   275,   275,   272,   664,    -1,   666,
1483         277,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1484          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1485          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1486          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1487          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1488          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1489         683,    -1,    -1,    -1,   687,   732,    -1,    -1,   691,   736,
1490          -1,    -1,    -1,   740,    -1,    -1,    -1,   744,    -1,    -1,
1491          -1,    -1,    -1,    -1,   707,    -1,    -1,    -1,   711,    -1,
1492          -1,    -1,   715,    -1,   717,    -1,    -1,    -1,    -1,    -1,
1493         767,    -1,    -1,    -1,    -1,    -1,    -1,   774,    -1,    -1,
1494          -1,    -1,    -1,    -1,    -1,   782,    -1,   784,    -1,    -1,
1495          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1496          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1497          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1498          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1499          -1,    -1,    -1,    -1,   831,   832,    -1,    -1,    -1,    -1,
1500          -1,    -1,    -1,   796,   797,   798,   799,     3,     4,     5,
1501           6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1502          16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1503          26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1504          36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1505          46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1506          56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1507          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1508          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1509          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1510          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1511         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1512         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1513         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1514         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1515         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1516         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1517         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1518         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1519         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1520         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1521         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1522         216,   217,   218,   219,   220,    -1,    -1,   223,     3,     4,
1523           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1524          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1525          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1526          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1527          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1528          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1529          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1530          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1531          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1532          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1533         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1534         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1535         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1536         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1537         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1538         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1539         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1540         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1541         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1542         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1543         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1544         215,   216,   217,   218,   219,   220,    -1,    -1,   223,     3,
1545           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1546          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1547          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1548          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1549          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1550          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1551          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1552          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1553          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1554          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1555         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1556         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1557         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1558         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1559         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1560         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1561         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1562         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1563         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1564         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1565         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1566         214,   215,   216,   217,   218,   219,   220,   221,   222,     3,
1567           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1568          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1569          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1570          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1571          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1572          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1573          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1574          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1575          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1576          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1577         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1578         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1579         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1580         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1581         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1582         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1583         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1584         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1585         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1586         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1587         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1588         214,   215,   216,   217,   218,   219,   220,    -1,   222,     3,
1589           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1590          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1591          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1592          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1593          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1594          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1595          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1596          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1597          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1598          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1599         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1600         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1601         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1602         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1603         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1604         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1605         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1606         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1607         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1608         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1609         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1610         214,   215,   216,   217,   218,   219,   220,   221,     3,     4,
1611           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1612          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1613          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1614          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1615          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1616          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1617          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1618          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1619          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1620          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1621         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1622         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1623         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1624         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1625         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1626         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1627         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1628         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1629         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1630         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1631         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1632         215,   216,   217,   218,   219,   220,     3,     4,     5,     6,
1633           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1634          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1635          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1636          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1637          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1638          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1639          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1640          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1641          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1642          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1643         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1644         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1645         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1646         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1647         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1648         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1649         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1650         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1651         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1652         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1653         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1654         217,   218,   219,   220,     3,     4,     5,     6,     7,     8,
1655           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1656          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1657          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1658          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1659          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1660          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1661          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1662          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1663          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1664          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1665         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1666         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1667         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1668         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1669         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1670         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1671         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1672         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1673         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1674         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1675         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1676         219,   220,     3,     4,     5,     6,     7,     8,     9,    10,
1677          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1678          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1679          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1680          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1681          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1682          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1683          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1684          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1685          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1686         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1687         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1688         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1689         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1690         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1691         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1692         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1693         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1694         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1695         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1696         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1697         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1698           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1699          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1700          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1701          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1702          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1703          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1704          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1705          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1706          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1707          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1708         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1709         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1710         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1711         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1712         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1713         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1714         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1715         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1716         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1717         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1718         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1719         213,   214,   215,   216,   217,   218,   219,   220,     3,     4,
1720           5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
1721          15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
1722          25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
1723          35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
1724          45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
1725          55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
1726          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1727          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1728          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1729          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1730         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1731         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1732         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1733         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1734         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1735         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1736         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1737         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1738         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1739         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1740         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1741         215,   216,   217,   218,   219,   220,     3,     4,     5,     6,
1742           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1743          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1744          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1745          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1746          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1747          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1748          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1749          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1750          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1751          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1752         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1753         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1754         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1755         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1756         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1757         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1758         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1759         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1760         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1761         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1762         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1763         217,   218,   219,   220,     3,     4,     5,     6,     7,     8,
1764           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1765          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1766          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1767          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1768          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1769          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1770          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1771          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1772          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1773          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1774         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1775         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1776         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1777         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1778         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1779         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1780         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1781         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1782         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1783         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1784         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1785         219,   220
1786  };  };
1787    
1788  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1789     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
1790  static const unsigned char yystos[] =  static const unsigned short yystos[] =
1791  {  {
1792         0,     1,    10,    12,    13,    14,    15,    16,    17,    19,         0,     1,     3,    18,    20,    21,    24,    29,    34,    35,
1793        20,    21,    22,    23,    25,    61,    62,    63,    64,     7,        36,    38,   227,   228,   229,   230,   267,   268,   269,   270,
1794         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,       271,   272,   274,   275,   276,   277,   310,   313,    21,    35,
1795         0,     8,     3,     5,     7,    10,    92,    26,    26,    28,        22,    22,    26,    32,    38,    22,    22,    38,    31,     0,
1796        29,    30,    36,    37,    38,    39,    40,    42,    43,    47,       224,   225,   265,   266,     3,     4,     5,     6,     7,     8,
1797        50,    51,    52,    53,    54,    56,    67,    39,    53,    69,         9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1798        39,    53,    70,    30,    40,    54,    75,    35,    36,    71,        19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1799        26,    24,    26,    38,    41,    55,    56,    68,    30,    31,        29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1800        32,    33,    34,    59,    65,    30,    31,    32,    33,    34,        39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1801        59,    66,    26,     3,     7,     7,     7,     7,     7,     7,        49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1802         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,        59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1803         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,        69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1804        31,    32,    33,    34,    31,    31,    31,    31,    31,    31,        79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1805        31,    31,    31,    31,    31,    92,    92,     5,     5,     6,        89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1806        18,    76,    89,    77,    88,    92,     5,    86,     5,    91,        99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1807        92,    37,    39,    44,    45,    46,    47,    48,    49,    53,       109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1808        72,     5,     5,     5,     5,    86,     7,     7,     7,     7,       119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1809         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,       129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1810         7,     7,     7,     7,     7,     7,     7,     7,     7,     7,       139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1811         7,     7,     7,     7,     7,     7,     7,     7,     7,    86,       149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1812        57,    58,    74,    86,    86,    88,     5,     5,     5,    92,       159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1813        92,     5,    92,    92,     5,     5,    73,    92,    73,    89,       169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1814         5,    87,    86,    86,    86,    86,    86,    86,    86,    86,       179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1815        86,    86,     5,    92,    92,     5,     7,     7,     7,     7,       189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1816         7,     7,     7,     7,    11,     7,     7,     7,     7,     7,       199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1817         7,     7,     7,     7,     7,     7,     7,    11,    11,     7,       209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1818        86,     5,     5,    92,     5,    92,     5,    92,     4,     5,       219,   220,   223,   257,   260,   261,   262,   264,   264,   264,
1819         6,    90,    92,    87,    86,     5,    79,     5,    78,    80,       264,   264,   264,   264,   264,   264,   264,   264,   264,    21,
1820        92,     5,    81,    84,    92,     5,    82,     5,    83,     4,        22,    36,    37,    36,    18,    26,    30,    36,    37,    19,
1821         5,    85,    81,    92,    90,    90,    92,     7,     7,     7,        36,   265,     8,     9,    10,    11,    12,    13,    14,    15,
1822         7,    11,     7,     7,     7,    11,    11,    92,    73,    73,        16,    17,   259,   260,   259,   259,   259,   259,   259,   259,
1823        92,    90,    86,    79,    82,    90,    90,     7,    83       259,   259,     3,     8,     9,    10,    11,    12,    13,    14,
1824          15,    16,    17,   262,    20,   278,    18,    20,    22,    30,
1825         233,   278,   279,   280,   281,   287,   289,   290,   291,   292,
1826         293,   294,   296,   298,   299,   300,   301,   302,   303,    18,
1827          30,   235,   290,   300,   236,   290,   300,    18,    20,    30,
1828         241,   281,   289,   299,    26,   237,   286,   287,   278,    18,
1829          22,    30,   234,   278,   288,   293,   297,   298,   312,    19,
1830          26,    30,    36,    39,   231,   281,   282,   283,   284,   285,
1831         311,   232,   281,   282,   283,   284,   285,   311,   278,    18,
1832          37,    37,    21,    37,    32,    22,    36,    38,   260,    25,
1833          38,    39,    25,    31,    26,   264,   264,   264,   264,   264,
1834         264,   264,   264,   264,   264,   264,   264,    38,    26,   264,
1835         264,   264,   264,    38,    25,    26,    31,   264,   264,   264,
1836          38,    20,    26,   264,   264,   264,   264,   264,   264,    38,
1837          31,    26,    37,    32,   264,    37,    35,    39,    37,    20,
1838          19,    18,    21,    18,    18,    24,    21,   282,   283,   284,
1839         285,   282,   282,   282,   282,   282,   282,   282,   282,   282,
1840         282,   282,    21,    21,   257,   257,     9,    10,    11,    12,
1841          13,    14,    15,    16,    17,   261,   261,    21,    18,    21,
1842          36,    31,   221,   222,   242,   254,   263,   273,   243,   253,
1843         257,   251,   261,    21,    25,    21,    18,    30,    39,   238,
1844         290,   294,   295,   300,   303,   304,   305,   306,   307,   261,
1845         261,   261,   261,   256,   257,   261,    23,    23,    36,    35,
1846          26,   251,    22,    32,    22,    35,    36,    31,    26,    26,
1847          31,    26,    26,   264,   264,   264,   264,   264,   264,   264,
1848         264,   264,   264,   264,   264,   264,   264,   264,    26,    26,
1849         264,   264,    26,    31,    26,    37,    32,   257,   257,   264,
1850         264,   264,    26,    32,    26,    38,    26,    32,   264,   264,
1851         264,   264,   264,   264,   264,   264,   264,   264,   264,   264,
1852         264,    23,    32,    20,    22,    20,    42,    26,    20,    31,
1853          32,    29,    31,    31,    88,   251,    19,    33,   240,   308,
1854         309,   251,   251,   253,   261,   257,   257,   261,   261,   261,
1855         261,   257,   257,   261,    32,    88,   239,   257,   239,    32,
1856          31,    88,    35,    31,   221,   222,   252,   261,   254,   251,
1857          32,    88,    21,    21,    29,   251,   251,   251,   251,   251,
1858         251,   251,   251,   251,   257,   261,   257,   261,    22,    22,
1859          18,    22,    19,    35,    22,    88,    18,    22,    22,    26,
1860          42,    22,   264,   264,   264,   264,   264,   264,   264,    88,
1861          26,   264,     4,    88,    22,    26,    38,    88,   264,   264,
1862          88,    26,    26,    26,    38,   264,   264,   264,   264,   264,
1863         264,   264,   264,   264,     4,   264,     4,   264,    35,    29,
1864          30,    88,    22,    26,    29,    32,    19,    29,    31,    37,
1865          35,   251,   257,   261,   261,   261,   257,   261,    32,    31,
1866         257,     6,     7,   255,   257,   258,   259,   260,   261,   263,
1867          32,    29,    31,    30,    30,   251,   252,    32,    31,    32,
1868          88,    30,   244,   261,   245,   261,   246,   257,   244,   247,
1869         261,   248,   261,   249,   257,   244,     6,     7,   250,   258,
1870         261,   255,   257,   255,   257,    88,    29,    88,    20,    19,
1871          38,    29,    36,    33,    22,    20,   264,   264,   264,   264,
1872          38,    33,     4,   259,   259,     5,    38,    33,    22,    32,
1873         264,    38,    33,    88,    26,    22,   264,   264,     4,     4,
1874          23,    18,    20,    32,    22,    37,    22,    38,    36,    22,
1875         239,   257,   257,   239,    37,    38,   255,     5,     5,   259,
1876          37,    38,    31,    21,   251,    37,    38,    32,    31,   245,
1877         247,   255,   255,    26,    31,    32,    38,    33,    88,    37,
1878          31,    33,    37,   259,   259,    33,    37,    37,    18,    33,
1879          37,    38,    33,   264,    29,    22,    38,    31,    38,    18,
1880          22,    30,    88,    37,    38,    88,    38,    88,    29,    38,
1881          88,    37,    38,   248,    29,    32,    31,    37,    37,    38,
1882          31,    26,    21,    33,    18,    37,    21,    37,    21,    37,
1883          21,    33,    33,    37,    38,    37,    88,    21,    24,    21,
1884          22,    35,    32,    24,    88,    22,    88,    22,    88,    22,
1885          32,    38,    88,    36,    20,    21,    26,    26,    26,    39,
1886          26,    35,    22,    21,    39,    21,    39,    20,    21,    39,
1887          35,    37,    20,    33,    37,    25,    22,    35,    32,    31,
1888          88,    26,    39,    37,    22,    26,    22,    26,    25,    22,
1889          26,    37,    88,    25,    32,    42,    18,    39,    26,    88,
1890          22,    26,    20,    22,    88,    39,    20,    39,    20,    18,
1891          39,    20,    20,    37,    18,    35,    33,    31,    26,    39,
1892          32,    36,    31,    22,    35,    33,    26,    22,    26,    22,
1893          31,    26,    22,    25,    42,    31,    37,    22,    31,    20,
1894          22,    38,    33,    36,    88,    18,    20,    20,    31,    20,
1895          88,    18,    33,    31,    22,    22,    35,    37,    38,    33,
1896          35,    22,    22,    22,    22,    33,    31,    22,    22,    29,
1897          36,    88,    33,    37,    18,    18,    29,    88,    18,    31,
1898          29,    88,    33,    38,    88,    35,    30,    33,    35,    22,
1899          33,    18,    37,    21,    18,    22,    18,    18,    29,    18,
1900          35,    88,    35,    30,    37,    35,    30,    35,    18,    21,
1901          26,    22,    22,    18,    22,    18,    30,    35,    39,    37,
1902          35,    30,    37,    30,    22,    26,    22,    22,    22,    22,
1903          22,    37,    39,    35,    35,    37,    35,    37,    22,    22,
1904          36,    22,    22,    35,    35,    35,    35,    36
1905  };  };
1906    
1907  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 1369  yyreduce: Line 2511  yyreduce:
2511    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
2512    switch (yyn)    switch (yyn)
2513      {      {
2514          case 3:          case 4:
 #line 84 "lscp.y"  
     { return LSCP_DONE; }  
     break;  
   
   case 4:  
2515  #line 85 "lscp.y"  #line 85 "lscp.y"
2516      { return LSCP_DONE; }      { return LSCP_DONE; }
2517      break;      break;
2518    
2519    case 5:    case 5:
2520  #line 86 "lscp.y"  #line 86 "lscp.y"
2521      { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; }      { return LSCP_DONE; }
2522      break;      break;
2523    
2524    case 6:    case 6:
2525  #line 87 "lscp.y"  #line 87 "lscp.y"
2526      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }      { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; }
2527      break;      break;
2528    
2529    case 12:    case 7:
2530  #line 97 "lscp.y"  #line 88 "lscp.y"
2531      { yyval.String = LSCPSERVER->AddChannel();                  }      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
2532      break;      break;
2533    
2534    case 13:    case 13:
2535  #line 98 "lscp.y"  #line 98 "lscp.y"
2536      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->AddChannel();                          }
2537      break;      break;
2538    
2539    case 14:    case 14:
2540  #line 99 "lscp.y"  #line 99 "lscp.y"
2541      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2542      break;      break;
2543    
2544    case 15:    case 15:
2545  #line 100 "lscp.y"  #line 100 "lscp.y"
2546      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2547      break;      break;
2548    
2549    case 16:    case 16:
2550  #line 101 "lscp.y"  #line 101 "lscp.y"
2551      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2552      break;      break;
2553    
2554    case 17:    case 17:
2555  #line 102 "lscp.y"  #line 102 "lscp.y"
2556      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2557      break;      break;
2558    
2559    case 18:    case 18:
2560  #line 103 "lscp.y"  #line 103 "lscp.y"
2561      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }      { yyval.String = yyvsp[0].String;                                                }
2562      break;      break;
2563    
2564    case 19:    case 19:
2565  #line 104 "lscp.y"  #line 104 "lscp.y"
2566      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);                     }
2567      break;      break;
2568    
2569    case 20:    case 20:
2570  #line 105 "lscp.y"  #line 105 "lscp.y"
2571      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2572      break;      break;
2573    
2574    case 21:    case 21:
2575  #line 106 "lscp.y"  #line 106 "lscp.y"
2576      { yyval.String = yyvsp[0].String;                                        }      { yyval.String = yyvsp[0].String;                                                }
2577      break;      break;
2578    
2579    case 22:    case 22:
2580  #line 107 "lscp.y"  #line 107 "lscp.y"
2581      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { yyval.String = yyvsp[0].String;                                                }
2582      break;      break;
2583    
2584    case 23:    case 23:
2585  #line 108 "lscp.y"  #line 108 "lscp.y"
2586      { yyval.String = LSCPSERVER->ResetSampler();                }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);                      }
2587      break;      break;
2588    
2589    case 24:    case 24:
2590  #line 109 "lscp.y"  #line 109 "lscp.y"
2591      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }      { yyval.String = LSCPSERVER->ResetSampler();                        }
2592      break;      break;
2593    
2594    case 25:    case 25:
2595  #line 112 "lscp.y"  #line 110 "lscp.y"
2596      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels); }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
2597      break;      break;
2598    
2599    case 26:    case 26:
2600  #line 113 "lscp.y"  #line 113 "lscp.y"
2601      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels);     }
2602      break;      break;
2603    
2604    case 27:    case 27:
2605  #line 114 "lscp.y"  #line 114 "lscp.y"
2606      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count);  }
2607      break;      break;
2608    
2609    case 28:    case 28:
2610  #line 115 "lscp.y"  #line 115 "lscp.y"
2611      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }
2612      break;      break;
2613    
2614    case 29:    case 29:
2615  #line 116 "lscp.y"  #line 116 "lscp.y"
2616      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill);  }
2617      break;      break;
2618    
2619    case 30:    case 30:
2620  #line 117 "lscp.y"  #line 117 "lscp.y"
2621      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info);         }
2622      break;      break;
2623    
2624    case 31:    case 31:
2625  #line 120 "lscp.y"  #line 118 "lscp.y"
2626      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels); }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc);         }
2627      break;      break;
2628    
2629    case 32:    case 32:
2630  #line 121 "lscp.y"  #line 121 "lscp.y"
2631      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels);     }
2632      break;      break;
2633    
2634    case 33:    case 33:
2635  #line 122 "lscp.y"  #line 122 "lscp.y"
2636      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count);  }
2637      break;      break;
2638    
2639    case 34:    case 34:
2640  #line 123 "lscp.y"  #line 123 "lscp.y"
2641      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }
2642      break;      break;
2643    
2644    case 35:    case 35:
2645  #line 124 "lscp.y"  #line 124 "lscp.y"
2646      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill);  }
2647      break;      break;
2648    
2649    case 36:    case 36:
2650  #line 125 "lscp.y"  #line 125 "lscp.y"
2651      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info);         }
2652      break;      break;
2653    
2654    case 37:    case 37:
2655  #line 128 "lscp.y"  #line 126 "lscp.y"
2656      { yyval.String = LSCPSERVER->GetAvailableEngines();       }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc);         }
2657      break;      break;
2658    
2659    case 38:    case 38:
2660  #line 129 "lscp.y"  #line 129 "lscp.y"
2661      { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();       }      { yyval.String = LSCPSERVER->GetAvailableEngines();                          }
2662      break;      break;
2663    
2664    case 39:    case 39:
2665  #line 130 "lscp.y"  #line 130 "lscp.y"
2666      { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();                 }
2667      break;      break;
2668    
2669    case 40:    case 40:
2670  #line 131 "lscp.y"  #line 131 "lscp.y"
2671      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);                     }
2672      break;      break;
2673    
2674    case 41:    case 41:
2675  #line 132 "lscp.y"  #line 132 "lscp.y"
2676      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);       }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);        }
2677      break;      break;
2678    
2679    case 42:    case 42:
2680  #line 133 "lscp.y"  #line 133 "lscp.y"
2681      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();       }      { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);    }
2682      break;      break;
2683    
2684    case 43:    case 43:
2685  #line 134 "lscp.y"  #line 134 "lscp.y"
2686      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
2687      break;      break;
2688    
2689    case 44:    case 44:
2690  #line 135 "lscp.y"  #line 135 "lscp.y"
2691      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }
2692      break;      break;
2693    
2694    case 45:    case 45:
2695  #line 136 "lscp.y"  #line 136 "lscp.y"
2696      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);       }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }
2697      break;      break;
2698    
2699    case 46:    case 46:
2700  #line 137 "lscp.y"  #line 137 "lscp.y"
2701      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();       }      { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }
2702      break;      break;
2703    
2704    case 47:    case 47:
2705  #line 138 "lscp.y"  #line 138 "lscp.y"
2706      { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();       }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }
2707      break;      break;
2708    
2709    case 48:    case 48:
2710  #line 139 "lscp.y"  #line 139 "lscp.y"
2711      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();                      }
2712      break;      break;
2713    
2714    case 49:    case 49:
2715  #line 140 "lscp.y"  #line 140 "lscp.y"
2716      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }
2717      break;      break;
2718    
2719    case 50:    case 50:
2720  #line 141 "lscp.y"  #line 141 "lscp.y"
2721      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);                     }
2722      break;      break;
2723    
2724    case 51:    case 51:
2725  #line 142 "lscp.y"  #line 142 "lscp.y"
2726      { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);                   }
2727      break;      break;
2728    
2729    case 52:    case 52:
2730  #line 143 "lscp.y"  #line 143 "lscp.y"
2731      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);      }
2732      break;      break;
2733    
2734    case 53:    case 53:
2735  #line 144 "lscp.y"  #line 144 "lscp.y"
2736      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }
2737      break;      break;
2738    
2739    case 54:    case 54:
2740  #line 145 "lscp.y"  #line 145 "lscp.y"
2741      { yyval.String = LSCPSERVER->GetChannels();       }      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }
2742      break;      break;
2743    
2744    case 55:    case 55:
2745  #line 146 "lscp.y"  #line 146 "lscp.y"
2746      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetChannels();                                  }
2747      break;      break;
2748    
2749    case 56:    case 56:
2750  #line 147 "lscp.y"  #line 147 "lscp.y"
2751      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }
2752      break;      break;
2753    
2754    case 57:    case 57:
2755  #line 148 "lscp.y"  #line 148 "lscp.y"
2756      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }
2757      break;      break;
2758    
2759    case 58:    case 58:
2760  #line 149 "lscp.y"  #line 149 "lscp.y"
2761      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }
2762      break;      break;
2763    
2764    case 59:    case 59:
2765  #line 150 "lscp.y"  #line 150 "lscp.y"
2766      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }
2767      break;      break;
2768    
2769    case 60:    case 60:
2770  #line 153 "lscp.y"  #line 151 "lscp.y"
2771      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }
2772      break;      break;
2773    
2774    case 61:    case 61:
2775  #line 154 "lscp.y"  #line 154 "lscp.y"
2776      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2777      break;      break;
2778    
2779    case 62:    case 62:
2780  #line 155 "lscp.y"  #line 155 "lscp.y"
2781      { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }
2782      break;      break;
2783    
2784    case 63:    case 63:
2785  #line 156 "lscp.y"  #line 156 "lscp.y"
2786      { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);       }      { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);        }
2787      break;      break;
2788    
2789    case 64:    case 64:
2790  #line 157 "lscp.y"  #line 157 "lscp.y"
2791      { yyval.String = yyvsp[0].String;                                                         }      { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2792      break;      break;
2793    
2794    case 65:    case 65:
2795  #line 158 "lscp.y"  #line 158 "lscp.y"
2796      { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum);  }      { yyval.String = yyvsp[0].String;                                                         }
2797      break;      break;
2798    
2799    case 66:    case 66:
2800  #line 161 "lscp.y"  #line 159 "lscp.y"
2801      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }      { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum);  }
2802      break;      break;
2803    
2804    case 67:    case 67:
2805  #line 162 "lscp.y"  #line 162 "lscp.y"
2806      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
2807      break;      break;
2808    
2809    case 68:    case 68:
2810  #line 163 "lscp.y"  #line 163 "lscp.y"
2811      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }      { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }
2812      break;      break;
2813    
2814    case 69:    case 69:
2815  #line 164 "lscp.y"  #line 164 "lscp.y"
2816      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }
2817      break;      break;
2818    
2819    case 70:    case 70:
2820  #line 167 "lscp.y"  #line 165 "lscp.y"
2821      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }
2822      break;      break;
2823    
2824    case 71:    case 71:
2825  #line 168 "lscp.y"  #line 168 "lscp.y"
2826      { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number);         }      { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }
2827      break;      break;
2828    
2829    case 72:    case 72:
2830  #line 171 "lscp.y"  #line 169 "lscp.y"
2831      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number);   }
2832      break;      break;
2833    
2834    case 73:    case 73:
# Line 1700  yyreduce: Line 2837  yyreduce:
2837      break;      break;
2838    
2839    case 74:    case 74:
2840  #line 175 "lscp.y"  #line 173 "lscp.y"
2841      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }      { yyval.String = yyvsp[0].String; }
2842      break;      break;
2843    
2844    case 75:    case 75:
2845  #line 176 "lscp.y"  #line 176 "lscp.y"
2846      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }      { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
2847      break;      break;
2848    
2849    case 76:    case 76:
2850  #line 177 "lscp.y"  #line 177 "lscp.y"
2851      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
2852      break;      break;
2853    
2854    case 77:    case 77:
2855  #line 178 "lscp.y"  #line 178 "lscp.y"
2856      { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);  }      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }
2857      break;      break;
2858    
2859    case 78:    case 78:
2860  #line 179 "lscp.y"  #line 179 "lscp.y"
2861      { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number);        }      { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);      }
2862      break;      break;
2863    
2864    case 79:    case 79:
2865  #line 180 "lscp.y"  #line 180 "lscp.y"
2866      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number);        }
2867      break;      break;
2868    
2869    case 80:    case 80:
2870  #line 181 "lscp.y"  #line 181 "lscp.y"
2871      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number);          }
2872      break;      break;
2873    
2874    case 81:    case 81:
2875  #line 182 "lscp.y"  #line 182 "lscp.y"
2876      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }
2877      break;      break;
2878    
2879    case 82:    case 82:
2880  #line 183 "lscp.y"  #line 183 "lscp.y"
2881      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }      { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }
2882      break;      break;
2883    
2884    case 83:    case 83:
2885  #line 186 "lscp.y"  #line 184 "lscp.y"
2886      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }
2887      break;      break;
2888    
2889    case 84:    case 84:
2890  #line 187 "lscp.y"  #line 187 "lscp.y"
2891      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }      { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }
2892      break;      break;
2893    
2894    case 85:    case 85:
2895  #line 190 "lscp.y"  #line 188 "lscp.y"
2896      { yyval.FillResponse = fill_response_bytes;      }      { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }
2897      break;      break;
2898    
2899    case 86:    case 86:
2900  #line 191 "lscp.y"  #line 191 "lscp.y"
2901      { yyval.FillResponse = fill_response_percentage; }      { yyval.FillResponse = fill_response_bytes;      }
2902      break;      break;
2903    
2904    case 87:    case 87:
2905  #line 194 "lscp.y"  #line 192 "lscp.y"
2906      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }      { yyval.FillResponse = fill_response_percentage; }
2907      break;      break;
2908    
2909    case 88:    case 88:
2910  #line 195 "lscp.y"  #line 195 "lscp.y"
2911      { yyval.String = LSCPSERVER->GetMidiInputDevices();   }      { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }
2912      break;      break;
2913    
2914    case 89:    case 89:
2915  #line 196 "lscp.y"  #line 196 "lscp.y"
2916      { yyval.String = LSCPSERVER->ListChannels();          }      { yyval.String = LSCPSERVER->GetMidiInputDevices();   }
2917      break;      break;
2918    
2919    case 90:    case 90:
2920  #line 199 "lscp.y"  #line 197 "lscp.y"
2921      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->ListChannels();          }
2922      break;      break;
2923    
2924    case 91:    case 91:
2925  #line 200 "lscp.y"  #line 200 "lscp.y"
2926      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true);       }      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number);       }
2927      break;      break;
2928    
2929    case 92:    case 92:
2930  #line 203 "lscp.y"  #line 201 "lscp.y"
2931      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number);       }      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); }
2932        break;
2933    
2934      case 93:
2935    #line 204 "lscp.y"
2936        { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }
2937      break;      break;
2938    
2939    case 101:    case 101:
2940  #line 228 "lscp.y"  #line 226 "lscp.y"
2941      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.Dotnum = yyvsp[0].Number; }
2942      break;      break;
2943    
2944    case 108:    case 108:
2945  #line 245 "lscp.y"  #line 243 "lscp.y"
2946      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str(); }
2947      break;      break;
2948    
2949    case 109:    case 109:
2950  #line 246 "lscp.y"  #line 244 "lscp.y"
2951      { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str();       }      { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str(); }
2952      break;      break;
2953    
2954    case 110:    case 110:
2955  #line 249 "lscp.y"  #line 250 "lscp.y"
2956      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.Dotnum = yyvsp[0].Number; }
2957      break;      break;
2958    
2959    case 111:    case 111:
2960  #line 250 "lscp.y"  #line 251 "lscp.y"
2961      { yyval.Dotnum = -1; }      { yyval.Dotnum = -1; }
2962      break;      break;
2963    
2964    case 112:    case 112:
2965  #line 253 "lscp.y"  #line 254 "lscp.y"
2966      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { std::string s; s = yyvsp[0].Char; yyval.String = s; }
2967      break;      break;
2968    
2969    case 113:    case 113:
2970  #line 254 "lscp.y"  #line 255 "lscp.y"
2971      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }
2972      break;      break;
2973    
2974      case 114:
2975    #line 258 "lscp.y"
2976        { yyval.Dotnum = atoi(String(yyvsp[-2].String + "." + yyvsp[0].String).c_str());                         }
2977        break;
2978    
2979      case 115:
2980    #line 259 "lscp.y"
2981        { String s = "+"; s += yyvsp[-2].String; s += "."; s += yyvsp[0].String; yyval.Dotnum = atof(s.c_str()); }
2982        break;
2983    
2984      case 116:
2985    #line 260 "lscp.y"
2986        { yyval.Dotnum = atof(String("-" + yyvsp[-2].String + "." + yyvsp[0].String).c_str());                   }
2987        break;
2988    
2989      case 117:
2990    #line 264 "lscp.y"
2991        { yyval.String = yyvsp[0].Char;      }
2992        break;
2993    
2994      case 118:
2995    #line 265 "lscp.y"
2996        { yyval.String = yyvsp[-1].String + yyvsp[0].Char; }
2997        break;
2998    
2999      case 119:
3000    #line 268 "lscp.y"
3001        { yyval.Char = '0'; }
3002        break;
3003    
3004      case 120:
3005    #line 269 "lscp.y"
3006        { yyval.Char = '1'; }
3007        break;
3008    
3009      case 121:
3010    #line 270 "lscp.y"
3011        { yyval.Char = '2'; }
3012        break;
3013    
3014      case 122:
3015    #line 271 "lscp.y"
3016        { yyval.Char = '3'; }
3017        break;
3018    
3019      case 123:
3020    #line 272 "lscp.y"
3021        { yyval.Char = '4'; }
3022        break;
3023    
3024      case 124:
3025    #line 273 "lscp.y"
3026        { yyval.Char = '5'; }
3027        break;
3028    
3029      case 125:
3030    #line 274 "lscp.y"
3031        { yyval.Char = '6'; }
3032        break;
3033    
3034      case 126:
3035    #line 275 "lscp.y"
3036        { yyval.Char = '7'; }
3037        break;
3038    
3039      case 127:
3040    #line 276 "lscp.y"
3041        { yyval.Char = '8'; }
3042        break;
3043    
3044      case 128:
3045    #line 277 "lscp.y"
3046        { yyval.Char = '9'; }
3047        break;
3048    
3049      case 129:
3050    #line 280 "lscp.y"
3051        { yyval.Number = atoi(String(1, yyvsp[0].Char).c_str());      }
3052        break;
3053    
3054      case 130:
3055    #line 281 "lscp.y"
3056        { yyval.Number = atoi(String(String("1") + yyvsp[0].String).c_str()); }
3057        break;
3058    
3059      case 131:
3060    #line 282 "lscp.y"
3061        { yyval.Number = atoi(String(String("2") + yyvsp[0].String).c_str()); }
3062        break;
3063    
3064      case 132:
3065    #line 283 "lscp.y"
3066        { yyval.Number = atoi(String(String("3") + yyvsp[0].String).c_str()); }
3067        break;
3068    
3069      case 133:
3070    #line 284 "lscp.y"
3071        { yyval.Number = atoi(String(String("4") + yyvsp[0].String).c_str()); }
3072        break;
3073    
3074      case 134:
3075    #line 285 "lscp.y"
3076        { yyval.Number = atoi(String(String("5") + yyvsp[0].String).c_str()); }
3077        break;
3078    
3079      case 135:
3080    #line 286 "lscp.y"
3081        { yyval.Number = atoi(String(String("6") + yyvsp[0].String).c_str()); }
3082        break;
3083    
3084      case 136:
3085    #line 287 "lscp.y"
3086        { yyval.Number = atoi(String(String("7") + yyvsp[0].String).c_str()); }
3087        break;
3088    
3089      case 137:
3090    #line 288 "lscp.y"
3091        { yyval.Number = atoi(String(String("8") + yyvsp[0].String).c_str()); }
3092        break;
3093    
3094      case 138:
3095    #line 289 "lscp.y"
3096        { yyval.Number = atoi(String(String("9") + yyvsp[0].String).c_str()); }
3097        break;
3098    
3099      case 139:
3100    #line 291 "lscp.y"
3101        { yyval.Char = 'A'; }
3102        break;
3103    
3104      case 140:
3105    #line 291 "lscp.y"
3106        { yyval.Char = 'B'; }
3107        break;
3108    
3109      case 141:
3110    #line 291 "lscp.y"
3111        { yyval.Char = 'C'; }
3112        break;
3113    
3114      case 142:
3115    #line 291 "lscp.y"
3116        { yyval.Char = 'D'; }
3117        break;
3118    
3119      case 143:
3120    #line 291 "lscp.y"
3121        { yyval.Char = 'E'; }
3122        break;
3123    
3124      case 144:
3125    #line 291 "lscp.y"
3126        { yyval.Char = 'F'; }
3127        break;
3128    
3129      case 145:
3130    #line 291 "lscp.y"
3131        { yyval.Char = 'G'; }
3132        break;
3133    
3134      case 146:
3135    #line 291 "lscp.y"
3136        { yyval.Char = 'H'; }
3137        break;
3138    
3139      case 147:
3140    #line 291 "lscp.y"
3141        { yyval.Char = 'I'; }
3142        break;
3143    
3144      case 148:
3145    #line 291 "lscp.y"
3146        { yyval.Char = 'J'; }
3147        break;
3148    
3149      case 149:
3150    #line 291 "lscp.y"
3151        { yyval.Char = 'K'; }
3152        break;
3153    
3154      case 150:
3155    #line 291 "lscp.y"
3156        { yyval.Char = 'L'; }
3157        break;
3158    
3159      case 151:
3160    #line 291 "lscp.y"
3161        { yyval.Char = 'M'; }
3162        break;
3163    
3164      case 152:
3165    #line 291 "lscp.y"
3166        { yyval.Char = 'N'; }
3167        break;
3168    
3169      case 153:
3170    #line 291 "lscp.y"
3171        { yyval.Char = 'O'; }
3172        break;
3173    
3174      case 154:
3175    #line 291 "lscp.y"
3176        { yyval.Char = 'P'; }
3177        break;
3178    
3179      case 155:
3180    #line 291 "lscp.y"
3181        { yyval.Char = 'Q'; }
3182        break;
3183    
3184      case 156:
3185    #line 291 "lscp.y"
3186        { yyval.Char = 'R'; }
3187        break;
3188    
3189      case 157:
3190    #line 291 "lscp.y"
3191        { yyval.Char = 'S'; }
3192        break;
3193    
3194      case 158:
3195    #line 291 "lscp.y"
3196        { yyval.Char = 'T'; }
3197        break;
3198    
3199      case 159:
3200    #line 291 "lscp.y"
3201        { yyval.Char = 'U'; }
3202        break;
3203    
3204      case 160:
3205    #line 291 "lscp.y"
3206        { yyval.Char = 'V'; }
3207        break;
3208    
3209      case 161:
3210    #line 291 "lscp.y"
3211        { yyval.Char = 'W'; }
3212        break;
3213    
3214      case 162:
3215    #line 291 "lscp.y"
3216        { yyval.Char = 'X'; }
3217        break;
3218    
3219      case 163:
3220    #line 291 "lscp.y"
3221        { yyval.Char = 'Y'; }
3222        break;
3223    
3224      case 164:
3225    #line 291 "lscp.y"
3226        { yyval.Char = 'Z'; }
3227        break;
3228    
3229      case 165:
3230    #line 292 "lscp.y"
3231        { yyval.Char = 'a'; }
3232        break;
3233    
3234      case 166:
3235    #line 292 "lscp.y"
3236        { yyval.Char = 'b'; }
3237        break;
3238    
3239      case 167:
3240    #line 292 "lscp.y"
3241        { yyval.Char = 'c'; }
3242        break;
3243    
3244      case 168:
3245    #line 292 "lscp.y"
3246        { yyval.Char = 'd'; }
3247        break;
3248    
3249      case 169:
3250    #line 292 "lscp.y"
3251        { yyval.Char = 'e'; }
3252        break;
3253    
3254      case 170:
3255    #line 292 "lscp.y"
3256        { yyval.Char = 'f'; }
3257        break;
3258    
3259      case 171:
3260    #line 292 "lscp.y"
3261        { yyval.Char = 'g'; }
3262        break;
3263    
3264      case 172:
3265    #line 292 "lscp.y"
3266        { yyval.Char = 'h'; }
3267        break;
3268    
3269      case 173:
3270    #line 292 "lscp.y"
3271        { yyval.Char = 'i'; }
3272        break;
3273    
3274      case 174:
3275    #line 292 "lscp.y"
3276        { yyval.Char = 'j'; }
3277        break;
3278    
3279      case 175:
3280    #line 292 "lscp.y"
3281        { yyval.Char = 'k'; }
3282        break;
3283    
3284      case 176:
3285    #line 292 "lscp.y"
3286        { yyval.Char = 'l'; }
3287        break;
3288    
3289      case 177:
3290    #line 292 "lscp.y"
3291        { yyval.Char = 'm'; }
3292        break;
3293    
3294      case 178:
3295    #line 292 "lscp.y"
3296        { yyval.Char = 'n'; }
3297        break;
3298    
3299      case 179:
3300    #line 292 "lscp.y"
3301        { yyval.Char = 'o'; }
3302        break;
3303    
3304      case 180:
3305    #line 292 "lscp.y"
3306        { yyval.Char = 'p'; }
3307        break;
3308    
3309      case 181:
3310    #line 292 "lscp.y"
3311        { yyval.Char = 'q'; }
3312        break;
3313    
3314      case 182:
3315    #line 292 "lscp.y"
3316        { yyval.Char = 'r'; }
3317        break;
3318    
3319      case 183:
3320    #line 292 "lscp.y"
3321        { yyval.Char = 's'; }
3322        break;
3323    
3324      case 184:
3325    #line 292 "lscp.y"
3326        { yyval.Char = 't'; }
3327        break;
3328    
3329      case 185:
3330    #line 292 "lscp.y"
3331        { yyval.Char = 'u'; }
3332        break;
3333    
3334      case 186:
3335    #line 292 "lscp.y"
3336        { yyval.Char = 'v'; }
3337        break;
3338    
3339      case 187:
3340    #line 292 "lscp.y"
3341        { yyval.Char = 'w'; }
3342        break;
3343    
3344      case 188:
3345    #line 292 "lscp.y"
3346        { yyval.Char = 'x'; }
3347        break;
3348    
3349      case 189:
3350    #line 292 "lscp.y"
3351        { yyval.Char = 'y'; }
3352        break;
3353    
3354      case 190:
3355    #line 292 "lscp.y"
3356        { yyval.Char = 'z'; }
3357        break;
3358    
3359      case 191:
3360    #line 293 "lscp.y"
3361        { yyval.Char = '0'; }
3362        break;
3363    
3364      case 192:
3365    #line 293 "lscp.y"
3366        { yyval.Char = '1'; }
3367        break;
3368    
3369      case 193:
3370    #line 293 "lscp.y"
3371        { yyval.Char = '2'; }
3372        break;
3373    
3374      case 194:
3375    #line 293 "lscp.y"
3376        { yyval.Char = '3'; }
3377        break;
3378    
3379      case 195:
3380    #line 293 "lscp.y"
3381        { yyval.Char = '4'; }
3382        break;
3383    
3384      case 196:
3385    #line 293 "lscp.y"
3386        { yyval.Char = '5'; }
3387        break;
3388    
3389      case 197:
3390    #line 293 "lscp.y"
3391        { yyval.Char = '6'; }
3392        break;
3393    
3394      case 198:
3395    #line 293 "lscp.y"
3396        { yyval.Char = '7'; }
3397        break;
3398    
3399      case 199:
3400    #line 293 "lscp.y"
3401        { yyval.Char = '8'; }
3402        break;
3403    
3404      case 200:
3405    #line 293 "lscp.y"
3406        { yyval.Char = '9'; }
3407        break;
3408    
3409      case 201:
3410    #line 294 "lscp.y"
3411        { yyval.Char = '!'; }
3412        break;
3413    
3414      case 202:
3415    #line 294 "lscp.y"
3416        { yyval.Char = '#'; }
3417        break;
3418    
3419      case 203:
3420    #line 294 "lscp.y"
3421        { yyval.Char = '$'; }
3422        break;
3423    
3424      case 204:
3425    #line 294 "lscp.y"
3426        { yyval.Char = '%'; }
3427        break;
3428    
3429      case 205:
3430    #line 294 "lscp.y"
3431        { yyval.Char = '&'; }
3432        break;
3433    
3434      case 206:
3435    #line 294 "lscp.y"
3436        { yyval.Char = '('; }
3437        break;
3438    
3439      case 207:
3440    #line 294 "lscp.y"
3441        { yyval.Char = ')'; }
3442        break;
3443    
3444      case 208:
3445    #line 294 "lscp.y"
3446        { yyval.Char = '*'; }
3447        break;
3448    
3449      case 209:
3450    #line 294 "lscp.y"
3451        { yyval.Char = '+'; }
3452        break;
3453    
3454      case 210:
3455    #line 294 "lscp.y"
3456        { yyval.Char = '-'; }
3457        break;
3458    
3459      case 211:
3460    #line 294 "lscp.y"
3461        { yyval.Char = '.'; }
3462        break;
3463    
3464      case 212:
3465    #line 294 "lscp.y"
3466        { yyval.Char = '/'; }
3467        break;
3468    
3469      case 213:
3470    #line 295 "lscp.y"
3471        { yyval.Char = ':'; }
3472        break;
3473    
3474      case 214:
3475    #line 295 "lscp.y"
3476        { yyval.Char = ';'; }
3477        break;
3478    
3479      case 215:
3480    #line 295 "lscp.y"
3481        { yyval.Char = '<'; }
3482        break;
3483    
3484      case 216:
3485    #line 295 "lscp.y"
3486        { yyval.Char = '='; }
3487        break;
3488    
3489      case 217:
3490    #line 295 "lscp.y"
3491        { yyval.Char = '>'; }
3492        break;
3493    
3494      case 218:
3495    #line 295 "lscp.y"
3496        { yyval.Char = '?'; }
3497        break;
3498    
3499      case 219:
3500    #line 295 "lscp.y"
3501        { yyval.Char = '@'; }
3502        break;
3503    
3504      case 220:
3505    #line 296 "lscp.y"
3506        { yyval.Char = '['; }
3507        break;
3508    
3509      case 221:
3510    #line 296 "lscp.y"
3511        { yyval.Char = '\\'; }
3512        break;
3513    
3514      case 222:
3515    #line 296 "lscp.y"
3516        { yyval.Char = ']'; }
3517        break;
3518    
3519      case 223:
3520    #line 296 "lscp.y"
3521        { yyval.Char = '^'; }
3522        break;
3523    
3524      case 224:
3525    #line 296 "lscp.y"
3526        { yyval.Char = '_'; }
3527        break;
3528    
3529      case 225:
3530    #line 297 "lscp.y"
3531        { yyval.Char = '{'; }
3532        break;
3533    
3534      case 226:
3535    #line 297 "lscp.y"
3536        { yyval.Char = '|'; }
3537        break;
3538    
3539      case 227:
3540    #line 297 "lscp.y"
3541        { yyval.Char = '}'; }
3542        break;
3543    
3544      case 228:
3545    #line 297 "lscp.y"
3546        { yyval.Char = '~'; }
3547        break;
3548    
3549      case 229:
3550    #line 298 "lscp.y"
3551        { yyval.Char = '\200'; }
3552        break;
3553    
3554      case 230:
3555    #line 298 "lscp.y"
3556        { yyval.Char = '\201'; }
3557        break;
3558    
3559      case 231:
3560    #line 298 "lscp.y"
3561        { yyval.Char = '\202'; }
3562        break;
3563    
3564      case 232:
3565    #line 299 "lscp.y"
3566        { yyval.Char = '\203'; }
3567        break;
3568    
3569      case 233:
3570    #line 299 "lscp.y"
3571        { yyval.Char = '\204'; }
3572        break;
3573    
3574      case 234:
3575    #line 299 "lscp.y"
3576        { yyval.Char = '\205'; }
3577        break;
3578    
3579      case 235:
3580    #line 300 "lscp.y"
3581        { yyval.Char = '\206'; }
3582        break;
3583    
3584      case 236:
3585    #line 300 "lscp.y"
3586        { yyval.Char = '\207'; }
3587        break;
3588    
3589      case 237:
3590    #line 300 "lscp.y"
3591        { yyval.Char = '\210'; }
3592        break;
3593    
3594      case 238:
3595    #line 301 "lscp.y"
3596        { yyval.Char = '\211'; }
3597        break;
3598    
3599      case 239:
3600    #line 301 "lscp.y"
3601        { yyval.Char = '\212'; }
3602        break;
3603    
3604      case 240:
3605    #line 301 "lscp.y"
3606        { yyval.Char = '\213'; }
3607        break;
3608    
3609      case 241:
3610    #line 302 "lscp.y"
3611        { yyval.Char = '\214'; }
3612        break;
3613    
3614      case 242:
3615    #line 302 "lscp.y"
3616        { yyval.Char = '\215'; }
3617        break;
3618    
3619      case 243:
3620    #line 302 "lscp.y"
3621        { yyval.Char = '\216'; }
3622        break;
3623    
3624      case 244:
3625    #line 303 "lscp.y"
3626        { yyval.Char = '\217'; }
3627        break;
3628    
3629      case 245:
3630    #line 303 "lscp.y"
3631        { yyval.Char = '\220'; }
3632        break;
3633    
3634      case 246:
3635    #line 303 "lscp.y"
3636        { yyval.Char = '\221'; }
3637        break;
3638    
3639      case 247:
3640    #line 304 "lscp.y"
3641        { yyval.Char = '\222'; }
3642        break;
3643    
3644      case 248:
3645    #line 304 "lscp.y"
3646        { yyval.Char = '\223'; }
3647        break;
3648    
3649      case 249:
3650    #line 304 "lscp.y"
3651        { yyval.Char = '\224'; }
3652        break;
3653    
3654      case 250:
3655    #line 305 "lscp.y"
3656        { yyval.Char = '\225'; }
3657        break;
3658    
3659      case 251:
3660    #line 305 "lscp.y"
3661        { yyval.Char = '\226'; }
3662        break;
3663    
3664      case 252:
3665    #line 305 "lscp.y"
3666        { yyval.Char = '\227'; }
3667        break;
3668    
3669      case 253:
3670    #line 306 "lscp.y"
3671        { yyval.Char = '\230'; }
3672        break;
3673    
3674      case 254:
3675    #line 306 "lscp.y"
3676        { yyval.Char = '\231'; }
3677        break;
3678    
3679      case 255:
3680    #line 306 "lscp.y"
3681        { yyval.Char = '\232'; }
3682        break;
3683    
3684      case 256:
3685    #line 307 "lscp.y"
3686        { yyval.Char = '\233'; }
3687        break;
3688    
3689      case 257:
3690    #line 307 "lscp.y"
3691        { yyval.Char = '\234'; }
3692        break;
3693    
3694      case 258:
3695    #line 307 "lscp.y"
3696        { yyval.Char = '\235'; }
3697        break;
3698    
3699      case 259:
3700    #line 308 "lscp.y"
3701        { yyval.Char = '\236'; }
3702        break;
3703    
3704      case 260:
3705    #line 308 "lscp.y"
3706        { yyval.Char = '\237'; }
3707        break;
3708    
3709      case 261:
3710    #line 308 "lscp.y"
3711        { yyval.Char = '\240'; }
3712        break;
3713    
3714      case 262:
3715    #line 309 "lscp.y"
3716        { yyval.Char = '\241'; }
3717        break;
3718    
3719      case 263:
3720    #line 309 "lscp.y"
3721        { yyval.Char = '\242'; }
3722        break;
3723    
3724      case 264:
3725    #line 309 "lscp.y"
3726        { yyval.Char = '\243'; }
3727        break;
3728    
3729      case 265:
3730    #line 310 "lscp.y"
3731        { yyval.Char = '\244'; }
3732        break;
3733    
3734      case 266:
3735    #line 310 "lscp.y"
3736        { yyval.Char = '\245'; }
3737        break;
3738    
3739      case 267:
3740    #line 310 "lscp.y"
3741        { yyval.Char = '\246'; }
3742        break;
3743    
3744      case 268:
3745    #line 311 "lscp.y"
3746        { yyval.Char = '\247'; }
3747        break;
3748    
3749      case 269:
3750    #line 311 "lscp.y"
3751        { yyval.Char = '\250'; }
3752        break;
3753    
3754      case 270:
3755    #line 311 "lscp.y"
3756        { yyval.Char = '\251'; }
3757        break;
3758    
3759      case 271:
3760    #line 312 "lscp.y"
3761        { yyval.Char = '\252'; }
3762        break;
3763    
3764      case 272:
3765    #line 312 "lscp.y"
3766        { yyval.Char = '\253'; }
3767        break;
3768    
3769      case 273:
3770    #line 312 "lscp.y"
3771        { yyval.Char = '\254'; }
3772        break;
3773    
3774      case 274:
3775    #line 313 "lscp.y"
3776        { yyval.Char = '\255'; }
3777        break;
3778    
3779      case 275:
3780    #line 313 "lscp.y"
3781        { yyval.Char = '\256'; }
3782        break;
3783    
3784      case 276:
3785    #line 313 "lscp.y"
3786        { yyval.Char = '\257'; }
3787        break;
3788    
3789      case 277:
3790    #line 314 "lscp.y"
3791        { yyval.Char = '\260'; }
3792        break;
3793    
3794      case 278:
3795    #line 314 "lscp.y"
3796        { yyval.Char = '\261'; }
3797        break;
3798    
3799      case 279:
3800    #line 314 "lscp.y"
3801        { yyval.Char = '\262'; }
3802        break;
3803    
3804      case 280:
3805    #line 315 "lscp.y"
3806        { yyval.Char = '\263'; }
3807        break;
3808    
3809      case 281:
3810    #line 315 "lscp.y"
3811        { yyval.Char = '\264'; }
3812        break;
3813    
3814      case 282:
3815    #line 315 "lscp.y"
3816        { yyval.Char = '\265'; }
3817        break;
3818    
3819      case 283:
3820    #line 316 "lscp.y"
3821        { yyval.Char = '\266'; }
3822        break;
3823    
3824      case 284:
3825    #line 316 "lscp.y"
3826        { yyval.Char = '\267'; }
3827        break;
3828    
3829      case 285:
3830    #line 316 "lscp.y"
3831        { yyval.Char = '\270'; }
3832        break;
3833    
3834      case 286:
3835    #line 317 "lscp.y"
3836        { yyval.Char = '\271'; }
3837        break;
3838    
3839      case 287:
3840    #line 317 "lscp.y"
3841        { yyval.Char = '\272'; }
3842        break;
3843    
3844      case 288:
3845    #line 317 "lscp.y"
3846        { yyval.Char = '\273'; }
3847        break;
3848    
3849      case 289:
3850    #line 318 "lscp.y"
3851        { yyval.Char = '\274'; }
3852        break;
3853    
3854      case 290:
3855    #line 318 "lscp.y"
3856        { yyval.Char = '\275'; }
3857        break;
3858    
3859      case 291:
3860    #line 318 "lscp.y"
3861        { yyval.Char = '\276'; }
3862        break;
3863    
3864      case 292:
3865    #line 319 "lscp.y"
3866        { yyval.Char = '\277'; }
3867        break;
3868    
3869      case 293:
3870    #line 319 "lscp.y"
3871        { yyval.Char = '\300'; }
3872        break;
3873    
3874      case 294:
3875    #line 319 "lscp.y"
3876        { yyval.Char = '\301'; }
3877        break;
3878    
3879      case 295:
3880    #line 320 "lscp.y"
3881        { yyval.Char = '\302'; }
3882        break;
3883    
3884      case 296:
3885    #line 320 "lscp.y"
3886        { yyval.Char = '\303'; }
3887        break;
3888    
3889      case 297:
3890    #line 320 "lscp.y"
3891        { yyval.Char = '\304'; }
3892        break;
3893    
3894      case 298:
3895    #line 321 "lscp.y"
3896        { yyval.Char = '\305'; }
3897        break;
3898    
3899      case 299:
3900    #line 321 "lscp.y"
3901        { yyval.Char = '\306'; }
3902        break;
3903    
3904      case 300:
3905    #line 321 "lscp.y"
3906        { yyval.Char = '\307'; }
3907        break;
3908    
3909      case 301:
3910    #line 322 "lscp.y"
3911        { yyval.Char = '\310'; }
3912        break;
3913    
3914      case 302:
3915    #line 322 "lscp.y"
3916        { yyval.Char = '\311'; }
3917        break;
3918    
3919      case 303:
3920    #line 322 "lscp.y"
3921        { yyval.Char = '\312'; }
3922        break;
3923    
3924      case 304:
3925    #line 323 "lscp.y"
3926        { yyval.Char = '\313'; }
3927        break;
3928    
3929      case 305:
3930    #line 323 "lscp.y"
3931        { yyval.Char = '\314'; }
3932        break;
3933    
3934      case 306:
3935    #line 323 "lscp.y"
3936        { yyval.Char = '\315'; }
3937        break;
3938    
3939      case 307:
3940    #line 324 "lscp.y"
3941        { yyval.Char = '\316'; }
3942        break;
3943    
3944      case 308:
3945    #line 324 "lscp.y"
3946        { yyval.Char = '\317'; }
3947        break;
3948    
3949      case 309:
3950    #line 324 "lscp.y"
3951        { yyval.Char = '\320'; }
3952        break;
3953    
3954      case 310:
3955    #line 325 "lscp.y"
3956        { yyval.Char = '\321'; }
3957        break;
3958    
3959      case 311:
3960    #line 325 "lscp.y"
3961        { yyval.Char = '\322'; }
3962        break;
3963    
3964      case 312:
3965    #line 325 "lscp.y"
3966        { yyval.Char = '\323'; }
3967        break;
3968    
3969      case 313:
3970    #line 326 "lscp.y"
3971        { yyval.Char = '\324'; }
3972        break;
3973    
3974      case 314:
3975    #line 326 "lscp.y"
3976        { yyval.Char = '\325'; }
3977        break;
3978    
3979      case 315:
3980    #line 326 "lscp.y"
3981        { yyval.Char = '\326'; }
3982        break;
3983    
3984      case 316:
3985    #line 327 "lscp.y"
3986        { yyval.Char = '\327'; }
3987        break;
3988    
3989      case 317:
3990    #line 327 "lscp.y"
3991        { yyval.Char = '\330'; }
3992        break;
3993    
3994      case 318:
3995    #line 327 "lscp.y"
3996        { yyval.Char = '\331'; }
3997        break;
3998    
3999      case 319:
4000    #line 328 "lscp.y"
4001        { yyval.Char = '\332'; }
4002        break;
4003    
4004      case 320:
4005    #line 328 "lscp.y"
4006        { yyval.Char = '\333'; }
4007        break;
4008    
4009      case 321:
4010    #line 328 "lscp.y"
4011        { yyval.Char = '\334'; }
4012        break;
4013    
4014      case 322:
4015    #line 329 "lscp.y"
4016        { yyval.Char = '\335'; }
4017        break;
4018    
4019      case 323:
4020    #line 329 "lscp.y"
4021        { yyval.Char = '\336'; }
4022        break;
4023    
4024      case 324:
4025    #line 329 "lscp.y"
4026        { yyval.Char = '\337'; }
4027        break;
4028    
4029      case 325:
4030    #line 330 "lscp.y"
4031        { yyval.Char = '\340'; }
4032        break;
4033    
4034      case 326:
4035    #line 330 "lscp.y"
4036        { yyval.Char = '\341'; }
4037        break;
4038    
4039      case 327:
4040    #line 330 "lscp.y"
4041        { yyval.Char = '\342'; }
4042        break;
4043    
4044      case 328:
4045    #line 331 "lscp.y"
4046        { yyval.Char = '\343'; }
4047        break;
4048    
4049      case 329:
4050    #line 331 "lscp.y"
4051        { yyval.Char = '\344'; }
4052        break;
4053    
4054      case 330:
4055    #line 331 "lscp.y"
4056        { yyval.Char = '\345'; }
4057        break;
4058    
4059      case 331:
4060    #line 332 "lscp.y"
4061        { yyval.Char = '\346'; }
4062        break;
4063    
4064      case 332:
4065    #line 332 "lscp.y"
4066        { yyval.Char = '\347'; }
4067        break;
4068    
4069      case 333:
4070    #line 332 "lscp.y"
4071        { yyval.Char = '\350'; }
4072        break;
4073    
4074      case 334:
4075    #line 333 "lscp.y"
4076        { yyval.Char = '\351'; }
4077        break;
4078    
4079      case 335:
4080    #line 333 "lscp.y"
4081        { yyval.Char = '\352'; }
4082        break;
4083    
4084      case 336:
4085    #line 333 "lscp.y"
4086        { yyval.Char = '\353'; }
4087        break;
4088    
4089      case 337:
4090    #line 334 "lscp.y"
4091        { yyval.Char = '\354'; }
4092        break;
4093    
4094      case 338:
4095    #line 334 "lscp.y"
4096        { yyval.Char = '\355'; }
4097        break;
4098    
4099      case 339:
4100    #line 334 "lscp.y"
4101        { yyval.Char = '\356'; }
4102        break;
4103    
4104      case 340:
4105    #line 335 "lscp.y"
4106        { yyval.Char = '\357'; }
4107        break;
4108    
4109      case 341:
4110    #line 335 "lscp.y"
4111        { yyval.Char = '\360'; }
4112        break;
4113    
4114      case 342:
4115    #line 335 "lscp.y"
4116        { yyval.Char = '\361'; }
4117        break;
4118    
4119      case 343:
4120    #line 336 "lscp.y"
4121        { yyval.Char = '\362'; }
4122        break;
4123    
4124      case 344:
4125    #line 336 "lscp.y"
4126        { yyval.Char = '\363'; }
4127        break;
4128    
4129      case 345:
4130    #line 336 "lscp.y"
4131        { yyval.Char = '\364'; }
4132        break;
4133    
4134      case 346:
4135    #line 337 "lscp.y"
4136        { yyval.Char = '\365'; }
4137        break;
4138    
4139      case 347:
4140    #line 337 "lscp.y"
4141        { yyval.Char = '\366'; }
4142        break;
4143    
4144      case 348:
4145    #line 337 "lscp.y"
4146        { yyval.Char = '\367'; }
4147        break;
4148    
4149      case 349:
4150    #line 338 "lscp.y"
4151        { yyval.Char = '\370'; }
4152        break;
4153    
4154      case 350:
4155    #line 338 "lscp.y"
4156        { yyval.Char = '\371'; }
4157        break;
4158    
4159      case 351:
4160    #line 338 "lscp.y"
4161        { yyval.Char = '\372'; }
4162        break;
4163    
4164      case 352:
4165    #line 339 "lscp.y"
4166        { yyval.Char = '\373'; }
4167        break;
4168    
4169      case 353:
4170    #line 339 "lscp.y"
4171        { yyval.Char = '\374'; }
4172        break;
4173    
4174      case 354:
4175    #line 339 "lscp.y"
4176        { yyval.Char = '\375'; }
4177        break;
4178    
4179      case 355:
4180    #line 340 "lscp.y"
4181        { yyval.Char = '\376'; }
4182        break;
4183    
4184      case 356:
4185    #line 340 "lscp.y"
4186        { yyval.Char = '\377'; }
4187        break;
4188    
4189      case 357:
4190    #line 343 "lscp.y"
4191        { yyval.String = '\'' + yyvsp[-1].String + '\''; }
4192        break;
4193    
4194      case 358:
4195    #line 344 "lscp.y"
4196        { yyval.String = '\"' + yyvsp[-1].String + '\"'; }
4197        break;
4198    
4199    
4200      }      }
4201    
4202  /* Line 999 of yacc.c.  */  /* Line 999 of yacc.c.  */
4203  #line 1837 "y.tab.c"  #line 4204 "y.tab.c"
4204    
4205    yyvsp -= yylen;    yyvsp -= yylen;
4206    yyssp -= yylen;    yyssp -= yylen;
# Line 2027  yyreturn: Line 4394  yyreturn:
4394  }  }
4395    
4396    
4397  #line 257 "lscp.y"  #line 500 "lscp.y"
4398    
4399    
4400  /**  /**
# Line 2038  void yyerror(const char* s) { Line 4405  void yyerror(const char* s) {
4405  }  }
4406    
4407  /**  /**
4408   * Clears input buffer and restarts scanner.   * Clears input buffer.
4409   */   */
4410  void restart(yyparse_param_t* pparam, int& yychar) {  void restart(yyparse_param_t* pparam, int& yychar) {
4411      // restart scanner      bytes = 0;
4412      yyrestart(stdin, pparam->pScanner);      ptr   = 0;
     // reset lookahead symbol  
     yyclearin;  
4413  }  }
4414    
4415    

Legend:
Removed from v.218  
changed lines
  Added in v.219

  ViewVC Help
Powered by ViewVC