You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@quickstep.apache.org by zu...@apache.org on 2016/04/19 18:44:31 UTC
[18/24] incubator-quickstep git commit: Added hook (not actual code)
to BitWeaving. (#169)
Added hook (not actual code) to BitWeaving. (#169)
* Added bitweaving as a module.
* Regenerated preprocessed parser files.
* Modified validate_cmake script to allow ignored sections of code.
Project: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/commit/cbd169e5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/tree/cbd169e5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-quickstep/diff/cbd169e5
Branch: refs/heads/master
Commit: cbd169e5a455b6a96e82b57614dabbbd59f7b0a7
Parents: d372584
Author: Marc S <cr...@users.noreply.github.com>
Authored: Sat Apr 16 18:12:42 2016 -0500
Committer: Jignesh Patel <pa...@users.noreply.github.com>
Committed: Sat Apr 16 18:12:42 2016 -0500
----------------------------------------------------------------------
.gitmodules | 3 +
CMakeLists.txt | 7 +
expressions/predicate/PredicateCost.hpp | 14 +-
parser/ParseIndexProperties.cpp | 1 +
parser/ParseIndexProperties.hpp | 76 +
parser/ParseStatement.hpp | 8 +
parser/SqlLexer.lpp | 1 +
parser/SqlParser.ypp | 8 +-
parser/preprocessed/SqlLexer_gen.cpp | 972 +++----
parser/preprocessed/SqlLexer_gen.hpp | 2 +-
parser/preprocessed/SqlParser_gen.cpp | 3031 +++++++++++-----------
parser/preprocessed/SqlParser_gen.hpp | 185 +-
parser/tests/Index.test | 9 +
query_optimizer/CMakeLists.txt | 1 +
query_optimizer/ExecutionGenerator.cpp | 3 +-
storage/CMakeLists.txt | 140 +
storage/IndexSubBlockDescriptionFactory.hpp | 9 +-
storage/StorageBlock.cpp | 28 +-
storage/StorageBlockInfo.hpp | 2 +
storage/StorageBlockLayout.proto | 2 +
storage/StorageConfig.h.in | 1 +
storage/SubBlockTypeRegistry.cpp | 22 +
storage/SubBlockTypeRegistry.hpp | 4 +
validate_cmakelists.py | 24 +-
24 files changed, 2460 insertions(+), 2093 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/.gitmodules
----------------------------------------------------------------------
diff --git a/.gitmodules b/.gitmodules
index 7671b11..cf380b5 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,3 +7,6 @@
[submodule "third_party/googletest"]
path = third_party/googletest
url = https://github.com/google/googletest
+[submodule "storage/bitweaving"]
+ path = storage/bitweaving
+ url = https://github.com/UWQuickstep/bitweaving.git
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 869d43c..642925f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -645,6 +645,13 @@ if (ENABLE_HDFS)
include_directories(${LIBHDFS3_INCLUDE_DIR})
endif()
+# Check if the BitWeaving index is included.
+if(EXISTS "${PROJECT_SOURCE_DIR}/storage/bitweaving/BitWeavingIndexSubBlock.hpp")
+ set(QUICKSTEP_HAVE_BITWEAVING TRUE)
+else()
+ set(QUICKSTEP_HAVE_BITWEAVING FALSE)
+endif()
+
# Add TMB, but only enable the PureMemory implementation.
set(ENABLE_PUREMEMORY ON CACHE BOOL "Enable PureMemory TMB")
set(ENABLE_LEVELDB OFF CACHE BOOL "Enable LevelDB TMB")
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/expressions/predicate/PredicateCost.hpp
----------------------------------------------------------------------
diff --git a/expressions/predicate/PredicateCost.hpp b/expressions/predicate/PredicateCost.hpp
index 68b44fa..b83f64c 100644
--- a/expressions/predicate/PredicateCost.hpp
+++ b/expressions/predicate/PredicateCost.hpp
@@ -35,12 +35,14 @@ namespace predicate_cost {
// preference for different predicate-evaluation methods. In the future, we may
// want to use statistics to get more accurate cost estimation.
static constexpr predicate_cost_t kConstantTime = 0;
-static constexpr predicate_cost_t kBinarySearch = 1;
-static constexpr predicate_cost_t kTreeSearch = 2;
-static constexpr predicate_cost_t kCompressedColumnScan = 3;
-static constexpr predicate_cost_t kColumnScan = 4;
-static constexpr predicate_cost_t kCompressedRowScan = 5;
-static constexpr predicate_cost_t kRowScan = 6;
+static constexpr predicate_cost_t kBitWeavingVScan = 1;
+static constexpr predicate_cost_t kBitWeavingHScan = 2;
+static constexpr predicate_cost_t kBinarySearch = 3;
+static constexpr predicate_cost_t kTreeSearch = 4;
+static constexpr predicate_cost_t kCompressedColumnScan = 5;
+static constexpr predicate_cost_t kColumnScan = 6;
+static constexpr predicate_cost_t kCompressedRowScan = 7;
+static constexpr predicate_cost_t kRowScan = 8;
static constexpr predicate_cost_t kInfinite = std::numeric_limits<predicate_cost_t>::max();
} // namespace predicate_cost
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/parser/ParseIndexProperties.cpp
----------------------------------------------------------------------
diff --git a/parser/ParseIndexProperties.cpp b/parser/ParseIndexProperties.cpp
index 08790b7..fe88513 100644
--- a/parser/ParseIndexProperties.cpp
+++ b/parser/ParseIndexProperties.cpp
@@ -19,6 +19,7 @@
namespace quickstep {
// Initialize constants for various index properties.
+ const char *BitWeavingIndexProperties::kBitWeavingType = "type";
const char *BloomFilterIndexProperties::kBloomFilterSizeInBytes = "size";
const char *BloomFilterIndexProperties::kBloomFilterNumHashes = "num_hashes";
const char *BloomFilterIndexProperties::kBloomFilterProjectElementCount = "projected_element_count";
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/parser/ParseIndexProperties.hpp
----------------------------------------------------------------------
diff --git a/parser/ParseIndexProperties.hpp b/parser/ParseIndexProperties.hpp
index b34346c..9ca1419 100644
--- a/parser/ParseIndexProperties.hpp
+++ b/parser/ParseIndexProperties.hpp
@@ -52,6 +52,8 @@ class IndexProperties {
kUnimplemented,
kDuplicateKey,
kInvalidKey,
+ kInvalidValue,
+ kTypeIsNotString,
kSizeIsFloat,
kSizeIsNegative,
kNumHashesIsFloat,
@@ -173,6 +175,80 @@ class IndexProperties {
};
/**
+ * @brief Implementation of index properties for a BitWeaving Index (H or V).
+ */
+class BitWeavingIndexProperties : public IndexProperties {
+ public:
+ static const char *kBitWeavingType; // is of type string.
+
+ /**
+ * @brief Constructor.
+ **/
+ BitWeavingIndexProperties()
+ : IndexProperties(new IndexSubBlockDescription()) {
+ // Default to BITWEAVING_V, custom properties can change this to H.
+ index_sub_block_description_->set_sub_block_type(IndexSubBlockDescription::BITWEAVING_V);
+ }
+
+ ~BitWeavingIndexProperties() override {
+ }
+
+ std::string getReasonForInvalidIndexDescription() const override {
+ switch (invalid_index_type_) {
+ case InvalidIndexType::kNone:
+ return "";
+ case InvalidIndexType::kDuplicateKey: // Fall through.
+ case InvalidIndexType::kInvalidKey:
+ return "The only valid property for BitWeaving is TYPE.";
+ case InvalidIndexType::kTypeIsNotString: // Fall through.
+ case InvalidIndexType::kInvalidValue:
+ return "The only valid values for TYPE are V or H.";
+ default:
+ return "Unknown reason";
+ }
+ }
+
+ bool addCustomProperties(const PtrList<ParseKeyValue> *key_value_list) override {
+ if (key_value_list->size() == 0u) {
+ // No properties specified.
+ return true;
+ } else if (key_value_list->size() == 1u) {
+ const ParseKeyValue &key_value = *key_value_list->begin();
+ if (key_value.getKeyValueType() != ParseKeyValue::KeyValueType::kStringString) {
+ setIndexDescriptionAsInvalid(InvalidIndexType::kTypeIsNotString, &key_value);
+ return false;
+ }
+ const std::string key = ToLower(key_value.key()->value());
+ const std::string value = ToLower(
+ static_cast<const ParseKeyStringValue&>(key_value).key()->value());
+ if (key.compare(kBitWeavingType) == 0) {
+ if (value.compare("h") == 0) {
+ index_sub_block_description_->set_sub_block_type(IndexSubBlockDescription::BITWEAVING_H);
+ return true;
+ } else if (value.compare("v") != 0) {
+ setIndexDescriptionAsInvalid(InvalidIndexType::kInvalidValue, &key_value);
+ return false;
+ } else {
+ // If V was specified, then we do nothing because it's set to V by default.
+ return true;
+ }
+ } else {
+ // Incorrect key specified.
+ setIndexDescriptionAsInvalid(InvalidIndexType::kInvalidKey, &key_value);
+ return false;
+ }
+ } else {
+ // More than one key. This must be an error.
+ invalid_index_type_ = InvalidIndexType::kDuplicateKey;
+ return false;
+ }
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(BitWeavingIndexProperties);
+};
+
+/**
* @brief Implementation of index properties for Bloom Filter Index
*/
class BloomFilterIndexProperties : public IndexProperties {
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/parser/ParseStatement.hpp
----------------------------------------------------------------------
diff --git a/parser/ParseStatement.hpp b/parser/ParseStatement.hpp
index 643643d..65acc68 100644
--- a/parser/ParseStatement.hpp
+++ b/parser/ParseStatement.hpp
@@ -345,6 +345,10 @@ class ParseStatementCreateIndex : public ParseStatement {
inline_field_names->push_back("index_type");
const int index_type_enum_val = std::stoi(index_type_->value());
switch (index_type_enum_val) {
+ case IndexSubBlockType::kBitWeavingV: // Fall through.
+ case IndexSubBlockType::kBitWeavingH:
+ inline_field_values->push_back("bitweaving");
+ break;
case IndexSubBlockType::kCSBTree:
inline_field_values->push_back("cs_b_tree");
break;
@@ -385,6 +389,10 @@ class ParseStatementCreateIndex : public ParseStatement {
void initializeIndexType() {
const int index_type_enum_val = std::stoi(index_type_->value());
switch (index_type_enum_val) {
+ case IndexSubBlockType::kBitWeavingV: // Fall through.
+ case IndexSubBlockType::kBitWeavingH:
+ index_properties_.reset(new BitWeavingIndexProperties());
+ break;
case IndexSubBlockType::kBloomFilter:
index_properties_.reset(new BloomFilterIndexProperties());
break;
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/parser/SqlLexer.lpp
----------------------------------------------------------------------
diff --git a/parser/SqlLexer.lpp b/parser/SqlLexer.lpp
index 4ee50ec..5c2e221 100644
--- a/parser/SqlLexer.lpp
+++ b/parser/SqlLexer.lpp
@@ -174,6 +174,7 @@ unsigned_numeric_literal {exact_numeric_literal}|{approximate_numeric_literal}
"between" return TOKEN_BETWEEN;
"bigint" return TOKEN_BIGINT;
"bit" return TOKEN_BIT;
+ "bitweaving" return TOKEN_BITWEAVING;
"blockproperties" return TOKEN_BLOCKPROPERTIES;
"blocksample" return TOKEN_BLOCKSAMPLE;
"bloomfilter" return TOKEN_BLOOM_FILTER;
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/parser/SqlParser.ypp
----------------------------------------------------------------------
diff --git a/parser/SqlParser.ypp b/parser/SqlParser.ypp
index 70db649..0cf4590 100644
--- a/parser/SqlParser.ypp
+++ b/parser/SqlParser.ypp
@@ -238,6 +238,7 @@ void NotSupported(const YYLTYPE *location, yyscan_t yyscanner, const std::string
%token TOKEN_ASC;
%token TOKEN_BIGINT;
%token TOKEN_BIT;
+%token TOKEN_BITWEAVING;
%token TOKEN_BLOCKPROPERTIES;
%token TOKEN_BLOCKSAMPLE;
%token TOKEN_BLOOM_FILTER;
@@ -985,7 +986,12 @@ key_integer_value:
};
index_type:
- TOKEN_BLOOM_FILTER {
+ TOKEN_BITWEAVING {
+ // Defaults to BitWeavingV, but IndexProperties can change this to H.
+ $$ = new quickstep::ParseString(@1.first_line, @1.first_column,
+ std::to_string(quickstep::IndexSubBlockType::kBitWeavingV));
+ }
+ | TOKEN_BLOOM_FILTER {
$$ = new quickstep::ParseString(@1.first_line, @1.first_column,
std::to_string(quickstep::IndexSubBlockType::kBloomFilter));
}
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/parser/preprocessed/SqlLexer_gen.cpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlLexer_gen.cpp b/parser/preprocessed/SqlLexer_gen.cpp
index 4175e20..d00d51f 100644
--- a/parser/preprocessed/SqlLexer_gen.cpp
+++ b/parser/preprocessed/SqlLexer_gen.cpp
@@ -381,8 +381,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
*yy_cp = '\0'; \
yyg->yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 143
-#define YY_END_OF_BUFFER 144
+#define YY_NUM_RULES 144
+#define YY_END_OF_BUFFER 145
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
@@ -390,65 +390,66 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
-static yyconst flex_int16_t yy_accept[520] =
+static yyconst flex_int16_t yy_accept[527] =
{ 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 144, 2, 2, 142, 142, 141, 140, 142,
- 119, 115, 118, 115, 115, 138, 111, 108, 112, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 116, 4, 5, 5, 3, 134, 134,
- 131, 135, 135, 129, 136, 136, 133, 1, 141, 109,
- 139, 138, 138, 138, 0, 113, 110, 114, 137, 137,
- 137, 137, 10, 137, 137, 137, 21, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 117, 137, 137,
-
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 54, 62, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 74, 75, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 4, 5, 3, 134,
- 130, 135, 128, 128, 120, 122, 123, 124, 125, 126,
- 127, 128, 136, 132, 139, 138, 0, 138, 6, 7,
- 137, 9, 11, 137, 137, 15, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 41, 137, 137, 137, 137, 137,
-
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 58, 137, 64, 137, 137, 137, 137, 137, 70, 137,
- 73, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 137, 90, 91, 137, 137, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 120,
- 122, 121, 137, 137, 137, 137, 137, 137, 19, 22,
- 137, 137, 137, 27, 137, 137, 29, 137, 137, 137,
- 137, 35, 137, 137, 39, 40, 137, 137, 137, 137,
- 137, 137, 137, 49, 50, 137, 52, 137, 137, 137,
- 137, 137, 61, 63, 65, 66, 67, 137, 69, 71,
-
- 137, 137, 137, 137, 137, 82, 137, 84, 137, 137,
- 137, 137, 137, 137, 137, 94, 95, 97, 137, 137,
- 137, 137, 137, 137, 104, 137, 106, 137, 120, 121,
- 8, 137, 137, 137, 137, 137, 137, 24, 137, 137,
- 137, 137, 137, 137, 137, 137, 137, 137, 137, 137,
- 137, 137, 137, 45, 46, 47, 137, 51, 137, 55,
- 56, 137, 137, 137, 68, 72, 76, 77, 137, 137,
- 137, 83, 137, 137, 87, 137, 137, 137, 93, 137,
- 137, 137, 137, 101, 137, 137, 105, 137, 137, 137,
- 14, 137, 137, 137, 137, 25, 137, 28, 137, 137,
-
- 137, 137, 33, 137, 137, 137, 38, 137, 43, 137,
- 137, 53, 57, 137, 137, 137, 137, 137, 137, 86,
- 137, 89, 137, 137, 137, 99, 100, 102, 137, 137,
- 137, 13, 137, 137, 137, 137, 137, 20, 137, 31,
- 32, 137, 137, 137, 137, 44, 48, 59, 137, 137,
- 80, 81, 137, 137, 137, 137, 137, 103, 137, 137,
- 137, 137, 137, 137, 137, 30, 137, 137, 37, 137,
- 60, 137, 137, 137, 92, 137, 137, 137, 12, 137,
- 137, 137, 23, 137, 34, 137, 137, 78, 137, 137,
- 96, 137, 107, 137, 137, 137, 26, 36, 137, 79,
-
- 85, 137, 137, 137, 17, 18, 137, 137, 98, 137,
- 137, 137, 137, 137, 88, 137, 42, 16, 0
+ 0, 0, 145, 2, 2, 143, 143, 142, 141, 143,
+ 120, 116, 119, 116, 116, 139, 112, 109, 113, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 117, 4, 5, 5, 3, 135, 135,
+ 132, 136, 136, 130, 137, 137, 134, 1, 142, 110,
+ 140, 139, 139, 139, 0, 114, 111, 115, 138, 138,
+ 138, 138, 10, 138, 138, 138, 22, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 118, 138, 138,
+
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 55, 63, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 75, 76, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 4, 5, 3, 135,
+ 131, 136, 129, 129, 121, 123, 124, 125, 126, 127,
+ 128, 129, 137, 133, 140, 139, 0, 139, 6, 7,
+ 138, 9, 11, 138, 138, 15, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 42, 138, 138, 138, 138, 138,
+
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 59, 138, 65, 138, 138, 138, 138, 138, 71, 138,
+ 74, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 91, 92, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 121,
+ 123, 122, 138, 138, 138, 138, 138, 138, 138, 20,
+ 23, 138, 138, 138, 28, 138, 138, 30, 138, 138,
+ 138, 138, 36, 138, 138, 40, 41, 138, 138, 138,
+ 138, 138, 138, 138, 50, 51, 138, 53, 138, 138,
+ 138, 138, 138, 62, 64, 66, 67, 68, 138, 70,
+
+ 72, 138, 138, 138, 138, 138, 83, 138, 85, 138,
+ 138, 138, 138, 138, 138, 138, 95, 96, 98, 138,
+ 138, 138, 138, 138, 138, 105, 138, 107, 138, 121,
+ 122, 8, 138, 138, 138, 138, 138, 138, 138, 25,
+ 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
+ 138, 138, 138, 138, 138, 46, 47, 48, 138, 52,
+ 138, 56, 57, 138, 138, 138, 69, 73, 77, 78,
+ 138, 138, 138, 84, 138, 138, 88, 138, 138, 138,
+ 94, 138, 138, 138, 138, 102, 138, 138, 106, 138,
+ 138, 138, 14, 138, 138, 138, 138, 138, 26, 138,
+
+ 29, 138, 138, 138, 138, 34, 138, 138, 138, 39,
+ 138, 44, 138, 138, 54, 58, 138, 138, 138, 138,
+ 138, 138, 87, 138, 90, 138, 138, 138, 100, 101,
+ 103, 138, 138, 138, 13, 138, 138, 138, 138, 138,
+ 138, 21, 138, 32, 33, 138, 138, 138, 138, 45,
+ 49, 60, 138, 138, 81, 82, 138, 138, 138, 138,
+ 138, 104, 138, 138, 138, 138, 138, 138, 138, 138,
+ 31, 138, 138, 38, 138, 61, 138, 138, 138, 93,
+ 138, 138, 138, 12, 138, 138, 138, 138, 24, 138,
+ 35, 138, 138, 79, 138, 138, 97, 138, 108, 16,
+
+ 138, 138, 138, 27, 37, 138, 80, 86, 138, 138,
+ 138, 18, 19, 138, 138, 99, 138, 138, 138, 138,
+ 138, 89, 138, 43, 17, 0
} ;
static yyconst YY_CHAR yy_ec[256] =
@@ -495,139 +496,141 @@ static yyconst YY_CHAR yy_meta[72] =
8
} ;
-static yyconst flex_uint16_t yy_base[535] =
+static yyconst flex_uint16_t yy_base[542] =
{ 0,
0, 1, 46, 0, 117, 163, 2, 3, 128, 132,
- 6, 10, 260, 1157, 1157, 0, 1157, 13, 1157, 241,
- 1157, 1157, 1157, 239, 6, 130, 4, 1157, 202, 124,
+ 6, 10, 260, 1177, 1177, 0, 1177, 13, 1177, 241,
+ 1177, 1177, 1177, 239, 6, 130, 4, 1177, 202, 124,
161, 170, 178, 207, 260, 92, 110, 161, 97, 108,
219, 0, 153, 221, 176, 108, 232, 171, 276, 272,
- 129, 221, 177, 1157, 184, 4, 19, 0, 0, 0,
- 146, 0, 0, 340, 0, 0, 145, 0, 22, 1157,
- 0, 249, 284, 334, 18, 1157, 1157, 1157, 0, 232,
+ 129, 221, 177, 1177, 184, 4, 19, 0, 0, 0,
+ 146, 0, 0, 340, 0, 0, 145, 0, 22, 1177,
+ 0, 249, 284, 334, 18, 1177, 1177, 1177, 0, 232,
262, 234, 270, 267, 285, 278, 0, 276, 307, 331,
- 291, 307, 299, 347, 313, 312, 325, 1157, 325, 345,
+ 291, 307, 299, 347, 313, 312, 325, 1177, 325, 345,
348, 343, 343, 338, 342, 347, 352, 358, 362, 378,
394, 0, 381, 366, 382, 396, 392, 390, 387, 397,
404, 0, 407, 392, 397, 398, 408, 409, 407, 447,
415, 400, 437, 434, 453, 451, 445, 438, 444, 452,
458, 454, 453, 461, 447, 467, 148, 29, 0, 0,
- 1157, 0, 1157, 1157, 22, 24, 1157, 1157, 1157, 1157,
- 1157, 0, 0, 1157, 0, 474, 26, 28, 0, 0,
- 467, 0, 468, 451, 466, 0, 478, 471, 462, 495,
- 478, 487, 482, 510, 492, 508, 505, 514, 511, 514,
- 498, 517, 505, 518, 0, 523, 506, 508, 510, 511,
-
- 530, 527, 520, 522, 516, 530, 530, 546, 551, 552,
- 559, 551, 0, 549, 550, 566, 563, 566, 0, 563,
- 0, 571, 572, 558, 576, 568, 562, 576, 572, 582,
- 583, 581, 98, 585, 0, 579, 580, 581, 591, 592,
- 597, 597, 614, 608, 602, 624, 614, 621, 612, 30,
- 125, 0, 613, 619, 629, 621, 625, 624, 0, 638,
- 629, 628, 622, 0, 625, 628, 627, 635, 628, 630,
- 640, 649, 646, 655, 0, 0, 656, 653, 679, 676,
- 665, 666, 678, 0, 0, 672, 0, 675, 666, 673,
- 674, 686, 0, 0, 0, 0, 0, 674, 0, 676,
-
- 679, 680, 690, 695, 702, 0, 700, 0, 688, 683,
- 688, 707, 709, 701, 720, 0, 711, 0, 726, 717,
- 719, 736, 739, 737, 0, 741, 0, 734, 136, 1157,
- 0, 744, 744, 730, 736, 745, 750, 0, 742, 739,
- 753, 756, 753, 762, 752, 760, 757, 755, 756, 766,
- 778, 769, 786, 0, 0, 0, 789, 0, 790, 0,
- 0, 781, 797, 781, 0, 0, 0, 0, 784, 791,
- 788, 0, 802, 792, 0, 804, 790, 802, 0, 793,
- 795, 810, 811, 0, 800, 819, 0, 806, 813, 809,
- 0, 806, 826, 819, 809, 0, 840, 0, 841, 834,
-
- 842, 835, 0, 839, 856, 858, 0, 93, 0, 842,
- 849, 0, 0, 846, 864, 857, 847, 843, 855, 0,
- 859, 0, 858, 872, 873, 0, 0, 0, 859, 864,
- 865, 0, 865, 868, 870, 880, 877, 0, 882, 0,
- 0, 894, 895, 885, 893, 0, 0, 0, 901, 902,
- 0, 0, 915, 910, 900, 908, 909, 0, 903, 917,
- 909, 910, 907, 911, 916, 0, 913, 918, 0, 915,
- 0, 922, 932, 925, 0, 923, 924, 935, 0, 939,
- 933, 952, 0, 942, 0, 956, 952, 952, 956, 967,
- 0, 965, 0, 960, 974, 962, 0, 0, 972, 0,
-
- 0, 962, 978, 964, 0, 0, 971, 982, 0, 979,
- 982, 972, 988, 975, 0, 976, 0, 0, 1157, 1041,
- 1051, 1061, 1071, 1081, 1085, 1088, 1094, 1102, 1112, 1122,
- 1132, 1142, 1147, 1149
+ 1177, 0, 1177, 1177, 22, 24, 1177, 1177, 1177, 1177,
+ 1177, 0, 0, 1177, 0, 474, 26, 28, 0, 0,
+ 467, 0, 468, 451, 466, 453, 478, 475, 480, 496,
+ 485, 488, 486, 511, 493, 509, 506, 515, 512, 515,
+ 499, 518, 507, 519, 0, 524, 507, 511, 511, 512,
+
+ 531, 528, 521, 525, 517, 531, 542, 551, 552, 559,
+ 560, 555, 0, 550, 551, 567, 564, 567, 0, 564,
+ 0, 572, 573, 559, 578, 569, 563, 577, 575, 583,
+ 584, 582, 98, 586, 0, 580, 583, 582, 592, 604,
+ 602, 598, 621, 609, 606, 625, 615, 622, 613, 30,
+ 125, 0, 614, 620, 630, 622, 632, 628, 627, 0,
+ 640, 631, 632, 626, 0, 627, 630, 629, 637, 632,
+ 634, 642, 662, 663, 661, 0, 0, 664, 661, 684,
+ 681, 667, 668, 680, 0, 0, 674, 0, 677, 668,
+ 675, 676, 688, 0, 0, 0, 0, 0, 677, 0,
+
+ 679, 681, 682, 694, 699, 704, 0, 702, 0, 690,
+ 687, 692, 709, 722, 718, 726, 0, 719, 0, 734,
+ 722, 724, 738, 741, 739, 0, 743, 0, 736, 136,
+ 1177, 0, 746, 746, 732, 752, 739, 750, 754, 0,
+ 747, 744, 758, 759, 756, 765, 757, 765, 762, 769,
+ 774, 784, 791, 778, 798, 0, 0, 0, 795, 0,
+ 796, 0, 0, 784, 800, 784, 0, 0, 0, 0,
+ 787, 794, 791, 0, 805, 795, 0, 808, 794, 806,
+ 0, 796, 800, 815, 816, 0, 803, 822, 0, 809,
+ 818, 814, 0, 807, 823, 845, 838, 834, 0, 854,
+
+ 0, 854, 847, 849, 842, 0, 843, 860, 862, 0,
+ 93, 0, 846, 853, 0, 0, 850, 868, 862, 852,
+ 848, 860, 0, 865, 0, 864, 878, 879, 0, 0,
+ 0, 863, 868, 871, 0, 877, 872, 886, 892, 900,
+ 903, 0, 908, 0, 0, 912, 909, 899, 901, 0,
+ 0, 0, 909, 907, 0, 0, 920, 915, 905, 913,
+ 914, 0, 909, 923, 917, 916, 919, 916, 919, 924,
+ 0, 921, 926, 0, 923, 0, 930, 940, 944, 0,
+ 946, 947, 962, 0, 964, 970, 964, 972, 0, 958,
+ 0, 972, 962, 962, 963, 974, 0, 972, 0, 0,
+
+ 967, 982, 970, 0, 0, 980, 0, 0, 970, 988,
+ 974, 0, 0, 981, 991, 0, 988, 991, 983, 997,
+ 984, 0, 996, 0, 0, 1177, 1061, 1071, 1081, 1091,
+ 1101, 1105, 1108, 1114, 1122, 1132, 1142, 1152, 1162, 1167,
+ 1169
} ;
-static yyconst flex_int16_t yy_def[535] =
+static yyconst flex_int16_t yy_def[542] =
{ 0,
- 520, 520, 519, 3, 521, 521, 522, 522, 523, 523,
- 524, 524, 519, 519, 519, 525, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 526,
+ 527, 527, 526, 3, 528, 528, 529, 529, 530, 530,
+ 531, 531, 526, 526, 526, 532, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 526, 526, 526, 526, 534, 535, 535,
+ 526, 536, 536, 537, 538, 538, 526, 532, 526, 526,
+ 539, 526, 526, 526, 526, 526, 526, 526, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 526, 533, 533,
+
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 526, 526, 534, 535,
+ 526, 536, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 540, 538, 526, 539, 526, 526, 526, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 526,
+ 526, 541, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 526,
+ 526, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 533, 533, 533, 533, 533,
+ 533, 533, 533, 533, 533, 0, 526, 526, 526, 526,
526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 519, 519, 519, 519, 527, 528, 528,
- 519, 529, 529, 530, 531, 531, 519, 525, 519, 519,
- 532, 519, 519, 519, 519, 519, 519, 519, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 519, 526, 526,
-
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 519, 519, 527, 528,
- 519, 529, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 533, 531, 519, 532, 519, 519, 519, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
-
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 519,
- 519, 534, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
-
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 519, 519,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
-
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
-
- 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
- 526, 526, 526, 526, 526, 526, 526, 526, 0, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519
+ 526
} ;
-static yyconst flex_uint16_t yy_nxt[1229] =
+static yyconst flex_uint16_t yy_nxt[1249] =
{ 0,
- 519, 519, 15, 15, 60, 60, 148, 148, 66, 61,
- 61, 67, 66, 519, 69, 67, 69, 72, 72, 76,
- 77, 148, 148, 69, 519, 69, 167, 167, 519, 168,
+ 526, 526, 15, 15, 60, 60, 148, 148, 66, 61,
+ 61, 67, 66, 526, 69, 67, 69, 72, 72, 76,
+ 77, 148, 148, 69, 526, 69, 167, 167, 526, 168,
168, 148, 148, 250, 251, 251, 251, 168, 168, 168,
- 168, 329, 251, 519, 16, 16, 17, 18, 19, 18,
+ 168, 330, 251, 526, 16, 16, 17, 18, 19, 18,
20, 21, 22, 23, 22, 24, 25, 26, 26, 17,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
@@ -637,8 +640,8 @@ static yyconst flex_uint16_t yy_nxt[1229] =
38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 42, 53, 17, 55, 56,
57, 17, 17, 17, 17, 17, 109, 110, 113, 114,
- 63, 17, 17, 17, 63, 61, 251, 251, 445, 61,
- 73, 74, 74, 312, 80, 128, 143, 251, 251, 147,
+ 63, 17, 17, 17, 63, 61, 251, 251, 449, 61,
+ 73, 74, 74, 313, 80, 128, 143, 251, 251, 147,
164, 75, 81, 151, 82, 109, 110, 113, 114, 83,
17, 17, 17, 17, 55, 56, 57, 17, 17, 17,
17, 17, 64, 80, 128, 143, 64, 17, 17, 17,
@@ -650,17 +653,17 @@ static yyconst flex_uint16_t yy_nxt[1229] =
111, 133, 125, 89, 93, 112, 126, 146, 94, 134,
90, 87, 95, 91, 92, 99, 115, 100, 96, 127,
116, 97, 101, 121, 117, 144, 145, 102, 71, 129,
- 118, 122, 169, 130, 172, 123, 70, 131, 124, 519,
- 72, 72, 519, 132, 99, 115, 100, 519, 519, 116,
+ 118, 122, 169, 130, 172, 123, 70, 131, 124, 526,
+ 72, 72, 526, 132, 99, 115, 100, 526, 526, 116,
75, 101, 121, 117, 144, 145, 102, 103, 129, 118,
122, 169, 130, 172, 123, 104, 131, 124, 105, 173,
170, 106, 132, 135, 107, 166, 166, 108, 171, 75,
136, 137, 140, 174, 141, 75, 103, 142, 175, 177,
- 138, 178, 184, 139, 104, 519, 519, 105, 173, 170,
+ 138, 178, 184, 139, 104, 526, 526, 105, 173, 170,
106, 176, 135, 107, 179, 185, 108, 171, 180, 136,
137, 140, 174, 141, 75, 186, 142, 175, 177, 138,
- 178, 184, 139, 154, 73, 74, 74, 519, 191, 192,
+ 178, 184, 139, 154, 73, 74, 74, 526, 191, 192,
176, 155, 156, 179, 185, 75, 193, 180, 157, 181,
194, 182, 158, 183, 186, 195, 187, 196, 197, 188,
159, 199, 200, 201, 160, 189, 161, 191, 192, 198,
@@ -671,59 +674,59 @@ static yyconst flex_uint16_t yy_nxt[1229] =
202, 190, 203, 206, 208, 204, 207, 214, 215, 216,
218, 217, 205, 219, 209, 220, 221, 222, 223, 210,
211, 224, 225, 226, 227, 212, 213, 228, 232, 233,
- 519, 519, 206, 208, 519, 207, 214, 215, 216, 218,
+ 526, 526, 206, 208, 526, 207, 214, 215, 216, 218,
217, 236, 219, 209, 220, 221, 222, 223, 210, 211,
224, 225, 226, 227, 229, 234, 228, 232, 233, 230,
231, 237, 238, 235, 239, 240, 241, 242, 243, 244,
236, 245, 247, 248, 249, 166, 166, 246, 253, 254,
- 255, 256, 259, 229, 234, 75, 260, 257, 230, 231,
+ 255, 256, 257, 229, 234, 75, 260, 258, 230, 231,
- 237, 238, 235, 239, 240, 241, 242, 243, 244, 258,
+ 237, 238, 235, 239, 240, 241, 242, 243, 244, 259,
245, 247, 248, 249, 261, 262, 246, 253, 254, 255,
- 256, 259, 263, 264, 75, 260, 257, 265, 266, 267,
- 268, 269, 270, 272, 273, 274, 271, 275, 258, 276,
+ 256, 257, 263, 264, 75, 260, 258, 265, 266, 267,
+ 268, 269, 270, 271, 273, 274, 275, 272, 259, 276,
277, 278, 279, 261, 262, 280, 281, 282, 283, 284,
285, 263, 264, 286, 287, 288, 265, 266, 267, 268,
- 269, 270, 272, 273, 274, 271, 275, 289, 276, 277,
+ 269, 270, 271, 273, 274, 275, 272, 289, 276, 277,
278, 279, 290, 291, 280, 281, 282, 283, 284, 285,
- 292, 294, 286, 287, 288, 295, 296, 297, 298, 299,
- 293, 300, 301, 302, 303, 304, 289, 305, 306, 307,
-
- 308, 290, 291, 309, 310, 311, 313, 314, 315, 292,
- 294, 316, 317, 318, 295, 296, 297, 298, 299, 293,
- 300, 301, 302, 303, 304, 319, 305, 306, 307, 308,
- 320, 321, 309, 310, 311, 313, 314, 315, 322, 323,
- 316, 317, 318, 324, 325, 327, 328, 331, 326, 332,
+ 292, 293, 286, 287, 288, 295, 296, 297, 298, 299,
+ 300, 294, 301, 302, 303, 304, 289, 305, 306, 307,
+
+ 308, 290, 291, 309, 310, 311, 312, 314, 315, 292,
+ 293, 316, 317, 318, 295, 296, 297, 298, 299, 300,
+ 294, 301, 302, 303, 304, 319, 305, 306, 307, 308,
+ 320, 321, 309, 310, 311, 312, 314, 315, 322, 323,
+ 316, 317, 318, 324, 325, 326, 328, 329, 332, 327,
333, 334, 335, 336, 319, 337, 338, 339, 340, 320,
321, 341, 342, 343, 344, 345, 346, 322, 323, 347,
- 348, 349, 324, 325, 327, 328, 331, 326, 332, 333,
+ 348, 349, 324, 325, 326, 328, 329, 332, 327, 333,
334, 335, 336, 350, 337, 338, 339, 340, 351, 352,
341, 342, 343, 344, 345, 346, 353, 354, 347, 348,
349, 355, 356, 357, 358, 359, 360, 361, 362, 363,
- 365, 366, 350, 367, 368, 369, 370, 351, 352, 371,
- 364, 372, 373, 374, 375, 353, 354, 376, 377, 378,
- 355, 356, 357, 358, 359, 360, 361, 362, 363, 365,
- 366, 379, 367, 368, 369, 370, 380, 381, 371, 364,
- 372, 373, 374, 375, 382, 383, 376, 377, 378, 384,
- 385, 386, 387, 388, 389, 390, 391, 394, 392, 395,
- 379, 393, 396, 397, 398, 380, 381, 399, 400, 401,
+ 364, 365, 350, 367, 368, 369, 370, 351, 352, 371,
+ 372, 373, 366, 374, 375, 353, 354, 376, 377, 378,
+ 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
+ 365, 379, 367, 368, 369, 370, 380, 381, 371, 372,
+ 373, 366, 374, 375, 382, 383, 376, 377, 378, 384,
+ 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
+ 379, 395, 397, 398, 396, 380, 381, 399, 400, 401,
402, 403, 404, 382, 383, 405, 406, 407, 384, 385,
- 386, 387, 388, 389, 390, 391, 394, 392, 395, 408,
+ 386, 387, 388, 389, 390, 391, 392, 393, 394, 408,
- 393, 396, 397, 398, 409, 410, 399, 400, 401, 402,
+ 395, 397, 398, 396, 409, 410, 399, 400, 401, 402,
403, 404, 411, 412, 405, 406, 407, 413, 414, 415,
416, 417, 418, 419, 420, 421, 422, 423, 408, 424,
425, 426, 427, 409, 410, 428, 429, 430, 431, 432,
433, 411, 412, 434, 435, 436, 413, 414, 415, 416,
417, 418, 419, 420, 421, 422, 423, 437, 424, 425,
426, 427, 438, 439, 428, 429, 430, 431, 432, 433,
- 440, 441, 434, 435, 436, 442, 443, 444, 446, 447,
- 448, 449, 450, 451, 452, 453, 437, 454, 455, 456,
+ 440, 441, 434, 435, 436, 442, 443, 444, 445, 446,
+ 447, 448, 450, 451, 452, 453, 437, 454, 455, 456,
457, 438, 439, 458, 459, 460, 461, 462, 463, 440,
- 441, 464, 465, 466, 442, 443, 444, 446, 447, 448,
- 449, 450, 451, 452, 453, 467, 454, 455, 456, 457,
+ 441, 464, 465, 466, 442, 443, 444, 445, 446, 447,
+ 448, 450, 451, 452, 453, 467, 454, 455, 456, 457,
468, 469, 458, 459, 460, 461, 462, 463, 470, 471,
464, 465, 466, 472, 473, 474, 475, 476, 477, 478,
479, 480, 481, 482, 467, 483, 484, 485, 486, 468,
@@ -734,33 +737,35 @@ static yyconst flex_uint16_t yy_nxt[1229] =
495, 501, 502, 503, 504, 505, 506, 507, 508, 509,
510, 511, 496, 512, 513, 514, 515, 497, 498, 516,
- 517, 518, 519, 519, 519, 499, 500, 519, 519, 519,
+ 517, 518, 519, 520, 521, 499, 500, 522, 523, 524,
501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
- 511, 519, 512, 513, 514, 515, 519, 519, 516, 517,
- 518, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 511, 525, 512, 513, 514, 515, 526, 526, 516, 517,
+ 518, 519, 520, 521, 526, 526, 522, 523, 524, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 525, 14, 14, 14, 14, 14, 14, 14, 14, 14,
14, 58, 58, 58, 58, 58, 58, 58, 58, 58,
58, 59, 59, 59, 59, 59, 59, 59, 59, 59,
59, 62, 62, 62, 62, 62, 62, 62, 62, 62,
+
62, 65, 65, 65, 65, 65, 65, 65, 65, 65,
- 65, 68, 68, 79, 79, 79, 519, 79, 149, 149,
-
- 149, 149, 150, 150, 150, 519, 150, 150, 150, 150,
- 150, 150, 152, 152, 152, 519, 152, 152, 152, 152,
- 519, 152, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 153, 163, 163, 519, 163, 163, 163, 163, 163,
- 163, 163, 165, 519, 165, 165, 165, 165, 165, 165,
- 165, 165, 252, 252, 330, 330, 13, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
-
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519
+ 65, 68, 68, 79, 79, 79, 526, 79, 149, 149,
+ 149, 149, 150, 150, 150, 526, 150, 150, 150, 150,
+ 150, 150, 152, 152, 152, 526, 152, 152, 152, 152,
+ 526, 152, 153, 153, 153, 153, 153, 153, 153, 153,
+ 153, 153, 163, 163, 526, 163, 163, 163, 163, 163,
+ 163, 163, 165, 526, 165, 165, 165, 165, 165, 165,
+ 165, 165, 252, 252, 331, 331, 13, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526
} ;
-static yyconst flex_int16_t yy_chk[1229] =
+static yyconst flex_int16_t yy_chk[1249] =
{ 0,
0, 0, 1, 2, 7, 8, 56, 56, 11, 7,
8, 11, 12, 0, 18, 12, 18, 25, 25, 27,
@@ -776,8 +781,8 @@ static yyconst flex_int16_t yy_chk[1229] =
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 5, 5, 5,
5, 5, 5, 5, 5, 5, 36, 37, 39, 40,
- 9, 5, 5, 5, 10, 9, 251, 251, 408, 10,
- 26, 26, 26, 233, 30, 46, 51, 329, 329, 147,
+ 9, 5, 5, 5, 10, 9, 251, 251, 411, 10,
+ 26, 26, 26, 233, 30, 46, 51, 330, 330, 147,
67, 26, 30, 61, 30, 36, 37, 39, 40, 30,
5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
6, 6, 9, 30, 46, 51, 10, 6, 6, 6,
@@ -815,92 +820,94 @@ static yyconst flex_int16_t yy_chk[1229] =
125, 126, 127, 128, 130, 133, 129, 131, 132, 130,
130, 135, 136, 133, 137, 138, 139, 140, 141, 142,
134, 143, 144, 145, 146, 166, 166, 143, 171, 173,
- 174, 175, 178, 130, 133, 166, 179, 177, 130, 130,
+ 174, 175, 176, 130, 133, 166, 178, 177, 130, 130,
135, 136, 133, 137, 138, 139, 140, 141, 142, 177,
- 143, 144, 145, 146, 180, 181, 143, 171, 173, 174,
- 175, 178, 182, 183, 166, 179, 177, 184, 185, 186,
- 187, 188, 189, 190, 191, 192, 189, 193, 177, 194,
- 196, 197, 198, 180, 181, 199, 200, 201, 202, 203,
- 204, 182, 183, 205, 206, 207, 184, 185, 186, 187,
- 188, 189, 190, 191, 192, 189, 193, 208, 194, 196,
- 197, 198, 209, 210, 199, 200, 201, 202, 203, 204,
- 211, 212, 205, 206, 207, 214, 215, 216, 217, 218,
- 211, 220, 222, 223, 224, 225, 208, 226, 227, 228,
-
- 229, 209, 210, 230, 231, 232, 234, 236, 237, 211,
- 212, 238, 239, 240, 214, 215, 216, 217, 218, 211,
- 220, 222, 223, 224, 225, 241, 226, 227, 228, 229,
- 242, 243, 230, 231, 232, 234, 236, 237, 244, 245,
- 238, 239, 240, 246, 247, 248, 249, 253, 247, 254,
- 255, 256, 257, 258, 241, 260, 261, 262, 263, 242,
- 243, 265, 266, 267, 268, 269, 270, 244, 245, 271,
- 272, 273, 246, 247, 248, 249, 253, 247, 254, 255,
- 256, 257, 258, 274, 260, 261, 262, 263, 277, 278,
- 265, 266, 267, 268, 269, 270, 279, 280, 271, 272,
-
- 273, 281, 282, 283, 286, 288, 289, 290, 291, 292,
- 298, 300, 274, 301, 302, 303, 304, 277, 278, 305,
- 292, 307, 309, 310, 311, 279, 280, 312, 313, 314,
- 281, 282, 283, 286, 288, 289, 290, 291, 292, 298,
- 300, 315, 301, 302, 303, 304, 317, 319, 305, 292,
- 307, 309, 310, 311, 320, 321, 312, 313, 314, 322,
- 323, 324, 326, 328, 332, 333, 334, 336, 335, 337,
- 315, 335, 339, 340, 341, 317, 319, 342, 343, 344,
- 345, 346, 347, 320, 321, 348, 349, 350, 322, 323,
- 324, 326, 328, 332, 333, 334, 336, 335, 337, 351,
-
- 335, 339, 340, 341, 352, 353, 342, 343, 344, 345,
- 346, 347, 357, 359, 348, 349, 350, 362, 363, 364,
- 369, 370, 371, 373, 374, 376, 377, 378, 351, 380,
- 381, 382, 383, 352, 353, 385, 386, 388, 389, 390,
- 392, 357, 359, 393, 394, 395, 362, 363, 364, 369,
- 370, 371, 373, 374, 376, 377, 378, 397, 380, 381,
- 382, 383, 399, 400, 385, 386, 388, 389, 390, 392,
- 401, 402, 393, 394, 395, 404, 405, 406, 410, 411,
- 414, 415, 416, 417, 418, 419, 397, 421, 423, 424,
- 425, 399, 400, 429, 430, 431, 433, 434, 435, 401,
-
- 402, 436, 437, 439, 404, 405, 406, 410, 411, 414,
- 415, 416, 417, 418, 419, 442, 421, 423, 424, 425,
- 443, 444, 429, 430, 431, 433, 434, 435, 445, 449,
- 436, 437, 439, 450, 453, 454, 455, 456, 457, 459,
- 460, 461, 462, 463, 442, 464, 465, 467, 468, 443,
- 444, 470, 472, 473, 474, 476, 477, 445, 449, 478,
- 480, 481, 450, 453, 454, 455, 456, 457, 459, 460,
- 461, 462, 463, 482, 464, 465, 467, 468, 484, 486,
- 470, 472, 473, 474, 476, 477, 487, 488, 478, 480,
- 481, 489, 490, 492, 494, 495, 496, 499, 502, 503,
-
- 504, 507, 482, 508, 510, 511, 512, 484, 486, 513,
- 514, 516, 0, 0, 0, 487, 488, 0, 0, 0,
- 489, 490, 492, 494, 495, 496, 499, 502, 503, 504,
- 507, 0, 508, 510, 511, 512, 0, 0, 513, 514,
- 516, 520, 520, 520, 520, 520, 520, 520, 520, 520,
- 520, 521, 521, 521, 521, 521, 521, 521, 521, 521,
- 521, 522, 522, 522, 522, 522, 522, 522, 522, 522,
- 522, 523, 523, 523, 523, 523, 523, 523, 523, 523,
- 523, 524, 524, 524, 524, 524, 524, 524, 524, 524,
- 524, 525, 525, 526, 526, 526, 0, 526, 527, 527,
-
- 527, 527, 528, 528, 528, 0, 528, 528, 528, 528,
- 528, 528, 529, 529, 529, 0, 529, 529, 529, 529,
- 0, 529, 530, 530, 530, 530, 530, 530, 530, 530,
- 530, 530, 531, 531, 0, 531, 531, 531, 531, 531,
- 531, 531, 532, 0, 532, 532, 532, 532, 532, 532,
- 532, 532, 533, 533, 534, 534, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
-
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519, 519, 519,
- 519, 519, 519, 519, 519, 519, 519, 519
+ 143, 144, 145, 146, 179, 180, 143, 171, 173, 174,
+ 175, 176, 181, 182, 166, 178, 177, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 189, 177, 193,
+ 194, 196, 197, 179, 180, 198, 199, 200, 201, 202,
+ 203, 181, 182, 204, 205, 206, 183, 184, 185, 186,
+ 187, 188, 189, 190, 191, 192, 189, 207, 193, 194,
+ 196, 197, 208, 209, 198, 199, 200, 201, 202, 203,
+ 210, 211, 204, 205, 206, 212, 214, 215, 216, 217,
+ 218, 211, 220, 222, 223, 224, 207, 225, 226, 227,
+
+ 228, 208, 209, 229, 230, 231, 232, 234, 236, 210,
+ 211, 237, 238, 239, 212, 214, 215, 216, 217, 218,
+ 211, 220, 222, 223, 224, 240, 225, 226, 227, 228,
+ 241, 242, 229, 230, 231, 232, 234, 236, 243, 244,
+ 237, 238, 239, 245, 246, 247, 248, 249, 253, 247,
+ 254, 255, 256, 257, 240, 258, 259, 261, 262, 241,
+ 242, 263, 264, 266, 267, 268, 269, 243, 244, 270,
+ 271, 272, 245, 246, 247, 248, 249, 253, 247, 254,
+ 255, 256, 257, 273, 258, 259, 261, 262, 274, 275,
+ 263, 264, 266, 267, 268, 269, 278, 279, 270, 271,
+
+ 272, 280, 281, 282, 283, 284, 287, 289, 290, 291,
+ 292, 293, 273, 299, 301, 302, 303, 274, 275, 304,
+ 305, 306, 293, 308, 310, 278, 279, 311, 312, 313,
+ 280, 281, 282, 283, 284, 287, 289, 290, 291, 292,
+ 293, 314, 299, 301, 302, 303, 315, 316, 304, 305,
+ 306, 293, 308, 310, 318, 320, 311, 312, 313, 321,
+ 322, 323, 324, 325, 327, 329, 333, 334, 335, 336,
+ 314, 337, 338, 339, 337, 315, 316, 341, 342, 343,
+ 344, 345, 346, 318, 320, 347, 348, 349, 321, 322,
+ 323, 324, 325, 327, 329, 333, 334, 335, 336, 350,
+
+ 337, 338, 339, 337, 351, 352, 341, 342, 343, 344,
+ 345, 346, 353, 354, 347, 348, 349, 355, 359, 361,
+ 364, 365, 366, 371, 372, 373, 375, 376, 350, 378,
+ 379, 380, 382, 351, 352, 383, 384, 385, 387, 388,
+ 390, 353, 354, 391, 392, 394, 355, 359, 361, 364,
+ 365, 366, 371, 372, 373, 375, 376, 395, 378, 379,
+ 380, 382, 396, 397, 383, 384, 385, 387, 388, 390,
+ 398, 400, 391, 392, 394, 402, 403, 404, 405, 407,
+ 408, 409, 413, 414, 417, 418, 395, 419, 420, 421,
+ 422, 396, 397, 424, 426, 427, 428, 432, 433, 398,
+
+ 400, 434, 436, 437, 402, 403, 404, 405, 407, 408,
+ 409, 413, 414, 417, 418, 438, 419, 420, 421, 422,
+ 439, 440, 424, 426, 427, 428, 432, 433, 441, 443,
+ 434, 436, 437, 446, 447, 448, 449, 453, 454, 457,
+ 458, 459, 460, 461, 438, 463, 464, 465, 466, 439,
+ 440, 467, 468, 469, 470, 472, 473, 441, 443, 475,
+ 477, 478, 446, 447, 448, 449, 453, 454, 457, 458,
+ 459, 460, 461, 479, 463, 464, 465, 466, 481, 482,
+ 467, 468, 469, 470, 472, 473, 483, 485, 475, 477,
+ 478, 486, 487, 488, 490, 492, 493, 494, 495, 496,
+
+ 498, 501, 479, 502, 503, 506, 509, 481, 482, 510,
+ 511, 514, 515, 517, 518, 483, 485, 519, 520, 521,
+ 486, 487, 488, 490, 492, 493, 494, 495, 496, 498,
+ 501, 523, 502, 503, 506, 509, 0, 0, 510, 511,
+ 514, 515, 517, 518, 0, 0, 519, 520, 521, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 523, 527, 527, 527, 527, 527, 527, 527, 527, 527,
+ 527, 528, 528, 528, 528, 528, 528, 528, 528, 528,
+ 528, 529, 529, 529, 529, 529, 529, 529, 529, 529,
+ 529, 530, 530, 530, 530, 530, 530, 530, 530, 530,
+
+ 530, 531, 531, 531, 531, 531, 531, 531, 531, 531,
+ 531, 532, 532, 533, 533, 533, 0, 533, 534, 534,
+ 534, 534, 535, 535, 535, 0, 535, 535, 535, 535,
+ 535, 535, 536, 536, 536, 0, 536, 536, 536, 536,
+ 0, 536, 537, 537, 537, 537, 537, 537, 537, 537,
+ 537, 537, 538, 538, 0, 538, 538, 538, 538, 538,
+ 538, 538, 539, 0, 539, 539, 539, 539, 539, 539,
+ 539, 539, 540, 540, 541, 541, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526, 526, 526,
+ 526, 526, 526, 526, 526, 526, 526, 526
} ;
/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[144] =
+static yyconst flex_int32_t yy_rule_can_match_eol[145] =
{ 0,
0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -908,8 +915,8 @@ static yyconst flex_int32_t yy_rule_can_match_eol[144] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0,
- 1, 0, 0, 0, };
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,
+ 0, 1, 0, 0, 0, };
/* The intent behind this definition is that it'll catch
* any uses of REJECT which flex missed.
@@ -1025,7 +1032,7 @@ class UnaryOperation;
-#line 1029 "SqlLexer_gen.cpp"
+#line 1036 "SqlLexer_gen.cpp"
#define INITIAL 0
#define CONDITION_SQL 1
@@ -1316,7 +1323,7 @@ YY_DECL
#line 127 "../SqlLexer.lpp"
-#line 1320 "SqlLexer_gen.cpp"
+#line 1327 "SqlLexer_gen.cpp"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -1343,13 +1350,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 >= 520 )
+ if ( yy_current_state >= 527 )
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 != 519 );
+ while ( yy_current_state != 526 );
yy_cp = yyg->yy_last_accepting_cpos;
yy_current_state = yyg->yy_last_accepting_state;
@@ -1488,37 +1495,37 @@ return TOKEN_BIT;
case 16:
YY_RULE_SETUP
#line 177 "../SqlLexer.lpp"
-return TOKEN_BLOCKPROPERTIES;
+return TOKEN_BITWEAVING;
YY_BREAK
case 17:
YY_RULE_SETUP
#line 178 "../SqlLexer.lpp"
-return TOKEN_BLOCKSAMPLE;
+return TOKEN_BLOCKPROPERTIES;
YY_BREAK
case 18:
YY_RULE_SETUP
#line 179 "../SqlLexer.lpp"
-return TOKEN_BLOOM_FILTER;
+return TOKEN_BLOCKSAMPLE;
YY_BREAK
case 19:
YY_RULE_SETUP
#line 180 "../SqlLexer.lpp"
-return TOKEN_CASE;
+return TOKEN_BLOOM_FILTER;
YY_BREAK
case 20:
YY_RULE_SETUP
#line 181 "../SqlLexer.lpp"
-return TOKEN_CSB_TREE;
+return TOKEN_CASE;
YY_BREAK
case 21:
YY_RULE_SETUP
#line 182 "../SqlLexer.lpp"
-return TOKEN_BY;
+return TOKEN_CSB_TREE;
YY_BREAK
case 22:
YY_RULE_SETUP
#line 183 "../SqlLexer.lpp"
-return TOKEN_CHARACTER;
+return TOKEN_BY;
YY_BREAK
case 23:
YY_RULE_SETUP
@@ -1528,62 +1535,62 @@ return TOKEN_CHARACTER;
case 24:
YY_RULE_SETUP
#line 185 "../SqlLexer.lpp"
-return TOKEN_CHECK;
+return TOKEN_CHARACTER;
YY_BREAK
case 25:
YY_RULE_SETUP
#line 186 "../SqlLexer.lpp"
-return TOKEN_COLUMN;
+return TOKEN_CHECK;
YY_BREAK
case 26:
YY_RULE_SETUP
#line 187 "../SqlLexer.lpp"
-return TOKEN_CONSTRAINT;
+return TOKEN_COLUMN;
YY_BREAK
case 27:
YY_RULE_SETUP
#line 188 "../SqlLexer.lpp"
-return TOKEN_COPY;
+return TOKEN_CONSTRAINT;
YY_BREAK
case 28:
YY_RULE_SETUP
#line 189 "../SqlLexer.lpp"
-return TOKEN_CREATE;
+return TOKEN_COPY;
YY_BREAK
case 29:
YY_RULE_SETUP
#line 190 "../SqlLexer.lpp"
-return TOKEN_DATE;
+return TOKEN_CREATE;
YY_BREAK
case 30:
YY_RULE_SETUP
#line 191 "../SqlLexer.lpp"
-return TOKEN_DATETIME;
+return TOKEN_DATE;
YY_BREAK
case 31:
YY_RULE_SETUP
#line 192 "../SqlLexer.lpp"
-return TOKEN_DECIMAL;
+return TOKEN_DATETIME;
YY_BREAK
case 32:
YY_RULE_SETUP
#line 193 "../SqlLexer.lpp"
-return TOKEN_DEFAULT;
+return TOKEN_DECIMAL;
YY_BREAK
case 33:
YY_RULE_SETUP
#line 194 "../SqlLexer.lpp"
-return TOKEN_DELETE;
+return TOKEN_DEFAULT;
YY_BREAK
case 34:
YY_RULE_SETUP
#line 195 "../SqlLexer.lpp"
-return TOKEN_DELIMITER;
+return TOKEN_DELETE;
YY_BREAK
case 35:
YY_RULE_SETUP
#line 196 "../SqlLexer.lpp"
-return TOKEN_DESC;
+return TOKEN_DELIMITER;
YY_BREAK
case 36:
YY_RULE_SETUP
@@ -1593,112 +1600,112 @@ return TOKEN_DESC;
case 37:
YY_RULE_SETUP
#line 198 "../SqlLexer.lpp"
-return TOKEN_DISTINCT;
+return TOKEN_DESC;
YY_BREAK
case 38:
YY_RULE_SETUP
#line 199 "../SqlLexer.lpp"
-return TOKEN_DOUBLE;
+return TOKEN_DISTINCT;
YY_BREAK
case 39:
YY_RULE_SETUP
#line 200 "../SqlLexer.lpp"
-return TOKEN_DROP;
+return TOKEN_DOUBLE;
YY_BREAK
case 40:
YY_RULE_SETUP
#line 201 "../SqlLexer.lpp"
-return TOKEN_ELSE;
+return TOKEN_DROP;
YY_BREAK
case 41:
YY_RULE_SETUP
#line 202 "../SqlLexer.lpp"
-return TOKEN_END;
+return TOKEN_ELSE;
YY_BREAK
case 42:
YY_RULE_SETUP
#line 203 "../SqlLexer.lpp"
-return TOKEN_ESCAPE_STRINGS;
+return TOKEN_END;
YY_BREAK
case 43:
YY_RULE_SETUP
#line 204 "../SqlLexer.lpp"
-return TOKEN_EXISTS;
+return TOKEN_ESCAPE_STRINGS;
YY_BREAK
case 44:
YY_RULE_SETUP
#line 205 "../SqlLexer.lpp"
-return TOKEN_EXTRACT;
+return TOKEN_EXISTS;
YY_BREAK
case 45:
YY_RULE_SETUP
#line 206 "../SqlLexer.lpp"
-return TOKEN_FALSE;
+return TOKEN_EXTRACT;
YY_BREAK
case 46:
YY_RULE_SETUP
#line 207 "../SqlLexer.lpp"
-return TOKEN_FIRST;
+return TOKEN_FALSE;
YY_BREAK
case 47:
YY_RULE_SETUP
#line 208 "../SqlLexer.lpp"
-return TOKEN_FLOAT;
+return TOKEN_FIRST;
YY_BREAK
case 48:
YY_RULE_SETUP
#line 209 "../SqlLexer.lpp"
-return TOKEN_FOREIGN;
+return TOKEN_FLOAT;
YY_BREAK
case 49:
YY_RULE_SETUP
#line 210 "../SqlLexer.lpp"
-return TOKEN_FROM;
+return TOKEN_FOREIGN;
YY_BREAK
case 50:
YY_RULE_SETUP
#line 211 "../SqlLexer.lpp"
-return TOKEN_FULL;
+return TOKEN_FROM;
YY_BREAK
case 51:
YY_RULE_SETUP
#line 212 "../SqlLexer.lpp"
-return TOKEN_GROUP;
+return TOKEN_FULL;
YY_BREAK
case 52:
YY_RULE_SETUP
#line 213 "../SqlLexer.lpp"
-return TOKEN_HASH;
+return TOKEN_GROUP;
YY_BREAK
case 53:
YY_RULE_SETUP
#line 214 "../SqlLexer.lpp"
-return TOKEN_HAVING;
+return TOKEN_HASH;
YY_BREAK
case 54:
YY_RULE_SETUP
#line 215 "../SqlLexer.lpp"
-return TOKEN_IN;
+return TOKEN_HAVING;
YY_BREAK
case 55:
YY_RULE_SETUP
#line 216 "../SqlLexer.lpp"
-return TOKEN_INDEX;
+return TOKEN_IN;
YY_BREAK
case 56:
YY_RULE_SETUP
#line 217 "../SqlLexer.lpp"
-return TOKEN_INNER;
+return TOKEN_INDEX;
YY_BREAK
case 57:
YY_RULE_SETUP
#line 218 "../SqlLexer.lpp"
-return TOKEN_INSERT;
+return TOKEN_INNER;
YY_BREAK
case 58:
YY_RULE_SETUP
#line 219 "../SqlLexer.lpp"
-return TOKEN_INTEGER;
+return TOKEN_INSERT;
YY_BREAK
case 59:
YY_RULE_SETUP
@@ -1708,252 +1715,252 @@ return TOKEN_INTEGER;
case 60:
YY_RULE_SETUP
#line 221 "../SqlLexer.lpp"
-return TOKEN_INTERVAL;
+return TOKEN_INTEGER;
YY_BREAK
case 61:
YY_RULE_SETUP
#line 222 "../SqlLexer.lpp"
-return TOKEN_INTO;
+return TOKEN_INTERVAL;
YY_BREAK
case 62:
YY_RULE_SETUP
#line 223 "../SqlLexer.lpp"
-return TOKEN_IS;
+return TOKEN_INTO;
YY_BREAK
case 63:
YY_RULE_SETUP
#line 224 "../SqlLexer.lpp"
-return TOKEN_JOIN;
+return TOKEN_IS;
YY_BREAK
case 64:
YY_RULE_SETUP
#line 225 "../SqlLexer.lpp"
-return TOKEN_KEY;
+return TOKEN_JOIN;
YY_BREAK
case 65:
YY_RULE_SETUP
#line 226 "../SqlLexer.lpp"
-return TOKEN_LAST;
+return TOKEN_KEY;
YY_BREAK
case 66:
YY_RULE_SETUP
#line 227 "../SqlLexer.lpp"
-return TOKEN_LEFT;
+return TOKEN_LAST;
YY_BREAK
case 67:
YY_RULE_SETUP
#line 228 "../SqlLexer.lpp"
-return TOKEN_LIKE;
+return TOKEN_LEFT;
YY_BREAK
case 68:
YY_RULE_SETUP
#line 229 "../SqlLexer.lpp"
-return TOKEN_LIMIT;
+return TOKEN_LIKE;
YY_BREAK
case 69:
YY_RULE_SETUP
#line 230 "../SqlLexer.lpp"
-return TOKEN_LONG;
+return TOKEN_LIMIT;
YY_BREAK
case 70:
YY_RULE_SETUP
#line 231 "../SqlLexer.lpp"
-return TOKEN_NOT;
+return TOKEN_LONG;
YY_BREAK
case 71:
YY_RULE_SETUP
#line 232 "../SqlLexer.lpp"
-return TOKEN_NULL;
+return TOKEN_NOT;
YY_BREAK
case 72:
YY_RULE_SETUP
#line 233 "../SqlLexer.lpp"
-return TOKEN_NULLS;
+return TOKEN_NULL;
YY_BREAK
case 73:
YY_RULE_SETUP
#line 234 "../SqlLexer.lpp"
-return TOKEN_OFF;
+return TOKEN_NULLS;
YY_BREAK
case 74:
YY_RULE_SETUP
#line 235 "../SqlLexer.lpp"
-return TOKEN_ON;
+return TOKEN_OFF;
YY_BREAK
case 75:
YY_RULE_SETUP
#line 236 "../SqlLexer.lpp"
-return TOKEN_OR;
+return TOKEN_ON;
YY_BREAK
case 76:
YY_RULE_SETUP
#line 237 "../SqlLexer.lpp"
-return TOKEN_ORDER;
+return TOKEN_OR;
YY_BREAK
case 77:
YY_RULE_SETUP
#line 238 "../SqlLexer.lpp"
-return TOKEN_OUTER;
+return TOKEN_ORDER;
YY_BREAK
case 78:
YY_RULE_SETUP
#line 239 "../SqlLexer.lpp"
-return TOKEN_PARTITION;
+return TOKEN_OUTER;
YY_BREAK
case 79:
YY_RULE_SETUP
#line 240 "../SqlLexer.lpp"
-return TOKEN_PARTITIONS;
+return TOKEN_PARTITION;
YY_BREAK
case 80:
YY_RULE_SETUP
#line 241 "../SqlLexer.lpp"
-return TOKEN_PERCENT;
+return TOKEN_PARTITIONS;
YY_BREAK
case 81:
YY_RULE_SETUP
#line 242 "../SqlLexer.lpp"
-return TOKEN_PRIMARY;
+return TOKEN_PERCENT;
YY_BREAK
case 82:
YY_RULE_SETUP
#line 243 "../SqlLexer.lpp"
-return TOKEN_QUIT;
+return TOKEN_PRIMARY;
YY_BREAK
case 83:
YY_RULE_SETUP
#line 244 "../SqlLexer.lpp"
-return TOKEN_RANGE;
+return TOKEN_QUIT;
YY_BREAK
case 84:
YY_RULE_SETUP
#line 245 "../SqlLexer.lpp"
-return TOKEN_REAL;
+return TOKEN_RANGE;
YY_BREAK
case 85:
YY_RULE_SETUP
#line 246 "../SqlLexer.lpp"
-return TOKEN_REFERENCES;
+return TOKEN_REAL;
YY_BREAK
case 86:
YY_RULE_SETUP
#line 247 "../SqlLexer.lpp"
-return TOKEN_REGEXP;
+return TOKEN_REFERENCES;
YY_BREAK
case 87:
YY_RULE_SETUP
#line 248 "../SqlLexer.lpp"
-return TOKEN_RIGHT;
+return TOKEN_REGEXP;
YY_BREAK
case 88:
YY_RULE_SETUP
#line 249 "../SqlLexer.lpp"
-return TOKEN_ROW_DELIMITER;
+return TOKEN_RIGHT;
YY_BREAK
case 89:
YY_RULE_SETUP
#line 250 "../SqlLexer.lpp"
-return TOKEN_SELECT;
+return TOKEN_ROW_DELIMITER;
YY_BREAK
case 90:
YY_RULE_SETUP
#line 251 "../SqlLexer.lpp"
-return TOKEN_SET;
+return TOKEN_SELECT;
YY_BREAK
case 91:
YY_RULE_SETUP
#line 252 "../SqlLexer.lpp"
-return TOKEN_SMA;
+return TOKEN_SET;
YY_BREAK
case 92:
YY_RULE_SETUP
#line 253 "../SqlLexer.lpp"
-return TOKEN_SMALLINT;
+return TOKEN_SMA;
YY_BREAK
case 93:
YY_RULE_SETUP
#line 254 "../SqlLexer.lpp"
-return TOKEN_TABLE;
+return TOKEN_SMALLINT;
YY_BREAK
case 94:
YY_RULE_SETUP
#line 255 "../SqlLexer.lpp"
-return TOKEN_THEN;
+return TOKEN_TABLE;
YY_BREAK
case 95:
YY_RULE_SETUP
#line 256 "../SqlLexer.lpp"
-return TOKEN_TIME;
+return TOKEN_THEN;
YY_BREAK
case 96:
YY_RULE_SETUP
#line 257 "../SqlLexer.lpp"
-return TOKEN_TIMESTAMP;
+return TOKEN_TIME;
YY_BREAK
case 97:
YY_RULE_SETUP
#line 258 "../SqlLexer.lpp"
-return TOKEN_TRUE;
+return TOKEN_TIMESTAMP;
YY_BREAK
case 98:
YY_RULE_SETUP
#line 259 "../SqlLexer.lpp"
-return TOKEN_TUPLESAMPLE;
+return TOKEN_TRUE;
YY_BREAK
case 99:
YY_RULE_SETUP
#line 260 "../SqlLexer.lpp"
-return TOKEN_UNIQUE;
+return TOKEN_TUPLESAMPLE;
YY_BREAK
case 100:
YY_RULE_SETUP
#line 261 "../SqlLexer.lpp"
-return TOKEN_UPDATE;
+return TOKEN_UNIQUE;
YY_BREAK
case 101:
YY_RULE_SETUP
#line 262 "../SqlLexer.lpp"
-return TOKEN_USING;
+return TOKEN_UPDATE;
YY_BREAK
case 102:
YY_RULE_SETUP
#line 263 "../SqlLexer.lpp"
-return TOKEN_VALUES;
+return TOKEN_USING;
YY_BREAK
case 103:
YY_RULE_SETUP
#line 264 "../SqlLexer.lpp"
-return TOKEN_VARCHAR;
+return TOKEN_VALUES;
YY_BREAK
case 104:
YY_RULE_SETUP
#line 265 "../SqlLexer.lpp"
-return TOKEN_WHEN;
+return TOKEN_VARCHAR;
YY_BREAK
case 105:
YY_RULE_SETUP
#line 266 "../SqlLexer.lpp"
-return TOKEN_WHERE;
+return TOKEN_WHEN;
YY_BREAK
case 106:
YY_RULE_SETUP
#line 267 "../SqlLexer.lpp"
-return TOKEN_WITH;
+return TOKEN_WHERE;
YY_BREAK
case 107:
YY_RULE_SETUP
#line 268 "../SqlLexer.lpp"
-return TOKEN_YEARMONTH;
+return TOKEN_WITH;
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 270 "../SqlLexer.lpp"
-return TOKEN_EQ;
+#line 269 "../SqlLexer.lpp"
+return TOKEN_YEARMONTH;
YY_BREAK
case 109:
YY_RULE_SETUP
#line 271 "../SqlLexer.lpp"
-return TOKEN_NEQ;
+return TOKEN_EQ;
YY_BREAK
case 110:
YY_RULE_SETUP
@@ -1963,56 +1970,61 @@ return TOKEN_NEQ;
case 111:
YY_RULE_SETUP
#line 273 "../SqlLexer.lpp"
-return TOKEN_LT;
+return TOKEN_NEQ;
YY_BREAK
case 112:
YY_RULE_SETUP
#line 274 "../SqlLexer.lpp"
-return TOKEN_GT;
+return TOKEN_LT;
YY_BREAK
case 113:
YY_RULE_SETUP
#line 275 "../SqlLexer.lpp"
-return TOKEN_LEQ;
+return TOKEN_GT;
YY_BREAK
case 114:
YY_RULE_SETUP
#line 276 "../SqlLexer.lpp"
-return TOKEN_GEQ;
+return TOKEN_LEQ;
YY_BREAK
case 115:
YY_RULE_SETUP
-#line 278 "../SqlLexer.lpp"
-return yytext[0];
+#line 277 "../SqlLexer.lpp"
+return TOKEN_GEQ;
YY_BREAK
case 116:
YY_RULE_SETUP
#line 279 "../SqlLexer.lpp"
return yytext[0];
YY_BREAK
+case 117:
+YY_RULE_SETUP
+#line 280 "../SqlLexer.lpp"
+return yytext[0];
+ YY_BREAK
/**
* Quoted strings. Prefacing a string with an 'e' or 'E' causes escape
* sequences to be processed (as in PostgreSQL).
**/
-case 117:
+case 118:
YY_RULE_SETUP
-#line 285 "../SqlLexer.lpp"
+#line 286 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(yylloc->first_line, yylloc->first_column);
BEGIN(CONDITION_STRING_SINGLE_QUOTED_ESCAPED);
}
YY_BREAK
-case 118:
+case 119:
YY_RULE_SETUP
-#line 290 "../SqlLexer.lpp"
+#line 291 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(yylloc->first_line, yylloc->first_column);
BEGIN(CONDITION_STRING_SINGLE_QUOTED);
}
YY_BREAK
-case 119:
+case 120:
YY_RULE_SETUP
-#line 295 "../SqlLexer.lpp"
+#line 296 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(yylloc->first_line, yylloc->first_column);
BEGIN(CONDITION_STRING_DOUBLE_QUOTED);
@@ -2024,7 +2036,7 @@ YY_RULE_SETUP
case YY_STATE_EOF(CONDITION_STRING_SINGLE_QUOTED):
case YY_STATE_EOF(CONDITION_STRING_SINGLE_QUOTED_ESCAPED):
case YY_STATE_EOF(CONDITION_STRING_DOUBLE_QUOTED):
-#line 304 "../SqlLexer.lpp"
+#line 305 "../SqlLexer.lpp"
{
delete yylval->string_value_;
BEGIN(INITIAL);
@@ -2035,9 +2047,9 @@ case YY_STATE_EOF(CONDITION_STRING_DOUBLE_QUOTED):
/* Process escape sequences. */
-case 120:
+case 121:
YY_RULE_SETUP
-#line 314 "../SqlLexer.lpp"
+#line 315 "../SqlLexer.lpp"
{
/* Octal code */
unsigned int code;
@@ -2051,9 +2063,9 @@ YY_RULE_SETUP
yylval->string_value_->push_back(code);
}
YY_BREAK
-case 121:
+case 122:
YY_RULE_SETUP
-#line 326 "../SqlLexer.lpp"
+#line 327 "../SqlLexer.lpp"
{
/* Hexadecimal code */
unsigned int code;
@@ -2061,9 +2073,9 @@ YY_RULE_SETUP
yylval->string_value_->push_back(code);
}
YY_BREAK
-case 122:
+case 123:
YY_RULE_SETUP
-#line 332 "../SqlLexer.lpp"
+#line 333 "../SqlLexer.lpp"
{
/* A numeric escape sequence that isn't correctly specified. */
delete yylval->string_value_;
@@ -2072,58 +2084,58 @@ YY_RULE_SETUP
return TOKEN_LEX_ERROR;
}
YY_BREAK
-case 123:
+case 124:
YY_RULE_SETUP
-#line 339 "../SqlLexer.lpp"
+#line 340 "../SqlLexer.lpp"
{
/* Backspace */
yylval->string_value_->push_back('\b');
}
YY_BREAK
-case 124:
+case 125:
YY_RULE_SETUP
-#line 343 "../SqlLexer.lpp"
+#line 344 "../SqlLexer.lpp"
{
/* Form-feed */
yylval->string_value_->push_back('\f');
}
YY_BREAK
-case 125:
+case 126:
YY_RULE_SETUP
-#line 347 "../SqlLexer.lpp"
+#line 348 "../SqlLexer.lpp"
{
/* Newline */
yylval->string_value_->push_back('\n');
}
YY_BREAK
-case 126:
+case 127:
YY_RULE_SETUP
-#line 351 "../SqlLexer.lpp"
+#line 352 "../SqlLexer.lpp"
{
/* Carriage-return */
yylval->string_value_->push_back('\r');
}
YY_BREAK
-case 127:
+case 128:
YY_RULE_SETUP
-#line 355 "../SqlLexer.lpp"
+#line 356 "../SqlLexer.lpp"
{
/* Horizontal Tab */
yylval->string_value_->push_back('\t');
}
YY_BREAK
-case 128:
-/* rule 128 can match eol */
+case 129:
+/* rule 129 can match eol */
YY_RULE_SETUP
-#line 359 "../SqlLexer.lpp"
+#line 360 "../SqlLexer.lpp"
{
/* Any other character (including actual newline or carriage return) */
yylval->string_value_->push_back(yytext[1]);
}
YY_BREAK
-case 129:
+case 130:
YY_RULE_SETUP
-#line 363 "../SqlLexer.lpp"
+#line 364 "../SqlLexer.lpp"
{
/* This should only be encountered right before an EOF. */
delete yylval->string_value_;
@@ -2134,17 +2146,17 @@ YY_RULE_SETUP
YY_BREAK
-case 130:
+case 131:
YY_RULE_SETUP
-#line 373 "../SqlLexer.lpp"
+#line 374 "../SqlLexer.lpp"
{
/* Two quotes in a row become a single quote (this is specified by the SQL standard). */
yylval->string_value_->push_back('\'');
}
YY_BREAK
-case 131:
+case 132:
YY_RULE_SETUP
-#line 377 "../SqlLexer.lpp"
+#line 378 "../SqlLexer.lpp"
{
/* End string */
BEGIN(CONDITION_SQL);
@@ -2153,17 +2165,17 @@ YY_RULE_SETUP
YY_BREAK
-case 132:
+case 133:
YY_RULE_SETUP
-#line 385 "../SqlLexer.lpp"
+#line 386 "../SqlLexer.lpp"
{
/* Two quotes in a row become a single quote (this is specified by the SQL standard). */
yylval->string_value_->push_back('"');
}
YY_BREAK
-case 133:
+case 134:
YY_RULE_SETUP
-#line 389 "../SqlLexer.lpp"
+#line 390 "../SqlLexer.lpp"
{
/* End string */
BEGIN(CONDITION_SQL);
@@ -2171,94 +2183,94 @@ YY_RULE_SETUP
}
YY_BREAK
-case 134:
-/* rule 134 can match eol */
+case 135:
+/* rule 135 can match eol */
YY_RULE_SETUP
-#line 396 "../SqlLexer.lpp"
+#line 397 "../SqlLexer.lpp"
{
/* Scan up to a quote. */
yylval->string_value_->append(yytext, yyleng);
}
YY_BREAK
-case 135:
-/* rule 135 can match eol */
+case 136:
+/* rule 136 can match eol */
YY_RULE_SETUP
-#line 401 "../SqlLexer.lpp"
+#line 402 "../SqlLexer.lpp"
{
/* Scan up to a quote or escape sequence. */
yylval->string_value_->append(yytext, yyleng);
}
YY_BREAK
-case 136:
-/* rule 136 can match eol */
+case 137:
+/* rule 137 can match eol */
YY_RULE_SETUP
-#line 406 "../SqlLexer.lpp"
+#line 407 "../SqlLexer.lpp"
{
/* Scan up to a quote. */
yylval->string_value_->append(yytext, yyleng);
}
YY_BREAK
-case 137:
+case 138:
YY_RULE_SETUP
-#line 412 "../SqlLexer.lpp"
+#line 413 "../SqlLexer.lpp"
{
yylval->string_value_ = new quickstep::ParseString(
yylloc->first_line, yylloc->first_column, std::string(yytext, yyleng));
return TOKEN_NAME;
}
YY_BREAK
-case 138:
+case 139:
YY_RULE_SETUP
-#line 418 "../SqlLexer.lpp"
+#line 419 "../SqlLexer.lpp"
{
yylval->numeric_literal_value_ = new quickstep::NumericParseLiteralValue(
yylloc->first_line, yylloc->first_column, yytext);
return TOKEN_UNSIGNED_NUMVAL;
}
YY_BREAK
-case 139:
+case 140:
YY_RULE_SETUP
-#line 424 "../SqlLexer.lpp"
+#line 425 "../SqlLexer.lpp"
/* comment */
YY_BREAK
-case 140:
-/* rule 140 can match eol */
+case 141:
+/* rule 141 can match eol */
YY_RULE_SETUP
-#line 426 "../SqlLexer.lpp"
+#line 427 "../SqlLexer.lpp"
{ yycolumn = 0; }
YY_BREAK
-case 141:
+case 142:
YY_RULE_SETUP
-#line 428 "../SqlLexer.lpp"
+#line 429 "../SqlLexer.lpp"
; /* ignore white space */
YY_BREAK
/* CONDITION_SQL */
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(CONDITION_COMMAND):
case YY_STATE_EOF(CONDITION_SQL):
-#line 432 "../SqlLexer.lpp"
+#line 433 "../SqlLexer.lpp"
{
/* All conditions except for mutli-state string extracting conditions. */
BEGIN(INITIAL);
return TOKEN_EOF;
}
YY_BREAK
-case 142:
+case 143:
YY_RULE_SETUP
-#line 438 "../SqlLexer.lpp"
+#line 439 "../SqlLexer.lpp"
{
BEGIN(INITIAL);
quickstep_yyerror(NULL, yyscanner, NULL, "illegal character");
return TOKEN_LEX_ERROR;
}
YY_BREAK
-case 143:
+case 144:
YY_RULE_SETUP
-#line 444 "../SqlLexer.lpp"
+#line 445 "../SqlLexer.lpp"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 2262 "SqlLexer_gen.cpp"
+#line 2274 "SqlLexer_gen.cpp"
case YY_END_OF_BUFFER:
{
@@ -2552,7 +2564,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
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 >= 520 )
+ if ( yy_current_state >= 527 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2581,11 +2593,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner)
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 >= 520 )
+ if ( yy_current_state >= 527 )
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 == 519);
+ yy_is_jam = (yy_current_state == 526);
(void)yyg;
return yy_is_jam ? 0 : yy_current_state;
@@ -3419,7 +3431,7 @@ void quickstep_yyfree (void * ptr , yyscan_t yyscanner)
#define YYTABLES_NAME "yytables"
-#line 444 "../SqlLexer.lpp"
+#line 445 "../SqlLexer.lpp"
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/cbd169e5/parser/preprocessed/SqlLexer_gen.hpp
----------------------------------------------------------------------
diff --git a/parser/preprocessed/SqlLexer_gen.hpp b/parser/preprocessed/SqlLexer_gen.hpp
index 39d4cc0..de44998 100644
--- a/parser/preprocessed/SqlLexer_gen.hpp
+++ b/parser/preprocessed/SqlLexer_gen.hpp
@@ -360,7 +360,7 @@ extern int quickstep_yylex \
#undef YY_DECL
#endif
-#line 444 "../SqlLexer.lpp"
+#line 445 "../SqlLexer.lpp"
#line 367 "SqlLexer_gen.hpp"