summaryrefslogtreecommitdiff
path: root/storage/innobase/pars
diff options
context:
space:
mode:
authorunknown <aivanov@mysql.com>2006-06-01 10:34:04 +0400
committerunknown <aivanov@mysql.com>2006-06-01 10:34:04 +0400
commit2dca2a1a5d3689e30eea204bb7923620c369fed2 (patch)
tree6e3a741f3a17d4092daffffbb0e8e1e0f47ab029 /storage/innobase/pars
parent39b6d186e8933a1e6e5544194e66138f78e14b11 (diff)
downloadmariadb-git-2dca2a1a5d3689e30eea204bb7923620c369fed2.tar.gz
Applied innodb-5.1-ss594 snapshot.
Fixed BUG#19542 "InnoDB doesn't increase the Handler_read_prev couter". Fixed BUG#19609 "Case sensitivity of innodb_data_file_path gives stupid error". Fixed BUG#19727 "InnoDB crashed server and crashed tables are ot recoverable". Also: * Remove remnants of the obsolete concept of memoryfixing tables and indexes. * Remove unused dict_table_LRU_trim(). * Remove unused 'trx' parameter from dict_table_get_on_id_low(), dict_table_get(), dict_table_get_and_increment_handle_count(). * Add a normal linked list implementation. * Add a work queue implementation. * Add 'level' parameter to mutex_create() and rw_lock_create(). Remove mutex_set_level() and rw_lock_set_level(). * Rename SYNC_LEVEL_NONE to SYNC_LEVEL_VARYING. * Add support for bound ids in InnoDB's parser. * Define UNIV_BTR_DEBUG for enabling consistency checks of FIL_PAGE_NEXT and FIL_PAGE_PREV when accessing sibling pages of B-tree indexes. btr_validate_level(): Check the validity of the doubly linked list formed by FIL_PAGE_NEXT and FIL_PAGE_PREV. * Adapt InnoDB to the new tablename to filename encoding in MySQL 5.1. ut_print_name(), ut_print_name1(): Add parameter 'table_id' for distinguishing names of tables from other identifiers. New: innobase_convert_from_table_id(), innobase_convert_from_id(), innobase_convert_from_filename(), innobase_get_charset. dict_accept(), dict_scan_id(), dict_scan_col(), dict_scan_table_name(), dict_skip_word(), dict_create_foreign_constraints_low(): Add parameter 'cs' so that isspace() can be replaced with my_isspace(), whose operation depends on the connection character set. dict_scan_id(): Convert identifier to UTF-8. dict_str_starts_with_keyword(): New extern function, to replace dict_accept() in row_search_for_mysql(). mysql_get_identifier_quote_char(): Replaced with innobase_print_identifier(). ha_innobase::create(): Remove the thd->convert_strin() call. Pass the statement to InnoDB in the connection character set and let InnoDB convert the identifier to UTF-8. * Add max_row_size to dict_table_t. * btr0cur.c btr_copy_externally_stored_field(): Only set the 'offset' variable when needed. * buf0buf.c buf_page_io_complete(): Write to the error log if the page number or the space id o the disk do not match those in memory. Also write to the error log if a page was read from the doublewrite buffer. The doublewrite buffer should be only read by the lower-level function fil_io() at database startup. * dict0dict.c dict_scan_table_name(): Remove fallback to differently encoded name when the table is not found. The encoding is handled at a higher level. * ha_innodb.cc Increment statistic counter in ha_innobase::index_prev() (bug 19542). Add innobase_convert_string wrapper function and a new file ha_prototypes.h. innobase_print_identifier(): Remove TODO comment before calling get_quote_char_for_identifier(). That function apparently assumes the identifier to be encoded in UTF-8. * ibuf0ibuf.c|h ibuf_count_get(), ibuf_counts[], ibuf_count_inited(): Define these only #ifdef UNIV_IBUF_DEBUG. Previously, when compiled without UNIV_IBUF_DEBUG, invoking ibuf_count_get() would crash InnoDB. The function is only being called #ifdef UNIV_IBUF_DEBUG. * innodb.result Adjust the results for changes in the foreign key error messages. * mem0mem.c|h New: mem_heap_dup(), mem_heap_printf(), mem_heap_cat(). * os0file.c Check the page trailers also after writing to disk. This improves chances of diagnosing bug 18886. os_file_check_page_trailers(): New function for checking that the two copies of the LSN stamped on the page match. os_aio_simulated_handle(): Call os_file_check_page_trailers() before and after os_file_write(). * row0mysql.c Move trx_commit_for_mysql(trx) calls before calls to row_mysql_unlock_data_dictionary(trx) (bug 19727). * row0sel.c row_fetch_print(): Handle SQL NULL values without crashing. row_sel_store_mysql_rec(): Remove useless call to rec_get_nth_field when handling an externally stored column. Fetch externally stored fields when using InnoDB's internal SQL parser. Optimize BLOB selects by using prebuilt->blob_heap directly instead of first reading BLOB data to a temporary heap and then copying it to prebuilt->blob_heap. * srv0srv.c srv_master_thread(): Remove unreachable code. * srv0start.c srv_parse_data_file_paths_and_sizes(): Accept lower-case 'm' and 'g' as abbreviations of megabyte and gigabyte (bug 19609). srv_parse_megabytes(): New fuction. * ut0dbg.c|h Implement InnoDB assertions (ut_a and ut_error) with abort() when the code is compiled with GCC 3 or later on other platforms than Windows or Netware. Also disable the variable ut_dbg_stop_threads and the function ut_dbg_stop_thread() i this case, unless UNIV_SYC_DEBUG is defined. This should allow the compiler to generate more compact code for assertions. * ut0list.c|h Add ib_list_create_heap(). mysql-test/r/innodb.result: Applied innodb-5.1-ss594 snapshot. mysql-test/t/innodb.test: Copy the comment from the beginning of the file to the end because MySQL developers continue adding test cases to this file. sql/ha_innodb.cc: Applied innodb-5.1-ss594 snapshot. storage/innobase/CMakeLists.txt: Applied innodb-5.1-ss594 snapshot. storage/innobase/Makefile.am: Applied innodb-5.1-ss594 snapshot. storage/innobase/btr/btr0btr.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/btr/btr0cur.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/btr/btr0pcur.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/btr/btr0sea.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/buf/buf0buf.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/buf/buf0flu.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/data/data0type.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/dict/dict0crea.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/dict/dict0dict.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/dict/dict0load.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/dict/dict0mem.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/fil/fil0fil.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/ha/hash0hash.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/ibuf/ibuf0ibuf.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/data0type.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/dict0dict.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/dict0dict.ic: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/dict0mem.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/fil0fil.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/fsp0fsp.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/ibuf0ibuf.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/mem0mem.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/pars0pars.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/pars0sym.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/pars0types.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/rem0rec.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/row0purge.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/row0undo.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/srv0srv.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/sync0rw.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/sync0sync.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/univ.i: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/ut0dbg.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/ut0ut.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/lock/lock0lock.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/log/log0log.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/log/log0recv.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/mem/mem0dbg.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/mem/mem0mem.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/mem/mem0pool.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/os/os0file.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/os/os0thread.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/pars/lexyy.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/pars/pars0lex.l: Applied innodb-5.1-ss594 snapshot. storage/innobase/pars/pars0pars.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/pars/pars0sym.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/row/row0ins.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/row/row0mysql.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/row/row0purge.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/row/row0row.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/row/row0sel.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/row/row0upd.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/srv/srv0srv.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/srv/srv0start.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/sync/sync0arr.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/sync/sync0rw.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/sync/sync0sync.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/thr/thr0loc.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/trx/trx0purge.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/trx/trx0rec.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/trx/trx0roll.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/trx/trx0rseg.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/trx/trx0sys.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/trx/trx0trx.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/ut/Makefile.am: Applied innodb-5.1-ss594 snapshot. storage/innobase/ut/ut0dbg.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/ut/ut0ut.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/ha_prototypes.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/ut0list.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/ut0list.ic: Applied innodb-5.1-ss594 snapshot. storage/innobase/include/ut0wqueue.h: Applied innodb-5.1-ss594 snapshot. storage/innobase/ut/ut0list.c: Applied innodb-5.1-ss594 snapshot. storage/innobase/ut/ut0wqueue.c: Applied innodb-5.1-ss594 snapshot.
Diffstat (limited to 'storage/innobase/pars')
-rw-r--r--storage/innobase/pars/lexyy.c986
-rw-r--r--storage/innobase/pars/pars0lex.l8
-rw-r--r--storage/innobase/pars/pars0pars.c58
-rw-r--r--storage/innobase/pars/pars0sym.c46
4 files changed, 610 insertions, 488 deletions
diff --git a/storage/innobase/pars/lexyy.c b/storage/innobase/pars/lexyy.c
index bbe78db1613..6d4e692e86b 100644
--- a/storage/innobase/pars/lexyy.c
+++ b/storage/innobase/pars/lexyy.c
@@ -356,8 +356,8 @@ static void yy_fatal_error (yyconst char msg[] );
*yy_cp = '\0'; \
(yy_c_buf_p) = yy_cp;
-#define YY_NUM_RULES 116
-#define YY_END_OF_BUFFER 117
+#define YY_NUM_RULES 117
+#define YY_END_OF_BUFFER 118
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -365,51 +365,51 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[394] =
+static yyconst flex_int16_t yy_accept[396] =
{ 0,
- 0, 0, 111, 111, 0, 0, 0, 0, 117, 115,
- 114, 114, 7, 106, 4, 95, 101, 104, 102, 99,
- 103, 115, 105, 1, 115, 100, 98, 96, 97, 109,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 107, 108,
- 111, 112, 5, 6, 8, 9, 114, 90, 110, 2,
- 1, 3, 91, 92, 94, 93, 89, 89, 89, 89,
- 89, 89, 44, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 27,
- 16, 24, 89, 89, 89, 89, 54, 61, 89, 13,
-
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 111, 112, 112,
- 113, 5, 6, 8, 9, 2, 12, 45, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 26, 89, 89, 89,
- 40, 89, 89, 89, 89, 20, 89, 89, 14, 89,
- 89, 89, 17, 89, 89, 89, 89, 89, 80, 89,
- 89, 89, 51, 11, 89, 35, 89, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
- 19, 23, 89, 89, 89, 89, 89, 89, 89, 89,
-
- 89, 89, 89, 46, 89, 89, 29, 89, 87, 89,
- 89, 38, 89, 89, 89, 89, 89, 48, 89, 31,
- 89, 10, 64, 89, 89, 89, 42, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 28, 89, 89, 89,
- 89, 89, 89, 89, 89, 89, 85, 89, 25, 89,
- 66, 89, 89, 89, 89, 36, 89, 89, 89, 89,
- 89, 89, 89, 30, 65, 22, 89, 57, 89, 75,
- 89, 89, 89, 43, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 56, 89, 89, 89, 89, 89,
- 89, 89, 39, 32, 79, 18, 89, 83, 74, 89,
-
- 55, 89, 63, 89, 52, 89, 89, 89, 47, 89,
- 76, 89, 78, 89, 89, 33, 89, 89, 89, 34,
- 72, 89, 89, 89, 89, 58, 89, 50, 49, 89,
- 89, 89, 53, 62, 89, 89, 89, 21, 89, 89,
- 73, 81, 89, 89, 77, 89, 68, 89, 89, 89,
- 89, 89, 37, 89, 88, 67, 89, 84, 89, 89,
- 89, 86, 89, 59, 89, 89, 15, 89, 70, 69,
- 89, 41, 89, 82, 89, 89, 89, 89, 89, 89,
- 89, 89, 89, 89, 71, 89, 89, 89, 89, 89,
- 89, 60, 0
+ 0, 0, 112, 112, 0, 0, 0, 0, 118, 116,
+ 115, 115, 8, 116, 107, 5, 96, 102, 105, 103,
+ 100, 104, 116, 106, 1, 116, 101, 99, 97, 98,
+ 110, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 108,
+ 109, 112, 113, 6, 7, 9, 10, 115, 4, 91,
+ 111, 2, 1, 3, 92, 93, 95, 94, 90, 90,
+ 90, 90, 90, 90, 45, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 28, 17, 25, 90, 90, 90, 90, 55, 62,
+
+ 90, 14, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 112,
+ 113, 113, 114, 6, 7, 9, 10, 2, 13, 46,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 27, 90,
+ 90, 90, 41, 90, 90, 90, 90, 21, 90, 90,
+ 15, 90, 90, 90, 18, 90, 90, 90, 90, 90,
+ 81, 90, 90, 90, 52, 12, 90, 36, 90, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
+ 90, 90, 20, 24, 90, 90, 90, 90, 90, 90,
+
+ 90, 90, 90, 90, 90, 47, 90, 90, 30, 90,
+ 88, 90, 90, 39, 90, 90, 90, 90, 90, 49,
+ 90, 32, 90, 11, 65, 90, 90, 90, 43, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 29, 90,
+ 90, 90, 90, 90, 90, 90, 90, 90, 86, 90,
+ 26, 90, 67, 90, 90, 90, 90, 37, 90, 90,
+ 90, 90, 90, 90, 90, 31, 66, 23, 90, 58,
+ 90, 76, 90, 90, 90, 44, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 57, 90, 90, 90,
+ 90, 90, 90, 90, 40, 33, 80, 19, 90, 84,
+
+ 75, 90, 56, 90, 64, 90, 53, 90, 90, 90,
+ 48, 90, 77, 90, 79, 90, 90, 34, 90, 90,
+ 90, 35, 73, 90, 90, 90, 90, 59, 90, 51,
+ 50, 90, 90, 90, 54, 63, 90, 90, 90, 22,
+ 90, 90, 74, 82, 90, 90, 78, 90, 69, 90,
+ 90, 90, 90, 90, 38, 90, 89, 68, 90, 85,
+ 90, 90, 90, 87, 90, 60, 90, 90, 16, 90,
+ 71, 70, 90, 42, 90, 83, 90, 90, 90, 90,
+ 90, 90, 90, 90, 90, 90, 72, 90, 90, 90,
+ 90, 90, 90, 61, 0
} ;
@@ -418,17 +418,17 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 2, 1, 4, 1, 1, 5, 1, 6, 7,
- 8, 9, 10, 11, 12, 13, 14, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 16, 17, 18,
- 19, 20, 21, 1, 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, 31,
- 1, 1, 1, 1, 47, 1, 31, 31, 31, 31,
-
- 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
- 31, 31, 48, 1, 49, 1, 1, 1, 1, 1,
+ 1, 2, 1, 4, 1, 5, 6, 1, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 17, 18, 19,
+ 20, 21, 22, 1, 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, 32,
+ 1, 1, 1, 1, 48, 1, 32, 32, 32, 32,
+
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
+ 32, 32, 49, 1, 50, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -445,228 +445,228 @@ static yyconst flex_int32_t yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static yyconst flex_int32_t yy_meta[50] =
+static yyconst flex_int32_t yy_meta[51] =
{ 0,
- 1, 1, 1, 2, 1, 3, 1, 1, 4, 1,
- 1, 1, 1, 1, 5, 1, 1, 1, 6, 1,
- 1, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 1, 1, 1, 2, 1, 1, 3, 1, 1, 4,
+ 1, 1, 1, 1, 1, 5, 1, 1, 1, 6,
+ 1, 1, 5, 5, 5, 5, 5, 5, 5, 5,
5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 1, 1
+ 5, 5, 5, 5, 5, 5, 5, 5, 1, 1
} ;
-static yyconst flex_int16_t yy_base[403] =
+static yyconst flex_int16_t yy_base[406] =
{ 0,
- 0, 0, 434, 433, 435, 434, 435, 434, 437, 444,
- 48, 50, 444, 444, 444, 444, 444, 444, 444, 444,
- 444, 423, 426, 41, 415, 444, 38, 444, 414, 444,
- 20, 33, 32, 46, 40, 44, 0, 54, 52, 48,
- 60, 393, 65, 66, 74, 27, 409, 69, 444, 444,
- 0, 97, 0, 424, 0, 425, 111, 444, 444, 413,
- 54, 408, 444, 444, 444, 444, 0, 401, 69, 397,
- 389, 387, 0, 400, 79, 82, 395, 381, 94, 379,
- 392, 377, 391, 385, 373, 377, 373, 375, 375, 0,
- 82, 0, 374, 372, 366, 373, 0, 0, 379, 379,
-
- 362, 89, 98, 377, 93, 95, 368, 106, 360, 376,
- 372, 350, 101, 371, 362, 112, 355, 0, 134, 135,
- 444, 0, 387, 0, 388, 376, 0, 0, 364, 359,
- 366, 364, 347, 345, 344, 349, 106, 347, 359, 93,
- 347, 353, 354, 336, 336, 121, 0, 334, 350, 351,
- 0, 338, 347, 344, 119, 126, 341, 331, 340, 333,
- 330, 338, 0, 328, 338, 336, 327, 317, 311, 324,
- 309, 329, 0, 0, 314, 0, 328, 319, 316, 130,
- 312, 319, 326, 305, 307, 312, 312, 304, 307, 302,
- 0, 0, 314, 298, 308, 315, 306, 294, 293, 307,
-
- 296, 309, 289, 0, 299, 281, 0, 300, 0, 297,
- 284, 0, 283, 278, 283, 282, 292, 0, 278, 0,
- 282, 0, 0, 278, 275, 289, 0, 274, 274, 272,
- 288, 273, 285, 267, 285, 280, 0, 275, 275, 261,
- 260, 273, 259, 273, 272, 271, 0, 255, 0, 249,
- 0, 268, 252, 251, 251, 0, 264, 254, 249, 248,
- 260, 250, 249, 0, 0, 0, 253, 0, 241, 0,
- 255, 251, 237, 0, 251, 252, 235, 240, 233, 251,
- 233, 230, 231, 228, 0, 233, 245, 232, 239, 229,
- 237, 222, 0, 0, 0, 214, 221, 0, 0, 218,
-
- 0, 217, 0, 231, 0, 232, 219, 218, 0, 214,
- 0, 217, 0, 209, 211, 0, 210, 224, 217, 0,
- 0, 220, 223, 205, 220, 0, 216, 0, 0, 200,
- 214, 213, 0, 0, 197, 196, 201, 0, 210, 195,
- 0, 0, 201, 197, 0, 192, 0, 204, 204, 192,
- 202, 191, 0, 178, 0, 0, 198, 0, 182, 176,
- 182, 0, 173, 0, 178, 191, 0, 190, 0, 0,
- 181, 0, 185, 0, 172, 172, 178, 164, 187, 175,
- 174, 154, 125, 116, 0, 127, 133, 124, 121, 117,
- 109, 0, 444, 165, 171, 177, 179, 145, 185, 191,
-
- 197, 203
+ 0, 0, 435, 434, 436, 435, 437, 436, 439, 446,
+ 49, 51, 446, 0, 446, 446, 446, 446, 446, 446,
+ 446, 446, 424, 427, 41, 416, 446, 38, 446, 415,
+ 446, 20, 33, 32, 46, 40, 44, 0, 54, 52,
+ 48, 60, 394, 65, 66, 74, 27, 410, 69, 446,
+ 446, 0, 97, 0, 425, 0, 427, 112, 0, 446,
+ 446, 414, 54, 409, 446, 446, 446, 446, 0, 402,
+ 69, 398, 390, 388, 0, 401, 79, 82, 396, 382,
+ 94, 380, 393, 378, 392, 386, 374, 378, 374, 376,
+ 376, 0, 82, 0, 375, 373, 367, 374, 0, 0,
+
+ 380, 380, 363, 89, 98, 378, 93, 95, 369, 106,
+ 361, 377, 373, 351, 101, 372, 363, 112, 356, 0,
+ 134, 135, 446, 0, 388, 0, 390, 377, 0, 0,
+ 365, 360, 367, 365, 348, 346, 345, 350, 106, 348,
+ 360, 93, 348, 354, 355, 337, 337, 121, 0, 335,
+ 351, 352, 0, 339, 348, 345, 119, 126, 342, 332,
+ 341, 334, 331, 339, 0, 329, 339, 337, 328, 318,
+ 312, 325, 310, 330, 0, 0, 315, 0, 329, 320,
+ 317, 130, 313, 320, 327, 306, 308, 313, 313, 305,
+ 308, 303, 0, 0, 315, 299, 309, 316, 307, 295,
+
+ 294, 308, 297, 310, 290, 0, 300, 282, 0, 301,
+ 0, 298, 285, 0, 284, 279, 284, 283, 293, 0,
+ 279, 0, 283, 0, 0, 279, 276, 290, 0, 275,
+ 275, 273, 289, 274, 286, 268, 286, 281, 0, 276,
+ 276, 262, 261, 274, 260, 274, 273, 272, 0, 256,
+ 0, 250, 0, 269, 253, 252, 252, 0, 265, 255,
+ 250, 249, 261, 251, 250, 0, 0, 0, 254, 0,
+ 242, 0, 256, 252, 238, 0, 252, 253, 236, 241,
+ 234, 252, 234, 231, 232, 229, 0, 234, 246, 233,
+ 240, 230, 238, 223, 0, 0, 0, 215, 222, 0,
+
+ 0, 219, 0, 218, 0, 232, 0, 233, 220, 219,
+ 0, 215, 0, 218, 0, 210, 212, 0, 211, 225,
+ 218, 0, 0, 221, 224, 206, 221, 0, 217, 0,
+ 0, 201, 215, 214, 0, 0, 198, 197, 202, 0,
+ 211, 196, 0, 0, 202, 198, 0, 193, 0, 205,
+ 205, 193, 203, 192, 0, 179, 0, 0, 199, 0,
+ 183, 177, 183, 0, 174, 0, 179, 192, 0, 191,
+ 0, 0, 182, 0, 186, 0, 173, 173, 179, 165,
+ 188, 180, 179, 165, 150, 117, 0, 129, 135, 125,
+ 122, 118, 110, 0, 446, 166, 172, 178, 151, 180,
+
+ 146, 186, 192, 198, 204
} ;
-static yyconst flex_int16_t yy_def[403] =
+static yyconst flex_int16_t yy_def[406] =
{ 0,
- 393, 1, 394, 394, 395, 395, 396, 396, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 397, 393, 393, 393, 393, 393,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 393, 393,
- 399, 400, 401, 393, 402, 393, 393, 393, 393, 393,
- 393, 397, 393, 393, 393, 393, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 399, 400, 400,
- 393, 401, 393, 402, 393, 393, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 0, 393, 393, 393, 393, 393, 393, 393,
-
- 393, 393
+ 395, 1, 396, 396, 397, 397, 398, 398, 395, 395,
+ 395, 395, 395, 399, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 400, 395, 395, 395, 395,
+ 395, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 395,
+ 395, 402, 403, 404, 395, 405, 395, 395, 399, 395,
+ 395, 395, 395, 400, 395, 395, 395, 395, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 402,
+ 403, 403, 395, 404, 395, 405, 395, 395, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 401, 401, 401, 401, 401, 401,
+ 401, 401, 401, 401, 0, 395, 395, 395, 395, 395,
+
+ 395, 395, 395, 395, 395
} ;
-static yyconst flex_int16_t yy_nxt[494] =
+static yyconst flex_int16_t yy_nxt[497] =
{ 0,
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, 37, 38,
- 37, 37, 39, 37, 40, 41, 42, 37, 43, 44,
- 45, 46, 47, 48, 37, 37, 37, 49, 50, 57,
- 57, 57, 57, 60, 68, 61, 64, 65, 70, 69,
- 74, 113, 71, 114, 75, 72, 60, 76, 61, 85,
- 77, 79, 82, 78, 83, 80, 86, 93, 73, 87,
- 90, 81, 88, 95, 84, 89, 97, 94, 91, 96,
- 103, 106, 128, 92, 98, 110, 99, 116, 100, 104,
-
- 105, 101, 111, 107, 117, 120, 154, 108, 129, 112,
- 121, 109, 57, 57, 134, 136, 137, 141, 164, 166,
- 135, 155, 156, 138, 165, 170, 142, 172, 175, 196,
- 181, 200, 201, 143, 167, 173, 171, 185, 168, 176,
- 182, 186, 393, 120, 215, 197, 207, 393, 121, 67,
- 208, 217, 238, 239, 392, 391, 390, 389, 388, 216,
- 387, 218, 386, 385, 240, 51, 51, 51, 51, 51,
- 51, 53, 53, 53, 53, 53, 53, 55, 55, 55,
- 55, 55, 55, 62, 62, 118, 118, 118, 384, 118,
- 118, 119, 119, 119, 119, 119, 119, 122, 122, 383,
-
- 122, 122, 122, 124, 382, 124, 124, 124, 124, 381,
- 380, 379, 378, 377, 376, 375, 374, 373, 372, 371,
- 370, 369, 368, 367, 366, 365, 364, 363, 362, 361,
- 360, 359, 358, 357, 356, 355, 354, 353, 352, 351,
- 350, 349, 348, 347, 346, 345, 344, 343, 342, 341,
- 340, 339, 338, 337, 336, 335, 334, 333, 332, 331,
- 330, 329, 328, 327, 326, 325, 324, 323, 322, 321,
- 320, 319, 318, 317, 316, 315, 314, 313, 312, 311,
- 310, 309, 308, 307, 306, 305, 304, 303, 302, 301,
- 300, 299, 298, 297, 296, 295, 294, 293, 292, 291,
-
- 290, 289, 288, 287, 286, 285, 284, 283, 282, 281,
- 280, 279, 278, 277, 276, 275, 274, 273, 272, 271,
- 270, 269, 268, 267, 266, 265, 264, 263, 262, 261,
- 260, 259, 258, 257, 256, 255, 254, 253, 252, 251,
- 250, 249, 248, 247, 246, 245, 244, 243, 242, 241,
- 237, 236, 235, 234, 233, 232, 231, 230, 229, 228,
- 227, 226, 225, 224, 223, 222, 221, 220, 219, 214,
- 213, 212, 211, 210, 209, 206, 205, 204, 203, 202,
- 199, 198, 195, 194, 193, 192, 191, 190, 189, 188,
- 126, 125, 123, 187, 184, 183, 180, 179, 178, 177,
-
- 174, 169, 163, 162, 161, 160, 159, 158, 157, 153,
- 152, 151, 150, 149, 148, 147, 146, 145, 144, 140,
- 139, 133, 132, 131, 130, 127, 393, 126, 125, 123,
- 115, 102, 66, 63, 59, 58, 393, 56, 56, 54,
- 54, 52, 52, 9, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 38,
+ 39, 38, 38, 40, 38, 41, 42, 43, 38, 44,
+ 45, 46, 47, 48, 49, 38, 38, 38, 50, 51,
+ 58, 58, 58, 58, 62, 70, 63, 66, 67, 72,
+ 71, 76, 115, 73, 116, 77, 74, 62, 78, 63,
+ 87, 79, 81, 84, 80, 85, 82, 88, 95, 75,
+ 89, 92, 83, 90, 97, 86, 91, 99, 96, 93,
+ 98, 105, 108, 130, 94, 100, 112, 101, 118, 102,
+
+ 106, 107, 103, 113, 109, 119, 122, 156, 110, 131,
+ 114, 123, 111, 58, 58, 136, 138, 139, 143, 166,
+ 168, 137, 157, 158, 140, 167, 172, 144, 174, 177,
+ 198, 183, 202, 203, 145, 169, 175, 173, 187, 170,
+ 178, 184, 188, 395, 122, 217, 199, 209, 395, 123,
+ 69, 210, 219, 240, 241, 59, 394, 393, 392, 391,
+ 218, 390, 220, 389, 388, 242, 52, 52, 52, 52,
+ 52, 52, 54, 54, 54, 54, 54, 54, 56, 56,
+ 56, 56, 56, 56, 64, 64, 120, 120, 120, 387,
+ 120, 120, 121, 121, 121, 121, 121, 121, 124, 124,
+
+ 386, 124, 124, 124, 126, 385, 126, 126, 126, 126,
+ 384, 383, 382, 381, 380, 379, 378, 377, 376, 375,
+ 374, 373, 372, 371, 370, 369, 368, 367, 366, 365,
+ 364, 363, 362, 361, 360, 359, 358, 357, 356, 355,
+ 354, 353, 352, 351, 350, 349, 348, 347, 346, 345,
+ 344, 343, 342, 341, 340, 339, 338, 337, 336, 335,
+ 334, 333, 332, 331, 330, 329, 328, 327, 326, 325,
+ 324, 323, 322, 321, 320, 319, 318, 317, 316, 315,
+ 314, 313, 312, 311, 310, 309, 308, 307, 306, 305,
+ 304, 303, 302, 301, 300, 299, 298, 297, 296, 295,
+
+ 294, 293, 292, 291, 290, 289, 288, 287, 286, 285,
+ 284, 283, 282, 281, 280, 279, 278, 277, 276, 275,
+ 274, 273, 272, 271, 270, 269, 268, 267, 266, 265,
+ 264, 263, 262, 261, 260, 259, 258, 257, 256, 255,
+ 254, 253, 252, 251, 250, 249, 248, 247, 246, 245,
+ 244, 243, 239, 238, 237, 236, 235, 234, 233, 232,
+ 231, 230, 229, 228, 227, 226, 225, 224, 223, 222,
+ 221, 216, 215, 214, 213, 212, 211, 208, 207, 206,
+ 205, 204, 201, 200, 197, 196, 195, 194, 193, 192,
+ 191, 190, 128, 127, 125, 189, 186, 185, 182, 181,
+
+ 180, 179, 176, 171, 165, 164, 163, 162, 161, 160,
+ 159, 155, 154, 153, 152, 151, 150, 149, 148, 147,
+ 146, 142, 141, 135, 134, 133, 132, 129, 395, 128,
+ 127, 125, 117, 104, 68, 65, 61, 60, 395, 57,
+ 57, 55, 55, 53, 53, 9, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395
} ;
-static yyconst flex_int16_t yy_chk[494] =
+static yyconst flex_int16_t yy_chk[497] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 11,
- 11, 12, 12, 24, 31, 24, 27, 27, 32, 31,
- 33, 46, 32, 46, 33, 32, 61, 33, 61, 36,
- 33, 34, 35, 33, 35, 34, 36, 39, 32, 36,
- 38, 34, 36, 40, 35, 36, 41, 39, 38, 40,
- 43, 44, 69, 38, 41, 45, 41, 48, 41, 43,
-
- 43, 41, 45, 44, 48, 52, 91, 44, 69, 45,
- 52, 44, 57, 57, 75, 76, 76, 79, 102, 103,
- 75, 91, 91, 76, 102, 105, 79, 106, 108, 137,
- 113, 140, 140, 79, 103, 106, 105, 116, 103, 108,
- 113, 116, 119, 120, 155, 137, 146, 119, 120, 398,
- 146, 156, 180, 180, 391, 390, 389, 388, 387, 155,
- 386, 156, 384, 383, 180, 394, 394, 394, 394, 394,
- 394, 395, 395, 395, 395, 395, 395, 396, 396, 396,
- 396, 396, 396, 397, 397, 399, 399, 399, 382, 399,
- 399, 400, 400, 400, 400, 400, 400, 401, 401, 381,
-
- 401, 401, 401, 402, 380, 402, 402, 402, 402, 379,
- 378, 377, 376, 375, 373, 371, 368, 366, 365, 363,
- 361, 360, 359, 357, 354, 352, 351, 350, 349, 348,
- 346, 344, 343, 340, 339, 337, 336, 335, 332, 331,
- 330, 327, 325, 324, 323, 322, 319, 318, 317, 315,
- 314, 312, 310, 308, 307, 306, 304, 302, 300, 297,
- 296, 292, 291, 290, 289, 288, 287, 286, 284, 283,
- 282, 281, 280, 279, 278, 277, 276, 275, 273, 272,
- 271, 269, 267, 263, 262, 261, 260, 259, 258, 257,
- 255, 254, 253, 252, 250, 248, 246, 245, 244, 243,
-
- 242, 241, 240, 239, 238, 236, 235, 234, 233, 232,
- 231, 230, 229, 228, 226, 225, 224, 221, 219, 217,
- 216, 215, 214, 213, 211, 210, 208, 206, 205, 203,
- 202, 201, 200, 199, 198, 197, 196, 195, 194, 193,
- 190, 189, 188, 187, 186, 185, 184, 183, 182, 181,
- 179, 178, 177, 175, 172, 171, 170, 169, 168, 167,
- 166, 165, 164, 162, 161, 160, 159, 158, 157, 154,
- 153, 152, 150, 149, 148, 145, 144, 143, 142, 141,
- 139, 138, 136, 135, 134, 133, 132, 131, 130, 129,
- 126, 125, 123, 117, 115, 114, 112, 111, 110, 109,
-
- 107, 104, 101, 100, 99, 96, 95, 94, 93, 89,
- 88, 87, 86, 85, 84, 83, 82, 81, 80, 78,
- 77, 74, 72, 71, 70, 68, 62, 60, 56, 54,
- 47, 42, 29, 25, 23, 22, 9, 8, 7, 6,
- 5, 4, 3, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393,
- 393, 393, 393
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 11, 11, 12, 12, 25, 32, 25, 28, 28, 33,
+ 32, 34, 47, 33, 47, 34, 33, 63, 34, 63,
+ 37, 34, 35, 36, 34, 36, 35, 37, 40, 33,
+ 37, 39, 35, 37, 41, 36, 37, 42, 40, 39,
+ 41, 44, 45, 71, 39, 42, 46, 42, 49, 42,
+
+ 44, 44, 42, 46, 45, 49, 53, 93, 45, 71,
+ 46, 53, 45, 58, 58, 77, 78, 78, 81, 104,
+ 105, 77, 93, 93, 78, 104, 107, 81, 108, 110,
+ 139, 115, 142, 142, 81, 105, 108, 107, 118, 105,
+ 110, 115, 118, 121, 122, 157, 139, 148, 121, 122,
+ 401, 148, 158, 182, 182, 399, 393, 392, 391, 390,
+ 157, 389, 158, 388, 386, 182, 396, 396, 396, 396,
+ 396, 396, 397, 397, 397, 397, 397, 397, 398, 398,
+ 398, 398, 398, 398, 400, 400, 402, 402, 402, 385,
+ 402, 402, 403, 403, 403, 403, 403, 403, 404, 404,
+
+ 384, 404, 404, 404, 405, 383, 405, 405, 405, 405,
+ 382, 381, 380, 379, 378, 377, 375, 373, 370, 368,
+ 367, 365, 363, 362, 361, 359, 356, 354, 353, 352,
+ 351, 350, 348, 346, 345, 342, 341, 339, 338, 337,
+ 334, 333, 332, 329, 327, 326, 325, 324, 321, 320,
+ 319, 317, 316, 314, 312, 310, 309, 308, 306, 304,
+ 302, 299, 298, 294, 293, 292, 291, 290, 289, 288,
+ 286, 285, 284, 283, 282, 281, 280, 279, 278, 277,
+ 275, 274, 273, 271, 269, 265, 264, 263, 262, 261,
+ 260, 259, 257, 256, 255, 254, 252, 250, 248, 247,
+
+ 246, 245, 244, 243, 242, 241, 240, 238, 237, 236,
+ 235, 234, 233, 232, 231, 230, 228, 227, 226, 223,
+ 221, 219, 218, 217, 216, 215, 213, 212, 210, 208,
+ 207, 205, 204, 203, 202, 201, 200, 199, 198, 197,
+ 196, 195, 192, 191, 190, 189, 188, 187, 186, 185,
+ 184, 183, 181, 180, 179, 177, 174, 173, 172, 171,
+ 170, 169, 168, 167, 166, 164, 163, 162, 161, 160,
+ 159, 156, 155, 154, 152, 151, 150, 147, 146, 145,
+ 144, 143, 141, 140, 138, 137, 136, 135, 134, 133,
+ 132, 131, 128, 127, 125, 119, 117, 116, 114, 113,
+
+ 112, 111, 109, 106, 103, 102, 101, 98, 97, 96,
+ 95, 91, 90, 89, 88, 87, 86, 85, 84, 83,
+ 82, 80, 79, 76, 74, 73, 72, 70, 64, 62,
+ 57, 55, 48, 43, 30, 26, 24, 23, 9, 8,
+ 7, 6, 5, 4, 3, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395, 395, 395, 395, 395,
+ 395, 395, 395, 395, 395, 395
} ;
@@ -908,7 +908,7 @@ YY_DECL
register char *yy_cp, *yy_bp;
register int yy_act;
-#line 91 "pars0lex.l"
+#line 92 "pars0lex.l"
#line 914 "_flex_tmp.c"
@@ -964,13 +964,13 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 394 )
+ if ( yy_current_state >= 396 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
++yy_cp;
}
- while ( yy_current_state != 393 );
+ while ( yy_current_state != 395 );
yy_cp = (yy_last_accepting_cpos);
yy_current_state = (yy_last_accepting_state);
@@ -992,7 +992,7 @@ do_action: /* This label is used only to access EOF actions. */
case 1:
YY_RULE_SETUP
-#line 93 "pars0lex.l"
+#line 94 "pars0lex.l"
{
yylval = sym_tab_add_int_lit(pars_sym_tab_global,
atoi(yytext));
@@ -1001,7 +1001,7 @@ YY_RULE_SETUP
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 99 "pars0lex.l"
+#line 100 "pars0lex.l"
{
ut_error; /* not implemented */
@@ -1010,7 +1010,7 @@ YY_RULE_SETUP
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 105 "pars0lex.l"
+#line 106 "pars0lex.l"
{
ulint type;
@@ -1022,7 +1022,17 @@ YY_RULE_SETUP
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 114 "pars0lex.l"
+#line 115 "pars0lex.l"
+{
+ yylval = sym_tab_add_bound_id(pars_sym_tab_global,
+ yytext + 1);
+
+ return(PARS_ID_TOKEN);
+}
+ YY_BREAK
+case 5:
+YY_RULE_SETUP
+#line 122 "pars0lex.l"
{
/* Quoted character string literals are handled in an explicit
start state 'quoted'. This state is entered and the buffer for
@@ -1033,19 +1043,19 @@ In the state 'quoted', only two actions are possible (defined below). */
stringbuf_len = 0;
}
YY_BREAK
-case 5:
-/* rule 5 can match eol */
+case 6:
+/* rule 6 can match eol */
YY_RULE_SETUP
-#line 123 "pars0lex.l"
+#line 131 "pars0lex.l"
{
/* Got a sequence of characters other than "'":
append to string buffer */
string_append(yytext, yyleng);
}
YY_BREAK
-case 6:
+case 7:
YY_RULE_SETUP
-#line 128 "pars0lex.l"
+#line 136 "pars0lex.l"
{
/* Got a sequence of "'" characters:
append half of them to string buffer,
@@ -1070,9 +1080,9 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 7:
+case 8:
YY_RULE_SETUP
-#line 152 "pars0lex.l"
+#line 160 "pars0lex.l"
{
/* Quoted identifiers are handled in an explicit start state 'id'.
This state is entered and the buffer for the scanned string is emptied
@@ -1083,19 +1093,19 @@ In the state 'id', only two actions are possible (defined below). */
stringbuf_len = 0;
}
YY_BREAK
-case 8:
-/* rule 8 can match eol */
+case 9:
+/* rule 9 can match eol */
YY_RULE_SETUP
-#line 161 "pars0lex.l"
+#line 169 "pars0lex.l"
{
/* Got a sequence of characters other than '"':
append to string buffer */
string_append(yytext, yyleng);
}
YY_BREAK
-case 9:
+case 10:
YY_RULE_SETUP
-#line 166 "pars0lex.l"
+#line 174 "pars0lex.l"
{
/* Got a sequence of '"' characters:
append half of them to string buffer,
@@ -1121,18 +1131,18 @@ YY_RULE_SETUP
}
}
YY_BREAK
-case 10:
+case 11:
YY_RULE_SETUP
-#line 191 "pars0lex.l"
+#line 199 "pars0lex.l"
{
yylval = sym_tab_add_null_lit(pars_sym_tab_global);
return(PARS_NULL_LIT);
}
YY_BREAK
-case 11:
+case 12:
YY_RULE_SETUP
-#line 197 "pars0lex.l"
+#line 205 "pars0lex.l"
{
/* Implicit cursor name */
yylval = sym_tab_add_str_lit(pars_sym_tab_global,
@@ -1140,548 +1150,548 @@ YY_RULE_SETUP
return(PARS_SQL_TOKEN);
}
YY_BREAK
-case 12:
+case 13:
YY_RULE_SETUP
-#line 204 "pars0lex.l"
+#line 212 "pars0lex.l"
{
return(PARS_AND_TOKEN);
}
YY_BREAK
-case 13:
+case 14:
YY_RULE_SETUP
-#line 208 "pars0lex.l"
+#line 216 "pars0lex.l"
{
return(PARS_OR_TOKEN);
}
YY_BREAK
-case 14:
+case 15:
YY_RULE_SETUP
-#line 212 "pars0lex.l"
+#line 220 "pars0lex.l"
{
return(PARS_NOT_TOKEN);
}
YY_BREAK
-case 15:
+case 16:
YY_RULE_SETUP
-#line 216 "pars0lex.l"
+#line 224 "pars0lex.l"
{
return(PARS_PROCEDURE_TOKEN);
}
YY_BREAK
-case 16:
+case 17:
YY_RULE_SETUP
-#line 220 "pars0lex.l"
+#line 228 "pars0lex.l"
{
return(PARS_IN_TOKEN);
}
YY_BREAK
-case 17:
+case 18:
YY_RULE_SETUP
-#line 224 "pars0lex.l"
+#line 232 "pars0lex.l"
{
return(PARS_OUT_TOKEN);
}
YY_BREAK
-case 18:
+case 19:
YY_RULE_SETUP
-#line 228 "pars0lex.l"
+#line 236 "pars0lex.l"
{
return(PARS_BINARY_TOKEN);
}
YY_BREAK
-case 19:
+case 20:
YY_RULE_SETUP
-#line 232 "pars0lex.l"
+#line 240 "pars0lex.l"
{
return(PARS_BLOB_TOKEN);
}
YY_BREAK
-case 20:
+case 21:
YY_RULE_SETUP
-#line 236 "pars0lex.l"
+#line 244 "pars0lex.l"
{
return(PARS_INT_TOKEN);
}
YY_BREAK
-case 21:
+case 22:
YY_RULE_SETUP
-#line 240 "pars0lex.l"
+#line 248 "pars0lex.l"
{
return(PARS_INT_TOKEN);
}
YY_BREAK
-case 22:
+case 23:
YY_RULE_SETUP
-#line 244 "pars0lex.l"
+#line 252 "pars0lex.l"
{
return(PARS_FLOAT_TOKEN);
}
YY_BREAK
-case 23:
+case 24:
YY_RULE_SETUP
-#line 248 "pars0lex.l"
+#line 256 "pars0lex.l"
{
return(PARS_CHAR_TOKEN);
}
YY_BREAK
-case 24:
+case 25:
YY_RULE_SETUP
-#line 252 "pars0lex.l"
+#line 260 "pars0lex.l"
{
return(PARS_IS_TOKEN);
}
YY_BREAK
-case 25:
+case 26:
YY_RULE_SETUP
-#line 256 "pars0lex.l"
+#line 264 "pars0lex.l"
{
return(PARS_BEGIN_TOKEN);
}
YY_BREAK
-case 26:
+case 27:
YY_RULE_SETUP
-#line 260 "pars0lex.l"
+#line 268 "pars0lex.l"
{
return(PARS_END_TOKEN);
}
YY_BREAK
-case 27:
+case 28:
YY_RULE_SETUP
-#line 264 "pars0lex.l"
+#line 272 "pars0lex.l"
{
return(PARS_IF_TOKEN);
}
YY_BREAK
-case 28:
+case 29:
YY_RULE_SETUP
-#line 268 "pars0lex.l"
+#line 276 "pars0lex.l"
{
return(PARS_THEN_TOKEN);
}
YY_BREAK
-case 29:
+case 30:
YY_RULE_SETUP
-#line 272 "pars0lex.l"
+#line 280 "pars0lex.l"
{
return(PARS_ELSE_TOKEN);
}
YY_BREAK
-case 30:
+case 31:
YY_RULE_SETUP
-#line 276 "pars0lex.l"
+#line 284 "pars0lex.l"
{
return(PARS_ELSIF_TOKEN);
}
YY_BREAK
-case 31:
+case 32:
YY_RULE_SETUP
-#line 280 "pars0lex.l"
+#line 288 "pars0lex.l"
{
return(PARS_LOOP_TOKEN);
}
YY_BREAK
-case 32:
+case 33:
YY_RULE_SETUP
-#line 284 "pars0lex.l"
+#line 292 "pars0lex.l"
{
return(PARS_WHILE_TOKEN);
}
YY_BREAK
-case 33:
+case 34:
YY_RULE_SETUP
-#line 288 "pars0lex.l"
+#line 296 "pars0lex.l"
{
return(PARS_RETURN_TOKEN);
}
YY_BREAK
-case 34:
+case 35:
YY_RULE_SETUP
-#line 292 "pars0lex.l"
+#line 300 "pars0lex.l"
{
return(PARS_SELECT_TOKEN);
}
YY_BREAK
-case 35:
+case 36:
YY_RULE_SETUP
-#line 296 "pars0lex.l"
+#line 304 "pars0lex.l"
{
return(PARS_SUM_TOKEN);
}
YY_BREAK
-case 36:
+case 37:
YY_RULE_SETUP
-#line 300 "pars0lex.l"
+#line 308 "pars0lex.l"
{
return(PARS_COUNT_TOKEN);
}
YY_BREAK
-case 37:
+case 38:
YY_RULE_SETUP
-#line 304 "pars0lex.l"
+#line 312 "pars0lex.l"
{
return(PARS_DISTINCT_TOKEN);
}
YY_BREAK
-case 38:
+case 39:
YY_RULE_SETUP
-#line 308 "pars0lex.l"
+#line 316 "pars0lex.l"
{
return(PARS_FROM_TOKEN);
}
YY_BREAK
-case 39:
+case 40:
YY_RULE_SETUP
-#line 312 "pars0lex.l"
+#line 320 "pars0lex.l"
{
return(PARS_WHERE_TOKEN);
}
YY_BREAK
-case 40:
+case 41:
YY_RULE_SETUP
-#line 316 "pars0lex.l"
+#line 324 "pars0lex.l"
{
return(PARS_FOR_TOKEN);
}
YY_BREAK
-case 41:
+case 42:
YY_RULE_SETUP
-#line 320 "pars0lex.l"
+#line 328 "pars0lex.l"
{
return(PARS_CONSISTENT_TOKEN);
}
YY_BREAK
-case 42:
+case 43:
YY_RULE_SETUP
-#line 324 "pars0lex.l"
+#line 332 "pars0lex.l"
{
return(PARS_READ_TOKEN);
}
YY_BREAK
-case 43:
+case 44:
YY_RULE_SETUP
-#line 328 "pars0lex.l"
+#line 336 "pars0lex.l"
{
return(PARS_ORDER_TOKEN);
}
YY_BREAK
-case 44:
+case 45:
YY_RULE_SETUP
-#line 332 "pars0lex.l"
+#line 340 "pars0lex.l"
{
return(PARS_BY_TOKEN);
}
YY_BREAK
-case 45:
+case 46:
YY_RULE_SETUP
-#line 336 "pars0lex.l"
+#line 344 "pars0lex.l"
{
return(PARS_ASC_TOKEN);
}
YY_BREAK
-case 46:
+case 47:
YY_RULE_SETUP
-#line 340 "pars0lex.l"
+#line 348 "pars0lex.l"
{
return(PARS_DESC_TOKEN);
}
YY_BREAK
-case 47:
+case 48:
YY_RULE_SETUP
-#line 344 "pars0lex.l"
+#line 352 "pars0lex.l"
{
return(PARS_INSERT_TOKEN);
}
YY_BREAK
-case 48:
+case 49:
YY_RULE_SETUP
-#line 348 "pars0lex.l"
+#line 356 "pars0lex.l"
{
return(PARS_INTO_TOKEN);
}
YY_BREAK
-case 49:
+case 50:
YY_RULE_SETUP
-#line 352 "pars0lex.l"
+#line 360 "pars0lex.l"
{
return(PARS_VALUES_TOKEN);
}
YY_BREAK
-case 50:
+case 51:
YY_RULE_SETUP
-#line 356 "pars0lex.l"
+#line 364 "pars0lex.l"
{
return(PARS_UPDATE_TOKEN);
}
YY_BREAK
-case 51:
+case 52:
YY_RULE_SETUP
-#line 360 "pars0lex.l"
+#line 368 "pars0lex.l"
{
return(PARS_SET_TOKEN);
}
YY_BREAK
-case 52:
+case 53:
YY_RULE_SETUP
-#line 364 "pars0lex.l"
+#line 372 "pars0lex.l"
{
return(PARS_DELETE_TOKEN);
}
YY_BREAK
-case 53:
+case 54:
YY_RULE_SETUP
-#line 368 "pars0lex.l"
+#line 376 "pars0lex.l"
{
return(PARS_CURRENT_TOKEN);
}
YY_BREAK
-case 54:
+case 55:
YY_RULE_SETUP
-#line 372 "pars0lex.l"
+#line 380 "pars0lex.l"
{
return(PARS_OF_TOKEN);
}
YY_BREAK
-case 55:
+case 56:
YY_RULE_SETUP
-#line 376 "pars0lex.l"
+#line 384 "pars0lex.l"
{
return(PARS_CREATE_TOKEN);
}
YY_BREAK
-case 56:
+case 57:
YY_RULE_SETUP
-#line 380 "pars0lex.l"
+#line 388 "pars0lex.l"
{
return(PARS_TABLE_TOKEN);
}
YY_BREAK
-case 57:
+case 58:
YY_RULE_SETUP
-#line 384 "pars0lex.l"
+#line 392 "pars0lex.l"
{
return(PARS_INDEX_TOKEN);
}
YY_BREAK
-case 58:
+case 59:
YY_RULE_SETUP
-#line 388 "pars0lex.l"
+#line 396 "pars0lex.l"
{
return(PARS_UNIQUE_TOKEN);
}
YY_BREAK
-case 59:
+case 60:
YY_RULE_SETUP
-#line 392 "pars0lex.l"
+#line 400 "pars0lex.l"
{
return(PARS_CLUSTERED_TOKEN);
}
YY_BREAK
-case 60:
+case 61:
YY_RULE_SETUP
-#line 396 "pars0lex.l"
+#line 404 "pars0lex.l"
{
return(PARS_DOES_NOT_FIT_IN_MEM_TOKEN);
}
YY_BREAK
-case 61:
+case 62:
YY_RULE_SETUP
-#line 400 "pars0lex.l"
+#line 408 "pars0lex.l"
{
return(PARS_ON_TOKEN);
}
YY_BREAK
-case 62:
+case 63:
YY_RULE_SETUP
-#line 404 "pars0lex.l"
+#line 412 "pars0lex.l"
{
return(PARS_DECLARE_TOKEN);
}
YY_BREAK
-case 63:
+case 64:
YY_RULE_SETUP
-#line 408 "pars0lex.l"
+#line 416 "pars0lex.l"
{
return(PARS_CURSOR_TOKEN);
}
YY_BREAK
-case 64:
+case 65:
YY_RULE_SETUP
-#line 412 "pars0lex.l"
+#line 420 "pars0lex.l"
{
return(PARS_OPEN_TOKEN);
}
YY_BREAK
-case 65:
+case 66:
YY_RULE_SETUP
-#line 416 "pars0lex.l"
+#line 424 "pars0lex.l"
{
return(PARS_FETCH_TOKEN);
}
YY_BREAK
-case 66:
+case 67:
YY_RULE_SETUP
-#line 420 "pars0lex.l"
+#line 428 "pars0lex.l"
{
return(PARS_CLOSE_TOKEN);
}
YY_BREAK
-case 67:
+case 68:
YY_RULE_SETUP
-#line 424 "pars0lex.l"
+#line 432 "pars0lex.l"
{
return(PARS_NOTFOUND_TOKEN);
}
YY_BREAK
-case 68:
+case 69:
YY_RULE_SETUP
-#line 428 "pars0lex.l"
+#line 436 "pars0lex.l"
{
return(PARS_TO_CHAR_TOKEN);
}
YY_BREAK
-case 69:
+case 70:
YY_RULE_SETUP
-#line 432 "pars0lex.l"
+#line 440 "pars0lex.l"
{
return(PARS_TO_NUMBER_TOKEN);
}
YY_BREAK
-case 70:
+case 71:
YY_RULE_SETUP
-#line 436 "pars0lex.l"
+#line 444 "pars0lex.l"
{
return(PARS_TO_BINARY_TOKEN);
}
YY_BREAK
-case 71:
+case 72:
YY_RULE_SETUP
-#line 440 "pars0lex.l"
+#line 448 "pars0lex.l"
{
return(PARS_BINARY_TO_NUMBER_TOKEN);
}
YY_BREAK
-case 72:
+case 73:
YY_RULE_SETUP
-#line 444 "pars0lex.l"
+#line 452 "pars0lex.l"
{
return(PARS_SUBSTR_TOKEN);
}
YY_BREAK
-case 73:
+case 74:
YY_RULE_SETUP
-#line 448 "pars0lex.l"
+#line 456 "pars0lex.l"
{
return(PARS_REPLSTR_TOKEN);
}
YY_BREAK
-case 74:
+case 75:
YY_RULE_SETUP
-#line 452 "pars0lex.l"
+#line 460 "pars0lex.l"
{
return(PARS_CONCAT_TOKEN);
}
YY_BREAK
-case 75:
+case 76:
YY_RULE_SETUP
-#line 456 "pars0lex.l"
+#line 464 "pars0lex.l"
{
return(PARS_INSTR_TOKEN);
}
YY_BREAK
-case 76:
+case 77:
YY_RULE_SETUP
-#line 460 "pars0lex.l"
+#line 468 "pars0lex.l"
{
return(PARS_LENGTH_TOKEN);
}
YY_BREAK
-case 77:
+case 78:
YY_RULE_SETUP
-#line 464 "pars0lex.l"
+#line 472 "pars0lex.l"
{
return(PARS_SYSDATE_TOKEN);
}
YY_BREAK
-case 78:
+case 79:
YY_RULE_SETUP
-#line 468 "pars0lex.l"
+#line 476 "pars0lex.l"
{
return(PARS_PRINTF_TOKEN);
}
YY_BREAK
-case 79:
+case 80:
YY_RULE_SETUP
-#line 472 "pars0lex.l"
+#line 480 "pars0lex.l"
{
return(PARS_ASSERT_TOKEN);
}
YY_BREAK
-case 80:
+case 81:
YY_RULE_SETUP
-#line 476 "pars0lex.l"
+#line 484 "pars0lex.l"
{
return(PARS_RND_TOKEN);
}
YY_BREAK
-case 81:
+case 82:
YY_RULE_SETUP
-#line 480 "pars0lex.l"
+#line 488 "pars0lex.l"
{
return(PARS_RND_STR_TOKEN);
}
YY_BREAK
-case 82:
+case 83:
YY_RULE_SETUP
-#line 484 "pars0lex.l"
+#line 492 "pars0lex.l"
{
return(PARS_ROW_PRINTF_TOKEN);
}
YY_BREAK
-case 83:
+case 84:
YY_RULE_SETUP
-#line 488 "pars0lex.l"
+#line 496 "pars0lex.l"
{
return(PARS_COMMIT_TOKEN);
}
YY_BREAK
-case 84:
+case 85:
YY_RULE_SETUP
-#line 492 "pars0lex.l"
+#line 500 "pars0lex.l"
{
return(PARS_ROLLBACK_TOKEN);
}
YY_BREAK
-case 85:
+case 86:
YY_RULE_SETUP
-#line 496 "pars0lex.l"
+#line 504 "pars0lex.l"
{
return(PARS_WORK_TOKEN);
}
YY_BREAK
-case 86:
+case 87:
YY_RULE_SETUP
-#line 500 "pars0lex.l"
+#line 508 "pars0lex.l"
{
return(PARS_UNSIGNED_TOKEN);
}
YY_BREAK
-case 87:
+case 88:
YY_RULE_SETUP
-#line 504 "pars0lex.l"
+#line 512 "pars0lex.l"
{
return(PARS_EXIT_TOKEN);
}
YY_BREAK
-case 88:
+case 89:
YY_RULE_SETUP
-#line 508 "pars0lex.l"
+#line 516 "pars0lex.l"
{
return(PARS_FUNCTION_TOKEN);
}
YY_BREAK
-case 89:
+case 90:
YY_RULE_SETUP
-#line 512 "pars0lex.l"
+#line 520 "pars0lex.l"
{
yylval = sym_tab_add_id(pars_sym_tab_global,
(byte*)yytext,
@@ -1689,52 +1699,44 @@ YY_RULE_SETUP
return(PARS_ID_TOKEN);
}
YY_BREAK
-case 90:
-YY_RULE_SETUP
-#line 519 "pars0lex.l"
-{
- return(PARS_DDOT_TOKEN);
-}
- YY_BREAK
case 91:
YY_RULE_SETUP
-#line 523 "pars0lex.l"
+#line 527 "pars0lex.l"
{
- return(PARS_ASSIGN_TOKEN);
+ return(PARS_DDOT_TOKEN);
}
YY_BREAK
case 92:
YY_RULE_SETUP
-#line 527 "pars0lex.l"
+#line 531 "pars0lex.l"
{
- return(PARS_LE_TOKEN);
+ return(PARS_ASSIGN_TOKEN);
}
YY_BREAK
case 93:
YY_RULE_SETUP
-#line 531 "pars0lex.l"
+#line 535 "pars0lex.l"
{
- return(PARS_GE_TOKEN);
+ return(PARS_LE_TOKEN);
}
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 535 "pars0lex.l"
+#line 539 "pars0lex.l"
{
- return(PARS_NE_TOKEN);
+ return(PARS_GE_TOKEN);
}
YY_BREAK
case 95:
YY_RULE_SETUP
-#line 539 "pars0lex.l"
+#line 543 "pars0lex.l"
{
-
- return((int)(*yytext));
+ return(PARS_NE_TOKEN);
}
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 544 "pars0lex.l"
+#line 547 "pars0lex.l"
{
return((int)(*yytext));
@@ -1742,7 +1744,7 @@ YY_RULE_SETUP
YY_BREAK
case 97:
YY_RULE_SETUP
-#line 549 "pars0lex.l"
+#line 552 "pars0lex.l"
{
return((int)(*yytext));
@@ -1750,7 +1752,7 @@ YY_RULE_SETUP
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 554 "pars0lex.l"
+#line 557 "pars0lex.l"
{
return((int)(*yytext));
@@ -1758,7 +1760,7 @@ YY_RULE_SETUP
YY_BREAK
case 99:
YY_RULE_SETUP
-#line 559 "pars0lex.l"
+#line 562 "pars0lex.l"
{
return((int)(*yytext));
@@ -1766,7 +1768,7 @@ YY_RULE_SETUP
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 564 "pars0lex.l"
+#line 567 "pars0lex.l"
{
return((int)(*yytext));
@@ -1774,7 +1776,7 @@ YY_RULE_SETUP
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 569 "pars0lex.l"
+#line 572 "pars0lex.l"
{
return((int)(*yytext));
@@ -1782,7 +1784,7 @@ YY_RULE_SETUP
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 574 "pars0lex.l"
+#line 577 "pars0lex.l"
{
return((int)(*yytext));
@@ -1790,7 +1792,7 @@ YY_RULE_SETUP
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 579 "pars0lex.l"
+#line 582 "pars0lex.l"
{
return((int)(*yytext));
@@ -1798,7 +1800,7 @@ YY_RULE_SETUP
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 584 "pars0lex.l"
+#line 587 "pars0lex.l"
{
return((int)(*yytext));
@@ -1806,7 +1808,7 @@ YY_RULE_SETUP
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 589 "pars0lex.l"
+#line 592 "pars0lex.l"
{
return((int)(*yytext));
@@ -1814,7 +1816,7 @@ YY_RULE_SETUP
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 594 "pars0lex.l"
+#line 597 "pars0lex.l"
{
return((int)(*yytext));
@@ -1822,7 +1824,7 @@ YY_RULE_SETUP
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 599 "pars0lex.l"
+#line 602 "pars0lex.l"
{
return((int)(*yytext));
@@ -1830,7 +1832,7 @@ YY_RULE_SETUP
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 604 "pars0lex.l"
+#line 607 "pars0lex.l"
{
return((int)(*yytext));
@@ -1838,7 +1840,7 @@ YY_RULE_SETUP
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 609 "pars0lex.l"
+#line 612 "pars0lex.l"
{
return((int)(*yytext));
@@ -1846,35 +1848,43 @@ YY_RULE_SETUP
YY_BREAK
case 110:
YY_RULE_SETUP
-#line 614 "pars0lex.l"
-BEGIN(comment); /* eat up comment */
+#line 617 "pars0lex.l"
+{
+
+ return((int)(*yytext));
+}
YY_BREAK
case 111:
-/* rule 111 can match eol */
YY_RULE_SETUP
-#line 616 "pars0lex.l"
-
+#line 622 "pars0lex.l"
+BEGIN(comment); /* eat up comment */
YY_BREAK
case 112:
/* rule 112 can match eol */
YY_RULE_SETUP
-#line 617 "pars0lex.l"
+#line 624 "pars0lex.l"
YY_BREAK
case 113:
+/* rule 113 can match eol */
YY_RULE_SETUP
-#line 618 "pars0lex.l"
-BEGIN(INITIAL);
+#line 625 "pars0lex.l"
+
YY_BREAK
case 114:
-/* rule 114 can match eol */
YY_RULE_SETUP
-#line 620 "pars0lex.l"
-/* eat up whitespace */
+#line 626 "pars0lex.l"
+BEGIN(INITIAL);
YY_BREAK
case 115:
+/* rule 115 can match eol */
YY_RULE_SETUP
-#line 623 "pars0lex.l"
+#line 628 "pars0lex.l"
+/* eat up whitespace */
+ YY_BREAK
+case 116:
+YY_RULE_SETUP
+#line 631 "pars0lex.l"
{
fprintf(stderr,"Unrecognized character: %02x\n",
*yytext);
@@ -1884,12 +1894,12 @@ YY_RULE_SETUP
return(0);
}
YY_BREAK
-case 116:
+case 117:
YY_RULE_SETUP
-#line 632 "pars0lex.l"
+#line 640 "pars0lex.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 1892 "_flex_tmp.c"
+#line 1902 "_flex_tmp.c"
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(comment):
case YY_STATE_EOF(quoted):
@@ -2177,7 +2187,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 394 )
+ if ( yy_current_state >= 396 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2205,11 +2215,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 394 )
+ if ( yy_current_state >= 396 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 393);
+ yy_is_jam = (yy_current_state == 395);
return yy_is_jam ? 0 : yy_current_state;
}
@@ -2732,7 +2742,7 @@ void yyfree (void * ptr )
#undef YY_DECL_IS_OURS
#undef YY_DECL
#endif
-#line 632 "pars0lex.l"
+#line 640 "pars0lex.l"
diff --git a/storage/innobase/pars/pars0lex.l b/storage/innobase/pars/pars0lex.l
index ab1fe446924..8f6a8d39a36 100644
--- a/storage/innobase/pars/pars0lex.l
+++ b/storage/innobase/pars/pars0lex.l
@@ -84,6 +84,7 @@ string_append(
DIGIT [0-9]
ID [a-z_A-Z][a-z_A-Z0-9]*
BOUND_LIT \:[a-z_A-Z0-9]+
+BOUND_ID \$[a-z_A-Z0-9]+
%x comment
%x quoted
@@ -111,6 +112,13 @@ BOUND_LIT \:[a-z_A-Z0-9]+
return(type);
}
+{BOUND_ID} {
+ yylval = sym_tab_add_bound_id(pars_sym_tab_global,
+ yytext + 1);
+
+ return(PARS_ID_TOKEN);
+}
+
"'" {
/* Quoted character string literals are handled in an explicit
start state 'quoted'. This state is entered and the buffer for
diff --git a/storage/innobase/pars/pars0pars.c b/storage/innobase/pars/pars0pars.c
index 7ef2f65c724..def26e62d29 100644
--- a/storage/innobase/pars/pars0pars.c
+++ b/storage/innobase/pars/pars0pars.c
@@ -1931,6 +1931,7 @@ pars_info_create(void)
info->heap = heap;
info->funcs = NULL;
info->bound_lits = NULL;
+ info->bound_ids = NULL;
info->graph_owns_us = TRUE;
return(info);
@@ -2071,6 +2072,32 @@ pars_info_add_function(
}
/********************************************************************
+Add bound id. */
+
+void
+pars_info_add_id(
+/*=============*/
+ pars_info_t* info, /* in: info struct */
+ const char* name, /* in: name */
+ const char* id) /* in: id */
+{
+ pars_bound_id_t* bid;
+
+ ut_ad(!pars_info_get_bound_id(info, name));
+
+ bid = mem_heap_alloc(info->heap, sizeof(*bid));
+
+ bid->name = name;
+ bid->id = id;
+
+ if (!info->bound_ids) {
+ info->bound_ids = ib_vector_create(info->heap, 8);
+ }
+
+ ib_vector_push(info->bound_ids, bid);
+}
+
+/********************************************************************
Get user function with the given name.*/
pars_user_func_t*
@@ -2131,3 +2158,34 @@ pars_info_get_bound_lit(
return(NULL);
}
+
+/********************************************************************
+Get bound id with the given name.*/
+
+pars_bound_id_t*
+pars_info_get_bound_id(
+/*===================*/
+ /* out: bound id, or NULL if not
+ found */
+ pars_info_t* info, /* in: info struct */
+ const char* name) /* in: bound id name to find */
+{
+ ulint i;
+ ib_vector_t* vec;
+
+ if (!info || !info->bound_ids) {
+ return(NULL);
+ }
+
+ vec = info->bound_ids;
+
+ for (i = 0; i < ib_vector_size(vec); i++) {
+ pars_bound_id_t* bid = ib_vector_get(vec, i);
+
+ if (strcmp(bid->name, name) == 0) {
+ return(bid);
+ }
+ }
+
+ return(NULL);
+}
diff --git a/storage/innobase/pars/pars0sym.c b/storage/innobase/pars/pars0sym.c
index 79a1e555b06..8d691febb14 100644
--- a/storage/innobase/pars/pars0sym.c
+++ b/storage/innobase/pars/pars0sym.c
@@ -207,6 +207,13 @@ sym_tab_add_bound_lit(
*lit_type = PARS_STR_LIT;
break;
+ case DATA_CHAR:
+ ut_a(blit->length > 0);
+
+ len = blit->length;
+ *lit_type = PARS_STR_LIT;
+ break;
+
case DATA_INT:
ut_a(blit->length > 0);
ut_a(blit->length <= 8);
@@ -304,3 +311,42 @@ sym_tab_add_id(
return(node);
}
+
+/**********************************************************************
+Add a bound identifier to a symbol table. */
+
+sym_node_t*
+sym_tab_add_bound_id(
+/*===========*/
+ /* out: symbol table node */
+ sym_tab_t* sym_tab, /* in: symbol table */
+ const char* name) /* in: name of bound id */
+{
+ sym_node_t* node;
+ pars_bound_id_t* bid;
+
+ bid = pars_info_get_bound_id(sym_tab->info, name);
+ ut_a(bid);
+
+ node = mem_heap_alloc(sym_tab->heap, sizeof(sym_node_t));
+
+ node->common.type = QUE_NODE_SYMBOL;
+
+ node->resolved = FALSE;
+ node->indirection = NULL;
+
+ node->name = mem_heap_strdup(sym_tab->heap, bid->id);
+ node->name_len = strlen(node->name);
+
+ UT_LIST_ADD_LAST(sym_list, sym_tab->sym_list, node);
+
+ dfield_set_data(&(node->common.val), NULL, UNIV_SQL_NULL);
+
+ node->common.val_buf_size = 0;
+ node->prefetch_buf = NULL;
+ node->cursor_def = NULL;
+
+ node->sym_table = sym_tab;
+
+ return(node);
+}