diff --git a/src/planner/builder/sqlparser_test.go b/src/planner/builder/sqlparser_test.go index f6638a4a..cf0c3271 100644 --- a/src/planner/builder/sqlparser_test.go +++ b/src/planner/builder/sqlparser_test.go @@ -263,7 +263,7 @@ func TestSQLShardKey(t *testing.T) { ddl := node.(*sqlparser.DDL) want := "col1" - got := ddl.PartitionName + got := ddl.PartitionOption.(*sqlparser.PartOptHash).Name assert.Equal(t, want, got) } } diff --git a/src/proxy/ddl.go b/src/proxy/ddl.go index 3437756c..da7e8e1d 100644 --- a/src/proxy/ddl.go +++ b/src/proxy/ddl.go @@ -39,54 +39,19 @@ func checkEngine(ddl *sqlparser.DDL) error { } func tryGetShardKey(ddl *sqlparser.DDL) (string, error) { - shardKey := ddl.PartitionName table := ddl.Table.Name.String() - if "dual" == table { return "", fmt.Errorf("spanner.ddl.check.create.table[%s].error:not support", table) } - if shardKey != "" { - shardKeyOK := false - constraintCheckOK := true - // shardKey check and constraint check in column definition - for _, col := range ddl.TableSpec.Columns { - colName := col.Name.String() - if colName == shardKey { - shardKeyOK = true - } else { - if col.Type.PrimaryKeyOpt == sqlparser.ColKeyPrimary || - col.Type.UniqueKeyOpt == sqlparser.ColKeyUniqueKey { - constraintCheckOK = false - } - } - } - - if !shardKeyOK { - return "", fmt.Errorf("Sharding Key column '%s' doesn't exist in table", shardKey) - } - if !constraintCheckOK { - return "", fmt.Errorf("The unique/primary constraint should be only defined on the sharding key column[%s]", shardKey) - } - - // constraint check in index definition - for _, index := range ddl.TableSpec.Indexes { - constraintCheckOK = false - if index.Unique || index.Primary { - for _, colIdx := range index.Opts.Columns { - colName := colIdx.Column.String() - if colName == shardKey { - constraintCheckOK = true - break - } - } - if !constraintCheckOK { - return "", fmt.Errorf("The unique/primary constraint should be only defined on the sharding key column[%s]", shardKey) - } - } - } - return shardKey, nil - } else { + switch partOpt := ddl.PartitionOption.(type) { + case *sqlparser.PartOptHash: + shardKey := partOpt.Name + return shardKey, checkShardKey(ddl, shardKey) + case *sqlparser.PartOptList: + shardKey := partOpt.Name + return shardKey, checkShardKey(ddl, shardKey) + case *sqlparser.PartOptNormal: for _, col := range ddl.TableSpec.Columns { colName := col.Name.String() if col.Type.PrimaryKeyOpt == sqlparser.ColKeyPrimary || @@ -102,10 +67,54 @@ func tryGetShardKey(ddl *sqlparser.DDL) (string, error) { } } } + case *sqlparser.PartOptGlobal, *sqlparser.PartOptSingle: + return "", nil } return "", fmt.Errorf("The unique/primary constraint shoule be defined or add 'PARTITION BY HASH' to mandatory indication") } +func checkShardKey(ddl *sqlparser.DDL, shardKey string) error { + shardKeyOK := false + constraintCheckOK := true + // shardKey check and constraint check in column definition + for _, col := range ddl.TableSpec.Columns { + colName := col.Name.String() + if colName == shardKey { + shardKeyOK = true + } else { + if col.Type.PrimaryKeyOpt == sqlparser.ColKeyPrimary || + col.Type.UniqueKeyOpt == sqlparser.ColKeyUniqueKey { + constraintCheckOK = false + } + } + } + + if !shardKeyOK { + return fmt.Errorf("Sharding Key column '%s' doesn't exist in table", shardKey) + } + if !constraintCheckOK { + return fmt.Errorf("The unique/primary constraint should be only defined on the sharding key column[%s]", shardKey) + } + + // constraint check in index definition + for _, index := range ddl.TableSpec.Indexes { + constraintCheckOK = false + if index.Unique || index.Primary { + for _, colIdx := range index.Opts.Columns { + colName := colIdx.Column.String() + if colName == shardKey { + constraintCheckOK = true + break + } + } + if !constraintCheckOK { + return fmt.Errorf("The unique/primary constraint should be only defined on the sharding key column[%s]", shardKey) + } + } + } + return nil +} + func checkTableExists(database string, table string, router *router.Router) bool { tblList := router.Tables() tables, ok := tblList[database] @@ -200,10 +209,8 @@ func (spanner *Spanner) handleDDL(session *driver.Session, query string, node *s } return qr, nil case sqlparser.CreateTableStr: - var err error table := ddl.Table.Name.String() backends := scatter.Backends() - shardKey := ddl.PartitionName tableType := router.TableTypeUnknown if err := route.CheckDatabase(database); err != nil { @@ -220,6 +227,11 @@ func (spanner *Spanner) handleDDL(session *driver.Session, query string, node *s return nil, err } + shardKey, err := tryGetShardKey(ddl) + if err != nil { + return nil, err + } + autoinc, err := autoincrement.GetAutoIncrement(node) if err != nil { return nil, err @@ -228,40 +240,37 @@ func (spanner *Spanner) handleDDL(session *driver.Session, query string, node *s AutoIncrement: autoinc, } - switch ddl.TableSpec.Options.Type { - case sqlparser.PartitionTableHash, sqlparser.NormalTableType: - if shardKey, err = tryGetShardKey(ddl); err != nil { - return nil, err - } - + switch partOpt := ddl.PartitionOption.(type) { + case *sqlparser.PartOptHash: tableType = router.TableTypePartitionHash - if err := route.CreateHashTable(database, table, shardKey, tableType, backends, ddl.PartitionNum, extra); err != nil { + if err := route.CreateHashTable(database, table, shardKey, tableType, backends, partOpt.PartitionNum, extra); err != nil { return nil, err } - case sqlparser.PartitionTableList: - if shardKey, err = tryGetShardKey(ddl); err != nil { + case *sqlparser.PartOptNormal: + tableType = router.TableTypePartitionHash + if err := route.CreateHashTable(database, table, shardKey, tableType, backends, nil, extra); err != nil { return nil, err } - + case *sqlparser.PartOptList: tableType = router.TableTypePartitionList - if err := route.CreateListTable(database, table, shardKey, tableType, ddl.PartitionOptions, extra); err != nil { + if err := route.CreateListTable(database, table, shardKey, tableType, partOpt.PartDefs, extra); err != nil { return nil, err } - case sqlparser.GlobalTableType: + case *sqlparser.PartOptGlobal: tableType = router.TableTypeGlobal if err := route.CreateNonPartTable(database, table, tableType, backends, extra); err != nil { return nil, err } - case sqlparser.SingleTableType: + case *sqlparser.PartOptSingle: tableType = router.TableTypeSingle - if ddl.BackendName != "" { + if partOpt.BackendName != "" { // TODO(andy): distributed by a list of backends - if isExist := scatter.CheckBackend(ddl.BackendName); !isExist { + if isExist := scatter.CheckBackend(partOpt.BackendName); !isExist { log.Error("spanner.ddl.execute[%v].backend.doesn't.exist", query) - return nil, fmt.Errorf("create table distributed by backend '%s' doesn't exist", ddl.BackendName) + return nil, fmt.Errorf("create table distributed by backend '%s' doesn't exist", partOpt.BackendName) } - assignedBackends := []string{ddl.BackendName} + assignedBackends := []string{partOpt.BackendName} if err := route.CreateNonPartTable(database, table, tableType, assignedBackends, extra); err != nil { return nil, err } diff --git a/src/proxy/ddl_test.go b/src/proxy/ddl_test.go index 9e506388..a6022a86 100644 --- a/src/proxy/ddl_test.go +++ b/src/proxy/ddl_test.go @@ -259,8 +259,8 @@ func TestProxyDDLTable(t *testing.T) { client, err := driver.NewConn("mock", "mock", address, "test", "utf8") assert.Nil(t, err) querys := []string{ - "create table if not exists t4(a int, b int) SINGLE comment 'comment test' charset='utf8'", - "create table if not exists t5(a int, b int) Global default charset utf8", + "create table if not exists t4(a int, b int) comment 'comment test' charset='utf8' SINGLE", + "create table if not exists t5(a int, b int) default charset utf8 Global", "create table if not exists t6(a int key, b int) default character set='utf8' comment 'test' engine innodb", } for _, query := range querys { @@ -779,7 +779,7 @@ func TestProxyDDLCreateTable(t *testing.T) { "create table t7(a int collate utf8_bin Collate 'utf8_bin' collate \"utf8_bin\") partition by hash(a)", "create table t8(a int, b int) partition by hash(a)", "create table t9(a int, b timestamp(5) on update current_timestamp(5) column_format fixed column_format default column_format dynamic) partition by hash(a)", - "create table t10(a int column_format fixed column_format default column_format dynamic) partition by hash(a) comment='comment option' engine=tokudb default charset='utf8' avg_row_length=123 checksum=1 collate='utf8_bin' compression='lz4' connection='id' data directory='/data' index directory='/index' delay_key_write=1 encryption='n' insert_method=First key_block_size=1 max_rows=3 min_rows=2 pack_keys=default password='pwd' row_format=dynamic stats_auto_recalc=1 stats_persistent=default stats_sample_pages=65535 tablespace=storage", + "create table t10(a int column_format fixed column_format default column_format dynamic) comment='comment option' engine=tokudb default charset='utf8' avg_row_length=123 checksum=1 collate='utf8_bin' compression='lz4' connection='id' data directory='/data' index directory='/index' delay_key_write=1 encryption='n' insert_method=First key_block_size=1 max_rows=3 min_rows=2 pack_keys=default password='pwd' row_format=dynamic stats_auto_recalc=1 stats_persistent=default stats_sample_pages=65535 tablespace=storage partition by hash(a)", } for _, query := range querys { @@ -1181,6 +1181,7 @@ func TestProxyDDLGlobalSingleNormalList(t *testing.T) { "CREATE TABLE t5(a int ,b int, primary key(a))", "CREATE TABLE t6(a int ,b int, primary key(a, b))", "create table t7(a int, b int unique)", + "create table `t8/t/t`(a int,b int, primary key(a))", // partition list "CREATE TABLE l(a int primary key,b int ) partition by list(a)(" + @@ -1206,6 +1207,7 @@ func TestProxyDDLGlobalSingleNormalList(t *testing.T) { "", "The unique/primary constraint shoule be defined or add 'PARTITION BY HASH' to mandatory indication (errno 1105) (sqlstate HY000)", "", + "invalid.table.name.currently.not.support.tablename[t8/t/t].contains.with.char:'/' or space ' ' (errno 1105) (sqlstate HY000)", // partition list "", diff --git a/src/router/compute.go b/src/router/compute.go index 26672ffe..add418e3 100644 --- a/src/router/compute.go +++ b/src/router/compute.go @@ -147,7 +147,7 @@ func (r *Router) SingleUniform(table string, backends []string) (*config.TableCo }, nil } -func listMergePartition(partitionDef sqlparser.PartitionOptions) (map[string]string, error) { +func listMergePartition(partitionDef sqlparser.PartitionDefinitions) (map[string]string, error) { partitionMap := make(map[string]string) for _, onePart := range partitionDef { row := onePart.Row @@ -167,7 +167,7 @@ func listMergePartition(partitionDef sqlparser.PartitionOptions) (map[string]str } // ListUniform used to uniform the list table to backends. -func (r *Router) ListUniform(table string, shardkey string, partitionDef sqlparser.PartitionOptions) (*config.TableConfig, error) { +func (r *Router) ListUniform(table string, shardkey string, partitionDef sqlparser.PartitionDefinitions) (*config.TableConfig, error) { if table == "" { return nil, errors.New("table.cant.be.null") } diff --git a/src/router/compute_test.go b/src/router/compute_test.go index a80f1da4..b9f35aa1 100644 --- a/src/router/compute_test.go +++ b/src/router/compute_test.go @@ -381,20 +381,20 @@ func TestRouterComputeListError(t *testing.T) { // Shardkey is NULL. { assert.NotNil(t, router) - _, err := router.ListUniform("t1", "", sqlparser.PartitionOptions{}) + _, err := router.ListUniform("t1", "", sqlparser.PartitionDefinitions{}) assert.NotNil(t, err) } // Table is NULL. { assert.NotNil(t, router) - _, err := router.ListUniform("", "i", sqlparser.PartitionOptions{}) + _, err := router.ListUniform("", "i", sqlparser.PartitionDefinitions{}) assert.NotNil(t, err) } // different backends with the same list value. { - partitionDef := sqlparser.PartitionOptions{ + partitionDef := sqlparser.PartitionDefinitions{ &sqlparser.PartitionDefinition{ Backend: "node1", Row: sqlparser.ValTuple{sqlparser.NewStrVal([]byte("1"))}, @@ -410,10 +410,10 @@ func TestRouterComputeListError(t *testing.T) { assert.NotNil(t, err) } - // empty PartitionOptions + // empty PartitionDefinitions { assert.NotNil(t, router) - _, err := router.ListUniform("t1", "i", sqlparser.PartitionOptions{}) + _, err := router.ListUniform("t1", "i", sqlparser.PartitionDefinitions{}) assert.NotNil(t, err) } } @@ -449,7 +449,7 @@ func TestRouterComputeList(t *testing.T) { defer cleanup() assert.NotNil(t, router) - partitionDef := sqlparser.PartitionOptions{ + partitionDef := sqlparser.PartitionDefinitions{ &sqlparser.PartitionDefinition{ Backend: "node1", Row: sqlparser.ValTuple{sqlparser.NewStrVal([]byte("2"))}, diff --git a/src/router/frm.go b/src/router/frm.go index 7dc15a12..c26388a9 100644 --- a/src/router/frm.go +++ b/src/router/frm.go @@ -284,7 +284,7 @@ func (r *Router) CreateHashTable(db, table, shardKey string, tableType string, b // CreateListTable used to add a list table to router and flush the schema to disk. func (r *Router) CreateListTable(db, table, shardKey string, tableType string, - partitionDef sqlparser.PartitionOptions, extra *Extra) error { + partitionDef sqlparser.PartitionDefinitions, extra *Extra) error { r.mu.Lock() defer r.mu.Unlock() diff --git a/src/router/frm_test.go b/src/router/frm_test.go index 6c59bb5e..075b3e5e 100644 --- a/src/router/frm_test.go +++ b/src/router/frm_test.go @@ -101,7 +101,7 @@ func TestFrmTable(t *testing.T) { // Add list table. { - partitionDef := sqlparser.PartitionOptions{ + partitionDef := sqlparser.PartitionDefinitions{ &sqlparser.PartitionDefinition{ Backend: "node1", Row: sqlparser.ValTuple{sqlparser.NewStrVal([]byte("2"))}, @@ -547,7 +547,7 @@ func TestFrmTableCreateListTable(t *testing.T) { // Add list table. { - partitionDef := sqlparser.PartitionOptions{ + partitionDef := sqlparser.PartitionDefinitions{ &sqlparser.PartitionDefinition{ Backend: "node1", Row: sqlparser.ValTuple{sqlparser.NewStrVal([]byte("2"))}, @@ -567,7 +567,7 @@ func TestFrmTableCreateListTable(t *testing.T) { err = router.CreateListTable("test", "l", "", TableTypePartitionHash, partitionDef, nil) assert.NotNil(t, err) - err = router.CreateListTable("test", "l", "id", TableTypePartitionList, sqlparser.PartitionOptions{}, nil) + err = router.CreateListTable("test", "l", "id", TableTypePartitionList, sqlparser.PartitionDefinitions{}, nil) assert.NotNil(t, err) err = router.CreateListTable("test", "l", "id", TableTypePartitionList, partitionDef, &Extra{&config.AutoIncrement{"id"}}) diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go index 2d270afa..f2c2420b 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go @@ -127,8 +127,6 @@ type ( Engine string Charset string IndexName string - PartitionName string - BackendName string IfExists bool IfNotExists bool Table TableName @@ -136,6 +134,7 @@ type ( Database TableIdent DatabaseOptions DatabaseOptionListOpt TableSpec *TableSpec + PartitionOption PartitionOption // [UNIQUE | FULLTEXT | SPATIAL] index. IndexType string @@ -147,10 +146,6 @@ type ( // table column operation DropColumnName string ModifyColumnDef *ColumnDefinition - - // Partition options. - PartitionOptions PartitionOptions - PartitionNum *SQLVal } // Show represents a show statement. @@ -261,7 +256,6 @@ type TableOptions struct { Comment string Engine string Charset string - Type string AvgRowLength string Checksum string Collate string diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast_funcs.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast_funcs.go index 445c4802..af4c01a1 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast_funcs.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast_funcs.go @@ -129,7 +129,6 @@ const ( TableOptionComment TableOptionEngine TableOptionCharset - TableOptionTableType TableOptionAutoInc TableOptionAvgRowLength TableOptionChecksum @@ -160,7 +159,6 @@ func (tblOptList *TableOptionListOpt) CheckIfTableOptDuplicate() string { TableOptionComment: false, TableOptionEngine: false, TableOptionCharset: false, - TableOptionTableType: false, TableOptionAutoInc: false, TableOptionAvgRowLength: false, TableOptionChecksum: false, @@ -199,11 +197,6 @@ func (tblOptList *TableOptionListOpt) CheckIfTableOptDuplicate() string { return "Duplicate table option for keyword 'charset', the option should only be appeared just one time in RadonDB." } optOnce[TableOptionCharset] = true - case TableOptionTableType: - if optOnce[TableOptionTableType] { - return "Duplicate table option for keyword 'single or global', the option should only be appeared just one time in RadonDB." - } - optOnce[TableOptionTableType] = true case TableOptionAutoInc: if optOnce[TableOptionAutoInc] { return "Duplicate table option for keyword 'auto_increment', the option should only be appeared just one time in RadonDB." @@ -329,8 +322,63 @@ type PartitionDefinition struct { Row ValTuple } -// PartitionOptions specifies the partition options. -type PartitionOptions []*PartitionDefinition +// PartitionDefinitions specifies the partition options. +type PartitionDefinitions []*PartitionDefinition + +type ( + // PartitionOption interface。 + PartitionOption interface { + PartitionType() string + } + + // PartOptGlobal global table. + PartOptGlobal struct{} + + // PartOptSingle single table. + PartOptSingle struct { + BackendName string + } + + // PartOptNormal normal table. + PartOptNormal struct{} + + // PartOptList list table. + PartOptList struct { + Name string + PartDefs PartitionDefinitions + } + + // PartOptHash hash table. + PartOptHash struct { + Name string + PartitionNum *SQLVal + } +) + +// PartitionType return the partition type. +func (*PartOptGlobal) PartitionType() string { + return GlobalTableType +} + +// PartitionType return the partition type. +func (*PartOptSingle) PartitionType() string { + return SingleTableType +} + +// PartitionType return the partition type. +func (*PartOptNormal) PartitionType() string { + return NormalTableType +} + +// PartitionType return the partition type. +func (*PartOptList) PartitionType() string { + return PartitionTableList +} + +// PartitionType return the partition type. +func (*PartOptHash) PartitionType() string { + return PartitionTableHash +} // TableOption represents the table options. // See https://dev.mysql.com/doc/refman/5.7/en/create-table.html diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ddl_test.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ddl_test.go index 9442313c..ba98128e 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ddl_test.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ddl_test.go @@ -213,7 +213,7 @@ func TestDDL1(t *testing.T) { input: "create table test.t (\n" + " `id` int primary key,\n" + " `name` varchar(10)\n" + - ") single engine=tokudb comment='comment option' default charset utf8", + ") engine=tokudb comment='comment option' default charset utf8 single", output: "create table test.t (\n" + " `id` int primary key,\n" + " `name` varchar(10)\n" + @@ -956,6 +956,11 @@ func TestDDL1(t *testing.T) { if ddl.output != got { t.Errorf("want:\n%s\ngot:\n%s", ddl.output, got) } + + // To improve the code coverage. + if node.PartitionOption != nil { + node.PartitionOption.PartitionType() + } } } @@ -1261,8 +1266,8 @@ func TestDDL1ParseError(t *testing.T) { input: "create table test.t (\n" + " `id` int primary key,\n" + " `name` varchar(10)\n" + - ") single engine=tokudb comment 'str' charset \"utf8\" partition by hash(id)", - output: "SINGLE or GLOBAL should not be used simultaneously with PARTITION at position 140", + ") engine=tokudb comment 'str' charset \"utf8\" single partition by hash(id)", + output: "syntax error at position 127 near 'partition'", }, { // create index without index columns. input: "create unique index a on b", diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go index b0250de5..5a9c7b2c 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/rewriter.go @@ -188,10 +188,6 @@ func replaceDDLNewName(newNode, parent SQLNode) { parent.(*DDL).NewName = newNode.(TableName) } -func replaceDDLPartitionNum(newNode, parent SQLNode) { - parent.(*DDL).PartitionNum = newNode.(*SQLVal) -} - func replaceDDLTable(newNode, parent SQLNode) { parent.(*DDL).Table = newNode.(TableName) } @@ -792,7 +788,6 @@ func (a *application) apply(parent, node SQLNode, replacer replacerFunc) { a.apply(node, n.IndexOpts, replaceDDLIndexOpts) a.apply(node, n.ModifyColumnDef, replaceDDLModifyColumnDef) a.apply(node, n.NewName, replaceDDLNewName) - a.apply(node, n.PartitionNum, replaceDDLPartitionNum) a.apply(node, n.Table, replaceDDLTable) a.apply(node, n.TableSpec, replaceDDLTableSpec) a.apply(node, n.Tables, replaceDDLTables) diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go index 6b58011f..52baa50b 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go @@ -1,9 +1,12 @@ +// Code generated by goyacc -o sql.go sql.y. DO NOT EDIT. + //line sql.y:18 package sqlparser import __yyfmt__ "fmt" //line sql.y:18 + func setParseTree(yylex interface{}, stmt Statement) { yylex.(*Tokenizer).ParseTree = stmt } @@ -99,6 +102,7 @@ type yySymType struct { databaseOption *DatabaseOption partitionDefinition *PartitionDefinition partitionDefinitions []*PartitionDefinition + partitionOption PartitionOption showFilter *ShowFilter } @@ -682,7 +686,7 @@ const yyEofCode = 1 const yyErrCode = 2 const yyInitialStackSize = 16 -//line sql.y:4748 +//line sql.y:4713 //line yacctab:1 var yyExca = [...]int{ @@ -698,29 +702,29 @@ var yyExca = [...]int{ -1, 218, 90, 697, -2, 629, - -1, 449, + -1, 452, 118, 681, -2, 677, - -1, 450, + -1, 453, 118, 682, -2, 678, - -1, 484, - 115, 79, - 165, 79, - 168, 79, - -2, 90, - -1, 535, - 1, 73, - 296, 73, - -2, 79, - -1, 652, + -1, 487, + 115, 82, + 165, 82, + 168, 82, + -2, 93, + -1, 538, + 1, 76, + 296, 76, + -2, 82, + -1, 655, 5, 27, -2, 600, - -1, 686, - 115, 79, - 165, 79, - 168, 79, - -2, 91, + -1, 689, + 115, 82, + 165, 82, + 168, 82, + -2, 94, -1, 747, 30, 301, 63, 301, @@ -728,9 +732,9 @@ var yyExca = [...]int{ 129, 301, -2, 832, -1, 800, - 1, 74, - 296, 74, - -2, 79, + 1, 77, + 296, 77, + -2, 82, -1, 887, 118, 684, -2, 680, @@ -743,266 +747,381 @@ var yyExca = [...]int{ -1, 1208, 5, 27, -2, 603, - -1, 1337, + -1, 1334, 5, 28, -2, 604, } const yyPrivate = 57344 -const yyLast = 10145 +const yyLast = 9648 var yyAct = [...]int{ - 450, 1234, 1215, 1416, 213, 1368, 1342, 1374, 1241, 558, - 1242, 1372, 655, 427, 782, 1269, 1283, 1135, 1199, 916, - 1198, 1399, 796, 986, 940, 967, 917, 1280, 1178, 1046, - 871, 665, 1038, 878, 881, 403, 345, 656, 99, 886, - 56, 848, 612, 3, 66, 913, 969, 828, 187, 897, - 428, 50, 561, 390, 944, 715, 402, 801, 425, 405, - 1001, 217, 751, 469, 99, 792, 221, 470, 348, 392, - 452, 209, 458, 401, 970, 468, 208, 206, 346, 687, - 99, 99, 196, 55, 551, 177, 179, 178, 180, 181, - 1087, 1088, 933, 186, 471, 932, 472, 99, 934, 674, - 675, 50, 1086, 472, 673, 471, 174, 342, 682, 192, - 1292, 343, 1343, 1398, 1442, 1415, 1441, 1376, 1388, 1439, - 171, 1414, 1191, 1263, 216, 623, 1387, 1143, 728, 76, - 77, 1144, 1145, 24, 51, 26, 27, 363, 367, 374, - 825, 953, 362, 738, 952, 369, 370, 720, 996, 880, - 819, 70, 976, 977, 978, 476, 71, 60, 73, 775, - 979, 423, 424, 46, 1400, 992, 1258, 28, 1377, 1007, - 36, 943, 1163, 1310, 1256, 818, 783, 1021, 1020, 713, - 1019, 99, 1137, 62, 63, 64, 65, 37, 991, 1376, - 53, 384, 386, 357, 1016, 350, 972, 563, 75, 563, - 1018, 99, 821, 1364, 99, 1363, 1362, 353, 883, 221, - 352, 817, 1332, 1334, 355, 221, 221, 351, 96, 946, - 80, 946, 945, 1137, 945, 79, 1290, 1248, 385, 385, - 1080, 454, 1052, 724, 1050, 455, 602, 603, 745, 78, - 1377, 169, 926, 50, 1420, 590, 611, 364, 30, 31, - 32, 465, 34, 580, 681, 565, 590, 72, 814, 812, - 808, 1056, 811, 813, 35, 47, 39, 216, 568, 48, - 49, 33, 783, 477, 477, 941, 776, 567, 566, 830, - 473, 170, 566, 173, 1333, 175, 176, 1193, 182, 183, - 184, 185, 718, 1015, 568, 562, 1017, 562, 568, 1378, - 1240, 816, 971, 719, 721, 722, 723, 172, 725, 726, - 727, 729, 730, 731, 732, 733, 734, 735, 736, 737, - 1386, 980, 993, 994, 815, 365, 366, 1238, 371, 372, - 373, 1057, 375, 376, 377, 378, 379, 744, 1147, 638, - 639, 925, 989, 990, 1401, 475, 683, 855, 1382, 975, - 99, 456, 898, 898, 1063, 99, 99, 99, 536, 356, - 99, 853, 854, 852, 99, 99, 829, 68, 1376, 567, - 566, 480, 53, 52, 714, 717, 1195, 1239, 567, 566, - 460, 716, 851, 810, 567, 566, 568, 1435, 1148, 38, - 570, 1031, 1032, 1033, 820, 568, 40, 395, 453, 41, - 42, 568, 44, 43, 1427, 1340, 809, 583, 584, 585, - 586, 587, 580, 381, 1058, 590, 383, 45, 1298, 1377, - 398, 387, 1299, 389, 1354, 579, 578, 588, 589, 581, - 582, 583, 584, 585, 586, 587, 580, 569, 359, 590, - 588, 589, 581, 582, 583, 584, 585, 586, 587, 580, - 599, 601, 590, 567, 566, 1233, 1232, 1109, 221, 554, - 600, 567, 566, 99, 1422, 349, 99, 987, 221, 988, - 568, 841, 843, 844, 1108, 1107, 610, 842, 568, 613, - 614, 615, 616, 617, 618, 619, 348, 622, 624, 624, - 624, 624, 624, 624, 624, 624, 632, 633, 634, 635, - 657, 1104, 1099, 640, 652, 660, 872, 1098, 873, 641, - 1132, 1130, 653, 784, 785, 786, 644, 1128, 1111, 1097, - 1005, 1004, 739, 658, 997, 382, 216, 662, 417, 416, - 418, 419, 420, 421, 684, 1408, 1113, 422, 354, 642, - 1131, 1129, 1313, 1231, 668, 667, 99, 1127, 1110, 1221, - 676, 1220, 1112, 99, 99, 1105, 1101, 798, 1100, 1092, - 741, 1025, 99, 1024, 625, 626, 627, 628, 629, 630, - 631, 581, 582, 583, 584, 585, 586, 587, 580, 1355, - 1002, 590, 984, 1436, 1428, 1179, 1236, 849, 1431, 391, - 391, 802, 1303, 1403, 559, 1367, 824, 794, 795, 1303, - 1370, 1271, 1274, 1275, 1276, 1272, 571, 1273, 1277, 1181, - 221, 1359, 835, 1235, 1365, 391, 885, 1303, 1345, 1303, - 1344, 1348, 555, 221, 556, 1183, 557, 1187, 560, 1182, - 1307, 1180, 968, 850, 1267, 391, 1185, 559, 1303, 391, - 1044, 391, 834, 1165, 621, 1162, 1184, 1154, 1153, 1150, - 1151, 1301, 50, 1106, 221, 935, 889, 1150, 1149, 1186, - 1188, 1079, 391, 915, 613, 918, 888, 902, 877, 221, - 216, 874, 539, 887, 834, 391, 875, 876, 900, 538, - 537, 899, 485, 484, 679, 348, 657, 923, 358, 1300, - 1115, 1114, 895, 1146, 924, 914, 920, 924, 57, 1075, - 1267, 1152, 919, 1044, 50, 822, 927, 905, 672, 658, - 906, 670, 922, 1116, 1117, 1118, 1119, 1120, 1121, 1122, - 1123, 1124, 1125, 1126, 666, 636, 467, 216, 53, 1072, - 1347, 777, 24, 936, 937, 1296, 930, 797, 929, 942, - 473, 193, 24, 947, 948, 949, 950, 951, 1044, 1230, - 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, - 964, 965, 966, 938, 890, 891, 939, 1227, 894, 1222, - 778, 779, 780, 781, 67, 838, 839, 924, 845, 846, - 1207, 793, 901, 1044, 903, 904, 789, 790, 791, 53, - 788, 826, 827, 998, 999, 1358, 833, 912, 53, 53, - 787, 74, 914, 806, 805, 99, 99, 99, 804, 545, - 1325, 22, 24, 974, 1323, 1326, 648, 1361, 1360, 1324, - 1322, 981, 559, 99, 1321, 892, 893, 604, 605, 606, - 607, 608, 609, 579, 578, 588, 589, 581, 582, 583, - 584, 585, 586, 587, 580, 453, 650, 590, 837, 1003, - 651, 1327, 1429, 1275, 1276, 1396, 802, 1008, 1006, 197, - 198, 1013, 1413, 1030, 200, 911, 849, 459, 910, 53, - 191, 1246, 393, 1039, 1096, 928, 1168, 1000, 481, 464, - 1027, 457, 738, 1073, 221, 1271, 1274, 1275, 1276, 1272, - 803, 1273, 1277, 1040, 1034, 394, 579, 578, 588, 589, - 581, 582, 583, 584, 585, 586, 587, 580, 99, 544, - 590, 1406, 850, 579, 578, 588, 589, 581, 582, 583, - 584, 585, 586, 587, 580, 1205, 1279, 590, 1041, 194, - 195, 1084, 1042, 1405, 459, 1139, 1051, 348, 348, 983, - 982, 973, 1048, 1053, 1054, 1055, 1062, 1423, 1059, 1412, - 188, 1411, 1316, 1065, 1410, 1066, 1067, 1068, 1069, 483, - 657, 1074, 1082, 909, 1081, 482, 1093, 1134, 1094, 1095, - 189, 908, 57, 1076, 1077, 1078, 1085, 1102, 1103, 1315, - 1266, 1225, 666, 658, 1224, 216, 552, 1226, 887, 1136, - 553, 548, 1091, 847, 203, 1138, 856, 857, 858, 859, + 453, 430, 1231, 1364, 428, 1337, 1411, 1370, 1238, 1368, + 561, 1239, 406, 1280, 658, 1266, 1394, 1199, 916, 1198, + 782, 1135, 796, 213, 917, 668, 1277, 56, 940, 1038, + 1178, 776, 967, 871, 1046, 969, 986, 348, 99, 217, + 878, 408, 615, 3, 886, 659, 66, 913, 881, 897, + 431, 50, 187, 848, 828, 564, 944, 717, 1001, 801, + 405, 751, 690, 472, 99, 461, 221, 473, 351, 395, + 216, 209, 404, 880, 455, 970, 471, 208, 196, 792, + 99, 99, 349, 55, 206, 554, 177, 179, 178, 180, + 181, 1086, 933, 186, 474, 932, 475, 99, 934, 1087, + 1088, 50, 677, 678, 475, 676, 474, 346, 174, 192, + 1290, 345, 1338, 687, 1437, 1410, 1436, 1384, 1372, 344, + 171, 1434, 1409, 1191, 626, 343, 1393, 1260, 1143, 1383, + 76, 77, 1144, 1145, 377, 143, 366, 101, 825, 748, + 747, 365, 131, 953, 952, 746, 70, 370, 745, 479, + 996, 71, 992, 73, 372, 373, 117, 775, 95, 1163, + 783, 1007, 1307, 133, 1255, 1253, 151, 136, 1021, 1373, + 1020, 1019, 1137, 360, 353, 972, 991, 1395, 1018, 387, + 389, 99, 94, 1372, 350, 1329, 1331, 976, 977, 978, + 566, 1016, 943, 107, 566, 979, 426, 427, 60, 75, + 1360, 99, 1359, 1358, 99, 1056, 745, 356, 355, 221, + 883, 946, 354, 216, 945, 221, 221, 358, 457, 480, + 480, 570, 569, 96, 62, 63, 64, 65, 388, 388, + 1287, 80, 79, 1245, 1373, 458, 1137, 82, 571, 1080, + 78, 1237, 946, 50, 89, 945, 367, 744, 162, 393, + 605, 606, 72, 1052, 1050, 593, 926, 1330, 111, 684, + 149, 783, 160, 103, 583, 614, 468, 593, 1235, 1415, + 568, 571, 116, 124, 830, 1057, 158, 159, 112, 163, + 476, 971, 104, 941, 1017, 142, 925, 157, 565, 478, + 1015, 539, 565, 1374, 1193, 130, 119, 126, 146, 134, + 147, 127, 140, 139, 141, 744, 898, 172, 152, 993, + 994, 123, 118, 156, 115, 137, 108, 102, 1236, 109, + 110, 114, 113, 1382, 129, 135, 138, 144, 145, 150, + 989, 990, 591, 592, 584, 585, 586, 587, 588, 589, + 590, 583, 975, 83, 593, 93, 91, 1147, 81, 1378, + 88, 686, 155, 99, 122, 1430, 980, 1396, 99, 99, + 99, 829, 68, 99, 898, 483, 1063, 99, 99, 569, + 100, 105, 132, 359, 148, 121, 161, 570, 569, 463, + 84, 92, 86, 87, 90, 571, 53, 855, 120, 153, + 1422, 154, 459, 1339, 571, 128, 851, 1148, 1372, 398, + 456, 853, 854, 852, 1113, 641, 642, 401, 164, 165, + 167, 166, 168, 106, 1031, 1032, 1033, 1230, 1350, 582, + 581, 591, 592, 584, 585, 586, 587, 588, 589, 590, + 583, 1229, 352, 593, 581, 591, 592, 584, 585, 586, + 587, 588, 589, 590, 583, 603, 1132, 593, 1130, 1373, + 570, 569, 362, 602, 604, 1109, 1108, 573, 841, 843, + 844, 221, 1107, 557, 842, 647, 99, 571, 1104, 99, + 1295, 221, 661, 1128, 1296, 216, 1131, 1099, 1129, 613, + 660, 1111, 616, 617, 618, 619, 620, 621, 622, 351, + 625, 627, 627, 627, 627, 627, 627, 627, 627, 635, + 636, 637, 638, 1127, 572, 357, 1098, 655, 665, 1417, + 643, 1110, 987, 663, 988, 656, 1097, 1005, 570, 569, + 570, 569, 784, 785, 786, 1195, 739, 1004, 778, 779, + 780, 781, 872, 997, 873, 571, 685, 571, 645, 385, + 1403, 1310, 1228, 1218, 789, 790, 791, 1217, 671, 99, + 1112, 1105, 1101, 1100, 679, 670, 99, 99, 1115, 1114, + 798, 1092, 1025, 1024, 741, 99, 628, 629, 630, 631, + 632, 633, 634, 1351, 1002, 984, 1058, 1431, 849, 1426, + 394, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, + 1125, 1126, 1423, 1233, 1300, 1398, 802, 1300, 1366, 562, + 1363, 1361, 394, 824, 586, 587, 588, 589, 590, 583, + 1304, 574, 593, 221, 794, 795, 968, 877, 850, 216, + 1232, 1165, 819, 570, 569, 1162, 221, 1300, 1341, 1179, + 899, 394, 420, 419, 421, 422, 423, 424, 885, 1106, + 571, 425, 562, 1300, 1340, 1264, 394, 818, 935, 624, + 1300, 394, 1344, 1181, 887, 50, 918, 221, 661, 889, + 874, 922, 1044, 394, 1154, 1153, 660, 616, 915, 1183, + 542, 1187, 221, 1182, 821, 1180, 216, 902, 875, 876, + 1185, 1150, 1151, 817, 923, 541, 351, 540, 895, 682, + 1184, 890, 891, 1150, 1149, 894, 927, 1079, 394, 920, + 834, 394, 1298, 1186, 1188, 919, 361, 50, 644, 901, + 1297, 903, 904, 906, 905, 584, 585, 586, 587, 588, + 589, 590, 583, 1146, 912, 593, 488, 487, 1072, 57, + 814, 812, 808, 24, 811, 813, 834, 937, 938, 930, + 24, 929, 914, 476, 924, 942, 924, 947, 948, 949, + 950, 951, 939, 1075, 954, 955, 956, 957, 958, 959, + 960, 961, 962, 963, 964, 965, 966, 653, 936, 1264, + 1152, 654, 1044, 816, 822, 24, 669, 675, 1207, 1044, + 838, 839, 1044, 845, 846, 1268, 1271, 1272, 1273, 1269, + 53, 1270, 1274, 768, 767, 1355, 815, 53, 53, 998, + 999, 673, 639, 764, 470, 99, 99, 99, 1343, 777, + 1293, 835, 974, 797, 1227, 193, 1224, 607, 608, 609, + 610, 611, 612, 99, 1219, 981, 770, 562, 74, 924, + 892, 893, 53, 67, 793, 788, 787, 1354, 914, 769, + 762, 806, 805, 804, 548, 22, 763, 1003, 1322, 1357, + 456, 1320, 1356, 1323, 849, 810, 1321, 651, 802, 1008, + 1006, 1424, 1319, 1318, 1013, 888, 820, 1268, 1271, 1272, + 1273, 1269, 53, 1270, 1274, 197, 198, 900, 809, 771, + 928, 1408, 1030, 1324, 221, 1272, 1273, 1027, 1048, 837, + 1391, 200, 911, 462, 850, 910, 1243, 1096, 396, 766, + 1401, 803, 1000, 484, 191, 467, 1034, 460, 99, 582, + 581, 591, 592, 584, 585, 586, 587, 588, 589, 590, + 583, 397, 1400, 593, 738, 1073, 547, 1276, 462, 661, + 1205, 216, 194, 195, 1139, 983, 1051, 660, 351, 351, + 982, 1222, 973, 1418, 1221, 1407, 1062, 1223, 909, 1039, + 1084, 1081, 765, 1043, 1406, 188, 908, 1405, 1313, 773, + 486, 485, 772, 1074, 189, 57, 887, 1134, 1312, 1060, + 1082, 1263, 1094, 1095, 669, 555, 556, 551, 203, 1093, + 1085, 1102, 1103, 847, 1136, 1284, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, - 870, 1287, 985, 564, 99, 1089, 1090, 59, 426, 1140, - 61, 54, 348, 1, 1341, 800, 799, 750, 749, 1043, - 1409, 69, 1155, 1156, 1397, 1373, 1404, 1375, 1380, 1026, - 1352, 1349, 1351, 1028, 686, 1060, 685, 344, 221, 1012, - 740, 756, 755, 221, 754, 885, 97, 1177, 1166, 752, - 1157, 1158, 1159, 995, 1164, 774, 1023, 1237, 1167, 761, - 760, 680, 712, 99, 711, 710, 709, 1173, 1029, 1172, - 221, 221, 202, 708, 707, 1176, 706, 1190, 1189, 918, - 1175, 705, 221, 704, 703, 702, 1217, 1171, 202, 202, - 1197, 1192, 1206, 1196, 701, 700, 1048, 1064, 699, 216, - 698, 216, 887, 697, 696, 202, 695, 694, 1218, 1219, - 693, 1208, 688, 1203, 692, 691, 919, 690, 559, 1209, - 1212, 1291, 1202, 689, 1083, 759, 757, 753, 1210, 1211, - 490, 488, 1216, 1213, 1214, 489, 487, 492, 491, 486, - 216, 1278, 1282, 1045, 1014, 807, 598, 1228, 221, 221, - 221, 1136, 574, 907, 577, 1142, 1229, 1244, 1245, 214, - 591, 592, 593, 594, 595, 596, 597, 931, 575, 576, - 573, 579, 578, 588, 589, 581, 582, 583, 584, 585, - 586, 587, 580, 671, 669, 590, 205, 204, 921, 202, - 637, 451, 1314, 1265, 99, 99, 1254, 1061, 620, 896, - 404, 840, 415, 412, 414, 413, 1243, 1243, 1243, 202, - 643, 918, 202, 221, 649, 572, 396, 1288, 221, 1331, - 1249, 1294, 1250, 1201, 542, 368, 1295, 85, 461, 1270, - 1268, 1200, 1261, 1259, 1260, 1071, 547, 1297, 1262, 221, - 1353, 1136, 1289, 1177, 1281, 647, 1161, 758, 919, 1141, - 50, 25, 58, 1202, 199, 1293, 14, 1309, 99, 99, - 99, 99, 1194, 21, 1035, 1036, 1037, 15, 13, 99, - 12, 1243, 99, 29, 10, 99, 1243, 1318, 1317, 1320, - 1319, 221, 221, 1328, 1339, 1302, 1217, 221, 1305, 1306, - 1336, 1335, 9, 8, 221, 1346, 1204, 216, 7, 6, - 5, 4, 95, 190, 1350, 23, 1312, 2, 1203, 1203, - 1203, 1203, 20, 657, 889, 19, 1357, 1202, 1202, 1202, - 1202, 18, 1281, 17, 1330, 16, 94, 11, 742, 743, - 1223, 1202, 1216, 1337, 0, 0, 658, 0, 221, 1338, - 216, 1369, 0, 0, 0, 1243, 1371, 0, 0, 1381, - 1384, 0, 1243, 1379, 1383, 0, 0, 221, 535, 1395, - 201, 1217, 1394, 202, 202, 202, 1402, 0, 546, 0, - 0, 0, 202, 202, 0, 0, 360, 361, 0, 768, - 767, 82, 221, 221, 221, 1366, 1418, 1419, 89, 764, - 0, 1407, 0, 380, 1264, 0, 1243, 1385, 0, 1424, - 0, 0, 0, 1391, 1392, 1393, 0, 1216, 0, 0, - 0, 0, 770, 1421, 0, 216, 0, 1437, 1438, 0, - 1425, 1426, 221, 0, 1434, 769, 762, 0, 0, 0, - 0, 0, 763, 0, 0, 0, 0, 0, 0, 0, - 1417, 1417, 1417, 0, 0, 0, 1251, 1252, 0, 1253, - 1169, 1170, 1255, 0, 1257, 0, 0, 0, 0, 0, - 1430, 385, 1432, 1433, 0, 771, 0, 0, 0, 0, - 0, 202, 0, 659, 661, 0, 0, 388, 0, 0, - 1440, 0, 0, 0, 0, 766, 0, 83, 0, 93, - 91, 0, 81, 0, 88, 0, 0, 463, 0, 0, - 466, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1304, 0, 0, 0, 1356, 559, 0, 0, 0, 0, - 0, 0, 0, 0, 84, 92, 86, 87, 90, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 765, 0, - 0, 0, 0, 0, 0, 773, 0, 0, 772, 0, - 0, 0, 0, 0, 202, 0, 0, 1389, 1390, 0, - 0, 202, 202, 0, 0, 0, 0, 0, 0, 0, - 202, 0, 0, 0, 0, 0, 0, 0, 0, 1247, - 579, 578, 588, 589, 581, 582, 583, 584, 585, 586, - 587, 580, 0, 0, 590, 0, 0, 0, 0, 0, - 143, 0, 101, 0, 0, 125, 0, 131, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 884, - 661, 117, 0, 884, 884, 0, 0, 884, 133, 0, - 0, 151, 136, 0, 0, 0, 0, 0, 0, 0, - 0, 884, 884, 884, 884, 0, 0, 0, 0, 220, - 0, 540, 541, 543, 0, 0, 884, 0, 107, 659, - 549, 550, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1311, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 579, 578, 588, 589, 581, 582, - 583, 584, 585, 586, 587, 580, 0, 0, 590, 578, - 588, 589, 581, 582, 583, 584, 585, 586, 587, 580, - 0, 0, 590, 162, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 111, 0, 149, 0, 160, 103, 0, - 0, 0, 0, 0, 0, 0, 0, 116, 124, 0, - 0, 158, 159, 112, 163, 0, 0, 104, 0, 0, - 142, 0, 157, 0, 0, 0, 0, 0, 0, 654, - 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, - 0, 0, 0, 152, 0, 0, 123, 118, 156, 115, - 137, 108, 102, 0, 109, 110, 114, 113, 0, 129, - 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, + 870, 985, 1138, 567, 1168, 59, 429, 61, 1140, 54, + 1, 342, 1336, 800, 99, 799, 750, 749, 1404, 69, + 1090, 1091, 351, 1392, 582, 581, 591, 592, 584, 585, + 586, 587, 588, 589, 590, 583, 1155, 1156, 593, 1369, + 1399, 1026, 1371, 1376, 97, 1028, 1348, 1345, 221, 1347, + 689, 688, 1048, 221, 347, 216, 740, 216, 756, 1166, + 1157, 1158, 1159, 755, 754, 1167, 1164, 752, 995, 774, + 202, 1234, 761, 99, 885, 760, 1177, 918, 683, 714, + 221, 221, 1173, 713, 1210, 1211, 202, 202, 1192, 1190, + 887, 1189, 1176, 1172, 712, 1175, 711, 1196, 710, 1197, + 1206, 709, 708, 202, 707, 706, 705, 704, 703, 1064, + 702, 701, 700, 699, 1202, 698, 697, 696, 695, 691, + 694, 1208, 693, 1203, 1041, 1289, 919, 692, 1042, 1209, + 562, 1215, 1216, 759, 1212, 757, 1083, 753, 493, 1053, + 1054, 1055, 491, 492, 1059, 490, 495, 494, 489, 1065, + 1275, 1066, 1067, 1068, 1069, 1279, 1136, 1045, 221, 221, + 221, 1225, 1240, 1240, 1240, 1014, 807, 1241, 1242, 1076, + 1077, 1078, 601, 1226, 582, 581, 591, 592, 584, 585, + 586, 587, 588, 589, 590, 583, 1089, 202, 593, 907, + 1142, 214, 931, 674, 672, 205, 204, 921, 640, 454, + 1311, 1262, 1061, 623, 99, 99, 1251, 202, 896, 918, + 202, 1248, 1249, 407, 1250, 840, 418, 1252, 415, 1254, + 221, 417, 416, 646, 1240, 221, 1285, 652, 1291, 1240, + 575, 399, 1328, 1292, 1201, 545, 371, 85, 464, 1267, + 1265, 1200, 1258, 1136, 1071, 1202, 221, 550, 1294, 1259, + 216, 1349, 1286, 650, 1278, 758, 1141, 25, 919, 58, + 50, 1035, 1036, 1037, 1288, 99, 99, 99, 99, 1177, + 1306, 199, 1301, 14, 1194, 21, 99, 15, 13, 99, + 12, 29, 99, 1315, 1314, 1317, 1316, 10, 221, 661, + 1325, 9, 1335, 1171, 221, 1332, 8, 660, 1240, 1333, + 7, 221, 1342, 6, 5, 1240, 1202, 1202, 1202, 1202, + 4, 190, 1346, 23, 2, 1203, 1203, 1203, 1203, 20, + 1202, 889, 19, 18, 1353, 17, 16, 11, 742, 1278, + 743, 1220, 0, 0, 0, 0, 0, 0, 0, 1204, + 1213, 1214, 0, 0, 221, 1365, 0, 0, 1240, 0, + 0, 0, 1367, 0, 0, 1377, 1380, 1375, 1379, 538, + 0, 0, 0, 0, 202, 202, 202, 1390, 0, 549, + 1397, 0, 0, 202, 202, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 221, 221, + 221, 0, 1412, 1412, 1412, 1413, 1414, 0, 0, 0, + 0, 1402, 1419, 201, 0, 0, 1261, 0, 0, 1387, + 1388, 1389, 169, 0, 0, 0, 0, 1429, 0, 363, + 364, 0, 1416, 1432, 1433, 0, 1246, 221, 1247, 1420, + 1421, 1435, 0, 0, 0, 0, 383, 0, 0, 1256, + 1257, 0, 0, 0, 0, 0, 0, 1169, 1170, 0, + 0, 0, 170, 0, 173, 0, 175, 176, 0, 182, + 183, 184, 185, 0, 0, 0, 388, 0, 0, 0, + 0, 0, 202, 0, 662, 664, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1299, 0, + 0, 1302, 1303, 0, 0, 0, 368, 369, 0, 374, + 375, 376, 0, 378, 379, 380, 381, 382, 0, 1309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 202, 202, 202, 0, 155, 0, 122, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 202, 0, 0, 0, 100, 105, 132, 0, 148, - 121, 161, 823, 0, 0, 0, 0, 0, 0, 831, - 832, 0, 0, 120, 153, 0, 154, 0, 836, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 884, 0, + 391, 0, 0, 1352, 562, 0, 0, 1327, 0, 0, + 0, 0, 0, 0, 0, 0, 1334, 0, 0, 0, + 466, 0, 0, 469, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 202, 0, 0, 0, 0, + 0, 0, 202, 202, 0, 1385, 1386, 0, 0, 0, + 0, 202, 0, 0, 0, 0, 1244, 0, 0, 0, + 1040, 0, 0, 0, 384, 0, 1362, 386, 0, 0, + 0, 143, 390, 101, 392, 0, 125, 0, 131, 1381, + 582, 581, 591, 592, 584, 585, 586, 587, 588, 589, + 590, 583, 117, 0, 593, 0, 0, 0, 0, 133, + 884, 664, 151, 136, 884, 884, 0, 0, 884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 884, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 0, 0, 0, + 220, 0, 884, 884, 884, 884, 0, 0, 0, 107, + 0, 0, 0, 0, 0, 0, 0, 884, 0, 0, + 662, 1425, 0, 1427, 1428, 0, 1308, 0, 0, 0, + 0, 0, 0, 0, 0, 582, 581, 591, 592, 584, + 585, 586, 587, 588, 589, 590, 583, 0, 0, 593, + 0, 0, 0, 0, 0, 0, 0, 543, 544, 546, + 0, 0, 0, 0, 162, 0, 552, 553, 0, 0, + 0, 0, 0, 0, 111, 0, 149, 0, 160, 103, + 0, 0, 0, 0, 0, 0, 0, 0, 116, 124, + 0, 0, 158, 159, 112, 163, 0, 0, 104, 0, + 0, 142, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 130, 119, 126, 146, 134, 147, 127, 140, 139, + 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, + 115, 137, 108, 102, 0, 109, 110, 114, 113, 0, + 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 558, 0, 559, 0, + 560, 0, 563, 0, 0, 657, 0, 0, 155, 0, + 122, 202, 202, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 100, 105, 132, 202, + 148, 121, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 120, 153, 0, 154, 0, 0, + 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 659, 0, 661, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 143, 0, 101, 0, 0, - 125, 0, 131, 0, 0, 0, 0, 0, 0, 0, - 879, 0, 400, 0, 0, 0, 117, 399, 0, 0, - 0, 0, 436, 133, 0, 0, 151, 136, 0, 0, - 0, 0, 429, 430, 0, 0, 0, 0, 0, 0, - 0, 53, 0, 0, 449, 417, 416, 418, 419, 420, - 421, 0, 0, 107, 422, 423, 424, 0, 0, 0, - 397, 410, 0, 435, 0, 0, 0, 0, 0, 0, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 407, 408, 882, 0, 0, 0, 447, - 0, 409, 0, 0, 406, 411, 0, 0, 0, 0, - 0, 0, 0, 884, 0, 0, 0, 0, 162, 661, - 884, 445, 0, 0, 0, 0, 0, 0, 111, 0, - 149, 0, 160, 103, 0, 0, 0, 0, 0, 0, - 0, 202, 116, 124, 0, 0, 158, 159, 112, 163, - 0, 0, 104, 0, 0, 142, 0, 157, 0, 0, - 0, 1009, 1010, 1011, 0, 130, 119, 126, 146, 134, - 147, 127, 140, 139, 141, 0, 0, 0, 152, 1022, - 0, 123, 118, 156, 115, 137, 108, 102, 0, 109, - 110, 114, 113, 0, 129, 135, 138, 144, 145, 150, + 0, 0, 0, 0, 0, 0, 884, 0, 823, 0, + 0, 0, 0, 0, 0, 831, 832, 0, 0, 577, + 0, 580, 884, 0, 836, 0, 0, 594, 595, 596, + 597, 598, 599, 600, 202, 578, 579, 576, 582, 581, + 591, 592, 584, 585, 586, 587, 588, 589, 590, 583, + 0, 662, 593, 664, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, + 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 826, 827, 0, 0, 117, + 833, 0, 0, 0, 0, 439, 133, 0, 0, 151, + 136, 0, 0, 0, 0, 432, 433, 0, 0, 0, + 0, 0, 0, 0, 53, 0, 0, 452, 420, 419, + 421, 422, 423, 424, 0, 0, 107, 425, 426, 427, + 0, 0, 0, 0, 413, 0, 438, 0, 0, 0, + 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 410, 411, 0, 0, + 0, 0, 450, 0, 412, 0, 0, 409, 414, 0, + 0, 884, 0, 0, 0, 0, 0, 664, 884, 0, + 0, 162, 0, 0, 448, 0, 0, 0, 0, 0, + 0, 111, 0, 149, 0, 160, 103, 0, 0, 202, + 0, 0, 0, 0, 0, 116, 124, 0, 0, 158, + 159, 112, 163, 0, 0, 104, 0, 0, 142, 0, + 157, 0, 0, 0, 0, 0, 0, 0, 130, 119, + 126, 146, 134, 147, 127, 140, 139, 141, 0, 0, + 0, 152, 0, 0, 123, 118, 156, 115, 137, 108, + 102, 0, 109, 110, 114, 113, 0, 129, 135, 138, + 144, 145, 150, 0, 1009, 1010, 1011, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1022, 0, 0, 155, 0, 122, 440, 449, + 446, 447, 444, 445, 443, 442, 441, 451, 434, 435, + 437, 0, 436, 100, 105, 132, 0, 148, 121, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 155, 0, 122, 437, 446, 443, 444, 441, - 442, 440, 439, 438, 448, 431, 432, 434, 0, 433, - 100, 105, 132, 0, 148, 121, 161, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 120, 153, - 0, 154, 0, 0, 1070, 128, 0, 0, 0, 0, - 0, 0, 202, 1285, 0, 0, 0, 0, 164, 165, - 167, 166, 168, 106, 0, 0, 0, 0, 0, 0, + 0, 120, 153, 0, 154, 0, 0, 0, 128, 0, + 202, 1282, 0, 0, 0, 0, 0, 0, 0, 0, + 1012, 164, 165, 167, 166, 168, 106, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1023, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1070, 0, 1029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 202, 202, 202, 202, 0, 0, 0, 0, 0, + 0, 0, 1326, 0, 0, 202, 0, 0, 1282, 0, + 0, 662, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 325, 310, 270, + 328, 246, 261, 340, 263, 264, 300, 230, 280, 143, + 259, 101, 0, 0, 125, 0, 131, 0, 0, 0, + 0, 326, 277, 0, 249, 223, 256, 224, 247, 274, + 117, 245, 312, 283, 262, 0, 334, 133, 292, 0, + 151, 136, 0, 1160, 276, 315, 278, 309, 269, 301, + 238, 291, 329, 260, 297, 0, 0, 0, 220, 0, + 0, 0, 0, 0, 0, 0, 0, 107, 294, 323, + 258, 296, 299, 222, 293, 0, 226, 231, 339, 321, + 252, 253, 0, 0, 0, 0, 0, 0, 0, 275, + 279, 306, 267, 0, 0, 0, 0, 0, 0, 0, + 0, 250, 0, 290, 0, 0, 0, 233, 228, 273, + 0, 0, 0, 237, 0, 251, 307, 1161, 0, 0, + 316, 268, 162, 322, 266, 265, 330, 303, 0, 313, + 248, 257, 111, 255, 149, 298, 160, 103, 319, 314, + 288, 271, 272, 227, 0, 305, 116, 124, 244, 295, + 158, 159, 112, 163, 232, 336, 104, 219, 335, 142, + 218, 157, 320, 289, 285, 229, 318, 287, 284, 130, + 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, + 225, 0, 152, 327, 341, 123, 118, 156, 115, 137, + 108, 102, 235, 109, 110, 114, 113, 0, 129, 135, + 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, + 317, 0, 0, 0, 0, 0, 155, 234, 122, 241, + 242, 239, 240, 281, 282, 331, 332, 333, 308, 236, + 0, 0, 311, 286, 100, 105, 132, 338, 148, 121, + 161, 0, 0, 0, 0, 0, 254, 337, 304, 302, + 324, 0, 120, 153, 0, 154, 207, 0, 0, 212, + 210, 211, 215, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 164, 165, 167, 166, 168, 106, 325, 310, + 270, 328, 246, 261, 340, 263, 264, 300, 230, 280, + 143, 259, 101, 0, 0, 125, 0, 131, 0, 0, + 0, 0, 326, 277, 0, 249, 223, 256, 224, 247, + 274, 117, 245, 312, 283, 262, 0, 334, 133, 292, + 0, 151, 136, 0, 0, 276, 315, 278, 309, 269, + 301, 238, 291, 329, 260, 297, 0, 0, 0, 220, + 0, 0, 0, 0, 0, 0, 0, 0, 107, 294, + 323, 258, 296, 299, 222, 293, 0, 226, 231, 339, + 321, 252, 253, 0, 0, 0, 0, 0, 0, 0, + 275, 279, 306, 267, 0, 0, 0, 0, 0, 0, + 0, 0, 250, 0, 290, 0, 0, 0, 233, 228, + 273, 0, 0, 0, 237, 0, 251, 307, 0, 0, + 0, 316, 268, 162, 322, 266, 265, 330, 303, 0, + 313, 248, 257, 111, 255, 149, 298, 160, 103, 319, + 314, 288, 271, 272, 227, 0, 305, 116, 124, 244, + 295, 158, 159, 112, 163, 232, 336, 104, 219, 335, + 142, 218, 157, 320, 289, 285, 229, 318, 287, 284, + 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, + 0, 225, 0, 152, 327, 341, 123, 118, 156, 115, + 137, 108, 102, 235, 109, 110, 114, 113, 0, 129, + 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 243, 317, 0, 0, 0, 0, 0, 155, 234, 122, + 241, 242, 239, 240, 281, 282, 331, 332, 333, 308, + 236, 0, 0, 311, 286, 100, 105, 132, 338, 148, + 121, 161, 0, 0, 0, 0, 0, 254, 337, 304, + 302, 324, 0, 120, 153, 0, 154, 0, 0, 0, + 212, 210, 211, 215, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 164, 165, 167, 166, 168, 106, 325, + 310, 270, 328, 246, 261, 340, 263, 264, 300, 230, + 280, 143, 259, 101, 0, 0, 125, 0, 131, 0, + 0, 0, 0, 326, 277, 0, 249, 223, 256, 224, + 247, 274, 117, 245, 312, 283, 262, 0, 334, 133, + 292, 0, 151, 136, 0, 0, 276, 315, 278, 309, + 269, 301, 238, 291, 329, 260, 297, 0, 0, 0, + 220, 0, 0, 0, 0, 0, 0, 0, 0, 107, + 294, 323, 258, 296, 299, 222, 293, 0, 226, 231, + 339, 321, 252, 253, 0, 0, 0, 0, 0, 0, + 0, 275, 279, 306, 267, 0, 0, 0, 0, 0, + 0, 0, 0, 250, 0, 290, 0, 0, 0, 233, + 228, 273, 0, 0, 0, 237, 0, 251, 307, 0, + 0, 0, 316, 268, 162, 322, 266, 265, 330, 303, + 0, 313, 248, 257, 111, 255, 149, 298, 160, 103, + 319, 314, 288, 271, 272, 227, 0, 305, 116, 124, + 244, 295, 158, 159, 112, 163, 232, 336, 104, 219, + 335, 142, 218, 157, 320, 289, 285, 229, 318, 287, + 284, 130, 119, 126, 146, 134, 147, 127, 140, 139, + 141, 0, 225, 0, 152, 327, 341, 123, 118, 156, + 115, 137, 108, 102, 235, 109, 110, 114, 113, 0, + 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 202, 202, 202, 202, - 0, 0, 0, 0, 0, 0, 0, 1329, 0, 0, - 202, 0, 0, 1285, 0, 0, 659, 0, 0, 0, + 0, 243, 317, 0, 0, 0, 0, 0, 155, 234, + 122, 241, 242, 239, 240, 281, 282, 331, 332, 333, + 308, 236, 0, 0, 311, 286, 100, 105, 132, 338, + 148, 121, 161, 0, 0, 0, 0, 0, 254, 337, + 304, 302, 324, 0, 120, 153, 0, 154, 477, 0, + 0, 128, 0, 0, 215, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, + 325, 310, 270, 328, 246, 261, 340, 263, 264, 300, + 230, 280, 143, 259, 101, 0, 0, 125, 0, 131, + 0, 0, 0, 0, 326, 277, 0, 249, 223, 256, + 224, 247, 274, 117, 245, 312, 283, 262, 0, 334, + 133, 292, 0, 151, 136, 0, 0, 276, 315, 278, + 309, 269, 301, 238, 291, 329, 260, 297, 0, 0, + 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, + 107, 294, 323, 258, 296, 299, 222, 293, 0, 226, + 231, 339, 321, 252, 253, 0, 0, 0, 0, 0, + 0, 0, 275, 279, 306, 267, 0, 0, 0, 0, + 0, 0, 1305, 0, 250, 0, 290, 0, 0, 0, + 233, 228, 273, 0, 0, 0, 237, 0, 251, 307, + 0, 0, 0, 316, 268, 162, 322, 266, 265, 330, + 303, 0, 313, 248, 257, 111, 255, 149, 298, 160, + 103, 319, 314, 288, 271, 272, 227, 0, 305, 116, + 124, 244, 295, 158, 159, 112, 163, 232, 336, 104, + 666, 335, 142, 667, 157, 320, 289, 285, 229, 318, + 287, 284, 130, 119, 126, 146, 134, 147, 127, 140, + 139, 141, 0, 225, 0, 152, 327, 341, 123, 118, + 156, 115, 137, 108, 102, 235, 109, 110, 114, 113, + 0, 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1160, 325, 310, 270, 328, 246, 261, 340, 263, 264, + 0, 0, 243, 317, 0, 0, 0, 0, 0, 155, + 234, 122, 241, 242, 239, 240, 281, 282, 331, 332, + 333, 308, 236, 0, 0, 311, 286, 100, 105, 132, + 338, 148, 121, 161, 0, 0, 0, 0, 0, 254, + 337, 304, 302, 324, 0, 120, 153, 0, 154, 0, + 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, + 106, 325, 310, 270, 328, 246, 261, 340, 263, 264, 300, 230, 280, 143, 259, 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, 326, 277, 0, 249, 223, 256, 224, 247, 274, 117, 245, 312, 283, 262, 0, 334, 133, 292, 0, 151, 136, 0, 0, 276, 315, 278, 309, 269, 301, 238, 291, 329, 260, 297, 0, - 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 107, 294, 323, 258, 296, 299, 222, 293, 0, 226, 231, 339, 321, 252, 253, 0, 0, 0, 0, 0, 0, 0, 275, 279, 306, 267, 0, 0, 0, - 0, 0, 0, 0, 0, 250, 0, 290, 0, 0, + 0, 0, 0, 1174, 0, 250, 0, 290, 0, 0, 0, 233, 228, 273, 0, 0, 0, 237, 0, 251, 307, 0, 0, 0, 316, 268, 162, 322, 266, 265, 330, 303, 0, 313, 248, 257, 111, 255, 149, 298, 160, 103, 319, 314, 288, 271, 272, 227, 0, 305, 116, 124, 244, 295, 158, 159, 112, 163, 232, 336, - 104, 219, 335, 142, 218, 157, 320, 289, 285, 229, + 104, 666, 335, 142, 667, 157, 320, 289, 285, 229, 318, 287, 284, 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, 225, 0, 152, 327, 341, 123, 118, 156, 115, 137, 108, 102, 235, 109, 110, 114, @@ -1013,7 +1132,7 @@ var yyAct = [...]int{ 332, 333, 308, 236, 0, 0, 311, 286, 100, 105, 132, 338, 148, 121, 161, 0, 0, 0, 0, 0, 254, 337, 304, 302, 324, 0, 120, 153, 0, 154, - 207, 0, 0, 212, 210, 211, 215, 0, 0, 0, + 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 325, 310, 270, 328, 246, 261, 340, 263, 264, 300, 230, 280, 143, 259, 101, 0, 0, 125, @@ -1042,7 +1161,7 @@ var yyAct = [...]int{ 331, 332, 333, 308, 236, 0, 0, 311, 286, 100, 105, 132, 338, 148, 121, 161, 0, 0, 0, 0, 0, 254, 337, 304, 302, 324, 0, 120, 153, 0, - 154, 0, 0, 0, 212, 210, 211, 215, 0, 0, + 154, 0, 0, 0, 128, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 325, 310, 270, 328, 246, 261, 340, 263, 264, 300, 230, 280, 143, 259, 101, 0, 0, @@ -1060,7 +1179,7 @@ var yyAct = [...]int{ 266, 265, 330, 303, 0, 313, 248, 257, 111, 255, 149, 298, 160, 103, 319, 314, 288, 271, 272, 227, 0, 305, 116, 124, 244, 295, 158, 159, 112, 163, - 232, 336, 104, 219, 335, 142, 218, 157, 320, 289, + 232, 336, 104, 666, 335, 142, 667, 157, 320, 289, 285, 229, 318, 287, 284, 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, 225, 0, 152, 327, 341, 123, 118, 156, 115, 137, 108, 102, 235, 109, @@ -1071,7 +1190,7 @@ var yyAct = [...]int{ 282, 331, 332, 333, 308, 236, 0, 0, 311, 286, 100, 105, 132, 338, 148, 121, 161, 0, 0, 0, 0, 0, 254, 337, 304, 302, 324, 0, 120, 153, - 0, 154, 474, 0, 0, 128, 0, 0, 215, 0, + 0, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 325, 310, 270, 328, 246, 261, 340, 263, 264, 300, 230, 280, 143, 259, 101, 0, @@ -1079,7 +1198,7 @@ var yyAct = [...]int{ 0, 249, 223, 256, 224, 247, 274, 117, 245, 312, 283, 262, 0, 334, 133, 292, 0, 151, 136, 0, 0, 276, 315, 278, 309, 269, 301, 238, 291, 329, - 260, 297, 53, 0, 0, 220, 0, 0, 0, 0, + 260, 297, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 107, 294, 323, 258, 296, 299, 222, 293, 0, 226, 231, 339, 321, 252, 253, 0, 0, 0, 0, 0, 0, 0, 275, 279, 306, 267, @@ -1089,7 +1208,7 @@ var yyAct = [...]int{ 322, 266, 265, 330, 303, 0, 313, 248, 257, 111, 255, 149, 298, 160, 103, 319, 314, 288, 271, 272, 227, 0, 305, 116, 124, 244, 295, 158, 159, 112, - 163, 232, 336, 104, 663, 335, 142, 664, 157, 320, + 163, 232, 336, 104, 666, 335, 142, 667, 157, 320, 289, 285, 229, 318, 287, 284, 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, 225, 0, 152, 327, 341, 123, 118, 156, 115, 137, 108, 102, 235, @@ -1108,17 +1227,17 @@ var yyAct = [...]int{ 277, 0, 249, 223, 256, 224, 247, 274, 117, 245, 312, 283, 262, 0, 334, 133, 292, 0, 151, 136, 0, 0, 276, 315, 278, 309, 269, 301, 238, 291, - 329, 260, 297, 0, 0, 0, 220, 0, 0, 0, + 329, 260, 297, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, 107, 294, 323, 258, 296, 299, 222, 293, 0, 226, 231, 339, 321, 252, 253, 0, 0, 0, 0, 0, 0, 0, 275, 279, 306, - 267, 0, 0, 0, 0, 0, 0, 1308, 0, 250, + 267, 0, 0, 0, 0, 0, 0, 0, 0, 250, 0, 290, 0, 0, 0, 233, 228, 273, 0, 0, 0, 237, 0, 251, 307, 0, 0, 0, 316, 268, 162, 322, 266, 265, 330, 303, 0, 313, 248, 257, 111, 255, 149, 298, 160, 103, 319, 314, 288, 271, 272, 227, 0, 305, 116, 124, 244, 295, 158, 159, - 112, 163, 232, 336, 104, 663, 335, 142, 664, 157, + 112, 163, 232, 336, 104, 666, 335, 142, 667, 157, 320, 289, 285, 229, 318, 287, 284, 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, 225, 0, 152, 327, 341, 123, 118, 156, 115, 137, 108, 102, @@ -1130,294 +1249,149 @@ var yyAct = [...]int{ 311, 286, 100, 105, 132, 338, 148, 121, 161, 0, 0, 0, 0, 0, 254, 337, 304, 302, 324, 0, 120, 153, 0, 154, 0, 0, 0, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 164, 165, 167, 166, 168, 106, 325, 310, 270, 328, - 246, 261, 340, 263, 264, 300, 230, 280, 143, 259, - 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, - 326, 277, 0, 249, 223, 256, 224, 247, 274, 117, - 245, 312, 283, 262, 0, 334, 133, 292, 0, 151, - 136, 0, 0, 276, 315, 278, 309, 269, 301, 238, - 291, 329, 260, 297, 0, 0, 0, 449, 0, 0, - 0, 0, 0, 0, 0, 0, 107, 294, 323, 258, - 296, 299, 222, 293, 0, 226, 231, 339, 321, 252, - 253, 0, 0, 0, 0, 0, 0, 0, 275, 279, - 306, 267, 0, 0, 0, 0, 0, 0, 1174, 0, - 250, 0, 290, 0, 0, 0, 233, 228, 273, 0, - 0, 0, 237, 0, 251, 307, 0, 0, 0, 316, - 268, 162, 322, 266, 265, 330, 303, 0, 313, 248, - 257, 111, 255, 149, 298, 160, 103, 319, 314, 288, - 271, 272, 227, 0, 305, 116, 124, 244, 295, 158, - 159, 112, 163, 232, 336, 104, 663, 335, 142, 664, - 157, 320, 289, 285, 229, 318, 287, 284, 130, 119, - 126, 146, 134, 147, 127, 140, 139, 141, 0, 225, - 0, 152, 327, 341, 123, 118, 156, 115, 137, 108, - 102, 235, 109, 110, 114, 113, 0, 129, 135, 138, - 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 243, 317, - 0, 0, 0, 0, 0, 155, 234, 122, 241, 242, - 239, 240, 281, 282, 331, 332, 333, 308, 236, 0, - 0, 311, 286, 100, 105, 132, 338, 148, 121, 161, - 0, 0, 0, 0, 0, 254, 337, 304, 302, 324, - 0, 120, 153, 0, 154, 0, 0, 0, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 164, 165, 167, 166, 168, 106, 325, 310, 270, - 328, 246, 261, 340, 263, 264, 300, 230, 280, 143, - 259, 101, 0, 0, 125, 0, 131, 0, 0, 0, - 0, 326, 277, 0, 249, 223, 256, 224, 247, 274, - 117, 245, 312, 283, 262, 0, 334, 133, 292, 0, - 151, 136, 0, 0, 276, 315, 278, 309, 269, 301, - 238, 291, 329, 260, 297, 0, 0, 0, 220, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 294, 323, - 258, 296, 299, 222, 293, 0, 226, 231, 339, 321, - 252, 253, 0, 0, 0, 0, 0, 0, 0, 275, - 279, 306, 267, 0, 0, 0, 0, 0, 0, 0, - 0, 250, 0, 290, 0, 0, 0, 233, 228, 273, - 0, 0, 0, 237, 0, 251, 307, 0, 0, 0, - 316, 268, 162, 322, 266, 265, 330, 303, 0, 313, - 248, 257, 111, 255, 149, 298, 160, 103, 319, 314, - 288, 271, 272, 227, 0, 305, 116, 124, 244, 295, - 158, 159, 112, 163, 232, 336, 104, 219, 335, 142, - 218, 157, 320, 289, 285, 229, 318, 287, 284, 130, - 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, - 225, 0, 152, 327, 341, 123, 118, 156, 115, 137, - 108, 102, 235, 109, 110, 114, 113, 0, 129, 135, - 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 243, - 317, 0, 0, 0, 0, 0, 155, 234, 122, 241, - 242, 239, 240, 281, 282, 331, 332, 333, 308, 236, - 0, 0, 311, 286, 100, 105, 132, 338, 148, 121, - 161, 0, 0, 0, 0, 0, 254, 337, 304, 302, - 324, 0, 120, 153, 0, 154, 0, 0, 0, 128, - 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 164, 165, 167, 166, 168, 106, 325, 310, - 270, 328, 246, 261, 340, 263, 264, 300, 230, 280, - 143, 259, 101, 0, 0, 125, 0, 131, 0, 0, - 0, 0, 326, 277, 0, 249, 223, 256, 224, 247, - 274, 117, 245, 312, 283, 262, 0, 334, 133, 292, - 0, 151, 136, 0, 0, 276, 315, 278, 309, 269, - 301, 238, 291, 329, 260, 297, 0, 0, 0, 220, - 0, 0, 0, 0, 0, 0, 0, 0, 107, 294, - 323, 258, 296, 299, 222, 293, 0, 226, 231, 339, - 321, 252, 253, 0, 0, 0, 0, 0, 0, 0, - 275, 279, 306, 267, 0, 0, 0, 0, 0, 0, - 0, 0, 250, 0, 290, 0, 0, 0, 233, 228, - 273, 0, 0, 0, 237, 0, 251, 307, 0, 0, - 0, 316, 268, 162, 322, 266, 265, 330, 303, 0, - 313, 248, 257, 111, 255, 149, 298, 160, 103, 319, - 314, 288, 271, 272, 227, 0, 305, 116, 124, 244, - 295, 158, 159, 112, 163, 232, 336, 104, 663, 335, - 142, 664, 157, 320, 289, 285, 229, 318, 287, 284, - 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, - 0, 225, 0, 152, 327, 341, 123, 118, 156, 115, - 137, 108, 102, 235, 109, 110, 114, 113, 0, 129, - 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 243, 317, 0, 0, 0, 0, 0, 155, 234, 122, - 241, 242, 239, 240, 281, 282, 331, 332, 333, 308, - 236, 0, 0, 311, 286, 100, 105, 132, 338, 148, - 121, 161, 0, 0, 0, 0, 0, 254, 337, 304, - 302, 324, 0, 120, 153, 0, 154, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 164, 165, 167, 166, 168, 106, 325, - 310, 270, 328, 246, 261, 340, 263, 264, 300, 230, - 280, 143, 259, 101, 0, 0, 125, 0, 131, 0, - 0, 0, 0, 326, 277, 0, 249, 223, 256, 224, - 247, 274, 117, 245, 312, 283, 262, 0, 334, 133, - 292, 0, 151, 136, 0, 0, 276, 315, 278, 309, - 269, 301, 238, 291, 329, 260, 297, 0, 0, 0, - 449, 0, 0, 0, 0, 0, 0, 0, 0, 107, - 294, 323, 258, 296, 299, 222, 293, 0, 226, 231, - 339, 321, 252, 253, 0, 0, 0, 0, 0, 0, - 0, 275, 279, 306, 267, 0, 0, 0, 0, 0, - 0, 0, 0, 250, 0, 290, 0, 0, 0, 233, - 228, 273, 0, 0, 0, 237, 0, 251, 307, 0, - 0, 0, 316, 268, 162, 322, 266, 265, 330, 303, - 0, 313, 248, 257, 111, 255, 149, 298, 160, 103, - 319, 314, 288, 271, 272, 227, 0, 305, 116, 124, - 244, 295, 158, 159, 112, 163, 232, 336, 104, 663, - 335, 142, 664, 157, 320, 289, 285, 229, 318, 287, - 284, 130, 119, 126, 146, 134, 147, 127, 140, 139, - 141, 0, 225, 0, 152, 327, 341, 123, 118, 156, - 115, 137, 108, 102, 235, 109, 110, 114, 113, 0, + 0, 143, 0, 101, 0, 0, 125, 0, 131, 0, + 164, 165, 167, 166, 168, 106, 879, 0, 403, 0, + 0, 0, 117, 402, 0, 728, 0, 0, 439, 133, + 0, 0, 151, 136, 0, 0, 0, 0, 432, 433, + 738, 0, 0, 0, 720, 0, 0, 53, 0, 0, + 452, 420, 419, 421, 422, 423, 424, 0, 0, 107, + 425, 426, 427, 0, 0, 0, 400, 413, 0, 438, + 0, 0, 0, 0, 0, 0, 715, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, + 411, 882, 0, 0, 0, 450, 0, 412, 0, 0, + 409, 414, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 162, 0, 0, 448, 0, 0, + 0, 0, 0, 0, 111, 0, 149, 0, 160, 103, + 724, 0, 0, 0, 0, 0, 0, 0, 116, 124, + 0, 0, 158, 159, 112, 163, 0, 0, 104, 0, + 0, 142, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 130, 119, 126, 146, 134, 147, 127, 140, 139, + 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, + 115, 137, 108, 102, 0, 109, 110, 114, 113, 718, 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, + 719, 721, 722, 723, 0, 725, 726, 727, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 0, 155, 0, + 122, 440, 449, 446, 447, 444, 445, 443, 442, 441, + 451, 434, 435, 437, 0, 436, 100, 105, 132, 0, + 148, 121, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 120, 153, 0, 154, 0, 0, + 0, 128, 0, 143, 0, 101, 0, 0, 125, 0, + 131, 716, 0, 0, 164, 165, 167, 166, 168, 106, + 403, 0, 0, 0, 117, 402, 0, 0, 0, 0, + 439, 133, 0, 0, 151, 136, 0, 0, 0, 0, + 432, 433, 0, 0, 0, 0, 0, 0, 680, 53, + 0, 0, 452, 420, 419, 421, 422, 423, 424, 0, + 0, 107, 425, 426, 427, 681, 0, 0, 400, 413, + 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 243, 317, 0, 0, 0, 0, 0, 155, 234, - 122, 241, 242, 239, 240, 281, 282, 331, 332, 333, - 308, 236, 0, 0, 311, 286, 100, 105, 132, 338, - 148, 121, 161, 0, 0, 0, 0, 0, 254, 337, - 304, 302, 324, 0, 120, 153, 0, 154, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, - 325, 310, 270, 328, 246, 261, 340, 263, 264, 300, - 230, 280, 143, 259, 101, 0, 0, 125, 0, 131, - 0, 0, 0, 0, 326, 277, 0, 249, 223, 256, - 224, 247, 274, 117, 245, 312, 283, 262, 0, 334, - 133, 292, 0, 151, 136, 0, 0, 276, 315, 278, - 309, 269, 301, 238, 291, 329, 260, 297, 0, 0, - 0, 98, 0, 0, 0, 0, 0, 0, 0, 0, - 107, 294, 323, 258, 296, 299, 222, 293, 0, 226, - 231, 339, 321, 252, 253, 0, 0, 0, 0, 0, - 0, 0, 275, 279, 306, 267, 0, 0, 0, 0, - 0, 0, 0, 0, 250, 0, 290, 0, 0, 0, - 233, 228, 273, 0, 0, 0, 237, 0, 251, 307, - 0, 0, 0, 316, 268, 162, 322, 266, 265, 330, - 303, 0, 313, 248, 257, 111, 255, 149, 298, 160, - 103, 319, 314, 288, 271, 272, 227, 0, 305, 116, - 124, 244, 295, 158, 159, 112, 163, 232, 336, 104, - 663, 335, 142, 664, 157, 320, 289, 285, 229, 318, - 287, 284, 130, 119, 126, 146, 134, 147, 127, 140, - 139, 141, 0, 225, 0, 152, 327, 341, 123, 118, - 156, 115, 137, 108, 102, 235, 109, 110, 114, 113, - 0, 129, 135, 138, 144, 145, 150, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 243, 317, 0, 0, 0, 0, 0, 155, - 234, 122, 241, 242, 239, 240, 281, 282, 331, 332, - 333, 308, 236, 0, 0, 311, 286, 100, 105, 132, - 338, 148, 121, 161, 0, 0, 0, 0, 0, 254, - 337, 304, 302, 324, 0, 120, 153, 0, 154, 0, - 0, 0, 128, 0, 143, 0, 101, 0, 0, 125, - 0, 131, 0, 0, 0, 164, 165, 167, 166, 168, - 106, 400, 0, 0, 0, 117, 399, 0, 0, 0, - 0, 436, 133, 0, 0, 151, 136, 0, 0, 0, - 0, 429, 430, 0, 0, 0, 0, 0, 0, 677, - 53, 0, 0, 449, 417, 416, 418, 419, 420, 421, - 0, 0, 107, 422, 423, 424, 678, 0, 0, 397, - 410, 0, 435, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 407, 408, 0, 0, 0, 0, 447, 0, - 409, 0, 0, 406, 411, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, - 445, 0, 0, 0, 0, 0, 0, 111, 0, 149, - 0, 160, 103, 0, 0, 0, 0, 0, 0, 0, - 0, 116, 124, 0, 0, 158, 159, 112, 163, 0, - 0, 104, 0, 0, 142, 0, 157, 0, 0, 0, - 0, 0, 0, 0, 130, 119, 126, 146, 134, 147, - 127, 140, 139, 141, 0, 0, 0, 152, 0, 0, - 123, 118, 156, 115, 137, 108, 102, 0, 109, 110, - 114, 113, 0, 129, 135, 138, 144, 145, 150, 0, + 0, 410, 411, 0, 0, 0, 0, 450, 0, 412, + 0, 0, 409, 414, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 448, + 0, 0, 0, 0, 0, 0, 111, 0, 149, 0, + 160, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 116, 124, 0, 0, 158, 159, 112, 163, 0, 0, + 104, 0, 0, 142, 0, 157, 0, 0, 0, 0, + 0, 0, 0, 130, 119, 126, 146, 134, 147, 127, + 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, + 118, 156, 115, 137, 108, 102, 0, 109, 110, 114, + 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 155, 0, 122, 437, 446, 443, 444, 441, 442, - 440, 439, 438, 448, 431, 432, 434, 0, 433, 100, - 105, 132, 0, 148, 121, 161, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 120, 153, 0, - 154, 0, 0, 0, 128, 0, 143, 0, 101, 0, - 0, 125, 0, 131, 0, 0, 0, 164, 165, 167, - 166, 168, 106, 400, 0, 0, 0, 117, 399, 0, - 0, 0, 0, 436, 133, 0, 0, 151, 136, 0, - 0, 0, 0, 429, 430, 0, 0, 0, 0, 0, - 0, 0, 53, 0, 0, 449, 417, 416, 418, 419, - 420, 421, 0, 0, 107, 422, 423, 424, 0, 0, - 0, 397, 410, 0, 435, 0, 0, 0, 0, 0, + 155, 0, 122, 440, 449, 446, 447, 444, 445, 443, + 442, 441, 451, 434, 435, 437, 0, 436, 100, 105, + 132, 0, 148, 121, 161, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 120, 153, 0, 154, + 0, 0, 0, 128, 0, 143, 0, 101, 0, 0, + 125, 0, 131, 0, 0, 0, 164, 165, 167, 166, + 168, 106, 403, 0, 0, 0, 117, 402, 0, 0, + 0, 0, 439, 133, 0, 0, 151, 136, 0, 0, + 0, 0, 432, 433, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 452, 420, 419, 421, 422, 423, + 424, 0, 0, 107, 425, 426, 427, 0, 0, 0, + 400, 413, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 407, 408, 882, 0, 0, 0, - 447, 0, 409, 0, 0, 406, 411, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, - 0, 0, 445, 0, 0, 0, 0, 0, 0, 111, - 0, 149, 0, 160, 103, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 124, 0, 0, 158, 159, 112, - 163, 0, 0, 104, 0, 0, 142, 0, 157, 0, - 0, 0, 0, 0, 0, 0, 130, 119, 126, 146, - 134, 147, 127, 140, 139, 141, 0, 0, 0, 152, - 0, 0, 123, 118, 156, 115, 137, 108, 102, 0, - 109, 110, 114, 113, 0, 129, 135, 138, 144, 145, - 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 410, 411, 882, 0, 0, 0, 450, + 0, 412, 0, 0, 409, 414, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, + 0, 448, 0, 0, 0, 0, 0, 0, 111, 0, + 149, 0, 160, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 116, 124, 0, 0, 158, 159, 112, 163, + 0, 0, 104, 0, 0, 142, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 130, 119, 126, 146, 134, + 147, 127, 140, 139, 141, 0, 0, 0, 152, 0, + 0, 123, 118, 156, 115, 137, 108, 102, 0, 109, + 110, 114, 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 0, 122, 437, 446, 443, 444, - 441, 442, 440, 439, 438, 448, 431, 432, 434, 0, - 433, 100, 105, 132, 0, 148, 121, 161, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, - 153, 0, 154, 0, 0, 0, 128, 0, 143, 0, - 101, 0, 0, 125, 0, 131, 0, 0, 0, 164, - 165, 167, 166, 168, 106, 400, 0, 0, 0, 117, - 399, 0, 0, 0, 0, 436, 133, 0, 0, 151, - 136, 0, 0, 0, 0, 429, 430, 0, 0, 0, - 0, 0, 0, 0, 53, 0, 391, 449, 417, 416, - 418, 419, 420, 421, 0, 0, 107, 422, 423, 424, - 0, 0, 0, 397, 410, 0, 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 407, 408, 0, 0, - 0, 0, 447, 0, 409, 0, 0, 406, 411, 0, + 0, 0, 155, 0, 122, 440, 449, 446, 447, 444, + 445, 443, 442, 441, 451, 434, 435, 437, 0, 436, + 100, 105, 132, 0, 148, 121, 161, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 120, 153, + 0, 154, 0, 0, 0, 128, 0, 143, 0, 101, + 0, 0, 125, 0, 131, 0, 0, 0, 164, 165, + 167, 166, 168, 106, 403, 0, 0, 0, 117, 402, + 0, 0, 0, 0, 439, 133, 0, 0, 151, 136, + 0, 0, 0, 0, 432, 433, 0, 0, 0, 0, + 0, 0, 0, 53, 0, 394, 452, 420, 419, 421, + 422, 423, 424, 0, 0, 107, 425, 426, 427, 0, + 0, 0, 400, 413, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 162, 0, 0, 445, 0, 0, 0, 0, 0, - 0, 111, 0, 149, 0, 160, 103, 0, 0, 0, - 0, 0, 0, 0, 0, 116, 124, 0, 0, 158, - 159, 112, 163, 0, 0, 104, 0, 0, 142, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 130, 119, - 126, 146, 134, 147, 127, 140, 139, 141, 0, 0, - 0, 152, 0, 0, 123, 118, 156, 115, 137, 108, - 102, 0, 109, 110, 114, 113, 0, 129, 135, 138, - 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 410, 411, 0, 0, 0, + 0, 450, 0, 412, 0, 0, 409, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 122, 437, 446, - 443, 444, 441, 442, 440, 439, 438, 448, 431, 432, - 434, 0, 433, 100, 105, 132, 0, 148, 121, 161, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, - 0, 120, 153, 0, 154, 0, 0, 0, 128, 0, - 143, 0, 101, 0, 0, 125, 0, 131, 0, 0, - 0, 164, 165, 167, 166, 168, 106, 400, 0, 0, - 0, 117, 399, 0, 0, 0, 0, 436, 133, 0, - 0, 151, 136, 0, 0, 0, 0, 429, 430, 0, - 0, 0, 0, 0, 0, 0, 53, 0, 0, 449, - 417, 416, 418, 419, 420, 421, 0, 0, 107, 422, - 423, 424, 0, 0, 0, 397, 410, 0, 435, 0, + 162, 0, 0, 448, 0, 0, 0, 0, 0, 0, + 111, 0, 149, 0, 160, 103, 0, 0, 0, 0, + 0, 0, 0, 0, 116, 124, 0, 0, 158, 159, + 112, 163, 0, 0, 104, 0, 0, 142, 0, 157, + 0, 0, 0, 0, 0, 0, 0, 130, 119, 126, + 146, 134, 147, 127, 140, 139, 141, 0, 0, 0, + 152, 0, 0, 123, 118, 156, 115, 137, 108, 102, + 0, 109, 110, 114, 113, 0, 129, 135, 138, 144, + 145, 150, 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, 407, 408, - 0, 0, 0, 0, 447, 0, 409, 0, 0, 406, - 411, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 162, 0, 0, 445, 0, 0, 0, - 0, 0, 0, 111, 0, 149, 0, 160, 103, 0, - 0, 0, 0, 0, 0, 0, 0, 116, 124, 0, - 0, 158, 159, 112, 163, 0, 0, 104, 0, 0, - 142, 0, 157, 0, 0, 0, 0, 0, 0, 0, - 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, - 0, 0, 0, 152, 0, 0, 123, 118, 156, 115, - 137, 108, 102, 0, 109, 110, 114, 113, 0, 129, - 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 155, 0, 122, 440, 449, 446, + 447, 444, 445, 443, 442, 441, 451, 434, 435, 437, + 0, 436, 100, 105, 132, 0, 148, 121, 161, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, + 120, 153, 0, 154, 0, 0, 0, 128, 0, 143, + 0, 101, 0, 0, 125, 0, 131, 0, 0, 0, + 164, 165, 167, 166, 168, 106, 403, 0, 0, 0, + 117, 402, 0, 0, 0, 0, 439, 133, 0, 0, + 151, 136, 0, 0, 0, 0, 432, 433, 0, 0, + 0, 0, 0, 0, 0, 53, 0, 0, 452, 420, + 419, 421, 422, 423, 424, 0, 0, 107, 425, 426, + 427, 0, 0, 0, 400, 413, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 155, 0, 122, - 437, 446, 443, 444, 441, 442, 440, 439, 438, 448, - 431, 432, 434, 0, 433, 100, 105, 132, 0, 148, - 121, 161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 120, 153, 0, 154, 0, 0, 0, - 128, 0, 143, 0, 101, 0, 0, 125, 0, 131, - 0, 0, 0, 164, 165, 167, 166, 168, 106, 400, - 0, 0, 0, 117, 399, 0, 0, 0, 0, 436, - 133, 0, 0, 151, 136, 0, 0, 0, 0, 429, - 430, 0, 0, 0, 0, 0, 0, 0, 53, 0, - 0, 449, 417, 416, 418, 419, 420, 421, 0, 0, - 107, 422, 423, 424, 0, 0, 0, 397, 410, 0, - 435, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 410, 411, 0, + 0, 0, 0, 450, 0, 412, 0, 0, 409, 414, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 407, 408, 0, 0, 0, 0, 447, 0, 409, 0, - 0, 406, 411, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 162, 0, 0, 445, 0, - 0, 0, 0, 0, 0, 111, 0, 149, 0, 160, - 103, 0, 0, 0, 0, 0, 0, 0, 0, 116, - 124, 0, 0, 158, 159, 112, 163, 0, 0, 104, - 0, 0, 142, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 130, 119, 126, 146, 134, 147, 127, 140, - 139, 141, 0, 0, 0, 152, 0, 0, 123, 118, - 156, 115, 137, 108, 102, 0, 109, 110, 114, 113, - 0, 129, 135, 138, 144, 145, 150, 0, 0, 0, + 0, 0, 162, 0, 0, 448, 0, 0, 0, 0, + 0, 0, 111, 0, 149, 0, 160, 103, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 124, 0, 0, + 158, 159, 112, 163, 0, 0, 104, 0, 0, 142, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 130, + 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, + 0, 0, 152, 0, 0, 123, 118, 156, 115, 137, + 108, 102, 0, 109, 110, 114, 113, 0, 129, 135, + 138, 144, 145, 150, 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, 155, - 0, 122, 437, 446, 443, 444, 441, 442, 440, 439, - 438, 448, 431, 432, 434, 0, 433, 100, 105, 132, - 0, 148, 121, 161, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 120, 153, 0, 154, 0, - 0, 143, 128, 101, 0, 0, 125, 0, 131, 0, - 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, - 106, 0, 117, 0, 0, 0, 0, 0, 436, 133, - 0, 0, 151, 136, 0, 0, 0, 0, 429, 430, + 0, 0, 0, 0, 0, 0, 155, 0, 122, 440, + 449, 446, 447, 444, 445, 443, 442, 441, 451, 434, + 435, 437, 0, 436, 100, 105, 132, 0, 148, 121, + 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 120, 153, 0, 154, 0, 0, 0, 128, + 0, 143, 0, 101, 0, 0, 125, 0, 131, 0, + 0, 0, 164, 165, 167, 166, 168, 106, 403, 0, + 0, 0, 117, 402, 0, 0, 0, 0, 439, 133, + 0, 0, 151, 136, 0, 0, 0, 0, 432, 433, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, - 449, 417, 416, 418, 419, 420, 421, 0, 0, 107, - 422, 423, 424, 0, 0, 0, 0, 410, 0, 435, + 452, 420, 419, 421, 422, 423, 424, 0, 0, 107, + 425, 426, 427, 0, 0, 0, 400, 413, 0, 438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 407, - 408, 0, 0, 0, 0, 447, 0, 409, 0, 0, - 406, 411, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 162, 0, 0, 445, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 410, + 411, 0, 0, 0, 0, 450, 0, 412, 0, 0, + 409, 414, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 162, 0, 0, 448, 0, 0, 0, 0, 0, 0, 111, 0, 149, 0, 160, 103, 0, 0, 0, 0, 0, 0, 0, 0, 116, 124, 0, 0, 158, 159, 112, 163, 0, 0, 104, 0, @@ -1428,8 +1402,8 @@ var yyAct = [...]int{ 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, - 122, 437, 446, 443, 444, 441, 442, 440, 439, 438, - 448, 431, 432, 434, 0, 433, 100, 105, 132, 0, + 122, 440, 449, 446, 447, 444, 445, 443, 442, 441, + 451, 434, 435, 437, 0, 436, 100, 105, 132, 0, 148, 121, 161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 153, 0, 154, 0, 0, 0, 128, 0, 0, 143, 0, 101, 0, 0, 125, @@ -1438,9 +1412,9 @@ var yyAct = [...]int{ 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 1049, 0, 0, 0, 0, - 0, 0, 107, 0, 0, 0, 0, 567, 566, 0, + 0, 0, 107, 0, 0, 0, 0, 570, 569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 571, 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, 162, 0, 0, @@ -1451,36 +1425,36 @@ var yyAct = [...]int{ 0, 0, 0, 0, 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, 115, 137, 108, 102, 0, 109, 110, - 114, 113, 0, 129, 135, 138, 144, 145, 150, 0, - 0, 143, 0, 101, 0, 748, 747, 0, 131, 0, - 0, 746, 0, 0, 745, 0, 0, 0, 0, 0, - 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, - 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, - 105, 132, 0, 148, 121, 161, 0, 0, 0, 0, - 347, 0, 0, 0, 0, 0, 0, 120, 153, 107, - 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, + 114, 113, 24, 129, 135, 138, 144, 145, 150, 0, + 0, 0, 0, 143, 0, 101, 0, 0, 125, 0, + 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 155, 0, 122, 117, 0, 0, 0, 0, 0, + 0, 133, 0, 0, 151, 136, 0, 0, 0, 100, + 105, 132, 0, 148, 121, 161, 0, 0, 0, 53, + 0, 0, 98, 0, 0, 0, 0, 120, 153, 0, + 154, 107, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 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, 744, 162, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 111, 0, 149, 0, 160, 103, - 0, 0, 0, 0, 0, 0, 0, 0, 116, 124, - 0, 0, 158, 159, 112, 163, 0, 0, 104, 0, - 0, 142, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 130, 119, 126, 146, 134, 147, 127, 140, 139, - 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, - 115, 137, 108, 102, 0, 109, 110, 114, 113, 24, - 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 111, 0, 149, 0, + 160, 103, 0, 0, 0, 0, 0, 0, 0, 0, + 116, 124, 0, 0, 158, 159, 112, 163, 0, 0, + 104, 0, 0, 142, 0, 157, 0, 0, 0, 0, + 0, 0, 0, 130, 119, 126, 146, 134, 147, 127, + 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, + 118, 156, 115, 137, 108, 102, 0, 109, 110, 114, + 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, 143, 0, 101, 0, 0, 125, 0, 131, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 0, - 122, 117, 0, 0, 0, 0, 0, 0, 133, 0, - 0, 151, 136, 0, 0, 0, 100, 105, 132, 0, - 148, 121, 161, 0, 0, 0, 53, 0, 0, 98, - 0, 0, 0, 0, 120, 153, 0, 154, 107, 0, - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1281, 0, 0, 0, + 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, + 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, + 132, 0, 148, 121, 161, 0, 0, 0, 0, 98, + 0, 1283, 0, 0, 0, 0, 120, 153, 107, 154, + 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, + 168, 106, 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, 162, 0, 0, 0, 0, 0, 0, @@ -1490,36 +1464,36 @@ var yyAct = [...]int{ 142, 0, 157, 0, 0, 0, 0, 0, 0, 0, 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, 115, - 137, 108, 102, 0, 109, 110, 114, 113, 0, 129, - 135, 138, 144, 145, 150, 0, 0, 143, 0, 101, - 0, 0, 125, 0, 131, 0, 0, 0, 0, 0, - 0, 0, 0, 1284, 0, 0, 0, 155, 117, 122, - 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, - 0, 0, 0, 0, 0, 100, 105, 132, 0, 148, - 121, 161, 0, 0, 0, 0, 98, 0, 1286, 0, - 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, + 137, 108, 102, 0, 109, 110, 114, 113, 24, 129, + 135, 138, 144, 145, 150, 0, 0, 0, 0, 143, + 0, 101, 0, 0, 125, 0, 131, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 155, 0, 122, + 117, 0, 0, 0, 0, 0, 0, 133, 0, 0, + 151, 136, 0, 0, 0, 100, 105, 132, 0, 148, + 121, 161, 0, 0, 0, 53, 0, 0, 220, 0, + 0, 0, 0, 120, 153, 0, 154, 107, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 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, - 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 111, 0, 149, 0, 160, 103, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 124, 0, 0, 158, 159, - 112, 163, 0, 0, 104, 0, 0, 142, 0, 157, - 0, 0, 0, 0, 0, 0, 0, 130, 119, 126, - 146, 134, 147, 127, 140, 139, 141, 0, 0, 0, - 152, 0, 0, 123, 118, 156, 115, 137, 108, 102, - 0, 109, 110, 114, 113, 24, 129, 135, 138, 144, - 145, 150, 0, 0, 0, 0, 143, 0, 101, 0, + 0, 0, 162, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 111, 0, 149, 0, 160, 103, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 124, 0, 0, + 158, 159, 112, 163, 0, 0, 104, 0, 0, 142, + 0, 157, 0, 0, 0, 0, 0, 0, 0, 130, + 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, + 0, 0, 152, 0, 0, 123, 118, 156, 115, 137, + 108, 102, 0, 109, 110, 114, 113, 0, 129, 135, + 138, 144, 145, 150, 0, 0, 143, 0, 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 155, 0, 122, 117, 0, 0, + 0, 0, 0, 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, - 0, 0, 100, 105, 132, 0, 148, 121, 161, 0, - 0, 0, 53, 0, 0, 220, 0, 0, 0, 0, - 120, 153, 0, 154, 107, 0, 0, 128, 0, 0, + 0, 0, 0, 0, 100, 105, 132, 0, 148, 121, + 161, 0, 0, 0, 0, 220, 0, 0, 648, 0, + 0, 649, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 164, 165, 167, 166, 168, 106, 0, 0, 0, 0, + 0, 0, 164, 165, 167, 166, 168, 106, 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, 162, @@ -1531,35 +1505,35 @@ var yyAct = [...]int{ 134, 147, 127, 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, 115, 137, 108, 102, 0, 109, 110, 114, 113, 0, 129, 135, 138, 144, 145, - 150, 0, 0, 143, 0, 101, 0, 0, 125, 0, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, - 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, + 150, 0, 0, 0, 0, 143, 0, 101, 0, 0, + 125, 0, 131, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 0, 122, 117, 482, 0, 0, + 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 100, 105, 132, 0, 148, 121, 161, 0, 0, - 0, 0, 220, 0, 0, 645, 0, 0, 646, 120, - 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, + 0, 0, 0, 0, 220, 0, 481, 0, 0, 120, + 153, 0, 154, 107, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 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, 162, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 111, 0, 149, 0, - 160, 103, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 124, 0, 0, 158, 159, 112, 163, 0, 0, - 104, 0, 0, 142, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 130, 119, 126, 146, 134, 147, 127, - 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, - 118, 156, 115, 137, 108, 102, 0, 109, 110, 114, - 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 111, 0, + 149, 0, 160, 103, 0, 0, 0, 0, 0, 0, + 0, 0, 116, 124, 0, 0, 158, 159, 112, 163, + 0, 0, 104, 0, 0, 142, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 130, 119, 126, 146, 134, + 147, 127, 140, 139, 141, 0, 0, 0, 152, 0, + 0, 123, 118, 156, 115, 137, 108, 102, 0, 109, + 110, 114, 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, 143, 0, 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 122, 117, 479, 0, 0, 0, 0, 0, - 133, 0, 0, 151, 136, 0, 0, 0, 100, 105, - 132, 0, 148, 121, 161, 0, 0, 0, 0, 0, - 0, 220, 0, 478, 0, 0, 120, 153, 0, 154, - 107, 0, 0, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, - 168, 106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, + 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, + 100, 105, 132, 0, 148, 121, 161, 0, 0, 0, + 0, 98, 0, 1283, 0, 0, 0, 0, 120, 153, + 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, + 167, 166, 168, 106, 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, 162, 0, 0, 0, 0, @@ -1575,8 +1549,8 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, 132, - 0, 148, 121, 161, 0, 0, 0, 0, 98, 0, - 1286, 0, 0, 0, 0, 120, 153, 107, 154, 0, + 0, 148, 121, 161, 0, 53, 0, 0, 98, 0, + 0, 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1595,7 +1569,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, 132, 0, 148, 121, - 161, 0, 53, 0, 0, 98, 0, 0, 0, 0, + 161, 0, 0, 0, 0, 220, 0, 1049, 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, 0, @@ -1610,12 +1584,32 @@ var yyAct = [...]int{ 134, 147, 127, 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, 115, 137, 108, 102, 0, 109, 110, 114, 113, 0, 129, 135, 138, 144, 145, + 150, 0, 0, 0, 0, 0, 143, 0, 101, 0, + 0, 125, 0, 131, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 155, 0, 122, 465, 117, 0, 0, + 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, + 0, 100, 105, 132, 0, 148, 121, 161, 0, 0, + 0, 0, 0, 0, 0, 98, 0, 0, 0, 120, + 153, 0, 154, 0, 107, 0, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, + 165, 167, 166, 168, 106, 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, 162, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 111, + 0, 149, 0, 160, 103, 0, 0, 0, 0, 0, + 0, 0, 0, 116, 124, 0, 0, 158, 159, 112, + 163, 0, 0, 104, 0, 0, 142, 0, 157, 0, + 0, 0, 0, 0, 0, 0, 130, 119, 126, 146, + 134, 147, 127, 140, 139, 141, 0, 0, 0, 152, + 0, 0, 123, 118, 156, 115, 137, 108, 102, 0, + 109, 110, 114, 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, 143, 0, 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, 132, 0, 148, 121, 161, 0, 0, - 0, 0, 220, 0, 1049, 0, 0, 0, 0, 120, + 0, 0, 220, 0, 0, 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, 0, 0, 0, 0, @@ -1630,31 +1624,11 @@ var yyAct = [...]int{ 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, 115, 137, 108, 102, 0, 109, 110, 114, 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, - 0, 0, 0, 143, 0, 101, 0, 0, 125, 0, - 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 155, 0, 122, 462, 117, 0, 0, 0, 0, 0, - 0, 133, 0, 0, 151, 136, 0, 0, 100, 105, - 132, 0, 148, 121, 161, 0, 0, 0, 0, 0, - 0, 0, 98, 0, 0, 0, 120, 153, 0, 154, - 0, 107, 0, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, - 168, 106, 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, 162, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 111, 0, 149, 0, - 160, 103, 0, 0, 0, 0, 0, 0, 0, 0, - 116, 124, 0, 0, 158, 159, 112, 163, 0, 0, - 104, 0, 0, 142, 0, 157, 0, 0, 0, 0, - 0, 0, 0, 130, 119, 126, 146, 134, 147, 127, - 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, - 118, 156, 115, 137, 108, 102, 0, 109, 110, 114, - 113, 0, 129, 135, 138, 144, 145, 150, 0, 0, 143, 0, 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, - 132, 0, 148, 121, 161, 0, 0, 0, 0, 220, + 132, 0, 148, 121, 161, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, @@ -1674,7 +1648,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, 132, 0, 148, - 121, 161, 0, 0, 0, 0, 449, 0, 0, 0, + 121, 161, 0, 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, @@ -1694,7 +1668,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, 132, 0, 148, 121, 161, 0, - 0, 0, 0, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, 0, 0, 0, @@ -1714,74 +1688,54 @@ var yyAct = [...]int{ 0, 155, 117, 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, 136, 0, 0, 0, 0, 0, 100, 105, 132, 0, 148, 121, 161, 0, 0, 0, 0, - 347, 0, 0, 0, 0, 0, 0, 120, 153, 107, + 1133, 0, 0, 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 24, 51, 26, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 111, 0, 149, 0, 160, 103, - 0, 0, 0, 0, 0, 0, 0, 0, 116, 124, - 0, 0, 158, 159, 112, 163, 0, 0, 104, 0, - 0, 142, 0, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 46, 111, 0, 149, 28, 160, 103, + 36, 0, 0, 0, 0, 0, 0, 0, 116, 124, + 0, 0, 158, 159, 112, 163, 0, 37, 104, 0, + 53, 142, 0, 157, 0, 0, 0, 0, 0, 0, 0, 130, 119, 126, 146, 134, 147, 127, 140, 139, 141, 0, 0, 0, 152, 0, 0, 123, 118, 156, - 115, 137, 108, 102, 0, 109, 110, 114, 113, 0, - 129, 135, 138, 144, 145, 150, 0, 0, 143, 0, - 101, 0, 0, 125, 0, 131, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 155, 117, - 122, 0, 0, 0, 0, 0, 133, 0, 0, 151, - 136, 0, 0, 0, 0, 0, 100, 105, 132, 0, - 148, 121, 161, 0, 0, 0, 0, 1133, 0, 0, - 0, 0, 0, 0, 120, 153, 107, 154, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 115, 137, 108, 102, 510, 109, 110, 114, 113, 0, + 129, 135, 138, 144, 145, 150, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 30, 31, + 32, 0, 34, 0, 0, 0, 0, 0, 155, 0, + 122, 0, 0, 0, 35, 47, 39, 0, 0, 48, + 49, 33, 0, 0, 0, 0, 100, 105, 132, 0, + 148, 121, 161, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 120, 153, 0, 154, 0, 0, + 498, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 164, 165, 167, 166, 168, 106, + 0, 0, 0, 0, 511, 0, 0, 0, 0, 524, + 527, 528, 529, 530, 531, 532, 0, 533, 534, 535, + 536, 537, 512, 513, 514, 515, 496, 497, 525, 0, + 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 516, 517, 518, 519, 520, 521, 522, + 523, 0, 0, 52, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, + 0, 0, 0, 0, 0, 0, 40, 0, 0, 41, + 42, 0, 44, 43, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 45, 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, 162, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 111, 0, 149, 0, 160, 103, 0, 0, 0, - 0, 0, 0, 0, 0, 116, 124, 0, 0, 158, - 159, 112, 163, 0, 0, 104, 0, 0, 142, 0, - 157, 0, 0, 0, 0, 0, 0, 0, 130, 119, - 126, 146, 134, 147, 127, 140, 139, 141, 0, 0, - 0, 152, 0, 0, 123, 118, 156, 115, 137, 108, - 102, 507, 109, 110, 114, 113, 0, 129, 135, 138, - 144, 145, 150, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 155, 0, 122, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 100, 105, 132, 0, 148, 121, 161, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 120, 153, 0, 154, 0, 0, 495, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 164, 165, 167, 166, 168, 106, 0, 0, 0, - 0, 508, 0, 0, 0, 0, 521, 524, 525, 526, - 527, 528, 529, 0, 530, 531, 532, 533, 534, 509, - 510, 511, 512, 493, 494, 522, 0, 496, 0, 0, - 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, - 513, 514, 515, 516, 517, 518, 519, 520, 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, 523, + 0, 0, 0, 0, 0, 0, 0, 526, } var yyPact = [...]int{ - 127, -1000, -213, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 9337, -1000, -213, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 958, 1012, -1000, -1000, -1000, -1000, -1000, 711, - 129, 66, 1, 97, 92, 1270, 90, 9337, -1000, -1000, - 51, -1000, -168, -1000, -1000, -206, -1000, -1000, -1000, -1000, - 726, -1000, -1000, -1000, -1000, -1000, 934, 955, 735, 898, - 809, -1000, 66, 9337, 984, 2316, -152, 9534, 62, 88, - 81, 78, 62, -1000, 86, -1000, 60, 622, 60, 9337, - 9337, -89, 9, -1000, -1000, -90, -1000, -1000, -1000, -95, - -1000, -1000, -1000, -1000, -1000, -1000, 9337, -1000, -1000, -1000, + -1000, -1000, 951, 1000, -1000, -1000, -1000, -1000, -1000, 770, + 124, 67, 2, 104, 103, 116, 95, 8840, -1000, -1000, + 51, -1000, -166, -1000, -1000, -205, -1000, -1000, -1000, -1000, + 769, -1000, -1000, -1000, -1000, -1000, 939, 949, 809, 901, + 825, -1000, 67, 8840, 968, 2302, -152, 9037, 41, 83, + 79, 78, 41, -1000, 89, -1000, 40, 640, 40, 8840, + 8840, -90, 8, -1000, -1000, -81, -1000, -1000, -1000, -100, + -1000, -1000, -1000, -1000, -1000, -1000, 8840, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1789,11 +1743,11 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 456, -1000, -1000, -1000, -1000, 665, 665, -1000, - 9337, -1000, -1000, -1000, -1000, -1000, 525, 854, 6245, 6245, - 958, -1000, 726, -1000, -1000, -1000, 835, -1000, -1000, 306, - 8746, 839, 133, 9337, 662, -1000, -1000, -187, 2898, -1000, - -1000, -1000, -1000, 255, 7955, 7955, -1000, -1000, -1000, 838, + -1000, -1000, 470, -1000, -1000, -1000, -1000, 735, 735, -1000, + 8840, -1000, -1000, -1000, -1000, -1000, 566, 880, 6204, 6204, + 951, -1000, 769, -1000, -1000, -1000, 861, -1000, -1000, 305, + 8249, 865, 148, 8840, 740, -1000, -1000, -187, 2884, -1000, + -1000, -1000, -1000, 199, 7458, 7458, -1000, -1000, -1000, 863, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1806,185 +1760,184 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 950, 944, 618, -1000, 9891, -1000, -1000, 9337, - 276, 614, 613, 606, 9337, 9337, 9337, 875, 747, 9337, - -1000, -1000, 981, 9337, 9337, -1000, -1000, 976, 980, -1000, - -1000, -1000, -1000, -1000, 976, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 6245, -1000, -1000, 166, -1000, - -1000, -1000, -1000, 1005, 155, 373, -1000, 6245, 1080, 665, - 665, -1000, -1000, 117, -1000, -1000, 6504, 6504, 6504, 6504, - 6504, 6504, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 665, 128, -1000, 5983, 665, - 665, 665, 665, 665, 665, 6245, 665, 665, 665, 665, - 665, 665, 665, 665, 665, 665, 665, 665, 665, -1000, - -1000, 661, -1000, 304, 934, 525, 809, 7756, 763, -1000, - -1000, 806, 9337, -1000, 9140, 4935, 971, 2607, -1000, 647, - 644, -178, -185, -1000, -187, 5197, -1000, -1000, -1000, -1000, - 139, -1000, 85, 665, 104, 6964, 1360, -32, -1000, -1000, - -1000, 668, -1000, 668, 668, 668, 668, 11, 11, 11, - 11, -1000, -1000, -1000, -1000, -1000, 737, 727, -1000, 668, - 668, 668, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 946, 945, 662, -1000, 9394, + -1000, -1000, 8840, 209, 621, 619, 604, 8840, 8840, 8840, + 892, 782, 8840, -1000, -1000, 967, 8840, 8840, -1000, -1000, + 965, 966, -1000, -1000, -1000, -1000, -1000, 965, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 6204, -1000, + -1000, 157, -1000, -1000, -1000, -1000, 995, 170, 440, -1000, + 6204, 1817, 735, 735, -1000, -1000, 131, -1000, -1000, 1931, + 1931, 1931, 1931, 1931, 1931, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 735, 147, + -1000, 5942, 735, 735, 735, 735, 735, 735, 6204, 735, + 735, 735, 735, 735, 735, 735, 735, 735, 735, 735, + 735, 735, -1000, -1000, 738, -1000, 370, 939, 566, 825, + 7259, 804, -1000, -1000, 727, 8840, -1000, 8643, 4630, 963, + 2593, -1000, 737, 713, -177, -182, -1000, -187, 5156, -1000, + -1000, -1000, -1000, 144, -1000, 735, 90, 4911, 118, 764, + -34, -1000, -1000, -1000, 746, -1000, 746, 746, 746, 746, + -5, -5, -5, -5, -1000, -1000, -1000, -1000, -1000, 773, + 772, -1000, 746, 746, 746, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 718, 718, 718, 674, 674, 843, 856, 746, 742, 741, - -1000, 136, 641, -1000, -1000, 9337, -1000, 934, -93, -1000, - -1000, 268, 9337, 9337, -1000, -1000, -1000, -1000, 610, 298, - -1000, 9337, -1000, -1000, -1000, 800, 6245, 6245, 395, 6245, - 6245, 171, 6504, 309, 263, 6504, 6504, 6504, 6504, 6504, - 6504, 6504, 6504, 6504, 6504, 6504, 6504, 6504, 6504, 6504, - 440, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 605, - -1000, 726, 461, 461, 130, 130, 130, 130, 130, 1593, - 1938, 4644, 525, 5983, 5459, 5459, 6245, 6245, 5459, 902, - 267, 298, 8943, -1000, 525, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 5459, 5459, 5459, 5459, 6245, -1000, -1000, -1000, - 854, -1000, 902, 953, -1000, 824, 821, 5459, -1000, 740, - 9140, 665, -1000, 7559, -1000, 713, -1000, 251, -1000, 124, - -1000, -1000, -1000, -1000, -1000, 958, 6245, -1000, 4062, -1000, - -180, -1000, -176, -191, -1000, -1000, -1000, -1000, -1000, 298, - -1000, 589, 665, 665, 9534, -1000, 104, -1000, -1000, -1000, + -1000, -1000, -1000, 771, 771, 771, 750, 750, 885, 867, + 781, 780, 779, -1000, 608, 710, -1000, -1000, 8840, -1000, + 939, -95, -1000, -1000, 263, 8840, 8840, -1000, -1000, -1000, + -1000, 636, 297, -1000, 8840, -1000, -1000, -1000, 841, 6204, + 6204, 382, 6204, 6204, 174, 1931, 323, 303, 1931, 1931, + 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, + 1931, 1931, 1931, 466, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 594, -1000, 769, 565, 565, 140, 140, 140, + 140, 140, 1574, 4894, 4339, 566, 5942, 5418, 5418, 6204, + 6204, 5418, 896, 220, 297, 8446, -1000, 566, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 5418, 5418, 5418, 5418, 6204, + -1000, -1000, -1000, 880, -1000, 896, 938, -1000, 851, 848, + 5418, -1000, 776, 8643, 735, -1000, 7062, -1000, 765, -1000, + 196, -1000, 138, -1000, -1000, -1000, -1000, -1000, 951, 6204, + -1000, 3757, -1000, -179, -1000, -175, -191, -1000, -1000, -1000, + -1000, -1000, 297, -1000, 582, 9037, 735, 735, -1000, 4911, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 185, 185, 56, -1000, -1000, 185, 185, - 185, 185, 185, -59, -62, 185, 185, 185, 185, 185, - 185, 185, 185, 185, 185, 185, 185, 185, -1000, -1000, - -1000, 566, 208, 167, -1000, -1000, -1000, -1000, 913, -1000, - 1360, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 273, 84, -1000, 910, -1000, 909, 514, - 1004, 401, 149, 126, -44, -1000, -1000, 455, 11, 11, - -1000, -1000, -1000, 837, -1000, -1000, -1000, 512, 512, -1000, - -1000, -1000, -1000, 452, -1000, -1000, -1000, 451, -1000, -1000, - 843, -1000, 54, -1000, 9337, 9337, 9337, -1000, 164, 206, - 69, 44, 42, 41, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 9337, -1000, -1000, 495, -1000, -1000, -1000, 493, - 6245, -1000, 268, -1000, 6245, -1000, -1000, 814, 171, 201, - -1000, -1000, 315, -1000, -1000, 298, 298, 1489, -1000, -1000, - -1000, -1000, 309, 6504, 6504, 6504, 732, 1489, 812, 337, - 1607, 130, 300, 300, 141, 141, 141, 141, 141, 466, - 466, -1000, -1000, -1000, 525, -1000, -1000, -1000, 525, 5459, - 639, -1000, -1000, 6767, 116, 665, 114, -1000, -1000, 525, - 576, 576, 197, 381, 576, 5459, 266, -1000, 6245, 525, - -1000, 576, 525, 576, 576, -1000, -1000, 9337, -1000, -1000, - -1000, -1000, 719, -1000, 845, 633, 635, -1000, -1000, 5721, - 525, 597, 112, 958, 9140, 6245, 4644, 934, 298, -1000, - -1000, -1000, -181, -197, -1000, -1000, 9534, 9534, 525, -1000, - 491, -1000, 401, 185, 185, -1000, 834, 450, 438, 433, - 490, 488, 185, 185, 432, 487, 587, 406, 405, 388, - 479, 484, 497, 478, 472, 471, 9731, 48, -1000, 566, - -1000, 905, 208, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -110, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 628, -1000, -1000, - 272, 593, -1000, 585, 637, 583, -1000, 185, 185, 665, - 665, 665, -1000, 9337, -1000, -1000, -1000, 579, 7, 711, - 577, 9534, -1000, -1000, -1000, -1000, 298, -1000, 298, -1000, - -1000, -1000, -1000, -1000, -1000, 732, 1489, 795, -1000, 6504, - 6504, -1000, -1000, 576, 5459, -1000, -1000, 8546, -1000, -1000, - 3771, 5459, 4353, -1000, -1000, -1000, 469, 440, 469, -130, - 684, 198, -1000, 6245, 289, -1000, -1000, -1000, -1000, -1000, - -1000, 971, 8349, 895, -1000, 665, -1000, -1000, 736, 8943, - 8943, 934, -1000, 298, -1000, -1000, -1000, -1000, -1000, 525, - 525, 3189, -1000, -1000, 401, 401, -1000, -1000, -1000, -1000, - -1000, -1000, 483, 481, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 193, 193, 77, 193, 193, + 193, 193, 193, -59, -60, 193, 193, 193, 193, 193, + 193, 193, 193, 193, 193, 193, 193, 193, -1000, -1000, + -1000, 550, 176, 146, -1000, -1000, -1000, -1000, 914, -1000, + 764, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 266, 119, -1000, 910, -1000, 905, 507, + 993, 446, 137, 113, -42, -1000, -1000, 464, -5, -5, + -1000, -1000, -1000, 862, -1000, -1000, -1000, 506, 506, -1000, + -1000, -1000, -1000, 458, -1000, -1000, -1000, 448, -1000, -1000, + 885, -1000, 46, -1000, 8840, 8840, 8840, -1000, 161, 194, + 47, 35, 34, 32, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 8840, -1000, -1000, 495, -1000, -1000, -1000, 494, + 6204, -1000, 263, -1000, 6204, -1000, -1000, 833, 174, 288, + -1000, -1000, 338, -1000, -1000, 297, 297, 1073, -1000, -1000, + -1000, -1000, 323, 1931, 1931, 1931, 808, 1073, 1499, 229, + 332, 140, 497, 497, 152, 152, 152, 152, 152, 610, + 610, -1000, -1000, -1000, 566, -1000, -1000, -1000, 566, 5418, + 708, -1000, -1000, 6467, 136, 735, 135, -1000, -1000, 566, + 598, 598, 141, 543, 598, 5418, 278, -1000, 6204, 566, + -1000, 598, 566, 598, 598, -1000, -1000, 8840, -1000, -1000, + -1000, -1000, 718, -1000, 887, 680, 689, -1000, -1000, 5680, + 566, 633, 121, 951, 8643, 6204, 4339, 939, 297, -1000, + -1000, -1000, -192, -188, -1000, -1000, 566, 9037, 9037, -1000, + 493, -1000, 446, 193, 193, -1000, 857, 447, 437, 408, + 485, 484, 193, 193, 399, 483, 573, 393, 387, 386, + 442, 482, 365, 434, 409, 407, 9234, 38, -1000, 550, + -1000, 904, 176, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -109, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 658, -1000, -1000, + 281, 629, -1000, 617, 706, 600, -1000, 193, 193, 735, + 735, 735, -1000, 8840, -1000, -1000, -1000, 559, -6, 770, + 555, 9037, -1000, -1000, -1000, -1000, 297, -1000, 297, -1000, + -1000, -1000, -1000, -1000, -1000, 808, 1073, 923, -1000, 1931, + 1931, -1000, -1000, 598, 5418, -1000, -1000, 8049, -1000, -1000, + 3466, 5418, 4048, -1000, -1000, -1000, 513, 466, 513, -129, + 715, 205, -1000, 6204, 438, -1000, -1000, -1000, -1000, -1000, + -1000, 963, 7852, 900, -1000, 735, -1000, -1000, 734, 8446, + 8446, 939, -1000, 297, -1000, -1000, -1000, -1000, -1000, -1000, + 566, 566, -1000, -1000, 446, 446, -1000, -1000, -1000, -1000, + -1000, -1000, 479, 475, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 706, -1000, 961, 704, 48, - 566, -1000, 686, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 475, -1000, 387, -1000, 386, 547, 261, 8943, 8943, 8943, - -1000, -1000, -1000, 831, -1000, -1000, -1000, -1000, 6504, 1489, - 1489, -1000, -1000, -1000, -1000, 109, 525, -1000, 525, 668, - 668, -1000, 668, 674, -1000, 668, 24, 668, 16, 525, - 525, 665, -127, -1000, 298, 6245, 968, 636, 833, -1000, - -1000, -1000, 893, 7163, 7360, 1003, -1000, 665, -1000, 726, - 108, -1000, -1000, -150, 665, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 8943, -1000, -1000, -1000, -1000, 8943, 672, 48, - 353, -1000, 624, 586, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 574, -1000, 668, 574, 574, 564, 1489, 3480, -1000, - -1000, -1000, 107, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 6504, 525, 474, 298, 966, 937, 8349, 8349, 8349, - 8349, -1000, 772, 768, -1000, 762, 758, 799, 9337, -1000, - 570, 7163, 152, -1000, 8152, -1000, -1000, 9140, 635, 525, - 8943, 3189, 336, -147, 555, 553, 8943, 667, -1000, 556, - -1000, -1000, -1000, 8943, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 324, -1000, -1000, -1000, 6245, 6245, 833, 733, 549, - -1000, -1000, -1000, -1000, 766, -1000, 765, -1000, -1000, -1000, - -1000, -1000, 77, 76, 74, -1000, 630, -1000, -1000, -1000, - -1000, 550, -1000, 529, -1000, -1000, 535, 8943, -1000, 165, - -1000, 93, 344, 525, 67, -138, 298, 578, 6245, 6245, - -1000, -1000, 665, 665, 665, -147, 3189, 811, 89, 89, - -1000, 528, 892, -1000, -1000, -1000, 185, 467, 931, 892, - -1000, -1000, 924, 892, -1000, -1000, 813, -133, -142, 298, - 298, 8943, 8943, 8943, -1000, -1000, 144, -1000, 185, -1000, - 396, 922, 89, -1000, -1000, 185, 185, 335, -1000, -1000, - -1000, -1000, 518, -1000, 803, -1000, 524, -1000, 524, 524, - 665, 318, -1000, 517, 89, 547, 547, -1000, -1000, -136, - -1000, 8943, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -140, - -1000, -143, -1000, + -1000, -1000, -1000, -1000, -1000, 761, -1000, 921, 753, 38, + 550, -1000, 751, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 474, -1000, 362, -1000, 348, 554, 202, 8446, 8446, 8446, + -1000, -1000, -1000, 856, -1000, -1000, -1000, -1000, 1931, 1073, + 1073, -1000, -1000, -1000, -1000, 115, 566, -1000, 566, 746, + 746, -1000, 746, 750, -1000, 746, 15, 746, 14, 566, + 566, 735, -123, -1000, 297, 6204, 959, 705, 815, -1000, + -1000, -1000, 894, 6666, 6863, 977, -1000, 735, -1000, 769, + 112, -1000, -1000, 735, -150, -1000, -1000, -1000, -1000, 8446, + -1000, -1000, -1000, -1000, 8446, 747, 38, 405, -1000, 645, + 637, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 586, -1000, + 746, 586, 586, 544, 1073, 3175, -1000, -1000, -1000, 96, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1931, 566, + 473, 297, 955, 943, 7852, 7852, 7852, 7852, -1000, 811, + 810, -1000, 799, 796, 831, 8840, -1000, 581, 6666, 125, + -1000, 7655, -1000, -1000, 8643, 689, 566, 8446, -147, -1000, + 324, 579, 563, 8446, 745, -1000, 587, -1000, -1000, -1000, + 8446, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 318, -1000, + -1000, -1000, 6204, 6204, 815, 775, 733, -1000, -1000, -1000, + -1000, 800, -1000, 797, -1000, -1000, -1000, -1000, -1000, 74, + 73, 71, -1000, 682, -1000, -1000, 537, -1000, 534, -1000, + -1000, -1000, 533, 8446, -1000, 159, -1000, 94, 374, 566, + 70, -139, 297, 672, 6204, 6204, -1000, -1000, 735, 735, + 735, -147, -1000, 846, 102, 102, -1000, 530, 881, -1000, + -1000, -1000, 193, 472, 934, 881, -1000, -1000, 920, 881, + -1000, -1000, 832, -132, -142, 297, 297, 8446, 8446, 8446, + -1000, 169, -1000, 193, -1000, 441, 918, 102, -1000, -1000, + 193, 193, 321, -1000, -1000, -1000, -1000, 526, -1000, 812, + -1000, 515, -1000, 515, 515, 735, 286, -1000, 511, 102, + 554, 554, -1000, -1000, -134, -1000, 8446, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -140, -1000, -143, -1000, } var yyPgo = [...]int{ - 0, 21, 17, 1340, 1339, 1338, 25, 1337, 1335, 1333, - 1331, 1325, 1322, 1317, 42, 811, 1315, 1313, 1311, 1310, - 1309, 1308, 1303, 1302, 1284, 1283, 1280, 1278, 1277, 1273, - 1266, 157, 1264, 1262, 1261, 1259, 1257, 72, 1255, 82, - 1250, 1248, 1246, 32, 149, 33, 34, 208, 1245, 27, - 20, 18, 1241, 1240, 15, 1239, 1306, 1238, 84, 1237, - 1235, 47, 1234, 1233, 1229, 3, 31, 1226, 56, 1225, - 1224, 73, 420, 1220, 1215, 1214, 1213, 1212, 1211, 41, - 9, 19, 13, 26, 1210, 59, 35, 1209, 49, 1208, - 1207, 1203, 1202, 40, 1201, 70, 1200, 48, 69, 1198, - 45, 12, 37, 1197, 1196, 71, 77, 75, 67, 1194, - 63, 1193, 1177, 155, 1169, 1165, 1163, 801, 1156, 359, - 465, 1155, 52, 1154, 61, 0, 58, 4, 29, 1153, - 78, 1018, 39, 16, 1152, 1151, 241, 2, 30, 76, - 28, 1149, 1148, 1147, 1146, 1145, 1141, 1140, 276, 1137, - 1136, 1135, 1133, 1131, 1127, 1125, 1124, 1122, 1120, 1117, - 1116, 1114, 1113, 1110, 1108, 1105, 1104, 1095, 1094, 1093, - 1091, 1086, 1084, 1083, 1076, 1075, 1074, 1072, 14, 1071, - 1070, 1069, 23, 54, 24, 55, 1067, 1065, 1063, 65, - 22, 1059, 1054, 1052, 1051, 60, 36, 1050, 74, 46, - 44, 1047, 1046, 1044, 79, 10, 8, 1042, 11, 1041, - 1040, 5, 7, 1038, 1037, 1036, 1035, 1034, 1031, 1030, - 1, 1028, 1027, 62, 1026, 1025, 57, 6, 1024, 1023, - 1021, 50, 53, 1020, 125, + 0, 16, 21, 1331, 1330, 1328, 32, 1327, 1326, 1325, + 1323, 1322, 1319, 1314, 42, 845, 1313, 1311, 1310, 1304, + 1303, 1300, 1296, 1291, 1287, 1281, 1280, 1278, 1277, 1275, + 1273, 198, 1271, 1259, 1257, 1256, 1255, 65, 1253, 78, + 1251, 1249, 1247, 29, 73, 40, 48, 210, 1244, 26, + 19, 17, 1241, 1240, 15, 1239, 1339, 1238, 85, 1237, + 1236, 54, 1235, 1234, 1232, 6, 25, 1231, 60, 1230, + 1227, 72, 407, 1223, 1222, 1221, 1218, 1216, 1215, 53, + 10, 18, 1, 24, 1213, 41, 12, 1208, 49, 1203, + 1202, 1201, 1200, 27, 1199, 74, 1198, 52, 69, 1197, + 47, 14, 45, 1196, 1195, 71, 84, 76, 67, 1194, + 63, 1193, 1192, 149, 1191, 1190, 1189, 828, 1172, 373, + 432, 1166, 55, 1165, 39, 0, 4, 23, 34, 1157, + 82, 1006, 44, 13, 1155, 1150, 1412, 33, 77, 30, + 1148, 1147, 1146, 1145, 1143, 1142, 1138, 31, 1137, 1135, + 1133, 1127, 1125, 1122, 1120, 1119, 1118, 1117, 1116, 1115, + 1113, 1112, 1111, 1110, 1108, 1107, 1106, 1105, 1104, 1102, + 1101, 1098, 1096, 1094, 1083, 1079, 20, 1078, 1075, 1072, + 36, 56, 28, 57, 1071, 1069, 1068, 79, 22, 1067, + 1064, 1063, 1058, 58, 37, 1056, 75, 35, 46, 1054, + 1051, 1050, 62, 11, 8, 1049, 9, 1047, 1046, 3, + 7, 1043, 1042, 1040, 1039, 1023, 1019, 1018, 2, 1017, + 1016, 61, 1015, 1013, 59, 5, 1012, 1011, 1010, 1009, + 50, 249, 1007, 124, } var yyR1 = [...]int{ - 0, 229, 230, 230, 13, 13, 13, 13, 13, 13, + 0, 228, 229, 229, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 15, 16, 16, 17, - 17, 18, 18, 34, 34, 19, 20, 21, 21, 228, - 228, 227, 153, 153, 22, 22, 22, 22, 22, 22, - 22, 22, 219, 219, 220, 220, 214, 212, 212, 209, - 209, 216, 216, 207, 207, 213, 213, 210, 210, 208, - 208, 215, 215, 224, 224, 225, 225, 226, 226, 185, - 185, 184, 184, 183, 183, 186, 186, 186, 25, 200, - 202, 202, 203, 203, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, - 204, 204, 204, 204, 204, 204, 204, 204, 204, 156, - 158, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 171, 172, 173, 173, 173, 173, 173, - 173, 173, 173, 173, 173, 173, 173, 173, 173, 174, - 174, 175, 175, 176, 176, 177, 177, 159, 182, 182, - 157, 152, 154, 155, 155, 201, 201, 201, 196, 130, - 130, 141, 141, 141, 141, 221, 221, 222, 222, 223, - 223, 223, 223, 223, 223, 223, 223, 223, 223, 144, - 144, 142, 142, 142, 142, 142, 142, 142, 142, 142, - 143, 143, 143, 143, 143, 145, 145, 145, 145, 145, - 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, - 146, 146, 146, 146, 146, 147, 147, 147, 147, 147, - 147, 147, 147, 195, 195, 148, 148, 189, 189, 190, - 190, 190, 187, 187, 188, 188, 191, 191, 149, 149, - 149, 149, 149, 149, 36, 35, 35, 35, 115, 115, - 115, 192, 178, 178, 178, 151, 179, 179, 180, 180, - 180, 181, 181, 181, 193, 193, 194, 194, 150, 197, - 197, 197, 197, 6, 6, 217, 217, 217, 217, 211, - 211, 4, 4, 4, 1, 2, 2, 3, 3, 3, - 5, 5, 199, 199, 198, 198, 206, 206, 205, 23, + 17, 18, 18, 34, 34, 19, 20, 21, 21, 226, + 226, 225, 152, 152, 22, 22, 22, 22, 22, 227, + 227, 227, 227, 227, 227, 217, 217, 218, 218, 212, + 210, 210, 207, 207, 214, 214, 205, 205, 211, 211, + 208, 208, 206, 206, 213, 213, 222, 222, 223, 223, + 224, 224, 183, 183, 182, 182, 181, 181, 184, 184, + 184, 25, 198, 200, 200, 201, 201, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 154, 156, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 169, 170, 171, 171, 171, + 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 172, 172, 173, 173, 174, 174, 175, 175, 157, + 180, 180, 155, 151, 153, 199, 199, 199, 194, 130, + 130, 140, 140, 140, 140, 219, 219, 220, 220, 221, + 221, 221, 221, 221, 221, 221, 221, 221, 221, 143, + 143, 141, 141, 141, 141, 141, 141, 141, 141, 141, + 142, 142, 142, 142, 142, 144, 144, 144, 144, 144, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 146, 146, 146, 146, 146, + 146, 146, 146, 193, 193, 147, 147, 187, 187, 188, + 188, 188, 185, 185, 186, 186, 189, 189, 148, 148, + 148, 148, 148, 148, 36, 35, 35, 35, 115, 115, + 115, 190, 176, 176, 176, 150, 177, 177, 178, 178, + 178, 179, 179, 179, 191, 191, 192, 192, 149, 195, + 195, 195, 195, 6, 6, 215, 215, 215, 215, 209, + 209, 4, 4, 4, 1, 2, 2, 3, 3, 3, + 5, 5, 197, 197, 196, 196, 204, 204, 203, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 62, 62, 7, 26, 8, 9, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 42, 42, 58, 58, 59, 59, 60, 60, 61, 61, 61, 30, 28, 29, 29, 29, 29, - 233, 31, 32, 32, 33, 33, 33, 39, 39, 39, + 232, 31, 32, 32, 33, 33, 33, 39, 39, 39, 37, 37, 38, 38, 45, 45, 44, 44, 46, 46, 46, 46, 129, 129, 129, 128, 128, 48, 48, 49, 49, 50, 50, 51, 51, 51, 63, 52, 52, 52, @@ -2000,9 +1953,9 @@ var yyR1 = [...]int{ 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 76, 76, 76, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, - 75, 75, 234, 234, 77, 77, 77, 77, 40, 40, - 40, 40, 40, 138, 138, 140, 140, 140, 140, 140, - 140, 140, 140, 140, 140, 140, 140, 140, 89, 89, + 75, 75, 233, 233, 77, 77, 77, 77, 40, 40, + 40, 40, 40, 137, 137, 139, 139, 139, 139, 139, + 139, 139, 139, 139, 139, 139, 139, 139, 89, 89, 41, 41, 87, 87, 88, 90, 90, 86, 86, 86, 71, 71, 71, 71, 71, 71, 71, 73, 73, 73, 91, 91, 92, 92, 93, 93, 94, 94, 95, 96, @@ -2011,10 +1964,10 @@ var yyR1 = [...]int{ 100, 81, 81, 83, 83, 82, 84, 101, 101, 102, 103, 103, 106, 106, 105, 105, 105, 105, 105, 114, 114, 113, 113, 113, 104, 104, 107, 107, 111, 111, - 110, 112, 112, 112, 112, 109, 109, 108, 108, 139, - 139, 139, 116, 116, 119, 119, 120, 120, 117, 117, + 110, 112, 112, 112, 112, 109, 109, 108, 108, 138, + 138, 138, 116, 116, 119, 119, 120, 120, 117, 117, 121, 121, 121, 121, 121, 121, 121, 121, 121, 121, - 122, 122, 122, 123, 123, 218, 218, 126, 126, 127, + 122, 122, 122, 123, 123, 216, 216, 126, 126, 127, 127, 131, 131, 132, 132, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, @@ -2034,8 +1987,7 @@ var yyR1 = [...]int{ 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, - 125, 125, 125, 125, 125, 125, 231, 232, 136, 137, - 137, 137, + 125, 125, 125, 125, 125, 125, 230, 231, 136, } var yyR2 = [...]int{ @@ -2043,19 +1995,19 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 6, 7, 10, 1, 3, 1, 3, 6, 7, 1, 1, 8, 7, 3, 3, 1, - 3, 5, 0, 2, 2, 10, 12, 8, 5, 11, - 11, 11, 1, 1, 1, 1, 2, 3, 2, 0, - 2, 1, 1, 0, 2, 1, 3, 0, 2, 0, - 2, 3, 3, 0, 1, 1, 2, 4, 4, 0, - 1, 0, 1, 1, 2, 1, 1, 1, 4, 4, - 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 3, 5, 0, 2, 3, 5, 11, 11, 11, 0, + 1, 1, 5, 9, 7, 1, 1, 1, 1, 2, + 3, 2, 0, 2, 1, 1, 0, 2, 1, 3, + 0, 2, 0, 2, 3, 3, 0, 1, 1, 2, + 4, 4, 0, 1, 0, 1, 1, 2, 1, 1, + 1, 4, 4, 0, 1, 1, 2, 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, 3, - 3, 4, 3, 3, 4, 4, 3, 3, 3, 3, + 1, 3, 3, 4, 3, 3, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, - 3, 3, 4, 1, 1, 1, 3, 3, 3, 1, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 1, 1, 3, 3, 4, 1, 3, 3, 3, 1, 1, 3, 1, 1, 1, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -2126,18 +2078,17 @@ var yyR2 = [...]int{ 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, 0, 0, - 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 0, } var yyChk = [...]int{ - -1000, -229, -13, -14, -18, -19, -20, -21, -22, -23, + -1000, -228, -13, -14, -18, -19, -20, -21, -22, -23, -24, -7, -26, -27, -30, -28, -8, -9, -10, -11, -12, -29, -15, -16, 6, -34, 8, 9, 40, -25, 121, 122, 123, 144, 125, 137, 43, 60, 262, 139, 269, 272, 273, 276, 275, 290, 36, 138, 142, 143, - -231, 7, 246, 63, -230, 296, -93, 14, -33, 5, - -31, -233, -31, -31, -31, -31, -200, 63, 238, -218, + -230, 7, 246, 63, -229, 296, -93, 14, -33, 5, + -31, -232, -31, -31, -31, -31, -198, 63, 238, -216, 22, 27, 128, 29, -117, 132, 128, 129, 238, 128, 128, 232, 121, 227, 264, -59, 266, 267, 234, 128, 268, 230, 265, 229, 66, 42, 128, -131, 66, -125, @@ -2150,8 +2101,8 @@ var yyChk = [...]int{ 144, 258, 130, 161, 290, 291, 293, 292, 294, -136, -136, 69, 256, -136, 274, -136, -136, 291, 293, 292, 294, 295, -136, -136, -136, -136, -14, -97, 16, 15, - -17, -15, -231, 6, 31, 32, -39, 50, 51, -32, - -117, -56, -131, 10, -103, -104, -106, 274, -139, -105, + -17, -15, -230, 6, 31, 32, -39, 50, 51, -32, + -117, -56, -131, 10, -103, -104, -106, 274, -138, -105, 278, 279, 277, -127, -114, 280, -126, -124, 168, 165, 66, -125, 81, 33, 35, 188, 84, 151, 116, 173, 15, 85, 162, 115, 235, 200, 247, 121, 58, 239, @@ -2165,117 +2116,116 @@ var yyChk = [...]int{ 6, 250, 40, 137, 147, 53, 128, 228, 174, 146, 170, 87, 131, 77, 268, 5, 29, 191, 8, 60, 134, 243, 244, 245, 44, 166, 163, 265, 255, 86, - 11, 192, 259, 263, -201, -196, -130, 66, -125, -120, - 133, 129, 129, 129, -120, 128, -119, 133, 66, -119, - -56, -56, 231, 128, 238, -136, -136, 228, -60, 235, - 236, -136, -136, -136, 234, -136, -136, -136, -136, -136, - -56, -136, 69, -136, -82, -231, -82, -136, -56, -136, - -232, 65, -98, 18, 41, -47, -67, 82, -72, 39, - 34, -71, -68, -86, -84, -85, 116, 105, 106, 113, - 83, 117, -76, -74, -75, -77, 68, 67, 69, 70, - 71, 72, 76, 77, 78, -126, -131, -82, -231, 54, - 55, 247, 248, 251, 249, 85, 44, 237, 245, 244, - 243, 241, 242, 239, 240, 133, 238, 111, 246, 66, - -125, -94, -95, -47, -93, -14, -31, 46, -37, 32, - 74, -57, 37, -56, 40, 118, -56, 64, -107, -110, - -108, 281, 283, -105, 274, 90, -113, -126, 68, 39, - -113, 40, 15, 15, 65, 64, -141, -144, -146, -145, - -147, -142, -143, 162, 163, 116, 166, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 40, 140, 158, - 159, 160, 161, 179, 180, 181, 182, 183, 184, 185, - 186, 145, 164, 253, 146, 147, 148, 149, 150, 151, - 153, 154, 155, 156, 157, -131, 82, 66, 66, 66, - -56, -56, -62, -56, 34, 62, -131, -42, 10, -56, - -56, -58, 10, 10, -58, -136, -136, -136, -80, -47, - -136, -122, 131, 33, 8, 100, 81, 80, 97, 64, - 17, -47, -69, 100, 82, 98, 99, 84, 102, 101, - 112, 105, 106, 107, 108, 109, 110, 111, 103, 104, - 115, 90, 91, 92, 93, 94, 95, 96, -118, -231, - -85, -231, 119, 120, -72, -72, -72, -72, -72, -72, - -231, 118, -14, -231, -231, -231, -231, -231, -231, -231, - -89, -47, -231, -234, -231, -234, -234, -234, -234, -234, - -234, -234, -231, -231, -231, -231, 64, -96, 35, 36, - -97, -232, -39, -73, -126, 69, 72, -38, 53, -70, - 40, 44, -14, -231, -56, -101, -102, -86, -126, -131, - -132, -131, -124, 165, 168, -66, 11, -106, -139, -109, - 64, -111, 64, 282, 284, 285, -107, 62, 79, -47, - -179, 115, 23, 261, -231, -202, -203, -204, -157, -152, - -154, -155, -156, -158, -159, -160, -161, -162, -163, -164, - -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, - -175, -176, -177, 75, 270, -185, 277, 271, 188, 199, + 11, 192, -227, 277, 271, 263, 259, -199, -194, -130, + 66, -125, -120, 133, 129, 129, 129, -120, 128, -119, + 133, 66, -119, -56, -56, 231, 128, 238, -136, -136, + 228, -60, 235, 236, -136, -136, -136, 234, -136, -136, + -136, -136, -136, -56, -136, 69, -136, -82, -230, -82, + -136, -56, -136, -231, 65, -98, 18, 41, -47, -67, + 82, -72, 39, 34, -71, -68, -86, -84, -85, 116, + 105, 106, 113, 83, 117, -76, -74, -75, -77, 68, + 67, 69, 70, 71, 72, 76, 77, 78, -126, -131, + -82, -230, 54, 55, 247, 248, 251, 249, 85, 44, + 237, 245, 244, 243, 241, 242, 239, 240, 133, 238, + 111, 246, 66, -125, -94, -95, -47, -93, -14, -31, + 46, -37, 32, 74, -57, 37, -56, 40, 118, -56, + 64, -107, -110, -108, 281, 283, -105, 274, 90, -113, + -126, 68, 39, -113, 40, 15, 15, 65, 64, -140, + -143, -145, -144, -146, -141, -142, 162, 163, 116, 166, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 40, 140, 158, 159, 160, 161, 179, 180, 181, 182, + 183, 184, 185, 186, 145, 164, 253, 146, 147, 148, + 149, 150, 151, 153, 154, 155, 156, 157, -131, 82, + 66, 66, 66, -56, -56, -62, -56, 34, 62, -131, + -42, 10, -56, -56, -58, 10, 10, -58, -136, -136, + -136, -80, -47, -136, -122, 131, 33, 8, 100, 81, + 80, 97, 64, 17, -47, -69, 100, 82, 98, 99, + 84, 102, 101, 112, 105, 106, 107, 108, 109, 110, + 111, 103, 104, 115, 90, 91, 92, 93, 94, 95, + 96, -118, -230, -85, -230, 119, 120, -72, -72, -72, + -72, -72, -72, -230, 118, -14, -230, -230, -230, -230, + -230, -230, -230, -89, -47, -230, -233, -230, -233, -233, + -233, -233, -233, -233, -233, -230, -230, -230, -230, 64, + -96, 35, 36, -97, -231, -39, -73, -126, 69, 72, + -38, 53, -70, 40, 44, -14, -230, -56, -101, -102, + -86, -126, -131, -132, -131, -124, 165, 168, -66, 11, + -106, -138, -109, 64, -111, 64, 282, 284, 285, -107, + 62, 79, -47, -177, 115, -230, 261, 23, -200, -201, + -202, -155, -151, -153, -154, -156, -157, -158, -159, -160, + -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, + -171, -172, -173, -174, -175, 75, 270, -183, 188, 199, 43, 200, 201, 202, 129, 204, 205, 206, 24, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 39, -196, - -197, -198, -5, -4, 129, 30, 27, 22, 21, -221, - -222, -223, -191, -149, -192, -193, -194, -150, -36, -151, - -180, -181, 76, 82, 39, 188, 135, 30, 29, 75, - 62, 115, 198, 195, -187, 191, -148, 63, -148, -148, - -148, -148, -178, 165, -178, -178, -178, 63, 63, -148, - -148, -148, -189, 63, -189, -189, -190, 63, -190, -224, - -225, -226, -185, 34, 62, 62, 62, -121, 124, 270, + 208, 209, 210, 211, 212, 213, 214, 215, 39, -194, + -195, -196, -5, -4, 129, 30, 27, 22, 21, -219, + -220, -221, -189, -148, -190, -191, -192, -149, -36, -150, + -178, -179, 76, 82, 39, 188, 135, 30, 29, 75, + 62, 115, 198, 195, -185, 191, -147, 63, -147, -147, + -147, -147, -176, 165, -176, -176, -176, 63, 63, -147, + -147, -147, -187, 63, -187, -187, -188, 63, -188, -222, + -223, -224, -183, 34, 62, 62, 62, -121, 124, 270, 247, 126, 123, 127, 122, 188, 165, 75, 39, 14, 258, 66, 64, -56, -97, 233, -136, -136, -61, 98, - 11, -56, -56, -136, 64, -232, -56, 48, -47, -47, + 11, -56, -56, -136, 64, -231, -56, 48, -47, -47, -78, 76, 82, 77, 78, -47, -47, -72, -79, -82, -85, 73, 100, 98, 99, 84, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, -72, - -72, -138, 66, 68, 66, -71, -71, -126, -45, 32, - -44, -46, 107, -47, -131, -127, -132, -124, -232, -14, + -72, -137, 66, 68, 66, -71, -71, -126, -45, 32, + -44, -46, 107, -47, -131, -127, -132, -124, -231, -14, -44, -44, -47, -47, -44, -37, -87, -88, 86, -126, - -232, -44, -45, -44, -44, -95, -98, -116, 18, 10, - 44, 44, -44, -100, 62, -101, -81, -83, -82, -231, + -231, -44, -45, -44, -44, -95, -98, -116, 18, 10, + 44, 44, -44, -100, 62, -101, -81, -83, -82, -230, -14, -99, -126, -66, 64, 90, 118, -93, -47, -108, - -110, -112, 286, 283, 289, 66, -231, -231, -130, -204, - -184, 90, -184, 115, -183, 168, 165, -184, -184, -184, - -184, -184, 203, 203, -184, -184, -184, -184, -184, -184, - -184, -184, -184, -184, -184, -184, -184, -6, 66, -199, - -198, 135, 29, 28, -223, 76, 68, 69, 70, 76, - 237, -68, 30, 30, 68, 8, -182, 66, 68, 193, - 194, 39, 39, 196, 197, -188, 192, 69, -178, -178, - 40, -195, 68, -195, 69, 69, -226, 115, -183, -56, + -110, -112, 286, 283, 289, 66, -130, -230, -230, -202, + -182, 90, -182, 115, -181, 168, 165, -182, -182, -182, + -182, -182, 203, 203, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -182, -182, -6, 66, -197, + -196, 135, 29, 28, -221, 76, 68, 69, 70, 76, + 237, -68, 30, 30, 68, 8, -180, 66, 68, 193, + 194, 39, 39, 196, 197, -186, 192, 69, -176, -176, + 40, -193, 68, -193, 69, 69, -224, 115, -181, -56, -56, -56, -136, -122, -123, 129, 30, 90, 131, 136, 136, 136, -56, -136, 68, 68, -47, -61, -47, -136, 49, 76, 77, 78, -79, -72, -72, -72, -43, 141, - 81, -232, -232, -44, 64, -129, -128, 33, -126, 68, - 118, -231, 118, -232, -232, -232, 64, 134, 33, -232, - -44, -90, -88, 88, -47, -232, -232, -232, -232, -232, - -56, -48, 10, 38, -100, 64, -232, -232, -232, 64, - 118, -93, -102, -47, -127, -97, 283, 287, 288, -130, - -130, -232, 68, -182, -184, -184, 40, 69, 69, 69, - 68, 68, -184, -184, 69, 68, 66, 69, 69, 69, + 81, -231, -231, -44, 64, -129, -128, 33, -126, 68, + 118, -230, 118, -231, -231, -231, 64, 134, 33, -231, + -44, -90, -88, 88, -47, -231, -231, -231, -231, -231, + -56, -48, 10, 38, -100, 64, -231, -231, -231, 64, + 118, -93, -102, -47, -127, -97, 283, 287, 288, -231, + -130, -130, 68, -180, -182, -182, 40, 69, 69, 69, + 68, 68, -182, -182, 69, 68, 66, 69, 69, 69, 69, 39, 68, 39, 194, 193, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 69, 39, 69, 39, 69, 39, 66, -125, -2, -1, 134, -6, 30, - -199, -35, -115, 237, 241, 242, 65, 66, 116, 65, - 64, 65, 64, 65, 64, -184, -184, -231, -231, -231, - -56, -136, 66, 165, -200, 66, -196, -43, 81, -72, - -72, -232, -46, -128, 107, -132, -45, -127, -140, 116, - 162, 140, 160, 156, 177, 167, 190, 158, 191, -138, - -140, 252, -93, 89, -47, 87, -66, -49, -50, -51, - -52, -63, -85, -231, -56, 30, -83, 44, -14, -231, - -126, -126, -97, -232, -232, -137, -231, -127, -182, -182, - 68, 68, 63, -3, 23, 20, 26, 63, -2, -6, - 63, 68, 69, 69, -220, 66, 39, -186, 66, 116, - 39, -206, -205, -126, -206, -206, 40, -72, 118, -232, - -232, -148, -148, -148, -190, -148, 150, -148, 150, -232, - -232, -231, -41, 250, -47, -91, 12, 64, -53, -54, - -55, 52, 56, 58, 53, 54, 55, 59, -135, 33, - -49, -231, -134, -133, 33, -131, 68, 8, -81, -14, - 118, -153, 260, -231, -206, -206, 63, -2, 65, 69, - 65, 65, -232, 64, -148, -232, -232, 66, 107, -178, - 66, -72, -232, 68, -92, 13, 15, -50, -51, -50, - -51, 52, 52, 52, 57, 52, 57, 52, -54, -131, - -232, -64, 60, 132, 61, -133, -101, -232, -126, -137, - 69, -228, -227, 259, 65, 65, -206, 63, 65, -209, - -205, -207, -210, -40, 100, 255, -47, -80, 62, 62, - 52, 52, 129, 129, 129, 64, -232, 66, -211, -211, - 65, -206, -208, -216, -212, -214, 24, 75, 134, -208, - -213, -212, 255, -208, -212, -232, 253, 59, 256, -47, - -47, -231, -231, -231, -227, -137, 44, -217, 24, -1, - 75, 255, -211, 65, -215, 41, 19, -184, 68, -219, - 23, 20, 25, 49, 254, 257, -65, -126, -65, -65, - 100, -184, 68, 25, -211, -184, -184, 69, 66, 49, - -232, 64, -232, -232, -82, 69, 66, -220, -220, 255, - -126, 256, 257, + -197, -35, -115, 237, 241, 242, 65, 66, 116, 65, + 64, 65, 64, 65, 64, -182, -182, -230, -230, -230, + -56, -136, 66, 165, -198, 66, -194, -43, 81, -72, + -72, -231, -46, -128, 107, -132, -45, -127, -139, 116, + 162, 140, 160, 156, 177, 167, 190, 158, 191, -137, + -139, 252, -93, 89, -47, 87, -66, -49, -50, -51, + -52, -63, -85, -230, -56, 30, -83, 44, -14, -230, + -126, -126, -97, -231, -231, -180, -180, 68, 68, 63, + -3, 23, 20, 26, 63, -2, -6, 63, 68, 69, + 69, -218, 66, 39, -184, 66, 116, 39, -204, -203, + -126, -204, -204, 40, -72, 118, -231, -231, -147, -147, + -147, -188, -147, 150, -147, 150, -231, -231, -230, -41, + 250, -47, -91, 12, 64, -53, -54, -55, 52, 56, + 58, 53, 54, 55, 59, -135, 33, -49, -230, -134, + -133, 33, -131, 68, 8, -81, -14, 118, -230, -152, + 260, -204, -204, 63, -2, 65, 69, 65, 65, -231, + 64, -147, -231, -231, 66, 107, -176, 66, -72, -231, + 68, -92, 13, 15, -50, -51, -50, -51, 52, 52, + 52, 57, 52, 57, 52, -54, -131, -231, -64, 60, + 132, 61, -133, -101, -231, -126, -226, -225, 259, 69, + 65, 65, -204, 63, 65, -207, -203, -205, -208, -40, + 100, 255, -47, -80, 62, 62, 52, 52, 129, 129, + 129, 64, -231, 66, -209, -209, 65, -204, -206, -214, + -210, -212, 24, 75, 134, -206, -211, -210, 255, -206, + -210, -231, 253, 59, 256, -47, -47, -230, -230, -230, + -225, 44, -215, 24, -1, 75, 255, -209, 65, -213, + 41, 19, -182, 68, -217, 23, 20, 25, 49, 254, + 257, -65, -126, -65, -65, 100, -182, 68, 25, -209, + -182, -182, 69, 66, 49, -231, 64, -231, -231, -82, + 69, 66, -218, -218, 255, -126, 256, 257, } var yyDef = [...]int{ @@ -2285,7 +2235,7 @@ var yyDef = [...]int{ 675, 658, 0, 0, 0, 357, 0, 0, 878, 878, 0, 878, 0, 878, 878, 0, 878, 878, 878, 878, 0, 33, 34, 876, 1, 3, 592, 0, 0, 374, - 377, 372, 658, 0, 0, 0, 44, 0, 656, 0, + 377, 372, 658, 0, 0, 0, 49, 0, 656, 0, 0, 0, 656, 676, 0, 659, 654, 0, 654, 0, 0, 0, 0, 878, 878, 0, 878, 878, 878, 0, 878, 878, 878, 878, 878, 358, 0, 365, 681, 682, @@ -2313,53 +2263,53 @@ var yyDef = [...]int{ 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, - 805, 806, 0, 0, 0, 165, 0, 169, 170, 0, + 805, 806, 44, 50, 51, 0, 0, 0, 165, 0, + 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 322, 323, 353, 0, 0, 340, 341, + 355, 0, 359, 360, 344, 345, 346, 355, 348, 349, + 350, 351, 352, 878, 326, 878, 329, 878, 0, 878, + 334, 670, 336, 28, 877, 23, 0, 0, 593, 440, + 0, 445, 447, 0, 482, 483, 484, 485, 486, 0, + 0, 0, 0, 0, 0, 508, 509, 510, 511, 570, + 571, 572, 573, 574, 575, 576, 449, 450, 567, 0, + 616, 0, 0, 0, 0, 0, 0, 0, 558, 0, + 532, 532, 532, 532, 532, 532, 532, 532, 0, 0, + 0, 0, -2, -2, 585, 586, 589, 592, 27, 377, + 0, 382, 381, 373, 0, 0, 429, 0, 0, 438, + 0, 634, 645, 638, 0, 0, 623, 0, 0, 627, + 631, 632, 633, 266, 630, 0, 0, -2, 291, 175, + 242, 172, 173, 174, 235, 190, 235, 235, 235, 235, + 262, 262, 262, 262, 218, 219, 220, 221, 222, 0, + 0, 205, 235, 235, 235, 209, 225, 226, 227, 228, + 229, 230, 231, 232, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 237, 237, 237, 239, 239, -2, 0, + 0, 0, 0, 91, 0, 317, 320, 655, 0, 319, + 592, 0, 878, 878, 361, 0, 0, 878, 364, 327, + 332, 0, 480, 333, 0, 671, 672, 597, 0, 0, + 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 323, 353, 0, 0, 340, 341, 355, 0, 359, - 360, 344, 345, 346, 355, 348, 349, 350, 351, 352, - 878, 326, 878, 329, 878, 0, 878, 334, 670, 336, - 28, 877, 23, 0, 0, 593, 440, 0, 445, 447, - 0, 482, 483, 484, 485, 486, 0, 0, 0, 0, - 0, 0, 508, 509, 510, 511, 570, 571, 572, 573, - 574, 575, 576, 449, 450, 567, 0, 616, 0, 0, - 0, 0, 0, 0, 0, 558, 0, 532, 532, 532, - 532, 532, 532, 532, 532, 0, 0, 0, 0, -2, - -2, 585, 586, 589, 592, 27, 377, 0, 382, 381, - 373, 0, 0, 429, 0, 0, 438, 0, 634, 645, - 638, 0, 0, 623, 0, 0, 627, 631, 632, 633, - 266, 630, 0, 0, -2, 291, 175, 242, 172, 173, - 174, 235, 190, 235, 235, 235, 235, 262, 262, 262, - 262, 218, 219, 220, 221, 222, 0, 0, 205, 235, - 235, 235, 209, 225, 226, 227, 228, 229, 230, 231, - 232, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 237, 237, 237, 239, 239, -2, 0, 0, 0, 0, - 88, 0, 317, 320, 655, 0, 319, 592, 0, 878, - 878, 361, 0, 0, 878, 364, 327, 332, 0, 480, - 333, 0, 671, 672, 597, 0, 0, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 467, 468, 469, 470, 471, 472, 473, 446, 0, - 460, 0, 0, 0, 502, 503, 504, 505, 506, 0, - 384, 0, 27, 0, 0, 0, 0, 0, 0, 380, - 0, 559, 0, 524, 0, 525, 526, 527, 528, 529, - 530, 531, 0, 384, 0, 0, 0, 588, 590, 591, - 596, 30, 380, 0, 577, 0, 0, 0, 383, 609, - 0, 0, -2, 0, 428, 438, 617, 0, 567, 0, - 431, 683, 684, 696, 697, 584, 0, 621, 0, 636, - 0, 637, 0, 0, 647, 648, 635, 624, 625, 626, - 628, 0, 0, 0, 0, 89, -2, 92, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 0, 0, 0, 0, 467, 468, 469, 470, 471, 472, + 473, 446, 0, 460, 0, 0, 0, 502, 503, 504, + 505, 506, 0, 384, 0, 27, 0, 0, 0, 0, + 0, 0, 380, 0, 559, 0, 524, 0, 525, 526, + 527, 528, 529, 530, 531, 0, 384, 0, 0, 0, + 588, 590, 591, 596, 30, 380, 0, 577, 0, 0, + 0, 383, 609, 0, 0, -2, 0, 428, 438, 617, + 0, 567, 0, 431, 683, 684, 696, 697, 584, 0, + 621, 0, 636, 0, 637, 0, 0, 647, 648, 635, + 624, 625, 626, 628, 0, 0, 0, 0, 92, -2, + 95, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 81, 81, 0, 163, 164, 81, 81, - 81, 81, 81, 0, 0, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, 80, 166, + 116, 117, 118, 119, 120, 84, 84, 0, 84, 84, + 84, 84, 84, 0, 0, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 83, 166, 167, 283, 302, 0, 304, 305, 300, -2, 292, 168, 176, 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 246, 0, 0, 261, 0, 275, 277, 0, 0, 0, 0, 0, 244, 243, 189, 0, 262, 262, 212, 213, 214, 0, 215, 216, 217, 0, 0, 206, - 207, 208, 200, 0, 201, 202, 203, 0, 204, 48, - -2, 75, 0, 657, 0, 0, 0, 878, 670, 0, + 207, 208, 200, 0, 201, 202, 203, 0, 204, 45, + -2, 78, 0, 657, 0, 0, 0, 878, 670, 0, 667, 0, 665, 0, 660, 661, 662, 663, 664, 666, 668, 669, 0, 318, 878, 0, 338, 339, 342, 0, 0, 356, 361, 347, 0, 615, 878, 0, 441, 442, @@ -2372,14 +2322,14 @@ var yyDef = [...]int{ 533, 0, 0, 0, 0, 587, 24, 0, 652, 653, 578, 579, 397, 31, 0, 609, 599, 611, 613, 0, 27, 0, 605, 584, 0, 0, 0, 592, 439, 646, - 639, 640, 0, 0, 644, 267, 0, 0, 0, 93, - 0, 82, 0, 81, 81, 83, 0, 0, 0, 0, - 0, 0, 81, 81, 0, 0, 0, 0, 0, 0, + 639, 640, 0, 0, 644, 267, 0, 0, 0, 96, + 0, 85, 0, 84, 84, 86, 0, 0, 0, 0, + 0, 0, 84, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 295, 284, 283, 303, 0, 302, 293, 178, 247, 248, 249, 250, 251, - 252, 253, 274, 276, 278, 0, 265, 158, 159, 268, + 252, 253, 274, 276, 278, 0, 265, 160, 161, 268, 269, 270, 271, 272, 273, 171, 245, 0, 210, 211, - 0, 0, 233, 0, 0, 0, 76, 81, 81, 0, + 0, 0, 233, 0, 0, 0, 79, 84, 84, 0, 0, 0, 309, 0, 878, 673, 674, 0, 0, 0, 0, 0, 321, 337, 354, 362, 363, 343, 481, 335, 598, 462, 464, 466, 453, 474, 457, 0, 454, 0, @@ -2387,12 +2337,12 @@ var yyDef = [...]int{ 0, 384, 0, -2, 515, 516, 0, 0, 0, 0, 584, 0, 563, 0, 0, 523, 534, 535, 536, 537, 25, 438, 0, 0, 32, 0, 614, -2, 0, 0, - 0, 592, 618, 619, 568, 36, 641, 642, 643, 0, - 0, 879, 160, 161, 0, 0, 84, 119, 120, 157, - 122, 123, 0, 0, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 0, 296, 0, 0, 295, + 0, 592, 618, 619, 568, 36, 641, 642, 643, 52, + 0, 0, 162, 163, 0, 0, 87, 121, 122, 159, + 124, 125, 0, 0, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 0, 296, 0, 0, 295, 283, 254, 255, 258, 259, 260, 236, 263, 264, 223, 0, 224, 0, 240, 0, 0, 0, 0, 0, 0, 310, 311, 312, 0, 314, 315, 316, 455, 0, 475, @@ -2400,30 +2350,29 @@ var yyDef = [...]int{ 235, 548, 235, 239, 551, 235, 553, 235, 556, 0, 0, 0, 560, 522, 566, 0, 580, 398, 399, 401, 402, 403, 411, 0, 413, 0, 612, 0, -2, 0, - 607, 606, 35, 42, 0, 47, 880, 881, 121, 162, - 124, 125, 0, 294, 297, 298, 299, 0, 0, 295, - 0, 234, 0, 0, 77, 54, 55, 78, 85, 86, - 87, 0, 306, 235, 0, 0, 0, 459, 0, 514, - 517, 545, 262, 549, 550, 552, 554, 555, 557, 519, - 518, 0, 0, 0, 564, 582, 0, 0, 0, 0, - 0, 418, 0, 0, 421, 0, 0, 0, 0, 412, - 0, 0, 432, 414, 0, 416, 417, 0, 602, 27, - 0, 879, 0, 0, 0, 0, 0, 0, 256, 0, - 238, 241, 59, 0, 308, 63, 67, 313, 391, 546, - 547, 538, 521, 561, 26, 0, 0, 400, 407, 0, - 410, 419, 420, 422, 0, 424, 0, 426, 427, 404, - 405, 406, 0, 0, 0, 415, 610, -2, 608, 45, - 43, 0, 39, 0, 289, 289, 0, 0, 257, 69, - 307, 69, 69, 0, 0, 0, 583, 581, 0, 0, - 423, 425, 0, 0, 0, 0, 879, 0, 279, 280, - 289, 0, 49, 60, 61, 62, 81, 0, 0, 50, - 64, 65, 0, 51, 68, 520, 0, 0, 0, 408, - 409, 0, 0, 0, 40, 46, 0, 290, 81, 286, - 0, 0, 281, 289, 70, 81, 81, 0, 58, 56, - 52, 53, 0, 539, 0, 542, 0, 436, 0, 0, - 0, 0, 287, 0, 282, 0, 0, 57, 66, 540, - 433, 0, 434, 435, 41, 285, 288, 71, 72, 0, - 437, 0, 541, + 607, 606, 35, 0, 42, 123, 164, 126, 127, 0, + 294, 297, 298, 299, 0, 0, 295, 0, 234, 0, + 0, 80, 57, 58, 81, 88, 89, 90, 0, 306, + 235, 0, 0, 0, 459, 0, 514, 517, 545, 262, + 549, 550, 552, 554, 555, 557, 519, 518, 0, 0, + 0, 564, 582, 0, 0, 0, 0, 0, 418, 0, + 0, 421, 0, 0, 0, 0, 412, 0, 0, 432, + 414, 0, 416, 417, 0, 602, 27, 0, 0, 54, + 0, 0, 0, 0, 0, 256, 0, 238, 241, 62, + 0, 308, 66, 70, 313, 391, 546, 547, 538, 521, + 561, 26, 0, 0, 400, 407, 0, 410, 419, 420, + 422, 0, 424, 0, 426, 427, 404, 405, 406, 0, + 0, 0, 415, 610, -2, 608, 0, 39, 0, 43, + 289, 289, 0, 0, 257, 72, 307, 72, 72, 0, + 0, 0, 583, 581, 0, 0, 423, 425, 0, 0, + 0, 0, 53, 0, 279, 280, 289, 0, 46, 63, + 64, 65, 84, 0, 0, 47, 67, 68, 0, 48, + 71, 520, 0, 0, 0, 408, 409, 0, 0, 0, + 40, 0, 290, 84, 286, 0, 0, 281, 289, 73, + 84, 84, 0, 61, 59, 55, 56, 0, 539, 0, + 542, 0, 436, 0, 0, 0, 0, 287, 0, 282, + 0, 0, 60, 69, 540, 433, 0, 434, 435, 41, + 285, 288, 74, 75, 0, 437, 0, 541, } var yyTok1 = [...]int{ @@ -2817,29 +2766,29 @@ yydefault: case 1: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1006 +//line sql.y:1008 { setParseTree(yylex, yyDollar[1].statement) } case 2: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1012 +//line sql.y:1014 { } case 3: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1014 +//line sql.y:1016 { } case 4: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1018 +//line sql.y:1020 { yyVAL.statement = yyDollar[1].selStmt } case 23: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1042 +//line sql.y:1044 { sel := yyDollar[1].selStmt.(*Select) sel.OrderBy = yyDollar[2].orderBy @@ -2849,49 +2798,49 @@ yydefault: } case 24: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1050 +//line sql.y:1052 { yyVAL.selStmt = &Union{Type: yyDollar[2].str, Left: yyDollar[1].selStmt, Right: yyDollar[3].selStmt, OrderBy: yyDollar[4].orderBy, Limit: yyDollar[5].limit, Lock: yyDollar[6].str} } case 25: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1054 +//line sql.y:1056 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, SelectExprs: SelectExprs{Nextval{Expr: yyDollar[5].expr}}, From: TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}} } case 26: yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:1061 +//line sql.y:1063 { yyVAL.selStmt = &Select{Comments: Comments(yyDollar[2].bytes2), Cache: yyDollar[3].str, Distinct: yyDollar[4].str, Hints: yyDollar[5].str, SelectExprs: yyDollar[6].selectExprs, From: yyDollar[7].tableExprs, Where: NewWhere(WhereStr, yyDollar[8].expr), GroupBy: GroupBy(yyDollar[9].exprs), Having: NewWhere(HavingStr, yyDollar[10].expr)} } case 27: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1067 +//line sql.y:1069 { yyVAL.selStmt = yyDollar[1].selStmt } case 28: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1071 +//line sql.y:1073 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 29: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1077 +//line sql.y:1079 { yyVAL.selStmt = yyDollar[1].selStmt } case 30: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1081 +//line sql.y:1083 { yyVAL.selStmt = &ParenSelect{Select: yyDollar[2].selStmt} } case 31: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1087 +//line sql.y:1089 { // insert_data returns a *Insert pre-filled with Columns & Values ins := yyDollar[5].ins @@ -2904,7 +2853,7 @@ yydefault: } case 32: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1098 +//line sql.y:1100 { cols := make(Columns, 0, len(yyDollar[6].updateExprs)) vals := make(ValTuple, 0, len(yyDollar[7].updateExprs)) @@ -2916,67 +2865,67 @@ yydefault: } case 33: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1110 +//line sql.y:1112 { yyVAL.str = InsertStr } case 34: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1114 +//line sql.y:1116 { yyVAL.str = ReplaceStr } case 35: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1120 +//line sql.y:1122 { yyVAL.statement = &Update{Comments: Comments(yyDollar[2].bytes2), Table: yyDollar[3].tableName, Exprs: yyDollar[5].updateExprs, Where: NewWhere(WhereStr, yyDollar[6].expr), OrderBy: yyDollar[7].orderBy, Limit: yyDollar[8].limit} } case 36: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1126 +//line sql.y:1128 { yyVAL.statement = &Delete{Comments: Comments(yyDollar[2].bytes2), Table: yyDollar[4].tableName, Where: NewWhere(WhereStr, yyDollar[5].expr), OrderBy: yyDollar[6].orderBy, Limit: yyDollar[7].limit} } case 37: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1132 +//line sql.y:1134 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 38: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1136 +//line sql.y:1138 { yyVAL.statement = &Set{Comments: Comments(yyDollar[2].bytes2), Exprs: yyDollar[3].setExprs} } case 39: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1142 +//line sql.y:1144 { yyVAL.partitionDefinitions = []*PartitionDefinition{yyDollar[1].partitionDefinition} } case 40: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1146 +//line sql.y:1148 { yyVAL.partitionDefinitions = append(yyDollar[1].partitionDefinitions, yyDollar[3].partitionDefinition) } case 41: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1152 +//line sql.y:1154 { yyVAL.partitionDefinition = &PartitionDefinition{Backend: string(yyDollar[2].bytes), Row: yyDollar[5].valTuple} } case 42: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1158 +//line sql.y:1160 { yyVAL.optVal = nil } case 43: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1162 +//line sql.y:1164 { if string(yyDollar[2].bytes) == "0" { yylex.Error("Number of partitions must be a positive integer") @@ -2985,58 +2934,17 @@ yydefault: yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 44: - yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1172 - { - yyDollar[1].ddl.Action = CreateTableStr - yyDollar[1].ddl.TableSpec = yyDollar[2].tableSpec - yyVAL.statement = yyDollar[1].ddl - } - case 45: - yyDollar = yyS[yypt-10 : yypt+1] - //line sql.y:1178 - { - yyDollar[1].ddl.Action = CreateTableStr - yyDollar[1].ddl.TableSpec = yyDollar[2].tableSpec - yyDollar[1].ddl.PartitionName = yyDollar[7].colIdent.String() - yyDollar[1].ddl.PartitionNum = yyDollar[9].optVal - if yyDollar[2].tableSpec.Options.Type == GlobalTableType || yyDollar[2].tableSpec.Options.Type == SingleTableType { - yylex.Error("SINGLE or GLOBAL should not be used simultaneously with PARTITION") - return 1 - } else { - yyDollar[1].ddl.TableSpec.Options.Type = PartitionTableHash - } - yyVAL.statement = yyDollar[1].ddl - } - case 46: - yyDollar = yyS[yypt-12 : yypt+1] - //line sql.y:1192 - { - yyDollar[1].ddl.Action = CreateTableStr - yyDollar[1].ddl.TableSpec = yyDollar[2].tableSpec - yyDollar[1].ddl.PartitionName = yyDollar[7].colIdent.String() - yyDollar[1].ddl.TableSpec.Options.Type = PartitionTableList - yyDollar[1].ddl.PartitionOptions = yyDollar[10].partitionDefinitions - yyVAL.statement = yyDollar[1].ddl - } - case 47: - yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:1201 + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1174 { yyDollar[1].ddl.Action = CreateTableStr yyDollar[1].ddl.TableSpec = yyDollar[2].tableSpec - yyDollar[1].ddl.BackendName = yyDollar[6].colIdent.String() - if yyDollar[2].tableSpec.Options.Type == GlobalTableType || yyDollar[2].tableSpec.Options.Type == SingleTableType { - yylex.Error("SINGLE or GLOBAL should not be used simultaneously with DISTRIBUTED") - return 1 - } else { - yyDollar[1].ddl.TableSpec.Options.Type = SingleTableType - } + yyDollar[1].ddl.PartitionOption = yyDollar[3].partitionOption yyVAL.statement = yyDollar[1].ddl } - case 48: + case 45: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1214 +//line sql.y:1181 { var ifnotexists bool if yyDollar[3].byt != 0 { @@ -3044,153 +2952,197 @@ yydefault: } yyVAL.statement = &DDL{Action: CreateDBStr, IfNotExists: ifnotexists, Database: yyDollar[4].tableIdent, DatabaseOptions: yyDollar[5].databaseOptionListOpt} } - case 49: + case 46: yyDollar = yyS[yypt-11 : yypt+1] - //line sql.y:1222 +//line sql.y:1189 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: yyDollar[2].str, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, append(yyDollar[10].indexOptionList, yyDollar[11].indexOptionList...))} } - case 50: + case 47: yyDollar = yyS[yypt-11 : yypt+1] - //line sql.y:1226 +//line sql.y:1193 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: FullTextStr, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, append(yyDollar[10].indexOptionList, yyDollar[11].indexOptionList...))} } - case 51: + case 48: yyDollar = yyS[yypt-11 : yypt+1] - //line sql.y:1230 +//line sql.y:1197 { yyVAL.statement = &DDL{Action: CreateIndexStr, IndexType: SpatialStr, IndexName: string(yyDollar[4].bytes), Table: yyDollar[6].tableName, NewName: yyDollar[6].tableName, IndexOpts: NewIndexOptions(yyDollar[8].indexColumns, append(yyDollar[10].indexOptionList, yyDollar[11].indexOptionList...))} } + case 49: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1203 + { + yyVAL.partitionOption = &PartOptNormal{} + } + case 50: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1207 + { + yyVAL.partitionOption = &PartOptGlobal{} + } + case 51: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1211 + { + yyVAL.partitionOption = &PartOptSingle{} + } case 52: + yyDollar = yyS[yypt-5 : yypt+1] +//line sql.y:1215 + { + yyVAL.partitionOption = &PartOptSingle{ + BackendName: yyDollar[4].colIdent.String(), + } + } + case 53: + yyDollar = yyS[yypt-9 : yypt+1] +//line sql.y:1221 + { + yyVAL.partitionOption = &PartOptList{ + Name: yyDollar[5].colIdent.String(), + PartDefs: yyDollar[8].partitionDefinitions, + } + } + case 54: + yyDollar = yyS[yypt-7 : yypt+1] +//line sql.y:1228 + { + yyVAL.partitionOption = &PartOptHash{ + Name: yyDollar[5].colIdent.String(), + PartitionNum: yyDollar[7].optVal, + } + } + case 55: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1236 +//line sql.y:1237 { yyVAL.str = "hash" } - case 53: + case 56: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1240 +//line sql.y:1241 { yyVAL.str = "btree" } - case 54: + case 57: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1246 +//line sql.y:1247 { yyVAL.str = string(yyDollar[1].bytes) } - case 55: + case 58: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1250 +//line sql.y:1251 { yyVAL.str = "default" } - case 56: + case 59: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1257 +//line sql.y:1258 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionUsing, Val: NewStrValWithoutQuote([]byte(yyDollar[2].str)), } } - case 57: + case 60: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1266 +//line sql.y:1267 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionBlockSize, Val: NewIntVal(yyDollar[3].bytes), } } - case 58: + case 61: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1273 +//line sql.y:1274 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionComment, Val: NewStrVal(yyDollar[2].bytes), } } - case 59: + case 62: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1281 +//line sql.y:1282 { yyVAL.indexOptionList = []*IndexOption{} } - case 60: + case 63: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1285 +//line sql.y:1286 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 61: + case 64: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1291 +//line sql.y:1292 { yyVAL.indexOption = yyDollar[1].indexOption } - case 62: + case 65: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1295 +//line sql.y:1296 { yyVAL.indexOption = yyDollar[1].indexOption } - case 63: + case 66: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1300 +//line sql.y:1301 { yyVAL.indexOptionList = []*IndexOption{} } - case 64: + case 67: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1304 +//line sql.y:1305 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 65: + case 68: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1310 +//line sql.y:1311 { yyVAL.indexOption = yyDollar[1].indexOption } - case 66: + case 69: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1314 +//line sql.y:1315 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionParser, Val: NewStrValWithoutQuote(yyDollar[3].bytes), } } - case 67: + case 70: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1322 +//line sql.y:1323 { yyVAL.indexOptionList = []*IndexOption{} } - case 68: + case 71: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1326 +//line sql.y:1327 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 69: + case 72: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1331 +//line sql.y:1332 { yyVAL.indexOptionList = []*IndexOption{} } - case 70: + case 73: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1335 +//line sql.y:1336 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } - case 71: + case 74: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1341 +//line sql.y:1342 { if !CheckIndexLock(yyDollar[3].str) { yylex.Error("unknown lock type") @@ -3201,9 +3153,9 @@ yydefault: Val: NewStrValWithoutQuote([]byte(yyDollar[3].str)), } } - case 72: + case 75: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1352 +//line sql.y:1353 { if !CheckIndexAlgorithm(yyDollar[3].str) { yylex.Error("unknown algorithm type") @@ -3214,101 +3166,101 @@ yydefault: Val: NewStrValWithoutQuote([]byte(yyDollar[3].str)), } } - case 73: + case 76: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1364 +//line sql.y:1365 { yyVAL.databaseOptionListOpt.DBOptList = []*DatabaseOption{} } - case 74: + case 77: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1368 +//line sql.y:1369 { yyVAL.databaseOptionListOpt.DBOptList = yyDollar[1].databaseOptionList } - case 75: + case 78: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1374 +//line sql.y:1375 { yyVAL.databaseOptionList = append(yyVAL.databaseOptionList, yyDollar[1].databaseOption) } - case 76: + case 79: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1378 +//line sql.y:1379 { yyVAL.databaseOptionList = append(yyDollar[1].databaseOptionList, yyDollar[2].databaseOption) } - case 77: + case 80: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1384 +//line sql.y:1385 { yyVAL.databaseOption = &DatabaseOption{ CharsetOrCollate: string(yyDollar[2].bytes), Value: yyDollar[4].str, } } - case 78: + case 81: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1391 +//line sql.y:1392 { yyVAL.databaseOption = &DatabaseOption{ CharsetOrCollate: string(yyDollar[2].str), Value: yyDollar[4].str, } } - case 79: + case 82: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1399 +//line sql.y:1400 { } - case 80: + case 83: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1401 +//line sql.y:1402 { } - case 81: + case 84: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1404 +//line sql.y:1405 { } - case 82: + case 85: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1406 +//line sql.y:1407 { } - case 83: + case 86: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1410 +//line sql.y:1411 { yyVAL.str = string(yyDollar[1].bytes) } - case 84: + case 87: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1414 +//line sql.y:1415 { yyVAL.str = "character set" } - case 85: + case 88: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1420 +//line sql.y:1421 { yyVAL.str = string(yyDollar[1].bytes) } - case 86: + case 89: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1424 +//line sql.y:1425 { yyVAL.str = string(yyDollar[1].bytes) } - case 87: + case 90: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1428 +//line sql.y:1429 { yyVAL.str = "default" } - case 88: + case 91: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1434 +//line sql.y:1435 { var ifnotexists bool if yyDollar[3].byt != 0 { @@ -3317,9 +3269,9 @@ yydefault: yyVAL.ddl = &DDL{Action: CreateTableStr, IfNotExists: ifnotexists, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} setDDL(yylex, yyVAL.ddl) } - case 89: + case 92: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1445 +//line sql.y:1446 { yyVAL.tableSpec = yyDollar[2].tableSpec @@ -3337,9 +3289,6 @@ yydefault: if val := yyDollar[4].tableOptionListOpt.GetTableOptValByType(TableOptionCharset); val != nil { yyVAL.tableSpec.Options.Charset = String(val) } - if val := yyDollar[4].tableOptionListOpt.GetTableOptValByType(TableOptionTableType); val != nil { - yyVAL.tableSpec.Options.Type = String(val) - } if val := yyDollar[4].tableOptionListOpt.GetTableOptValByType(TableOptionAvgRowLength); val != nil { yyVAL.tableSpec.Options.AvgRowLength = String(val) } @@ -3401,279 +3350,267 @@ yydefault: yyVAL.tableSpec.Options.TableSpace = String(val) } } - if yyVAL.tableSpec.Options.Type == "" { - yyVAL.tableSpec.Options.Type = NormalTableType - } } - case 90: + case 93: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1532 +//line sql.y:1527 { yyVAL.tableOptionListOpt.TblOptList = []*TableOption{} } - case 91: + case 94: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1536 +//line sql.y:1531 { yyVAL.tableOptionListOpt.TblOptList = yyDollar[1].tableOptionList } - case 92: + case 95: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1542 +//line sql.y:1537 { yyVAL.tableOptionList = append(yyVAL.tableOptionList, yyDollar[1].tableOption) } - case 93: + case 96: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1546 +//line sql.y:1541 { yyVAL.tableOptionList = append(yyDollar[1].tableOptionList, yyDollar[2].tableOption) } - case 94: + case 97: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1552 +//line sql.y:1547 { yyVAL.tableOption = &TableOption{ Type: TableOptionComment, Val: yyDollar[1].optVal, } } - case 95: + case 98: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1559 +//line sql.y:1554 { yyVAL.tableOption = &TableOption{ Type: TableOptionEngine, Val: yyDollar[1].optVal, } } - case 96: + case 99: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1566 +//line sql.y:1561 { yyVAL.tableOption = &TableOption{ Type: TableOptionCharset, Val: yyDollar[1].optVal, } } - case 97: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1573 - { - yyVAL.tableOption = &TableOption{ - Type: TableOptionTableType, - Val: yyDollar[1].optVal, - } - } - case 98: + case 100: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1580 +//line sql.y:1568 { yyVAL.tableOption = &TableOption{ Type: TableOptionAutoInc, Val: yyDollar[1].optVal, } } - case 99: + case 101: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1587 +//line sql.y:1575 { yyVAL.tableOption = &TableOption{ Type: TableOptionAvgRowLength, Val: yyDollar[1].optVal, } } - case 100: + case 102: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1594 +//line sql.y:1582 { yyVAL.tableOption = &TableOption{ Type: TableOptionChecksum, Val: yyDollar[1].optVal, } } - case 101: + case 103: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1601 +//line sql.y:1589 { yyVAL.tableOption = &TableOption{ Type: TableOptionCollate, Val: yyDollar[1].optVal, } } - case 102: + case 104: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1608 +//line sql.y:1596 { yyVAL.tableOption = &TableOption{ Type: TableOptionCompression, Val: yyDollar[1].optVal, } } - case 103: + case 105: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1615 +//line sql.y:1603 { yyVAL.tableOption = &TableOption{ Type: TableOptionConnection, Val: yyDollar[1].optVal, } } - case 104: + case 106: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1622 +//line sql.y:1610 { yyVAL.tableOption = &TableOption{ Type: TableOptionDataDirectory, Val: yyDollar[1].optVal, } } - case 105: + case 107: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1629 +//line sql.y:1617 { yyVAL.tableOption = &TableOption{ Type: TableOptionIndexDirectory, Val: yyDollar[1].optVal, } } - case 106: + case 108: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1636 +//line sql.y:1624 { yyVAL.tableOption = &TableOption{ Type: TableOptionDelayKeyWrite, Val: yyDollar[1].optVal, } } - case 107: + case 109: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1643 +//line sql.y:1631 { yyVAL.tableOption = &TableOption{ Type: TableOptionEncryption, Val: yyDollar[1].optVal, } } - case 108: + case 110: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1650 +//line sql.y:1638 { yyVAL.tableOption = &TableOption{ Type: TableOptionInsertMethod, Val: yyDollar[1].optVal, } } - case 109: + case 111: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1657 +//line sql.y:1645 { yyVAL.tableOption = &TableOption{ Type: TableOptionKeyBlockSize, Val: yyDollar[1].optVal, } } - case 110: + case 112: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1664 +//line sql.y:1652 { yyVAL.tableOption = &TableOption{ Type: TableOptionMaxRows, Val: yyDollar[1].optVal, } } - case 111: + case 113: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1671 +//line sql.y:1659 { yyVAL.tableOption = &TableOption{ Type: TableOptionMinRows, Val: yyDollar[1].optVal, } } - case 112: + case 114: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1678 +//line sql.y:1666 { yyVAL.tableOption = &TableOption{ Type: TableOptionPackKeys, Val: yyDollar[1].optVal, } } - case 113: + case 115: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1685 +//line sql.y:1673 { yyVAL.tableOption = &TableOption{ Type: TableOptionPassword, Val: yyDollar[1].optVal, } } - case 114: + case 116: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1692 +//line sql.y:1680 { yyVAL.tableOption = &TableOption{ Type: TableOptionRowFormat, Val: yyDollar[1].optVal, } } - case 115: + case 117: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1699 +//line sql.y:1687 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsAutoRecalc, Val: yyDollar[1].optVal, } } - case 116: + case 118: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1706 +//line sql.y:1694 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsPersistent, Val: yyDollar[1].optVal, } } - case 117: + case 119: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1713 +//line sql.y:1701 { yyVAL.tableOption = &TableOption{ Type: TableOptionStatsSamplePages, Val: yyDollar[1].optVal, } } - case 118: + case 120: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1720 +//line sql.y:1708 { yyVAL.tableOption = &TableOption{ Type: TableOptionTableSpace, Val: yyDollar[1].optVal, } } - case 119: + case 121: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1729 +//line sql.y:1717 { } - case 120: + case 122: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1733 +//line sql.y:1721 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } - case 121: + case 123: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1739 +//line sql.y:1727 { yyVAL.optVal = yyDollar[4].optVal } - case 122: + case 124: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1745 +//line sql.y:1733 { switch StrToLower(string(yyDollar[3].bytes)) { case "zlib", "lz4", "none": @@ -3684,33 +3621,33 @@ yydefault: } yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 123: + case 125: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1758 +//line sql.y:1746 { yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 124: + case 126: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1764 +//line sql.y:1752 { yyVAL.optVal = NewStrVal(yyDollar[4].bytes) } - case 125: + case 127: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1770 +//line sql.y:1758 { yyVAL.optVal = NewStrVal(yyDollar[4].bytes) } - case 126: + case 128: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1776 +//line sql.y:1764 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } - case 127: + case 129: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1782 +//line sql.y:1770 { switch string(yyDollar[3].bytes) { case "Y", "y": @@ -3724,9 +3661,9 @@ yydefault: } yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 128: + case 130: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1798 +//line sql.y:1786 { switch StrToLower(string(yyDollar[3].bytes)) { case "no", "first", "last": @@ -3737,246 +3674,234 @@ yydefault: } yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } - case 129: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1811 - { - yyVAL.optVal = NewIntVal(yyDollar[3].bytes) - } - case 130: - yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1817 - { - yyVAL.optVal = NewIntVal(yyDollar[3].bytes) - } case 131: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1823 +//line sql.y:1799 { yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 132: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1829 +//line sql.y:1805 { - yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) + yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 133: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1833 +//line sql.y:1811 { - yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) + yyVAL.optVal = NewIntVal(yyDollar[3].bytes) } case 134: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1839 +//line sql.y:1817 { - yyVAL.optVal = NewStrVal(yyDollar[3].bytes) + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 135: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1847 +//line sql.y:1821 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 136: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1851 +//line sql.y:1827 { - yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) + yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } case 137: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1855 +//line sql.y:1835 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 138: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1859 +//line sql.y:1839 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 139: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1863 +//line sql.y:1843 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 140: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1867 +//line sql.y:1847 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 141: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1871 +//line sql.y:1851 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 142: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1875 +//line sql.y:1855 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 143: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1879 +//line sql.y:1859 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 144: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1883 +//line sql.y:1863 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 145: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1887 +//line sql.y:1867 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 146: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1891 +//line sql.y:1871 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 147: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1895 +//line sql.y:1875 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 148: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1899 +//line sql.y:1879 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 149: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1905 +//line sql.y:1883 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 150: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1909 +//line sql.y:1887 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 151: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1915 +//line sql.y:1893 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 152: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1919 +//line sql.y:1897 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 153: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1926 +//line sql.y:1903 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 154: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1930 +//line sql.y:1907 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 155: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1936 +//line sql.y:1914 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 156: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1940 +//line sql.y:1918 { yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 157: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1946 +//line sql.y:1924 { - yyVAL.optVal = NewIntVal(yyDollar[3].bytes) + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) } case 158: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1928 + { + yyVAL.optVal = NewStrValWithoutQuote(yyDollar[3].bytes) + } + case 159: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1934 + { + yyVAL.optVal = NewIntVal(yyDollar[3].bytes) + } + case 160: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1952 +//line sql.y:1940 { // Normal str as an identify, without quote yyVAL.optVal = NewStrValWithoutQuote(yyDollar[1].bytes) } - case 159: + case 161: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1957 +//line sql.y:1945 { // Str with Quote, it will be parsed by Lex begin with quote \' or \" yyVAL.optVal = NewStrVal(yyDollar[1].bytes) } - case 160: + case 162: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1964 +//line sql.y:1952 { yyVAL.optVal = NewStrVal(yyDollar[3].bytes) } - case 161: + case 163: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1970 +//line sql.y:1958 { yyVAL.optVal = yyDollar[3].optVal } - case 162: + case 164: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1976 +//line sql.y:1964 { yyVAL.optVal = yyDollar[4].optVal } - case 163: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1982 - { - yyVAL.optVal = NewStrValWithoutQuote([]byte(GlobalTableType)) - } - case 164: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1986 - { - yyVAL.optVal = NewStrValWithoutQuote([]byte(SingleTableType)) - } case 165: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1992 +//line sql.y:1970 { yyVAL.tableSpec = &TableSpec{} yyVAL.tableSpec.AddColumn(yyDollar[1].columnDefinition) } case 166: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1997 +//line sql.y:1975 { yyVAL.tableSpec.AddColumn(yyDollar[3].columnDefinition) } case 167: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2001 +//line sql.y:1979 { yyVAL.tableSpec.AddIndex(yyDollar[3].indexDefinition) } case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2007 +//line sql.y:1985 { yyDollar[2].columnType.NotNull = yyDollar[3].columnOptionListOpt.GetColumnOption(ColumnOptionNotNull).NotNull yyDollar[2].columnType.Autoincrement = yyDollar[3].columnOptionListOpt.GetColumnOption(ColumnOptionAutoincrement).Autoincrement @@ -3992,19 +3917,19 @@ yydefault: } case 169: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2023 +//line sql.y:2001 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 170: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2027 +//line sql.y:2005 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 171: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2033 +//line sql.y:2011 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal @@ -4012,31 +3937,31 @@ yydefault: } case 175: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2043 +//line sql.y:2021 { yyVAL.columnOptionListOpt.ColOptList = []*ColumnOption{} } case 176: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2047 +//line sql.y:2025 { yyVAL.columnOptionListOpt.ColOptList = yyDollar[1].columnOptionList } case 177: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2053 +//line sql.y:2031 { yyVAL.columnOptionList = append(yyVAL.columnOptionList, yyDollar[1].columnOption) } case 178: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2057 +//line sql.y:2035 { yyVAL.columnOptionList = append(yyDollar[1].columnOptionList, yyDollar[2].columnOption) } case 179: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2063 +//line sql.y:2041 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionNotNull, @@ -4045,7 +3970,7 @@ yydefault: } case 180: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2070 +//line sql.y:2048 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionDefault, @@ -4054,7 +3979,7 @@ yydefault: } case 181: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2077 +//line sql.y:2055 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionAutoincrement, @@ -4063,7 +3988,7 @@ yydefault: } case 182: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2084 +//line sql.y:2062 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionKeyPrimaryOpt, @@ -4072,7 +3997,7 @@ yydefault: } case 183: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2091 +//line sql.y:2069 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionKeyUniqueOpt, @@ -4081,7 +4006,7 @@ yydefault: } case 184: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2098 +//line sql.y:2076 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionComment, @@ -4090,7 +4015,7 @@ yydefault: } case 185: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2105 +//line sql.y:2083 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionOnUpdate, @@ -4099,7 +4024,7 @@ yydefault: } case 186: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2112 +//line sql.y:2090 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionCollate, @@ -4108,7 +4033,7 @@ yydefault: } case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2119 +//line sql.y:2097 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionFormat, @@ -4117,7 +4042,7 @@ yydefault: } case 188: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2126 +//line sql.y:2104 { yyVAL.columnOption = &ColumnOption{ typ: ColumnOptionStorage, @@ -4126,74 +4051,74 @@ yydefault: } case 189: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2135 +//line sql.y:2113 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].optVal } case 190: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2140 +//line sql.y:2118 { yyVAL.columnType = yyDollar[1].columnType } case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2146 +//line sql.y:2124 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2150 +//line sql.y:2128 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 193: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2154 +//line sql.y:2132 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 194: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2158 +//line sql.y:2136 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 195: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2162 +//line sql.y:2140 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 196: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2166 +//line sql.y:2144 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 197: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2170 +//line sql.y:2148 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 198: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2174 +//line sql.y:2152 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2178 +//line sql.y:2156 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 200: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2184 +//line sql.y:2162 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4201,7 +4126,7 @@ yydefault: } case 201: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2190 +//line sql.y:2168 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4209,7 +4134,7 @@ yydefault: } case 202: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2196 +//line sql.y:2174 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4217,7 +4142,7 @@ yydefault: } case 203: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2202 +//line sql.y:2180 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4225,7 +4150,7 @@ yydefault: } case 204: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2208 +//line sql.y:2186 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].lengthScaleOption.Length @@ -4233,206 +4158,206 @@ yydefault: } case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2216 +//line sql.y:2194 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 206: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2220 +//line sql.y:2198 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 207: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2224 +//line sql.y:2202 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 208: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2228 +//line sql.y:2206 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2232 +//line sql.y:2210 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2238 +//line sql.y:2216 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str} } case 211: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2242 +//line sql.y:2220 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str} } case 212: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2246 +//line sql.y:2224 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 213: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2250 +//line sql.y:2228 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 214: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2254 +//line sql.y:2232 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 215: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2258 +//line sql.y:2236 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 216: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2262 +//line sql.y:2240 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 217: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2266 +//line sql.y:2244 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str} } case 218: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2270 +//line sql.y:2248 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 219: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2274 +//line sql.y:2252 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2278 +//line sql.y:2256 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 221: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2282 +//line sql.y:2260 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 222: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2286 +//line sql.y:2264 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 223: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2290 +//line sql.y:2268 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs} } case 224: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2294 +//line sql.y:2272 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs} } case 225: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2300 +//line sql.y:2278 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 226: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2304 +//line sql.y:2282 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2308 +//line sql.y:2286 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 228: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2312 +//line sql.y:2290 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 229: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2316 +//line sql.y:2294 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 230: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2320 +//line sql.y:2298 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 231: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2324 +//line sql.y:2302 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 232: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2328 +//line sql.y:2306 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 233: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2334 +//line sql.y:2312 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, "'"+string(yyDollar[1].bytes)+"'") } case 234: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2339 +//line sql.y:2317 { yyVAL.strs = append(yyDollar[1].strs, "'"+string(yyDollar[3].bytes)+"'") } case 235: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2344 +//line sql.y:2322 { yyVAL.optVal = nil } case 236: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2348 +//line sql.y:2326 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 237: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2353 +//line sql.y:2331 { yyVAL.lengthScaleOption = LengthScaleOption{} } case 238: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2357 +//line sql.y:2335 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -4441,13 +4366,13 @@ yydefault: } case 239: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2365 +//line sql.y:2343 { yyVAL.lengthScaleOption = LengthScaleOption{} } case 240: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2369 +//line sql.y:2347 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -4455,7 +4380,7 @@ yydefault: } case 241: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2375 +//line sql.y:2353 { yyVAL.lengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -4464,73 +4389,73 @@ yydefault: } case 242: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2383 +//line sql.y:2361 { yyVAL.boolVal = BoolVal(false) } case 243: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2387 +//line sql.y:2365 { yyVAL.boolVal = BoolVal(true) } case 244: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2392 +//line sql.y:2370 { yyVAL.boolVal = BoolVal(false) } case 245: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2396 +//line sql.y:2374 { yyVAL.boolVal = BoolVal(true) } case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2403 +//line sql.y:2381 { yyVAL.boolVal = BoolVal(false) } case 247: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2407 +//line sql.y:2385 { yyVAL.boolVal = BoolVal(true) } case 248: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2413 +//line sql.y:2391 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2417 +//line sql.y:2395 { yyVAL.optVal = NewIntVal(yyDollar[2].bytes) } case 250: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2421 +//line sql.y:2399 { yyVAL.optVal = NewFloatVal(yyDollar[2].bytes) } case 251: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2425 +//line sql.y:2403 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2429 +//line sql.y:2407 { yyVAL.optVal = NewValArg(yyDollar[2].bytes) } case 253: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2433 +//line sql.y:2411 { if yyDollar[2].boolVal { yyVAL.optVal = NewStrValWithoutQuote([]byte("true")) @@ -4540,109 +4465,109 @@ yydefault: } case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2443 +//line sql.y:2421 { yyVAL.str = yyDollar[3].str } case 255: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2449 +//line sql.y:2427 { yyVAL.str = string(yyDollar[1].bytes) } case 256: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2453 +//line sql.y:2431 { yyVAL.str = string(yyDollar[1].bytes) + "(" + ")" } case 257: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2457 +//line sql.y:2435 { yyVAL.str = string(yyDollar[1].bytes) + "(" + string(yyDollar[3].bytes) + ")" } case 258: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2465 +//line sql.y:2443 { yyVAL.bytes = yyDollar[1].bytes } case 259: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2469 +//line sql.y:2447 { yyVAL.bytes = yyDollar[1].bytes } case 260: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2473 +//line sql.y:2451 { yyVAL.bytes = yyDollar[1].bytes } case 261: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2480 +//line sql.y:2458 { yyVAL.boolVal = BoolVal(true) } case 262: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2485 +//line sql.y:2463 { yyVAL.str = "" } case 263: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2489 +//line sql.y:2467 { yyVAL.str = string(yyDollar[3].bytes) } case 264: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2493 +//line sql.y:2471 { yyVAL.str = string(yyDollar[3].bytes) } case 265: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2500 +//line sql.y:2478 { yyVAL.optVal = yyDollar[2].optVal } case 266: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2505 +//line sql.y:2483 { yyVAL.str = "" } case 267: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2509 +//line sql.y:2487 { yyVAL.str = string(yyDollar[2].bytes) } case 268: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2515 +//line sql.y:2493 { yyVAL.str = string(yyDollar[2].bytes) } case 269: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2519 +//line sql.y:2497 { yyVAL.str = string(yyDollar[2].bytes) } case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2523 +//line sql.y:2501 { yyVAL.str = string(yyDollar[2].bytes) } case 271: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2529 +//line sql.y:2507 { // "default" is not in official doc: https://dev.mysql.com/doc/refman/5.7/en/create-table.html // but actually mysql support it, see: https://github.com/mysql/mysql-server/blob/5.7/sql/sql_yacc.yy#L6953 @@ -4650,25 +4575,25 @@ yydefault: } case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2535 +//line sql.y:2513 { yyVAL.str = string(yyDollar[2].bytes) } case 273: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2539 +//line sql.y:2517 { yyVAL.str = string(yyDollar[2].bytes) } case 274: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2545 +//line sql.y:2523 { yyVAL.colPrimaryKeyOpt = ColKeyPrimary } case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2549 +//line sql.y:2527 { // KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY // can also be specified as just KEY when given in a column definition. @@ -4677,25 +4602,25 @@ yydefault: } case 276: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2558 +//line sql.y:2536 { yyVAL.colUniqueKeyOpt = ColKeyUniqueKey } case 277: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2562 +//line sql.y:2540 { yyVAL.colUniqueKeyOpt = ColKeyUniqueKey } case 278: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2568 +//line sql.y:2546 { yyVAL.optVal = NewStrVal(yyDollar[2].bytes) } case 279: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2574 +//line sql.y:2552 { // TODO(): in the future we'll support format out index_type, currently skip it. // If index_name is empty, becarful that the `name` result will be diffirent when doing format. @@ -4709,7 +4634,7 @@ yydefault: } case 280: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2586 +//line sql.y:2564 { typ := string(yyDollar[1].bytes) if yyDollar[3].str != "" { @@ -4725,7 +4650,7 @@ yydefault: } case 281: yyDollar = yyS[yypt-8 : yypt+1] - //line sql.y:2600 +//line sql.y:2578 { // TODO(): in the future we'll support format out index_type, currently skip it yyVAL.indexDefinition = &IndexDefinition{ @@ -4738,7 +4663,7 @@ yydefault: } case 282: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2611 +//line sql.y:2589 { // TODO(): in the future we'll support format out index_type, currently skip it typ := string(yyDollar[2].bytes) @@ -4755,19 +4680,19 @@ yydefault: } case 283: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2627 +//line sql.y:2605 { yyVAL.str = "" } case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2631 +//line sql.y:2609 { yyVAL.str = string(yyDollar[1].bytes) } case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2637 +//line sql.y:2615 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionBlockSize, @@ -4776,7 +4701,7 @@ yydefault: } case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2644 +//line sql.y:2622 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionUsing, @@ -4785,7 +4710,7 @@ yydefault: } case 287: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2651 +//line sql.y:2629 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionComment, @@ -4794,7 +4719,7 @@ yydefault: } case 288: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2658 +//line sql.y:2636 { yyVAL.indexOption = &IndexOption{ Type: IndexOptionParser, @@ -4803,174 +4728,174 @@ yydefault: } case 289: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2666 +//line sql.y:2644 { yyVAL.indexOptionList = []*IndexOption{} } case 290: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2670 +//line sql.y:2648 { yyVAL.indexOptionList = append(yyDollar[1].indexOptionList, yyDollar[2].indexOption) } case 291: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2676 +//line sql.y:2654 { } case 292: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2679 +//line sql.y:2657 { } case 293: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2682 +//line sql.y:2660 { } case 294: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2688 +//line sql.y:2666 { yyVAL.bytes = yyDollar[2].bytes } case 295: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2693 +//line sql.y:2671 { } case 296: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2696 +//line sql.y:2674 { yyVAL.bytes = yyDollar[1].bytes } case 297: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2702 +//line sql.y:2680 { yyVAL.bytes = yyDollar[1].bytes } case 298: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2706 +//line sql.y:2684 { yyVAL.bytes = yyDollar[1].bytes } case 299: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2710 +//line sql.y:2688 { yyVAL.bytes = yyDollar[1].bytes } case 300: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2716 +//line sql.y:2694 { yyVAL.bytes = yyDollar[1].bytes } case 301: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2720 +//line sql.y:2698 { yyVAL.bytes = yyDollar[1].bytes } case 302: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2725 +//line sql.y:2703 { // set empty yyVAL.str = "" } case 303: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2730 +//line sql.y:2708 { yyVAL.str = yyDollar[1].str } case 304: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2737 +//line sql.y:2715 { yyVAL.str = string(yyDollar[1].bytes) } case 305: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2741 +//line sql.y:2719 { yyVAL.str = string(yyDollar[1].bytes) } case 306: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2747 +//line sql.y:2725 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2751 +//line sql.y:2729 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } case 308: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2757 +//line sql.y:2735 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].optVal} } case 309: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2763 +//line sql.y:2741 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 310: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2767 +//line sql.y:2745 { // Change this to a rename statement yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} } case 311: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2772 +//line sql.y:2750 { // Rename an index can just be an alter yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} } case 312: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2777 +//line sql.y:2755 { yyVAL.statement = &DDL{Action: AlterEngineStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, Engine: string(yyDollar[7].bytes)} } case 313: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:2781 +//line sql.y:2759 { yyVAL.statement = &DDL{Action: AlterCharsetStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, Charset: string(yyDollar[9].bytes)} } case 314: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2785 +//line sql.y:2763 { yyVAL.statement = &DDL{Action: AlterAddColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, TableSpec: yyDollar[7].tableSpec} } case 315: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2789 +//line sql.y:2767 { yyVAL.statement = &DDL{Action: AlterDropColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, DropColumnName: string(yyDollar[7].bytes)} } case 316: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:2793 +//line sql.y:2771 { yyVAL.statement = &DDL{Action: AlterModifyColumnStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName, ModifyColumnDef: yyDollar[7].columnDefinition} } case 317: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2799 +//line sql.y:2777 { var exists bool if yyDollar[3].byt != 0 { @@ -4980,14 +4905,14 @@ yydefault: } case 318: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2807 +//line sql.y:2785 { // Change this to an alter statement yyVAL.statement = &DDL{Action: DropIndexStr, IndexName: string(yyDollar[3].bytes), Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} } case 319: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2812 +//line sql.y:2790 { var exists bool if yyDollar[3].byt != 0 { @@ -4997,626 +4922,626 @@ yydefault: } case 320: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2822 +//line sql.y:2800 { yyVAL.tableNames = TableNames{yyDollar[1].tableName} } case 321: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2826 +//line sql.y:2804 { yyVAL.tableNames = append(yyVAL.tableNames, yyDollar[3].tableName) } case 322: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2832 +//line sql.y:2810 { yyVAL.statement = &DDL{Action: TruncateTableStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } case 323: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2838 +//line sql.y:2816 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} } case 324: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2844 +//line sql.y:2822 { yyVAL.statement = &Xa{} } case 325: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2850 +//line sql.y:2828 { yyVAL.statement = &Explain{} } case 326: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2856 +//line sql.y:2834 { yyVAL.statement = &Kill{QueryID: &NumVal{raw: string(yyDollar[2].bytes)}} } case 327: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2860 +//line sql.y:2838 { yyVAL.statement = &Kill{QueryID: &NumVal{raw: string(yyDollar[3].bytes)}} } case 328: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2866 +//line sql.y:2844 { yyVAL.statement = &Transaction{Action: BeginTxnStr} } case 329: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2870 +//line sql.y:2848 { yyVAL.statement = &Transaction{Action: StartTxnStr} } case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2874 +//line sql.y:2852 { yyVAL.statement = &Transaction{Action: RollbackTxnStr} } case 331: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2878 +//line sql.y:2856 { yyVAL.statement = &Transaction{Action: CommitTxnStr} } case 332: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2884 +//line sql.y:2862 { yyVAL.statement = &Radon{Action: AttachStr, Row: yyDollar[3].valTuple} } case 333: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2888 +//line sql.y:2866 { yyVAL.statement = &Radon{Action: DetachStr, Row: yyDollar[3].valTuple} } case 334: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2892 +//line sql.y:2870 { yyVAL.statement = &Radon{Action: AttachListStr} } case 335: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2896 +//line sql.y:2874 { yyVAL.statement = &Radon{Action: ReshardStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} } case 336: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2900 +//line sql.y:2878 { yyVAL.statement = &Radon{Action: CleanupStr} } case 337: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2906 +//line sql.y:2884 { yyVAL.statement = &Show{Type: ShowBinlogEventsStr, From: yyDollar[4].str, Limit: yyDollar[5].limit} } case 338: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2910 +//line sql.y:2888 { yyVAL.statement = &Show{Type: ShowCreateTableStr, Table: yyDollar[4].tableName} } case 339: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2914 +//line sql.y:2892 { yyVAL.statement = &Show{Type: ShowCreateDatabaseStr, Database: yyDollar[4].tableName} } case 340: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2918 +//line sql.y:2896 { yyVAL.statement = &Show{Type: ShowDatabasesStr} } case 341: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2922 +//line sql.y:2900 { yyVAL.statement = &Show{Type: ShowEnginesStr} } case 342: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2926 +//line sql.y:2904 { yyVAL.statement = &Show{Full: yyDollar[2].str, Type: ShowTablesStr, Database: yyDollar[4].tableName, Filter: yyDollar[5].showFilter} } case 343: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2930 +//line sql.y:2908 { yyVAL.statement = &Show{Full: yyDollar[2].str, Type: ShowColumnsStr, Table: yyDollar[5].tableName, Filter: yyDollar[6].showFilter} } case 344: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2934 +//line sql.y:2912 { yyVAL.statement = &Show{Type: ShowProcesslistStr} } case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2938 +//line sql.y:2916 { yyVAL.statement = &Show{Type: ShowQueryzStr} } case 346: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2942 +//line sql.y:2920 { yyVAL.statement = &Show{Type: ShowStatusStr} } case 347: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2946 +//line sql.y:2924 { yyVAL.statement = &Show{Type: ShowTableStatusStr, Database: yyDollar[4].tableName} } case 348: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2950 +//line sql.y:2928 { yyVAL.statement = &Show{Type: ShowTxnzStr} } case 349: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2954 +//line sql.y:2932 { yyVAL.statement = &Show{Type: ShowVariablesStr} } case 350: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2958 +//line sql.y:2936 { yyVAL.statement = &Show{Type: ShowVersionsStr} } case 351: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2962 +//line sql.y:2940 { yyVAL.statement = &Show{Type: ShowWarningsStr} } case 352: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2966 +//line sql.y:2944 { yyVAL.statement = &Show{Type: ShowUnsupportedStr} } case 353: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2971 +//line sql.y:2949 { yyVAL.str = "" } case 354: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2975 +//line sql.y:2953 { yyVAL.str = string(yyDollar[3].bytes) } case 355: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2980 +//line sql.y:2958 { yyVAL.tableName = TableName{} } case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2984 +//line sql.y:2962 { yyVAL.tableName = yyDollar[2].tableName } case 357: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2990 +//line sql.y:2968 { yyVAL.str = "" } case 358: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2994 +//line sql.y:2972 { yyVAL.str = "full " } case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3000 +//line sql.y:2978 { yyVAL.str = string(yyDollar[1].bytes) } case 360: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3004 +//line sql.y:2982 { yyVAL.str = string(yyDollar[1].bytes) } case 361: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3010 +//line sql.y:2988 { yyVAL.showFilter = nil } case 362: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3014 +//line sql.y:2992 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 363: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3018 +//line sql.y:2996 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } case 364: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3024 +//line sql.y:3002 { yyVAL.statement = &Checksum{Table: yyDollar[3].tableName} } case 365: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3030 +//line sql.y:3008 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } case 366: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3036 +//line sql.y:3014 { yyVAL.statement = &OtherRead{} } case 367: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3040 +//line sql.y:3018 { yyVAL.statement = &OtherRead{} } case 368: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3044 +//line sql.y:3022 { yyVAL.statement = &OtherAdmin{} } case 369: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3048 +//line sql.y:3026 { yyVAL.statement = &OtherAdmin{} } case 370: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3053 +//line sql.y:3031 { setAllowComments(yylex, true) } case 371: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3056 +//line sql.y:3034 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } case 372: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3062 +//line sql.y:3040 { yyVAL.bytes2 = nil } case 373: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3066 +//line sql.y:3044 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } case 374: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3072 +//line sql.y:3050 { yyVAL.str = UnionStr } case 375: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3076 +//line sql.y:3054 { yyVAL.str = UnionAllStr } case 376: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3080 +//line sql.y:3058 { yyVAL.str = UnionDistinctStr } case 377: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3085 +//line sql.y:3063 { yyVAL.str = "" } case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3089 +//line sql.y:3067 { yyVAL.str = SQLNoCacheStr } case 379: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3093 +//line sql.y:3071 { yyVAL.str = SQLCacheStr } case 380: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3098 +//line sql.y:3076 { yyVAL.str = "" } case 381: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3102 +//line sql.y:3080 { yyVAL.str = DistinctStr } case 382: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3107 +//line sql.y:3085 { yyVAL.str = "" } case 383: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3111 +//line sql.y:3089 { yyVAL.str = StraightJoinHint } case 384: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3116 +//line sql.y:3094 { yyVAL.selectExprs = nil } case 385: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3120 +//line sql.y:3098 { yyVAL.selectExprs = yyDollar[1].selectExprs } case 386: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3126 +//line sql.y:3104 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3130 +//line sql.y:3108 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } case 388: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3136 +//line sql.y:3114 { yyVAL.selectExpr = &StarExpr{} } case 389: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3140 +//line sql.y:3118 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } case 390: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3144 +//line sql.y:3122 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } case 391: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3148 +//line sql.y:3126 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } case 392: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3153 +//line sql.y:3131 { yyVAL.colIdent = ColIdent{} } case 393: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3157 +//line sql.y:3135 { yyVAL.colIdent = yyDollar[1].colIdent } case 394: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3161 +//line sql.y:3139 { yyVAL.colIdent = yyDollar[2].colIdent } case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3168 +//line sql.y:3146 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 397: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3173 +//line sql.y:3151 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } case 398: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3177 +//line sql.y:3155 { yyVAL.tableExprs = yyDollar[2].tableExprs } case 399: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3183 +//line sql.y:3161 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } case 400: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3187 +//line sql.y:3165 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } case 403: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3197 +//line sql.y:3175 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } case 404: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3201 +//line sql.y:3179 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } case 405: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3205 +//line sql.y:3183 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } case 406: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3211 +//line sql.y:3189 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } case 407: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3224 +//line sql.y:3202 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } case 408: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3228 +//line sql.y:3206 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } case 409: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3232 +//line sql.y:3210 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } case 410: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3236 +//line sql.y:3214 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } case 411: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3241 +//line sql.y:3219 { yyVAL.empty = struct{}{} } case 412: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3245 +//line sql.y:3223 { yyVAL.empty = struct{}{} } case 413: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3250 +//line sql.y:3228 { yyVAL.tableIdent = NewTableIdent("") } case 414: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3254 +//line sql.y:3232 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 415: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3258 +//line sql.y:3236 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3265 +//line sql.y:3243 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 418: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3271 +//line sql.y:3249 { yyVAL.str = JoinStr } case 419: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3275 +//line sql.y:3253 { yyVAL.str = JoinStr } case 420: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3279 +//line sql.y:3257 { yyVAL.str = JoinStr } case 421: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3283 +//line sql.y:3261 { yyVAL.str = StraightJoinStr } case 422: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3289 +//line sql.y:3267 { yyVAL.str = LeftJoinStr } case 423: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3293 +//line sql.y:3271 { yyVAL.str = LeftJoinStr } case 424: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3297 +//line sql.y:3275 { yyVAL.str = RightJoinStr } case 425: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3301 +//line sql.y:3279 { yyVAL.str = RightJoinStr } case 426: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3307 +//line sql.y:3285 { yyVAL.str = NaturalJoinStr } case 427: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3311 +//line sql.y:3289 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -5626,457 +5551,457 @@ yydefault: } case 428: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3321 +//line sql.y:3299 { yyVAL.tableName = yyDollar[2].tableName } case 429: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3325 +//line sql.y:3303 { yyVAL.tableName = yyDollar[1].tableName } case 430: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3331 +//line sql.y:3309 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3335 +//line sql.y:3313 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 432: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3340 +//line sql.y:3318 { yyVAL.indexHints = nil } case 433: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3344 +//line sql.y:3322 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].colIdents} } case 434: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3348 +//line sql.y:3326 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].colIdents} } case 435: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3352 +//line sql.y:3330 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].colIdents} } case 436: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3358 +//line sql.y:3336 { yyVAL.colIdents = []ColIdent{yyDollar[1].colIdent} } case 437: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3362 +//line sql.y:3340 { yyVAL.colIdents = append(yyDollar[1].colIdents, yyDollar[3].colIdent) } case 438: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3367 +//line sql.y:3345 { yyVAL.expr = nil } case 439: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3371 +//line sql.y:3349 { yyVAL.expr = yyDollar[2].expr } case 440: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3377 +//line sql.y:3355 { yyVAL.expr = yyDollar[1].expr } case 441: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3381 +//line sql.y:3359 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 442: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3385 +//line sql.y:3363 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 443: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3389 +//line sql.y:3367 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } case 444: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3393 +//line sql.y:3371 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3397 +//line sql.y:3375 { yyVAL.expr = yyDollar[1].expr } case 446: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3401 +//line sql.y:3379 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } case 447: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3407 +//line sql.y:3385 { yyVAL.str = "" } case 448: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3411 +//line sql.y:3389 { yyVAL.str = string(yyDollar[2].bytes) } case 449: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3417 +//line sql.y:3395 { yyVAL.boolVal = BoolVal(true) } case 450: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3421 +//line sql.y:3399 { yyVAL.boolVal = BoolVal(false) } case 451: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3427 +//line sql.y:3405 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 452: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3431 +//line sql.y:3409 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 453: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3435 +//line sql.y:3413 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 454: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3439 +//line sql.y:3417 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 455: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3443 +//line sql.y:3421 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 456: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3447 +//line sql.y:3425 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 457: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3451 +//line sql.y:3429 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 458: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3455 +//line sql.y:3433 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 459: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3459 +//line sql.y:3437 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 460: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3463 +//line sql.y:3441 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 461: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3469 +//line sql.y:3447 { yyVAL.str = IsNullStr } case 462: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3473 +//line sql.y:3451 { yyVAL.str = IsNotNullStr } case 463: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3477 +//line sql.y:3455 { yyVAL.str = IsTrueStr } case 464: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3481 +//line sql.y:3459 { yyVAL.str = IsNotTrueStr } case 465: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3485 +//line sql.y:3463 { yyVAL.str = IsFalseStr } case 466: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3489 +//line sql.y:3467 { yyVAL.str = IsNotFalseStr } case 467: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3495 +//line sql.y:3473 { yyVAL.str = EqualStr } case 468: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3499 +//line sql.y:3477 { yyVAL.str = LessThanStr } case 469: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3503 +//line sql.y:3481 { yyVAL.str = GreaterThanStr } case 470: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3507 +//line sql.y:3485 { yyVAL.str = LessEqualStr } case 471: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3511 +//line sql.y:3489 { yyVAL.str = GreaterEqualStr } case 472: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3515 +//line sql.y:3493 { yyVAL.str = NotEqualStr } case 473: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3519 +//line sql.y:3497 { yyVAL.str = NullSafeEqualStr } case 474: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3524 +//line sql.y:3502 { yyVAL.expr = nil } case 475: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3528 +//line sql.y:3506 { yyVAL.expr = yyDollar[2].expr } case 476: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3534 +//line sql.y:3512 { yyVAL.colTuple = yyDollar[1].valTuple } case 477: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3538 +//line sql.y:3516 { yyVAL.colTuple = yyDollar[1].subquery } case 478: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3542 +//line sql.y:3520 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 479: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3548 +//line sql.y:3526 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 480: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3554 +//line sql.y:3532 { yyVAL.exprs = Exprs{yyDollar[1].expr} } case 481: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3558 +//line sql.y:3536 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 482: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3564 +//line sql.y:3542 { yyVAL.expr = yyDollar[1].expr } case 483: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3568 +//line sql.y:3546 { yyVAL.expr = yyDollar[1].boolVal } case 484: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3572 +//line sql.y:3550 { yyVAL.expr = yyDollar[1].colName } case 485: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3576 +//line sql.y:3554 { yyVAL.expr = yyDollar[1].expr } case 486: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3580 +//line sql.y:3558 { yyVAL.expr = yyDollar[1].subquery } case 487: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3584 +//line sql.y:3562 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 488: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3588 +//line sql.y:3566 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 489: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3592 +//line sql.y:3570 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 490: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3596 +//line sql.y:3574 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 491: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3600 +//line sql.y:3578 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 492: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3604 +//line sql.y:3582 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 493: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3608 +//line sql.y:3586 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 494: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3612 +//line sql.y:3590 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 495: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3616 +//line sql.y:3594 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 496: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3620 +//line sql.y:3598 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 497: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3624 +//line sql.y:3602 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 498: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3628 +//line sql.y:3606 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 499: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3632 +//line sql.y:3610 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 500: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3636 +//line sql.y:3614 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 501: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3640 +//line sql.y:3618 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 502: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3644 +//line sql.y:3622 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 503: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3648 +//line sql.y:3626 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -6086,7 +6011,7 @@ yydefault: } case 504: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3656 +//line sql.y:3634 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -6102,19 +6027,19 @@ yydefault: } case 505: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3670 +//line sql.y:3648 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } case 506: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3674 +//line sql.y:3652 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } case 507: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3678 +//line sql.y:3656 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -6124,223 +6049,223 @@ yydefault: } case 512: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3696 +//line sql.y:3674 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } case 513: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3700 +//line sql.y:3678 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } case 514: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3704 +//line sql.y:3682 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } case 515: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3714 +//line sql.y:3692 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } case 516: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3718 +//line sql.y:3696 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } case 517: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3722 +//line sql.y:3700 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 518: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3726 +//line sql.y:3704 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 519: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:3730 +//line sql.y:3708 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 520: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:3734 +//line sql.y:3712 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 521: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:3738 +//line sql.y:3716 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } case 522: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3742 +//line sql.y:3720 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 523: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3746 +//line sql.y:3724 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colIdent} } case 524: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3756 +//line sql.y:3734 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } case 525: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3760 +//line sql.y:3738 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } case 526: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3764 +//line sql.y:3742 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } case 527: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3768 +//line sql.y:3746 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } case 528: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3773 +//line sql.y:3751 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } case 529: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3778 +//line sql.y:3756 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } case 530: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3783 +//line sql.y:3761 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } case 531: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3788 +//line sql.y:3766 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } case 534: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3803 +//line sql.y:3781 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } case 535: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3807 +//line sql.y:3785 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } case 536: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3811 +//line sql.y:3789 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } case 537: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3815 +//line sql.y:3793 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } case 538: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3821 +//line sql.y:3799 { yyVAL.str = "" } case 539: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3825 +//line sql.y:3803 { yyVAL.str = BooleanModeStr } case 540: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3829 +//line sql.y:3807 { yyVAL.str = NaturalLanguageModeStr } case 541: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:3833 +//line sql.y:3811 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } case 542: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3837 +//line sql.y:3815 { yyVAL.str = QueryExpansionStr } case 543: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3843 +//line sql.y:3821 { yyVAL.str = string(yyDollar[1].bytes) } case 544: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3847 +//line sql.y:3825 { yyVAL.str = string(yyDollar[1].bytes) } case 545: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3853 +//line sql.y:3831 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 546: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3857 +//line sql.y:3835 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } case 547: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3861 +//line sql.y:3839 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } case 548: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3865 +//line sql.y:3843 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 549: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3869 +//line sql.y:3847 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 550: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3873 +//line sql.y:3851 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].lengthScaleOption.Length @@ -6348,163 +6273,163 @@ yydefault: } case 551: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3879 +//line sql.y:3857 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 552: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3883 +//line sql.y:3861 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 553: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3887 +//line sql.y:3865 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 554: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3891 +//line sql.y:3869 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 555: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3895 +//line sql.y:3873 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } case 556: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3899 +//line sql.y:3877 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 557: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3903 +//line sql.y:3881 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 558: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3908 +//line sql.y:3886 { yyVAL.expr = nil } case 559: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3912 +//line sql.y:3890 { yyVAL.expr = yyDollar[1].expr } case 560: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3917 +//line sql.y:3895 { yyVAL.str = string("") } case 561: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3921 +//line sql.y:3899 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } case 562: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3927 +//line sql.y:3905 { yyVAL.whens = []*When{yyDollar[1].when} } case 563: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3931 +//line sql.y:3909 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } case 564: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:3937 +//line sql.y:3915 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } case 565: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:3942 +//line sql.y:3920 { yyVAL.expr = nil } case 566: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:3946 +//line sql.y:3924 { yyVAL.expr = yyDollar[2].expr } case 567: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3952 +//line sql.y:3930 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 568: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:3956 +//line sql.y:3934 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 569: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:3960 +//line sql.y:3938 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 570: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3966 +//line sql.y:3944 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 571: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3970 +//line sql.y:3948 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 572: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3974 +//line sql.y:3952 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 573: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3978 +//line sql.y:3956 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 574: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3982 +//line sql.y:3960 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 575: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3986 +//line sql.y:3964 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 576: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3990 +//line sql.y:3968 { yyVAL.expr = &NullVal{} } case 577: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:3996 +//line sql.y:3974 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -6515,237 +6440,237 @@ yydefault: } case 578: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4005 +//line sql.y:3983 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 579: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4009 +//line sql.y:3987 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 580: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4014 +//line sql.y:3992 { yyVAL.exprs = nil } case 581: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4018 +//line sql.y:3996 { yyVAL.exprs = yyDollar[3].exprs } case 582: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4023 +//line sql.y:4001 { yyVAL.expr = nil } case 583: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4027 +//line sql.y:4005 { yyVAL.expr = yyDollar[2].expr } case 584: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4032 +//line sql.y:4010 { yyVAL.orderBy = nil } case 585: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4036 +//line sql.y:4014 { yyVAL.orderBy = yyDollar[3].orderBy } case 586: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4042 +//line sql.y:4020 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } case 587: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4046 +//line sql.y:4024 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } case 588: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4052 +//line sql.y:4030 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } case 589: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4057 +//line sql.y:4035 { yyVAL.str = AscScr } case 590: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4061 +//line sql.y:4039 { yyVAL.str = AscScr } case 591: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4065 +//line sql.y:4043 { yyVAL.str = DescScr } case 592: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4070 +//line sql.y:4048 { yyVAL.limit = nil } case 593: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4074 +//line sql.y:4052 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } case 594: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4078 +//line sql.y:4056 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } case 595: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4082 +//line sql.y:4060 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } case 596: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4087 +//line sql.y:4065 { yyVAL.str = "" } case 597: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4091 +//line sql.y:4069 { yyVAL.str = ForUpdateStr } case 598: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4095 +//line sql.y:4073 { yyVAL.str = ShareModeStr } case 599: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4108 +//line sql.y:4086 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } case 600: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4112 +//line sql.y:4090 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } case 601: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4116 +//line sql.y:4094 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } case 602: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:4121 +//line sql.y:4099 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } case 603: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:4125 +//line sql.y:4103 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } case 604: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:4129 +//line sql.y:4107 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } case 605: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4136 +//line sql.y:4114 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 606: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4140 +//line sql.y:4118 { yyVAL.columns = Columns{yyDollar[3].colIdent} } case 607: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4144 +//line sql.y:4122 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 608: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:4148 +//line sql.y:4126 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } case 609: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4153 +//line sql.y:4131 { yyVAL.updateExprs = nil } case 610: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:4157 +//line sql.y:4135 { yyVAL.updateExprs = yyDollar[5].updateExprs } case 611: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4163 +//line sql.y:4141 { yyVAL.values = Values{yyDollar[1].valTuple} } case 612: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4167 +//line sql.y:4145 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } case 613: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4173 +//line sql.y:4151 { yyVAL.valTuple = yyDollar[1].valTuple } case 614: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4177 +//line sql.y:4155 { yyVAL.valTuple = ValTuple{} } case 615: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4183 +//line sql.y:4161 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } case 616: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4189 +//line sql.y:4167 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -6755,386 +6680,386 @@ yydefault: } case 617: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4199 +//line sql.y:4177 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } case 618: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4203 +//line sql.y:4181 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } case 619: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4209 +//line sql.y:4187 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } case 620: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4215 +//line sql.y:4193 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } case 621: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4219 +//line sql.y:4197 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } case 622: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4225 +//line sql.y:4203 { yyVAL.setExpr = yyDollar[1].setExpr } case 623: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4229 +//line sql.y:4207 { yyDollar[2].setExpr.Scope = yyDollar[1].str yyVAL.setExpr = yyDollar[2].setExpr } case 624: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4236 +//line sql.y:4214 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: NewStrVal([]byte("on"))}} } case 625: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4240 +//line sql.y:4218 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: NewStrVal([]byte("off"))}} } case 626: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4244 +//line sql.y:4222 { yyVAL.setExpr = &SetExpr{Type: yyDollar[1].colIdent, Val: &OptVal{Value: yyDollar[3].expr}} } case 627: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4248 +//line sql.y:4226 { yyVAL.setExpr = &SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: &OptVal{Value: yyDollar[2].expr}} } case 628: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4252 +//line sql.y:4230 { yyVAL.setExpr = &SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: &OptVal{Value: &CollateExpr{Expr: yyDollar[2].expr, Charset: yyDollar[3].str}}} } case 630: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4259 +//line sql.y:4237 { yyVAL.bytes = []byte("charset") } case 631: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4265 +//line sql.y:4243 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } case 632: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4269 +//line sql.y:4247 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 633: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4273 +//line sql.y:4251 { yyVAL.expr = &Default{} } case 634: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4279 +//line sql.y:4257 { yyVAL.setExprs = SetExprs{&SetExpr{Type: NewColIdent(string(yyDollar[1].bytes)), Val: yyDollar[2].setVal}} } case 635: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4283 +//line sql.y:4261 { yyVAL.setExprs = SetExprs{&SetExpr{Scope: yyDollar[1].str, Type: NewColIdent(string(yyDollar[2].bytes)), Val: yyDollar[3].setVal}} } case 636: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4289 +//line sql.y:4267 { yyVAL.setVal = &TxnVal{Level: yyDollar[1].str, Mode: yyDollar[2].str} } case 637: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4293 +//line sql.y:4271 { yyVAL.setVal = &TxnVal{Level: yyDollar[2].str, Mode: yyDollar[1].str} } case 638: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4299 +//line sql.y:4277 { yyVAL.str = "" } case 639: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4303 +//line sql.y:4281 { yyVAL.str = yyDollar[2].str } case 640: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4309 +//line sql.y:4287 { yyVAL.str = yyDollar[3].str } case 641: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4315 +//line sql.y:4293 { yyVAL.str = RepeatableRead } case 642: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4319 +//line sql.y:4297 { yyVAL.str = ReadCommitted } case 643: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4323 +//line sql.y:4301 { yyVAL.str = ReadUncommitted } case 644: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4327 +//line sql.y:4305 { yyVAL.str = Serializable } case 645: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4333 +//line sql.y:4311 { yyVAL.str = "" } case 646: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4337 +//line sql.y:4315 { yyVAL.str = yyDollar[2].str } case 647: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4343 +//line sql.y:4321 { yyVAL.str = TxReadWrite } case 648: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4347 +//line sql.y:4325 { yyVAL.str = TxReadOnly } case 649: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4353 +//line sql.y:4331 { yyVAL.str = SessionStr } case 650: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4357 +//line sql.y:4335 { yyVAL.str = SessionStr } case 651: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4361 +//line sql.y:4339 { yyVAL.str = GlobalStr } case 654: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4370 +//line sql.y:4348 { yyVAL.byt = 0 } case 655: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:4374 +//line sql.y:4352 { yyVAL.byt = 1 } case 656: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4379 +//line sql.y:4357 { yyVAL.byt = 0 } case 657: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:4383 +//line sql.y:4361 { yyVAL.byt = 1 } case 658: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4388 +//line sql.y:4366 { yyVAL.str = "" } case 659: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4392 +//line sql.y:4370 { yyVAL.str = IgnoreStr } case 660: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4398 +//line sql.y:4376 { yyVAL.empty = struct{}{} } case 661: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4402 +//line sql.y:4380 { yyVAL.empty = struct{}{} } case 662: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4406 +//line sql.y:4384 { yyVAL.empty = struct{}{} } case 663: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4410 +//line sql.y:4388 { yyVAL.empty = struct{}{} } case 664: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4414 +//line sql.y:4392 { yyVAL.empty = struct{}{} } case 665: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4418 +//line sql.y:4396 { yyVAL.empty = struct{}{} } case 666: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4422 +//line sql.y:4400 { yyVAL.empty = struct{}{} } case 667: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4426 +//line sql.y:4404 { yyVAL.empty = struct{}{} } case 668: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4430 +//line sql.y:4408 { yyVAL.empty = struct{}{} } case 669: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4434 +//line sql.y:4412 { yyVAL.empty = struct{}{} } case 670: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4439 +//line sql.y:4417 { yyVAL.empty = struct{}{} } case 671: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4443 +//line sql.y:4421 { yyVAL.empty = struct{}{} } case 672: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4447 +//line sql.y:4425 { yyVAL.empty = struct{}{} } case 673: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4453 +//line sql.y:4431 { yyVAL.empty = struct{}{} } case 674: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4457 +//line sql.y:4435 { yyVAL.empty = struct{}{} } case 675: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4462 +//line sql.y:4440 { yyVAL.str = IndexStr } case 676: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4466 +//line sql.y:4444 { yyVAL.str = UniqueStr } case 677: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4472 +//line sql.y:4450 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 678: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4476 +//line sql.y:4454 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 680: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4483 +//line sql.y:4461 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 681: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4489 +//line sql.y:4467 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 682: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4493 +//line sql.y:4471 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 684: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4500 +//line sql.y:4478 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 876: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4718 +//line sql.y:4696 { if incNesting(yylex) { yylex.Error("max nesting level reached") @@ -7143,31 +7068,13 @@ yydefault: } case 877: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4727 +//line sql.y:4705 { decNesting(yylex) } case 878: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4732 - { - forceEOF(yylex) - } - case 879: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:4737 - { - forceEOF(yylex) - } - case 880: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4741 - { - forceEOF(yylex) - } - case 881: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:4745 +//line sql.y:4710 { forceEOF(yylex) } diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y index 60e1fdaf..a65034af 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y @@ -18,31 +18,31 @@ limitations under the License. package sqlparser func setParseTree(yylex interface{}, stmt Statement) { - yylex.(*Tokenizer).ParseTree = stmt + yylex.(*Tokenizer).ParseTree = stmt } func setAllowComments(yylex interface{}, allow bool) { - yylex.(*Tokenizer).AllowComments = allow + yylex.(*Tokenizer).AllowComments = allow } func setDDL(yylex interface{}, ddl *DDL) { - yylex.(*Tokenizer).partialDDL = ddl + yylex.(*Tokenizer).partialDDL = ddl } func incNesting(yylex interface{}) bool { - yylex.(*Tokenizer).nesting++ - if yylex.(*Tokenizer).nesting == 200 { - return true - } - return false + yylex.(*Tokenizer).nesting++ + if yylex.(*Tokenizer).nesting == 200 { + return true + } + return false } func decNesting(yylex interface{}) { - yylex.(*Tokenizer).nesting-- + yylex.(*Tokenizer).nesting-- } func forceEOF(yylex interface{}) { - yylex.(*Tokenizer).ForceEOF = true + yylex.(*Tokenizer).ForceEOF = true } %} @@ -112,6 +112,7 @@ func forceEOF(yylex interface{}) { databaseOption *DatabaseOption partitionDefinition *PartitionDefinition partitionDefinitions []*PartitionDefinition + partitionOption PartitionOption showFilter *ShowFilter } @@ -417,43 +418,43 @@ func forceEOF(yylex interface{}) { SIGNED UNSIGNED ZEROFILL - FIXED - DYNAMIC - STORAGE - DISK - MEMORY - COLUMN_FORMAT - AVG_ROW_LENGTH - COMPRESSION - CONNECTION - DATA - DIRECTORY - DELAY_KEY_WRITE - ENCRYPTION - INSERT_METHOD - MAX_ROWS - MIN_ROWS - PACK_KEYS - PASSWORD - ROW_FORMAT - STATS_AUTO_RECALC - STATS_PERSISTENT - STATS_SAMPLE_PAGES - TABLESPACE + FIXED + DYNAMIC + STORAGE + DISK + MEMORY + COLUMN_FORMAT + AVG_ROW_LENGTH + COMPRESSION + CONNECTION + DATA + DIRECTORY + DELAY_KEY_WRITE + ENCRYPTION + INSERT_METHOD + MAX_ROWS + MIN_ROWS + PACK_KEYS + PASSWORD + ROW_FORMAT + STATS_AUTO_RECALC + STATS_PERSISTENT + STATS_SAMPLE_PAGES + TABLESPACE // ROW_FORMAT options %token - COMPRESSED - REDUNDANT - COMPACT - TOKUDB_DEFAULT - TOKUDB_FAST - TOKUDB_SMALL - TOKUDB_ZLIB - TOKUDB_QUICKLZ - TOKUDB_LZMA - TOKUDB_SNAPPY - TOKUDB_UNCOMPRESSED + COMPRESSED + REDUNDANT + COMPACT + TOKUDB_DEFAULT + TOKUDB_FAST + TOKUDB_SMALL + TOKUDB_ZLIB + TOKUDB_QUICKLZ + TOKUDB_LZMA + TOKUDB_SNAPPY + TOKUDB_UNCOMPRESSED // Supported SHOW tokens %token @@ -832,7 +833,6 @@ func forceEOF(yylex interface{}) { %type force_eof - ddl_force_eof %type charset @@ -863,7 +863,6 @@ func forceEOF(yylex interface{}) { table_engine_option parts_num_opt table_charset_option - table_type_option table_auto_opt table_comment_opt table_avg_row_length_opt @@ -996,6 +995,9 @@ func forceEOF(yylex interface{}) { %type partition_definitions +%type + partition_option + %start any_command @@ -1168,46 +1170,11 @@ parts_num_opt: } create_statement: - create_table_prefix table_spec - { - $1.Action = CreateTableStr - $1.TableSpec = $2 - $$ = $1 - } -| create_table_prefix table_spec PARTITION BY HASH openb col_id closeb parts_num_opt ddl_force_eof - { - $1.Action = CreateTableStr - $1.TableSpec = $2 - $1.PartitionName = $7.String() - $1.PartitionNum = $9 - if $2.Options.Type == GlobalTableType || $2.Options.Type == SingleTableType { - yylex.Error("SINGLE or GLOBAL should not be used simultaneously with PARTITION") - return 1 - } else { - $1.TableSpec.Options.Type = PartitionTableHash - } - $$ = $1 - } -| create_table_prefix table_spec PARTITION BY LIST openb col_id closeb openb partition_definitions closeb ddl_force_eof + create_table_prefix table_spec partition_option { $1.Action = CreateTableStr $1.TableSpec = $2 - $1.PartitionName = $7.String() - $1.TableSpec.Options.Type = PartitionTableList - $1.PartitionOptions = $10 - $$ = $1 - } -| create_table_prefix table_spec DISTRIBUTED BY openb col_id closeb ddl_force_eof - { - $1.Action = CreateTableStr - $1.TableSpec = $2 - $1.BackendName = $6.String() - if $2.Options.Type == GlobalTableType || $2.Options.Type == SingleTableType { - yylex.Error("SINGLE or GLOBAL should not be used simultaneously with DISTRIBUTED") - return 1 - } else { - $1.TableSpec.Options.Type = SingleTableType - } + $1.PartitionOption = $3 $$ = $1 } | CREATE DATABASE not_exists_opt table_id database_option_list_opt @@ -1227,10 +1194,44 @@ create_statement: $$ = &DDL{Action: CreateIndexStr, IndexType: FullTextStr, IndexName: string($4), Table: $6, NewName: $6, IndexOpts: NewIndexOptions($8, append($10, $11...))} } | CREATE SPATIAL INDEX ID ON table_name openb index_column_list closeb spatial_key_opts lock_algorithm_opts - { + { $$ = &DDL{Action: CreateIndexStr, IndexType: SpatialStr, IndexName: string($4), Table: $6, NewName: $6, IndexOpts: NewIndexOptions($8, append($10, $11...))} } +partition_option: + /* empty */ + { + $$ = &PartOptNormal{} + } +| GLOBAL + { + $$ = &PartOptGlobal{} + } +| SINGLE + { + $$ = &PartOptSingle{} + } +| DISTRIBUTED BY openb col_id closeb + { + $$ = &PartOptSingle{ + BackendName: $4.String(), + } + } +| PARTITION BY LIST openb col_id closeb openb partition_definitions closeb + { + $$ = &PartOptList{ + Name: $5.String(), + PartDefs: $8, + } + } +| PARTITION BY HASH openb col_id closeb parts_num_opt + { + $$ = &PartOptHash{ + Name: $5.String(), + PartitionNum: $7, + } + } + index_using_str: HASH { @@ -1459,9 +1460,6 @@ table_spec: if val := $4.GetTableOptValByType(TableOptionCharset); val != nil { $$.Options.Charset = String(val) } - if val := $4.GetTableOptValByType(TableOptionTableType); val != nil { - $$.Options.Type = String(val) - } if val := $4.GetTableOptValByType(TableOptionAvgRowLength); val != nil { $$.Options.AvgRowLength = String(val) } @@ -1523,9 +1521,6 @@ table_spec: $$.Options.TableSpace = String(val) } } - if $$.Options.Type == "" { - $$.Options.Type = NormalTableType - } } table_option_list_opt: @@ -1569,13 +1564,6 @@ table_option: Val: $1, } } -| table_type_option - { - $$ = &TableOption{ - Type: TableOptionTableType, - Val: $1, - } - } | table_auto_opt { $$ = &TableOption{ @@ -1603,126 +1591,126 @@ table_option: Type: TableOptionCollate, Val: $1, } - } + } | table_compression_opt { $$ = &TableOption{ Type: TableOptionCompression, Val: $1, } - } + } | table_connection_opt - { + { $$ = &TableOption{ Type: TableOptionConnection, Val: $1, } - } + } | table_data_directory_opt - { + { $$ = &TableOption{ Type: TableOptionDataDirectory, Val: $1, } - } + } | table_index_directory_opt - { + { $$ = &TableOption{ Type: TableOptionIndexDirectory, Val: $1, } - } + } | table_delay_key_write_opt - { + { $$ = &TableOption{ Type: TableOptionDelayKeyWrite, Val: $1, } - } + } | table_encryption_opt - { + { $$ = &TableOption{ Type: TableOptionEncryption, Val: $1, } - } + } | table_insert_method_opt - { + { $$ = &TableOption{ Type: TableOptionInsertMethod, Val: $1, } - } + } | table_key_block_size_opt - { + { $$ = &TableOption{ Type: TableOptionKeyBlockSize, Val: $1, } - } + } | table_max_rows_opt - { + { $$ = &TableOption{ Type: TableOptionMaxRows, Val: $1, } - } + } | table_min_rows_opt - { + { $$ = &TableOption{ Type: TableOptionMinRows, Val: $1, } - } + } | table_pack_keys_opt - { + { $$ = &TableOption{ Type: TableOptionPackKeys, Val: $1, } - } + } | table_password_opt - { + { $$ = &TableOption{ Type: TableOptionPassword, Val: $1, } - } + } | table_row_format_opt - { + { $$ = &TableOption{ Type: TableOptionRowFormat, Val: $1, } - } + } | table_stats_auto_recalc_opt - { + { $$ = &TableOption{ Type: TableOptionStatsAutoRecalc, Val: $1, } - } + } | table_stats_persistent_opt - { + { $$ = &TableOption{ Type: TableOptionStatsPersistent, Val: $1, } - } + } | table_stats_sample_pages_opt - { + { $$ = &TableOption{ Type: TableOptionStatsSamplePages, Val: $1, } - } + } | table_tablespace_opt - { + { $$ = &TableOption{ Type: TableOptionTableSpace, Val: $1, } - } + } table_auto_opt: AUTO_INCREMENT opt_equal INTEGRAL @@ -1731,8 +1719,8 @@ table_auto_opt: table_avg_row_length_opt: AVG_ROW_LENGTH opt_equal INTEGRAL { - $$ = NewIntVal($3) - } + $$ = NewIntVal($3) + } table_collate_opt: opt_default COLLATE opt_equal id_or_string @@ -1743,13 +1731,13 @@ table_collate_opt: table_compression_opt: COMPRESSION opt_equal STRING { - switch StrToLower(string($3)) { - case "zlib", "lz4", "none": - break - default: - yylex.Error("Invalid compression option, argument (should be 'ZLIB', 'LZ4' or 'NONE')") - return 1 - } + switch StrToLower(string($3)) { + case "zlib", "lz4", "none": + break + default: + yylex.Error("Invalid compression option, argument (should be 'ZLIB', 'LZ4' or 'NONE')") + return 1 + } $$ = NewStrVal($3) } @@ -1780,29 +1768,29 @@ table_delay_key_write_opt: table_encryption_opt: ENCRYPTION opt_equal STRING { - switch string($3) { - case "Y", "y": - yylex.Error("The encryption option is parsed but ignored by all storage engines.") - return 1 - case "N", "n": - break - default: - yylex.Error("Invalid encryption option, argument (should be Y or N)") - return 1 - } + switch string($3) { + case "Y", "y": + yylex.Error("The encryption option is parsed but ignored by all storage engines.") + return 1 + case "N", "n": + break + default: + yylex.Error("Invalid encryption option, argument (should be Y or N)") + return 1 + } $$ = NewStrVal($3) } table_insert_method_opt: INSERT_METHOD opt_equal ID { - switch StrToLower(string($3)) { - case "no", "first", "last": - break - default: - yylex.Error("Invalid insert_method option, argument (should be NO, FIRST or LAST)") - return 1 - } + switch StrToLower(string($3)) { + case "no", "first", "last": + break + default: + yylex.Error("Invalid insert_method option, argument (should be NO, FIRST or LAST)") + return 1 + } $$ = NewStrValWithoutQuote($3) } @@ -1830,9 +1818,9 @@ table_pack_keys_opt: $$ = NewStrValWithoutQuote($3) } | PACK_KEYS opt_equal DEFAULT - { + { $$ = NewStrValWithoutQuote($3) - } + } table_password_opt: PASSWORD opt_equal STRING @@ -1906,9 +1894,9 @@ table_stats_auto_recalc_opt: $$ = NewStrValWithoutQuote($3) } | STATS_AUTO_RECALC opt_equal DEFAULT - { + { $$ = NewStrValWithoutQuote($3) - } + } table_stats_persistent_opt: STATS_PERSISTENT opt_equal INTEGRAL @@ -1916,9 +1904,9 @@ table_stats_persistent_opt: $$ = NewStrValWithoutQuote($3) } | STATS_PERSISTENT opt_equal DEFAULT - { + { $$ = NewStrValWithoutQuote($3) - } + } // In MySQL, STATS_SAMPLE_PAGES=N(Where 0