File: mysql_parser_test.cpp

package info (click to toggle)
mysql-workbench 6.3.8%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 113,932 kB
  • ctags: 87,814
  • sloc: ansic: 955,521; cpp: 427,465; python: 59,728; yacc: 59,129; xml: 54,204; sql: 7,091; objc: 965; makefile: 638; sh: 613; java: 237; perl: 30; ruby: 6; php: 1
file content (900 lines) | stat: -rw-r--r-- 111,951 bytes parent folder | download
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
/* 
 * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; version 2 of the
 * License.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301  USA
 */

#include "wb_helpers.h"

#include "MySQLLexer.h"

#include "grtsqlparser/sql_facade.h"
#include "mysql-parser.h"


#include <boost/assign/list_of.hpp>

// This file contains unit tests for the sql facade based statement splitter and the ANTLR based parser.
// These are low level tests. There's another set of high level tests (see test_mysql_sql_parser.cpp).

#define VERBOSE_OUTPUT 0

using namespace boost::assign;

//--------------------------------------------------------------------------------------------------

BEGIN_TEST_DATA_CLASS(mysql_parser_tests)
protected:
  WBTester _tester;
  std::set<std::string> _charsets;
  //std::auto_ptr<MySQLRecognizer> _recognizer;

  bool parse(const char *sql, size_t size, bool is_utf8, long server_version, const std::string &sql_mode);

TEST_DATA_CONSTRUCTOR(mysql_parser_tests)
{
  // init datatypes
  populate_grt(_tester.grt, _tester);

  // The charset list contains also the 3 charsets that were introduced in 5.5.3.
  grt::ListRef<db_CharacterSet> list= _tester.get_rdbms()->characterSets();
  for (size_t i = 0; i < list->count(); i++)
    _charsets.insert(base::tolower(*list[i]->name()));

  //_recognizer.reset(new MySQLRecognizer(50620, "", _charsets));
}

END_TEST_DATA_CLASS

TEST_MODULE(mysql_parser_tests, "MySQL parser test suite (ANTLR)");

//--------------------------------------------------------------------------------------------------

/**
 * Parses the given string and returns true if no error occurred, otherwise false.
 */
bool Test_object_base<mysql_parser_tests>::parse(const char *sql, size_t size, bool is_utf8, long server_version, const std::string &sql_mode)
{
  // When reusing the recognizer at least one query consumes endless memory (until system crawls to hold).
  // So stay for now with a fresh parser on each test (which makes them slower than they need to be).

  MySQLRecognizer recognizer(server_version, sql_mode, _charsets);
  //_recognizer->set_server_version(server_version);
  //_recognizer->set_sql_mode(sql_mode);
  //_recognizer->parse(sql, size, is_utf8, PuGeneric);
  recognizer.parse(sql, size, is_utf8, PuGeneric);
  bool result = recognizer.error_info().size() == 0;

  return result;
}

//--------------------------------------------------------------------------------------------------

/**
 *  Statement splitter test.
 */
TEST_FUNCTION(5)
{
  const char *filename = "data/db/sakila-db/sakila-data.sql";
  const char *statement_filename = "data/db/sakila-db/single_statement.sql";

  ensure("SQL file does not exist.", g_file_test(filename, G_FILE_TEST_EXISTS) == TRUE);
  ensure("Statement file does not exist.", g_file_test(statement_filename, G_FILE_TEST_EXISTS) == TRUE);

  gchar *sql = NULL;
  gsize  size = 0;
  GError *error = NULL;
  g_file_get_contents(filename, &sql, &size, &error);
  ensure("Error loading sql file", error == NULL);

  SqlFacade::Ref sql_facade = SqlFacade::instance_for_rdbms_name(_tester.grt, "Mysql");

#if VERBOSE_OUTPUT
  test_time_point t1;
#endif

  std::vector<std::pair<size_t, size_t> > ranges;
  sql_facade->splitSqlScript(sql, size, ";", ranges);
 
#if VERBOSE_OUTPUT
  test_time_point t2;

  float time_rate = 1000.0f / (t2 - t1).get_ticks();
  float size_per_sec = size * time_rate / 1024.0f / 1024.0f;
  std::cout << "Splitter performance test (no parsing): " << std::endl 
    << "sakila-data.sql was processed in " << (t2 - t1) << " [" << size_per_sec << " MB/sec]" << std::endl;
#endif

  ensure("Unexpected number of statements returned from splitter", ranges.size() == 57);

  std::string s1(sql, ranges[0].first, ranges[0].second);
  ensure("Wrong statement", s1 == "SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0");

  std::string s3(sql, ranges[56].first, ranges[56].second);
  ensure("Wrong statement", s3 == "SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS");

  std::string s2(sql, ranges[30].first, ranges[30].second);

  g_free(sql);

  sql = NULL;
  size = 0;
  error = NULL;
  g_file_get_contents(statement_filename, &sql, &size, &error);
  ensure("Error loading statement sql file", error == NULL);
  ensure("Wrong statement", s2 == sql);
}

struct TestFile 
{
  const char *name;
  const char *line_break;
  const char *initial_delmiter;
  bool is_utf8;
};

static const TestFile test_files[] = {
  // Large set of all possible query types in different combinations.
  {"data/db/statements.txt", "\n", "$$", true}, 

  // A file with a number of create tables statements that stresses the use
  // of the grammar (e.g. using weird but still valid object names including \n, long
  // list of indices, all possible data types + the default values etc.).
  // Note: it is essential to use \r\n as normal line break in the file to allow usage of \n
  //       in object names.
  {"data/db/nasty_tables.sql", "\r\n", ";", true},

  // Not so many statements, but some very long insert statements.
  {"data/db/sakila-db/sakila-data.sql", "\n", ";", false}
};

/**
 * Parse a number files with various statements.
 */
TEST_FUNCTION(10)
{
#if VERBOSE_OUTPUT
  test_time_point t1;
#endif

  SqlFacade::Ref sql_facade = SqlFacade::instance_for_rdbms_name(_tester.grt, "Mysql");
  size_t count = 0;
  for (size_t i = 0; i < sizeof(test_files) / sizeof(test_files[0]); ++i)
  {
    ensure(base::strfmt("Statements file '%s' does not exist.", test_files[i].name),
      g_file_test(test_files[i].name, G_FILE_TEST_EXISTS) == TRUE);

    gchar *sql = NULL;
    gsize  size = 0;
    GError *error = NULL;
    g_file_get_contents(test_files[i].name, &sql, &size, &error);
    ensure("Error loading sql file", error == NULL);

    std::vector<std::pair<size_t, size_t> >::const_iterator iterator;
    std::vector<std::pair<size_t, size_t> > ranges;
    sql_facade->splitSqlScript(sql, size, test_files[i].initial_delmiter, ranges, test_files[i].line_break);
    count += ranges.size();

    for (iterator = ranges.begin(); iterator != ranges.end(); ++iterator)
    {
      if (!parse(sql + iterator->first, iterator->second, test_files[i].is_utf8, 50604, "ANSI_QUOTES"))
      {
        std::string query(sql + iterator->first, iterator->second);
        ensure("This query failed to parse:\n" + query, false);
      }
    }

    g_free(sql);
  }

#if VERBOSE_OUTPUT
  test_time_point t2;

  std::cout << count << " queries parsed in " << (t2 - t1).get_ticks() / 1000.0 << " s" << std::endl;
#endif

}

//--------------------------------------------------------------------------------------------------

/**
 * This test generates queries with many (all?) MySQL function names used in foreign key creation
 * (parser bug #21114). Taken from the server test suite.
 */

static const char* functions[] = {
  "acos",
  "adddate",
  "addtime"
  "aes_decrypt",
  "aes_encrypt",
  "area",
  "asbinary",
  "asin",
  "astext",
  "aswkb",
  "aswkt",
  "atan",
  "atan2",
  "benchmark",
  "bin",
  "bit_count",
  "bit_length",
  "ceil",
  "ceiling",
  "centroid",
  "character_length",
  "char_length",
  "coercibility",
  "compress",
  "concat",
  "concat_ws",
  "connection_id",
  "conv",
  "convert_tz",
  "cos",
  "cot",
  "crc32",
  "crosses",
  "datediff",
  "date_format",
  "dayname",
  "dayofmonth",
  "dayofweek",
  "dayofyear",
  "decode",
  "degrees",
  "des_decrypt",
  "des_encrypt",
  "dimension",
  "disjoint",
  "elt",
  "encode",
  "encrypt",
  "endpoint",
  "envelope",
  "equals",
  "exp",
  "export_set",
  "exteriorring",
  "extractvalue",
  "find_in_set",
  "floor",
  "found_rows",
  "from_days",
  "from_unixtime",
  "geomcollfromtext",
  "geomcollfromwkb",
  "geometrycollectionfromtext",
  "geometrycollectionfromwkb",
  "geometryfromtext",
  "geometryfromwkb",
  "geometryn",
  "geometrytype",
  "geomfromtext",
  "geomfromwkb",
  "get_lock",
  "glength",
  "greatest",
  "hex",
  "ifnull",
  "inet_aton",
  "inet_ntoa",
  "instr",
  "interiorringn",
  "intersects",
  "isclosed",
  "isempty",
  "isnull",
  "issimple",
  "is_free_lock",
  "is_used_lock",
  "last_day",
  "last_insert_id",
  "lcase",
  "least",
  "length",
  "linefromtext",
  "linefromwkb",
  "linestringfromtext",
  "linestringfromwkb",
  "ln",
  "load_file",
  "locate",
  "log",
  "log10",
  "log2",
  "lower",
  "lpad",
  "ltrim",
  "makedate",
  "maketime",
  "make_set",
  "master_pos_wait",
  "mbrcontains",
  "mbrdisjoint",
  "mbrequal",
  "mbrintersects",
  "mbroverlaps",
  "mbrtouches",
  "mbrwithin",
  "md5",
  "mlinefromtext",
  "mlinefromwkb",
  "monthname",
  "mpointfromtext",
  "mpointfromwkb",
  "mpolyfromtext",
  "mpolyfromwkb",
  "multilinestringfromtext",
  "multilinestringfromwkb",
  "multipointfromtext",
  "multipointfromwkb",
  "multipolygonfromtext",
  "multipolygonfromwkb",
  "name_const",
  "nullif",
  "numgeometries",
  "numinteriorrings",
  "numpoints",
  "oct",
  "octet_length",
  "ord",
  "overlaps",
  "period_add",
  "period_diff",
  "pi",
  "pointfromtext",
  "pointfromwkb",
  "pointn",
  "polyfromtext",
  "polyfromwkb",
  "polygonfromtext",
  "polygonfromwkb",
  "pow",
  "power",
  "quote",
  "radians",
  "rand",
  "release_lock",
  "reverse",
  "round",
  "row_count",
  "rpad",
  "rtrim",
  "sec_to_time",
  "session_user",
  "sha",
  "sha1",
  "sign",
  "sin",
  "sleep",
  "soundex",
  "space",
  "sqrt",
  "srid",
  "startpoint",
  "strcmp",
  "str_to_date",
  "subdate",
  "substring_index",
  "subtime",
  "system_user",
  "tan",
  "timediff",
  "time_format",
  "time_to_sec",
  "touches",
  "to_days",
  "ucase",
  "uncompress",
  "uncompressed_length",
  "unhex",
  "unix_timestamp",
  "updatexml",
  "upper",
  "uuid",
  "version",
  "weekday",
  "weekofyear",
  "within",
  "x",
  "y",
  "yearweek"};

  const char *query1 = "CREATE TABLE %s(\n"
    "col1 int not null,\n"
    "col2 int not null,\n"
    "col3 varchar(10),\n"
    "CONSTRAINT pk PRIMARY KEY (col1, col2)\n"
    ") ENGINE InnoDB";

  const char *query2 = "CREATE TABLE bug21114_child(\n"
    "pk int not null,\n"
    "fk_col1 int not null,\n"
    "fk_col2 int not null,\n"
    "fk_col3 int not null,\n"
    "fk_col4 int not null,\n"
    "CONSTRAINT fk_fct FOREIGN KEY (fk_col1, fk_col2)\n"
    "REFERENCES %s(col1, col2),\n"
    "CONSTRAINT fk_fct_space FOREIGN KEY (fk_col3, fk_col4)\n"
    "REFERENCES %s (col1, col2)\n"
    ") ENGINE InnoDB";

TEST_FUNCTION(20)
{
  int count = sizeof(functions) / sizeof(functions[0]);
  for (int i = 0; i < count; i++)
  {
    std::string query = base::strfmt(query1, functions[i]);
    ensure("A statement failed to parse", parse(query.c_str(), query.size(), true, 50530, "ANSI_QUOTES"));

    query = base::strfmt(query2, functions[i], functions[i]);
    ensure("A statement failed to parse", parse(query.c_str(), query.size(), true, 50530, "ANSI_QUOTES"));
  }
}

//----------------------------------------------------------------------------------------------------------------------

/**
 * Parses the given string and checks the built AST. Returns true if no error occurred, otherwise false.
 */
bool parse_and_compare(const std::string &sql, long server_version, const std::string &sql_mode,
  const std::set<std::string> &charsets, std::vector<ANTLR3_UINT32> tokens, size_t error_count = 0)
{
  MySQLRecognizer recognizer(server_version, sql_mode, charsets);
  recognizer.parse(sql.c_str(), sql.size(), true, PuGeneric);
  if (recognizer.error_info().size() != error_count)
    return false;

  // Walk the list of AST nodes recursively and match exactly the given list of tokens.
  MySQLRecognizerTreeWalker walker = recognizer.tree_walker();
  size_t i = 0;
  do
  {
    if (i >= tokens.size())
      return false;

    if (walker.token_type() != tokens[i++])
      return false;
  } while (walker.next());

  return i == tokens.size();
}

//----------------------------------------------------------------------------------------------------------------------

/**
 * Operator precedence tests. These were taken from the server parser test suite.
 */

static std::vector<std::string> precedenceTestQueries = list_of(
  "select A, B, A OR B, A XOR B, A AND B from t1_30237_bool where C is null order by A, B")
  ("select A, B, C, (A OR B) OR C, A OR (B OR C), A OR B OR C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where ((A OR B) OR C) != (A OR (B OR C))")
  ("select A, B, C, (A XOR B) XOR C, A XOR (B XOR C), A XOR B XOR C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where ((A XOR B) XOR C) != (A XOR (B XOR C))")
  ("select A, B, C, (A AND B) AND C, A AND (B AND C), A AND B AND C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where ((A AND B) AND C) != (A AND (B AND C))")
  ("select A, B, C, (A OR B) AND C, A OR (B AND C), A OR B AND C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where (A OR (B AND C)) != (A OR B AND C)")
  ("select A, B, C, (A AND B) OR C, A AND (B OR C), A AND B OR C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where ((A AND B) OR C) != (A AND B OR C)")
  ("select A, B, C, (A XOR B) AND C, A XOR (B AND C), A XOR B AND C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where (A XOR (B AND C)) != (A XOR B AND C)")
  ("select A, B, C, (A AND B) XOR C, A AND (B XOR C), A AND B XOR C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where ((A AND B) XOR C) != (A AND B XOR C)")
  ("select A, B, C, (A XOR B) OR C, A XOR (B OR C), A XOR B OR C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where ((A XOR B) OR C) != (A XOR B OR C)")
  ("select A, B, C, (A OR B) XOR C, A OR (B XOR C), A OR B XOR C from t1_30237_bool order by A, B, C")
  ("select count(*) from t1_30237_bool where (A OR (B XOR C)) != (A OR B XOR C)")
  ("select (NOT FALSE) OR TRUE, NOT (FALSE OR TRUE), NOT FALSE OR TRUE")
  ("select (NOT FALSE) XOR FALSE, NOT (FALSE XOR FALSE), NOT FALSE XOR FALSE")
  ("select (NOT FALSE) AND FALSE, NOT (FALSE AND FALSE), NOT FALSE AND FALSE")
  ("select NOT NOT TRUE, NOT NOT NOT FALSE")
  ("select (NOT NULL) IS TRUE, NOT (NULL IS TRUE), NOT NULL IS TRUE")
  ("select (NOT NULL) IS NOT TRUE, NOT (NULL IS NOT TRUE), NOT NULL IS NOT TRUE")
  ("select (NOT NULL) IS FALSE, NOT (NULL IS FALSE), NOT NULL IS FALSE")
  ("select (NOT NULL) IS NOT FALSE, NOT (NULL IS NOT FALSE), NOT NULL IS NOT FALSE")
  ("select (NOT TRUE) IS UNKNOWN, NOT (TRUE IS UNKNOWN), NOT TRUE IS UNKNOWN")
  ("select (NOT TRUE) IS NOT UNKNOWN, NOT (TRUE IS NOT UNKNOWN), NOT TRUE IS NOT UNKNOWN")
  ("select (NOT TRUE) IS NULL, NOT (TRUE IS NULL), NOT TRUE IS NULL")
  ("select (NOT TRUE) IS NOT NULL, NOT (TRUE IS NOT NULL), NOT TRUE IS NOT NULL")
  ("select FALSE IS NULL IS NULL IS NULL")
  ("select TRUE IS NOT NULL IS NOT NULL IS NOT NULL")
  ("select 1 <=> 2 <=> 2, (1 <=> 2) <=> 2, 1 <=> (2 <=> 2)")
  ("select 1 = 2 = 2, (1 = 2) = 2, 1 = (2 = 2)")
  ("select 1 != 2 != 3, (1 != 2) != 3, 1 != (2 != 3)")
  ("select 1 <> 2 <> 3, (1 <> 2) <> 3, 1 <> (2 <> 3)")
  ("select 1 < 2 < 3, (1 < 2) < 3, 1 < (2 < 3)")
  ("select 3 <= 2 <= 1, (3 <= 2) <= 1, 3 <= (2 <= 1)")
  ("select 1 > 2 > 3, (1 > 2) > 3, 1 > (2 > 3)")
  ("select 1 >= 2 >= 3, (1 >= 2) >= 3, 1 >= (2 >= 3)")
  ("select 0xF0 | 0x0F | 0x55, (0xF0 | 0x0F) | 0x55, 0xF0 | (0x0F | 0x55)")
  ("select 0xF5 & 0x5F & 0x55, (0xF5 & 0x5F) & 0x55, 0xF5 & (0x5F & 0x55)")
  ("select 4 << 3 << 2, (4 << 3) << 2, 4 << (3 << 2)")
  ("select 256 >> 3 >> 2, (256 >> 3) >> 2, 256 >> (3 >> 2)")
  ("select 0xF0 & 0x0F | 0x55, (0xF0 & 0x0F) | 0x55, 0xF0 & (0x0F | 0x55)")
  ("select 0x55 | 0xF0 & 0x0F, (0x55 | 0xF0) & 0x0F, 0x55 | (0xF0 & 0x0F)")
  ("select 0x0F << 4 | 0x0F, (0x0F << 4) | 0x0F, 0x0F << (4 | 0x0F)")
  ("select 0x0F | 0x0F << 4, (0x0F | 0x0F) << 4, 0x0F | (0x0F << 4)")
  ("select 0xF0 >> 4 | 0xFF, (0xF0 >> 4) | 0xFF, 0xF0 >> (4 | 0xFF)")
  ("select 0xFF | 0xF0 >> 4, (0xFF | 0xF0) >> 4, 0xFF | (0xF0 >> 4)")
  ("select 0x0F << 4 & 0xF0, (0x0F << 4) & 0xF0, 0x0F << (4 & 0xF0)")
  ("select 0xF0 & 0x0F << 4, (0xF0 & 0x0F) << 4, 0xF0 & (0x0F << 4)")
  ("select 0xF0 >> 4 & 0x55, (0xF0 >> 4) & 0x55, 0xF0 >> (4 & 0x55)")
  ("select 0x0F & 0xF0 >> 4, (0x0F & 0xF0) >> 4, 0x0F & (0xF0 >> 4)")
  ("select 0xFF >> 4 << 2, (0xFF >> 4) << 2, 0xFF >> (4 << 2)")
  ("select 0x0F << 4 >> 2, (0x0F << 4) >> 2, 0x0F << (4 >> 2)")
  ("select 1 + 2 + 3, (1 + 2) + 3, 1 + (2 + 3)")
  ("select 1 - 2 - 3, (1 - 2) - 3, 1 - (2 - 3)")
  ("select 1 + 2 - 3, (1 + 2) - 3, 1 + (2 - 3)")
  ("select 1 - 2 + 3, (1 - 2) + 3, 1 - (2 + 3)")
  ("select 0xF0 + 0x0F | 0x55, (0xF0 + 0x0F) | 0x55, 0xF0 + (0x0F | 0x55)")
  ("select 0x55 | 0xF0 + 0x0F, (0x55 | 0xF0) + 0x0F, 0x55 | (0xF0 + 0x0F)")
  ("select 0xF0 + 0x0F & 0x55, (0xF0 + 0x0F) & 0x55, 0xF0 + (0x0F & 0x55)")
  ("select 0x55 & 0xF0 + 0x0F, (0x55 & 0xF0) + 0x0F, 0x55 & (0xF0 + 0x0F)")
  ("select 2 + 3 << 4, (2 + 3) << 4, 2 + (3 << 4)")
  ("select 3 << 4 + 2, (3 << 4) + 2, 3 << (4 + 2)")
  ("select 4 + 3 >> 2, (4 + 3) >> 2, 4 + (3 >> 2)")
  ("select 3 >> 2 + 1, (3 >> 2) + 1, 3 >> (2 + 1)")
  ("select 0xFF - 0x0F | 0x55, (0xFF - 0x0F) | 0x55, 0xFF - (0x0F | 0x55)")
  ("select 0x55 | 0xFF - 0xF0, (0x55 | 0xFF) - 0xF0, 0x55 | (0xFF - 0xF0)")
  ("select 0xFF - 0xF0 & 0x55, (0xFF - 0xF0) & 0x55, 0xFF - (0xF0 & 0x55)")
  ("select 0x55 & 0xFF - 0xF0, (0x55 & 0xFF) - 0xF0, 0x55 & (0xFF - 0xF0)")
  ("select 16 - 3 << 2, (16 - 3) << 2, 16 - (3 << 2)")
  ("select 4 << 3 - 2, (4 << 3) - 2, 4 << (3 - 2)")
  ("select 16 - 3 >> 2, (16 - 3) >> 2, 16 - (3 >> 2)")
  ("select 16 >> 3 - 2, (16 >> 3) - 2, 16 >> (3 - 2)")
  ("select 2 * 3 * 4, (2 * 3) * 4, 2 * (3 * 4)")
  ("select 2 * 0x40 | 0x0F, (2 * 0x40) | 0x0F, 2 * (0x40 | 0x0F)")
  ("select 0x0F | 2 * 0x40, (0x0F | 2) * 0x40, 0x0F | (2 * 0x40)")
  ("select 2 * 0x40 & 0x55, (2 * 0x40) & 0x55, 2 * (0x40 & 0x55)")
  ("select 0xF0 & 2 * 0x40, (0xF0 & 2) * 0x40, 0xF0 & (2 * 0x40)")
  ("select 5 * 3 << 4, (5 * 3) << 4, 5 * (3 << 4)")
  ("select 2 << 3 * 4, (2 << 3) * 4, 2 << (3 * 4)")
  ("select 3 * 4 >> 2, (3 * 4) >> 2, 3 * (4 >> 2)")
  ("select 4 >> 2 * 3, (4 >> 2) * 3, 4 >> (2 * 3)")
  ("select 2 * 3 + 4, (2 * 3) + 4, 2 * (3 + 4)")
  ("select 2 + 3 * 4, (2 + 3) * 4, 2 + (3 * 4)")
  ("select 4 * 3 - 2, (4 * 3) - 2, 4 * (3 - 2)")
  ("select 4 - 3 * 2, (4 - 3) * 2, 4 - (3 * 2)")
  ("select 15 / 5 / 3, (15 / 5) / 3, 15 / (5 / 3)")
  ("select 105 / 5 | 2, (105 / 5) | 2, 105 / (5 | 2)")
  ("select 105 | 2 / 5, (105 | 2) / 5, 105 | (2 / 5)")
  ("select 105 / 5 & 0x0F, (105 / 5) & 0x0F, 105 / (5 & 0x0F)")
  ("select 0x0F & 105 / 5, (0x0F & 105) / 5, 0x0F & (105 / 5)")
  ("select 0x80 / 4 << 2, (0x80 / 4) << 2, 0x80 / (4 << 2)")
  ("select 0x80 << 4 / 2, (0x80 << 4) / 2, 0x80 << (4 / 2)")
  ("select 0x80 / 4 >> 2, (0x80 / 4) >> 2, 0x80 / (4 >> 2)")
  ("select 0x80 >> 4 / 2, (0x80 >> 4) / 2, 0x80 >> (4 / 2)")
  ("select 0x80 / 2 + 2, (0x80 / 2) + 2, 0x80 / (2 + 2)")
  ("select 0x80 + 2 / 2, (0x80 + 2) / 2, 0x80 + (2 / 2)")
  ("select 0x80 / 4 - 2, (0x80 / 4) - 2, 0x80 / (4 - 2)")
  ("select 0x80 - 4 / 2, (0x80 - 4) / 2, 0x80 - (4 / 2)")
  ("select 0xFF ^ 0xF0 ^ 0x0F, (0xFF ^ 0xF0) ^ 0x0F, 0xFF ^ (0xF0 ^ 0x0F)")
  ("select 0xFF ^ 0xF0 ^ 0x55, (0xFF ^ 0xF0) ^ 0x55, 0xFF ^ (0xF0 ^ 0x55)")
  ("select 0xFF ^ 0xF0 | 0x0F, (0xFF ^ 0xF0) | 0x0F, 0xFF ^ (0xF0 | 0x0F)")
  ("select 0xF0 | 0xFF ^ 0xF0, (0xF0 | 0xFF) ^ 0xF0, 0xF0 | (0xFF ^ 0xF0)")
  ("select 0xFF ^ 0xF0 & 0x0F, (0xFF ^ 0xF0) & 0x0F, 0xFF ^ (0xF0 & 0x0F)")
  ("select 0x0F & 0xFF ^ 0xF0, (0x0F & 0xFF) ^ 0xF0, 0x0F & (0xFF ^ 0xF0)")
  ("select 0xFF ^ 0xF0 << 2, (0xFF ^ 0xF0) << 2, 0xFF ^ (0xF0 << 2)")
  ("select 0x0F << 2 ^ 0xFF, (0x0F << 2) ^ 0xFF, 0x0F << (2 ^ 0xFF)")
  ("select 0xFF ^ 0xF0 >> 2, (0xFF ^ 0xF0) >> 2, 0xFF ^ (0xF0 >> 2)")
  ("select 0xFF >> 2 ^ 0xF0, (0xFF >> 2) ^ 0xF0, 0xFF >> (2 ^ 0xF0)")
  ("select 0xFF ^ 0xF0 + 0x0F, (0xFF ^ 0xF0) + 0x0F, 0xFF ^ (0xF0 + 0x0F)")
  ("select 0x0F + 0xFF ^ 0xF0, (0x0F + 0xFF) ^ 0xF0, 0x0F + (0xFF ^ 0xF0)")
  ("select 0xFF ^ 0xF0 - 1, (0xFF ^ 0xF0) - 1, 0xFF ^ (0xF0 - 1)")
  ("select 0x55 - 0x0F ^ 0x55, (0x55 - 0x0F) ^ 0x55, 0x55 - (0x0F ^ 0x55)")
  ("select 0xFF ^ 0xF0 * 2, (0xFF ^ 0xF0) * 2, 0xFF ^ (0xF0 * 2)")
  ("select 2 * 0xFF ^ 0xF0, (2 * 0xFF) ^ 0xF0, 2 * (0xFF ^ 0xF0)")
  ("select 0xFF ^ 0xF0 / 2, (0xFF ^ 0xF0) / 2, 0xFF ^ (0xF0 / 2)")
  ("select 0xF2 / 2 ^ 0xF0, (0xF2 / 2) ^ 0xF0, 0xF2 / (2 ^ 0xF0)")
  ("select 0xFF ^ 0xF0 % 0x20, (0xFF ^ 0xF0) % 0x20, 0xFF ^ (0xF0 % 0x20)")
  ("select 0xFF % 0x20 ^ 0xF0, (0xFF % 0x20) ^ 0xF0, 0xFF % (0x20 ^ 0xF0)")
  ("select 0xFF ^ 0xF0 DIV 2, (0xFF ^ 0xF0) DIV 2, 0xFF ^ (0xF0 DIV 2)")
  ("select 0xF2 DIV 2 ^ 0xF0, (0xF2 DIV 2) ^ 0xF0, 0xF2 DIV (2 ^ 0xF0)")
  ("select 0xFF ^ 0xF0 MOD 0x20, (0xFF ^ 0xF0) MOD 0x20, 0xFF ^ (0xF0 MOD 0x20)")
  ("select 0xFF MOD 0x20 ^ 0xF0, (0xFF MOD 0x20) ^ 0xF0, 0xFF MOD (0x20 ^ 0xF0)"
);

typedef std::vector<ANTLR3_UINT32> TokenVector;

const std::vector<TokenVector> precedenceTestResults = list_of(
  list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(NULL_SYMBOL)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(AND_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(ORDER_SYMBOL)(BY_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(COMMA_SYMBOL)(EXPRESSION_TOKEN)(COLUMN_REF_TOKEN)(IDENTIFIER)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(RUNTIME_FUNCTION_TOKEN)(COUNT_SYMBOL)(OPEN_PAR_SYMBOL)(MULT_OPERATOR)(CLOSE_PAR_SYMBOL)(FROM_SYMBOL)(TABLE_REF_TOKEN)(IDENTIFIER)(WHERE_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(CLOSE_PAR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(XOR_SYMBOL)(COLUMN_REF_TOKEN)(IDENTIFIER)(COLUMN_REF_TOKEN)(IDENTIFIER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(FALSE_SYMBOL)(CLOSE_PAR_SYMBOL)(TRUE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(OR_SYMBOL)(FALSE_SYMBOL)(TRUE_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(OR_SYMBOL)(NOT_SYMBOL)(FALSE_SYMBOL)(TRUE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(FALSE_SYMBOL)(CLOSE_PAR_SYMBOL)(FALSE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(XOR_SYMBOL)(FALSE_SYMBOL)(FALSE_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(XOR_SYMBOL)(NOT_SYMBOL)(FALSE_SYMBOL)(FALSE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(FALSE_SYMBOL)(CLOSE_PAR_SYMBOL)(FALSE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(AND_SYMBOL)(FALSE_SYMBOL)(FALSE_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(AND_SYMBOL)(NOT_SYMBOL)(FALSE_SYMBOL)(FALSE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(NOT_SYMBOL)(TRUE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(NOT_SYMBOL)(NOT_SYMBOL)(FALSE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(NULL_SYMBOL)(CLOSE_PAR_SYMBOL)(TRUE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(NULL_SYMBOL)(TRUE_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(NULL_SYMBOL)(TRUE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(NULL_SYMBOL)(CLOSE_PAR_SYMBOL)(NOT_SYMBOL)(TRUE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(NULL_SYMBOL)(NOT_SYMBOL)(TRUE_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(NULL_SYMBOL)(NOT_SYMBOL)(TRUE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(NULL_SYMBOL)(CLOSE_PAR_SYMBOL)(FALSE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(NULL_SYMBOL)(FALSE_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(NULL_SYMBOL)(FALSE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(NULL_SYMBOL)(CLOSE_PAR_SYMBOL)(NOT_SYMBOL)(FALSE_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(NULL_SYMBOL)(NOT_SYMBOL)(FALSE_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(NULL_SYMBOL)(NOT_SYMBOL)(FALSE_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(TRUE_SYMBOL)(CLOSE_PAR_SYMBOL)(UNKNOWN_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(TRUE_SYMBOL)(UNKNOWN_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(TRUE_SYMBOL)(UNKNOWN_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(TRUE_SYMBOL)(CLOSE_PAR_SYMBOL)(NOT_SYMBOL)(UNKNOWN_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(TRUE_SYMBOL)(NOT_SYMBOL)(UNKNOWN_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(TRUE_SYMBOL)(NOT_SYMBOL)(UNKNOWN_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(TRUE_SYMBOL)(CLOSE_PAR_SYMBOL)(NULL_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(TRUE_SYMBOL)(NULL_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(TRUE_SYMBOL)(NULL_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_SYMBOL)(TRUE_SYMBOL)(CLOSE_PAR_SYMBOL)(NOT_SYMBOL)(NULL_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(IS_SYMBOL)(TRUE_SYMBOL)(NOT_SYMBOL)(NULL_SYMBOL)(CLOSE_PAR_SYMBOL)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(IS_SYMBOL)(TRUE_SYMBOL)(NOT_SYMBOL)(NULL_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(IS_SYMBOL)(IS_SYMBOL)(FALSE_SYMBOL)(NULL_SYMBOL)(NULL_SYMBOL)(NULL_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(IS_SYMBOL)(IS_SYMBOL)(IS_SYMBOL)(TRUE_SYMBOL)(NOT_SYMBOL)(NULL_SYMBOL)(NOT_SYMBOL)(NULL_SYMBOL)(NOT_SYMBOL)(NULL_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NULL_SAFE_EQUAL_OPERATOR)(NULL_SAFE_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NULL_SAFE_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NULL_SAFE_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NULL_SAFE_EQUAL_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NULL_SAFE_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(EQUAL_OPERATOR)(EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(EQUAL_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(NOT_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_EQUAL2_OPERATOR)(NOT_EQUAL2_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_EQUAL2_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL2_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_EQUAL2_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(NOT_EQUAL2_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(LESS_THAN_OPERATOR)(LESS_THAN_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(LESS_THAN_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(LESS_THAN_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(LESS_THAN_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(LESS_THAN_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(LESS_OR_EQUAL_OPERATOR)(LESS_OR_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(LESS_OR_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(LESS_OR_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(LESS_OR_EQUAL_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(LESS_OR_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(GREATER_THAN_OPERATOR)(GREATER_THAN_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(GREATER_THAN_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(GREATER_THAN_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(GREATER_THAN_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(GREATER_THAN_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(GREATER_OR_EQUAL_OPERATOR)(GREATER_OR_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(GREATER_OR_EQUAL_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(GREATER_OR_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(GREATER_OR_EQUAL_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(GREATER_OR_EQUAL_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(INT_NUMBER)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(INT_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_OR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_AND_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_LEFT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(SHIFT_RIGHT_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(PLUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MINUS_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MULT_OPERATOR)(INT_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_OPERATOR)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MOD_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_OPERATOR)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MOD_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_SYMBOL)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(INT_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_SYMBOL)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_SYMBOL)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(DIV_SYMBOL)(HEX_NUMBER)(INT_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(DIV_SYMBOL)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(INT_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_SYMBOL)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_SYMBOL)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MOD_SYMBOL)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>() )
  (list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_SYMBOL)(HEX_NUMBER)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(MOD_SYMBOL)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(HEX_NUMBER)(COMMA_SYMBOL)(SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(MOD_SYMBOL)(HEX_NUMBER)(PAR_EXPRESSION_TOKEN)(OPEN_PAR_SYMBOL)(EXPRESSION_TOKEN)(BITWISE_XOR_OPERATOR)(HEX_NUMBER)(HEX_NUMBER)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF).convert_to_container<TokenVector>()
);

TEST_FUNCTION(25)
{
  ensure_equals("Data and result list must be equal in size", precedenceTestQueries.size(), precedenceTestResults.size());

  for (size_t i = 0; i < precedenceTestQueries.size(); ++i)
  {
    if (!parse_and_compare(precedenceTestQueries[i], 50530, "ANSI_QUOTES", _charsets, precedenceTestResults[i]))
      fail("Operator precedence test - query failed: " + precedenceTestQueries[i]);
  }
}

/**
 * Tests for all relevant SQL modes (ANSI, DB2, MAXDB, MSSQL, ORACLE, POSTGRESQL, MYSQL323, MYSQL40
 * ANSI_QUOTES, PIPES_AS_CONCAT, NO_BACKSLASH_ESCAPES, IGNORE_SPACE, HIGH_NOT_PRECEDENCE and combinations of them).
 */


struct SqlModeTestEntry {
  std::string query;
  std::string sqlMode;
  size_t errors;
  SqlModeTestEntry(std::string q, std::string s, std::size_t e) :
    query(q), sqlMode(s), errors(e) {};
};
TEST_FUNCTION(30)
{

  std::vector<SqlModeTestEntry> sqlModeTestQueries;

  // IGNORE_SPACE
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table count (id int)", "", 0));
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table count(id int)", "", 1));
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table count (id int)", "IGNORE_SPACE", 1));
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table count(id int)", "IGNORE_SPACE", 1));
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table xxx (id int)", "", 0));
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table xxx(id int)", "", 0));
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table xxx (id int)", "IGNORE_SPACE", 0));
  sqlModeTestQueries.push_back(SqlModeTestEntry("create table xxx(id int)", "IGNORE_SPACE", 0));

  // ANSI_QUOTES
  sqlModeTestQueries.push_back(SqlModeTestEntry("select \"abc\" \"def\" 'ghi''\\n\\Z\\z'", "", 0)); // Double quoted text concatenated + alias.
  sqlModeTestQueries.push_back(SqlModeTestEntry("select \"abc\" \"def\" 'ghi''\\n\\Z\\z'", "ANSI_QUOTES", 1)); // column ref + alias + invalid single quoted text.

  // PIPES_AS_CONCAT
  sqlModeTestQueries.push_back(SqlModeTestEntry("select \"abc\" || \"def\"", "", 0));
  sqlModeTestQueries.push_back(SqlModeTestEntry("select \"abc\" || \"def\"", "PIPES_AS_CONCAT", 0));

  // HIGH_NOT_PRECEDENCE
  sqlModeTestQueries.push_back(SqlModeTestEntry("select not 1 between -5 and 5", "", 0));
  sqlModeTestQueries.push_back(SqlModeTestEntry("select not 1 between -5 and 5", "HIGH_NOT_PRECEDENCE", 0));

  // NO_BACKSLASH_ESCAPES
  sqlModeTestQueries.push_back(SqlModeTestEntry("select \"abc \\\"def\"", "", 0));
  sqlModeTestQueries.push_back(SqlModeTestEntry("select \"abc \\\"def\"", "NO_BACKSLASH_ESCAPES", 1));

  std::vector<TokenVector> sqlModeTestResults;
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(IDENTIFIER)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(ANTLR3_TOKEN_INVALID)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(ANTLR3_TOKEN_INVALID)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(ANTLR3_TOKEN_INVALID)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(IDENTIFIER)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(IDENTIFIER)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(IDENTIFIER)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(CREATE_SYMBOL) (TABLE_SYMBOL)(TABLE_NAME_TOKEN)(IDENTIFIER)(OPEN_PAR_SYMBOL)(CREATE_ITEM_TOKEN)(COLUMN_NAME_TOKEN)(IDENTIFIER)(DATA_TYPE_TOKEN)(INT_SYMBOL)(CLOSE_PAR_SYMBOL)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(STRING_TOKEN)(DOUBLE_QUOTED_TEXT)(DOUBLE_QUOTED_TEXT)(SINGLE_QUOTED_TEXT)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (ANTLR3_TOKEN_INVALID)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(LOGICAL_OR_OPERATOR)(STRING_TOKEN)(DOUBLE_QUOTED_TEXT)(STRING_TOKEN)(DOUBLE_QUOTED_TEXT)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(CONCAT_PIPES_SYMBOL)(STRING_TOKEN)(DOUBLE_QUOTED_TEXT)(STRING_TOKEN)(DOUBLE_QUOTED_TEXT)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(NOT_SYMBOL)(BETWEEN_SYMBOL)(INT_NUMBER)(MINUS_OPERATOR)(INT_NUMBER)(AND_SYMBOL)(INT_NUMBER)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(BETWEEN_SYMBOL)(NOT2_SYMBOL)(INT_NUMBER)(MINUS_OPERATOR)(INT_NUMBER)(AND_SYMBOL)(INT_NUMBER)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (SELECT_EXPR_TOKEN)(EXPRESSION_TOKEN)(STRING_TOKEN)(DOUBLE_QUOTED_TEXT)(ANTLR3_TOKEN_EOF));
  sqlModeTestResults.push_back(list_of(SELECT_SYMBOL) (ANTLR3_TOKEN_INVALID)(ANTLR3_TOKEN_EOF));

  for (size_t i = 0; i < sqlModeTestQueries.size(); i++)
  {
    if (!parse_and_compare(sqlModeTestQueries[i].query, 50610, sqlModeTestQueries[i].sqlMode,
      _charsets, sqlModeTestResults[i], sqlModeTestQueries[i].errors))
    {
      fail("SQL mode test - query failed: " + sqlModeTestQueries[i].query);
    }
  }
}

/**
 * Tests the parser's string concatenation feature.
 */
TEST_FUNCTION(35)
{
  std::string sql = "select \"abc\" \"def\" 'ghi''\\n\\z'";

  MySQLRecognizer recognizer(50610, "", _charsets);
  recognizer.parse(sql.c_str(), sql.size(), true, PuGeneric);
  ensure_equals("35.1 String concatenation", recognizer.error_info().size(), 0U);
  
  MySQLRecognizerTreeWalker walker = recognizer.tree_walker();
  ensure("35.2 String concatenation", walker.advance_to_type(STRING_TOKEN, true));
  ensure_equals("35.3 String concatenation", walker.token_text(), "abcdefghi'\nz");
}

struct VersionTestData
{
  long version;
  std::string sql;
  size_t errorCount;
  VersionTestData(long version_, const std::string &sql_, size_t errors_)
  {
    version = version_;
    sql = sql_;
    errorCount = errors_;
  }

};

const std::vector<VersionTestData> versionTestResults = list_of
  (VersionTestData(50100, "grant all privileges on a to mike", 0U))
  (VersionTestData(50100, "grant all privileges on a to mike identified by 'blah'", 0U))
  (VersionTestData(50100, "grant all privileges on a to mike identified by password 'blah'", 0U))
  (VersionTestData(50100, "grant all privileges on a to mike identified by password 'blah'", 0U))
  (VersionTestData(50500, "grant all privileges on a to mike identified by password 'blah'", 0U))
  (VersionTestData(50710, "grant all privileges on a to mike identified by password 'blah'", 0U))
  (VersionTestData(50100, "grant select on *.* to mike identified with 'blah'", 1U))
  (VersionTestData(50600, "grant select on *.* to mike identified with 'blah'", 0U))
  (VersionTestData(50100, "grant select on *.* to mike identified with blah as 'blubb'", 1U))
  (VersionTestData(50600, "grant select on *.* to mike identified with blah as 'blubb'", 0U))
  (VersionTestData(50100, "grant select on *.* to mike identified with blah by 'blubb'", 1U))
  (VersionTestData(50600, "grant select on *.* to mike identified with blah by 'blubb'", 1U))
  (VersionTestData(50706, "grant select on *.* to mike identified with blah by 'blubb'", 0U))
;

// TODO: create tests for all server version dependent features.
// Will be obsolete if we support versions in the statements test file (or similar file).

TEST_FUNCTION(40)
{
  // Version dependent parts of GRANT.
  MySQLRecognizer recognizer(50100, "", _charsets);
  for (size_t i = 0; i < versionTestResults.size(); ++i)
  {
    recognizer.set_server_version(versionTestResults[i].version);
    recognizer.parse(versionTestResults[i].sql.c_str(), versionTestResults[i].sql.size(), true, PuGeneric);
    if (versionTestResults[i].errorCount != recognizer.error_info().size())
    {
      std::stringstream ss;
      ss << "40." << i << " grant";
      ensure_equals(ss.str(), recognizer.error_info().size(), versionTestResults[i].errorCount);
    }
  }
}

// TODO: create tests for restricted content parsing (e.g. routines only, views only etc.).

END_TESTS;

//----------------------------------------------------------------------------------------------------------------------