“dfb4abafb507a265ea7acedb35ab80e5a6b91c64”上不存在“develop/doc/faq/model/index_en.html”
未验证 提交 d070981d 编写于 作者: martianzhang's avatar martianzhang 提交者: GitHub

Merge pull request #81 from liipx/master

update vitess, rename Newtable to others
...@@ -2305,7 +2305,7 @@ func (q *Query4Audit) RuleCreateDualTable() Rule { ...@@ -2305,7 +2305,7 @@ func (q *Query4Audit) RuleCreateDualTable() Rule {
var rule = q.RuleOK() var rule = q.RuleOK()
switch s := q.Stmt.(type) { switch s := q.Stmt.(type) {
case *sqlparser.DDL: case *sqlparser.DDL:
if s.NewName.Name.String() == "dual" { if s.Table.Name.String() == "dual" {
rule = HeuristicRules["TBL.003"] rule = HeuristicRules["TBL.003"]
} }
......
...@@ -77,27 +77,15 @@ func GetMeta(stmt sqlparser.Statement, meta common.Meta) common.Meta { ...@@ -77,27 +77,15 @@ func GetMeta(stmt sqlparser.Statement, meta common.Meta) common.Meta {
switch expr := node.(type) { switch expr := node.(type) {
case *sqlparser.DDL: case *sqlparser.DDL:
// 如果SQL是一个DDL,则不需要继续遍历语法树了 // 如果SQL是一个DDL,则不需要继续遍历语法树了
db1 := expr.Table.Qualifier.String() for _, tb := range expr.FromTables {
tb1 := expr.Table.Name.String() appendTable(tb, "", meta)
db2 := expr.NewName.Qualifier.String()
tb2 := expr.NewName.Name.String()
if tb1 != "" {
if _, ok := meta[db1]; !ok {
meta[db1] = common.NewDB(db1)
}
meta[db1].Table[tb1] = common.NewTable(tb1)
} }
if tb2 != "" { for _, tb := range expr.ToTables {
if _, ok := meta[db2]; !ok { appendTable(tb, "", meta)
meta[db2] = common.NewDB(db2)
}
meta[db2].Table[tb2] = common.NewTable(tb2)
} }
appendTable(expr.Table, "", meta)
return false, nil return false, nil
case *sqlparser.AliasedTableExpr: case *sqlparser.AliasedTableExpr:
// 非 DDL 情况下处理 TableExpr // 非 DDL 情况下处理 TableExpr
...@@ -110,26 +98,7 @@ func GetMeta(stmt sqlparser.Statement, meta common.Meta) common.Meta { ...@@ -110,26 +98,7 @@ func GetMeta(stmt sqlparser.Statement, meta common.Meta) common.Meta {
// 表名存放在 AST 中 TableName 里,包含表名与表前缀名。 // 表名存放在 AST 中 TableName 里,包含表名与表前缀名。
// 当与 As 相对应的 Expr 为 TableName 的时候,别名才是一张实体表的别名,否则为结果集的别名。 // 当与 As 相对应的 Expr 为 TableName 的时候,别名才是一张实体表的别名,否则为结果集的别名。
case sqlparser.TableName: case sqlparser.TableName:
db := table.Qualifier.String() appendTable(table, expr.As.String(), meta)
tb := table.Name.String()
if meta[db] == nil {
meta[db] = common.NewDB(db)
}
meta[db].Table[tb] = common.NewTable(tb)
// alias去重
aliasExist := false
for _, existedAlias := range meta[db].Table[tb].TableAliases {
if existedAlias == expr.As.String() {
aliasExist = true
}
}
if !aliasExist {
meta[db].Table[tb].TableAliases = append(meta[db].Table[tb].TableAliases, expr.As.String())
}
default: default:
// 如果 AliasedTableExpr 中的 Expr 不是 TableName 结构体,则表示该表为一个查询结果集(子查询或临时表)。 // 如果 AliasedTableExpr 中的 Expr 不是 TableName 结构体,则表示该表为一个查询结果集(子查询或临时表)。
// 在这里记录一下别名,但将列名制空,用来保证在其他环节中判断列前缀的时候不会有遗漏 // 在这里记录一下别名,但将列名制空,用来保证在其他环节中判断列前缀的时候不会有遗漏
...@@ -152,6 +121,49 @@ func GetMeta(stmt sqlparser.Statement, meta common.Meta) common.Meta { ...@@ -152,6 +121,49 @@ func GetMeta(stmt sqlparser.Statement, meta common.Meta) common.Meta {
return meta return meta
} }
// appendTable 将 sqlparser.TableName 中的库表信息提取后放到 meta 中
// @tb 为 sqlparser.TableName 对象
// @as 为该表的别名,无别名时为空
// @meta 为信息集合
func appendTable(tb sqlparser.TableName, as string, meta map[string]*common.DB) map[string]*common.DB {
if meta == nil {
return meta
}
dbName := tb.Qualifier.String()
tbName := tb.Name.String()
if tbName == "" {
return meta
}
if meta[dbName] == nil {
meta[dbName] = common.NewDB(dbName)
}
meta[dbName].Table[tbName] = common.NewTable(tbName)
mergeAlias(dbName, tbName, as, meta)
return meta
}
// mergeAlias 将所有的表别名归并到一个表下
func mergeAlias(db, tb, as string, meta map[string]*common.DB) {
if meta == nil || as == "" {
return
}
aliasExist := false
for _, existedAlias := range meta[db].Table[tb].TableAliases {
if existedAlias == as {
aliasExist = true
}
}
if !aliasExist {
meta[db].Table[tb].TableAliases = append(meta[db].Table[tb].TableAliases, as)
}
}
// eqOperators 等值条件判断关键字 // eqOperators 等值条件判断关键字
var eqOperators = map[string]string{ var eqOperators = map[string]string{
"=": "eq", "=": "eq",
......
...@@ -59,7 +59,7 @@ func TestFindCondition(t *testing.T) { ...@@ -59,7 +59,7 @@ func TestFindCondition(t *testing.T) {
for _, sql := range common.TestSQLs { for _, sql := range common.TestSQLs {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -143,7 +143,7 @@ func TestFindJoinTable(t *testing.T) { ...@@ -143,7 +143,7 @@ func TestFindJoinTable(t *testing.T) {
for _, sql := range sqlList { for _, sql := range sqlList {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -167,7 +167,7 @@ func TestFindJoinCols(t *testing.T) { ...@@ -167,7 +167,7 @@ func TestFindJoinCols(t *testing.T) {
for _, sql := range sqlList { for _, sql := range sqlList {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -189,7 +189,7 @@ func TestFindJoinColBeWhereEQ(t *testing.T) { ...@@ -189,7 +189,7 @@ func TestFindJoinColBeWhereEQ(t *testing.T) {
for _, sql := range sqlList { for _, sql := range sqlList {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -211,7 +211,7 @@ func TestFindJoinColBeWhereINEQ(t *testing.T) { ...@@ -211,7 +211,7 @@ func TestFindJoinColBeWhereINEQ(t *testing.T) {
for _, sql := range sqlList { for _, sql := range sqlList {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -239,7 +239,7 @@ func TestFindAllCondition(t *testing.T) { ...@@ -239,7 +239,7 @@ func TestFindAllCondition(t *testing.T) {
for _, sql := range sqlList { for _, sql := range sqlList {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -258,7 +258,7 @@ func TestFindColumn(t *testing.T) { ...@@ -258,7 +258,7 @@ func TestFindColumn(t *testing.T) {
for _, sql := range sqlList { for _, sql := range sqlList {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -286,7 +286,7 @@ func TestFindAllCols(t *testing.T) { ...@@ -286,7 +286,7 @@ func TestFindAllCols(t *testing.T) {
for _, sql := range sqlList { for _, sql := range sqlList {
fmt.Println(sql) fmt.Println(sql)
stmt, err := sqlparser.Parse(sql) stmt, err := sqlparser.Parse(sql)
//pretty.Println(stmt) // pretty.Println(stmt)
if err != nil { if err != nil {
panic(err) panic(err)
} }
...@@ -322,3 +322,47 @@ func TestGetSubqueryDepth(t *testing.T) { ...@@ -322,3 +322,47 @@ func TestGetSubqueryDepth(t *testing.T) {
fmt.Println(dep) fmt.Println(dep)
} }
} }
func TestAppendTable(t *testing.T) {
sqlList := []string{
"select ID,name from (select address from customer_list where SID=1 order by phone limit 50,10) a join customer_list l on (a.address=l.address) join city c on (c.city=l.city) order by phone desc;",
}
meta := make(map[string]*common.DB)
for _, sql := range sqlList {
fmt.Println(sql)
stmt, err := sqlparser.Parse(sql)
if err != nil {
t.Error("syntax check error.")
}
err = sqlparser.Walk(func(node sqlparser.SQLNode) (kontinue bool, err error) {
switch expr := node.(type) {
case *sqlparser.AliasedTableExpr:
switch table := expr.Expr.(type) {
case sqlparser.TableName:
appendTable(table, expr.As.String(), meta)
default:
if meta == nil {
meta = make(map[string]*common.DB)
}
if meta[""] == nil {
meta[""] = common.NewDB("")
}
meta[""].Table[""] = common.NewTable("")
meta[""].Table[""].TableAliases = append(meta[""].Table[""].TableAliases, expr.As.String())
}
}
return true, nil
}, stmt)
if err != nil {
t.Error(err)
}
}
// 仅对第一条测试SQL进行测试,验证别名正确性
if meta[""].Table["customer_list"].TableAliases[0] != "l" || meta[""].Table["city"].TableAliases[0] != "c" {
t.Error("alias filed\n", pretty.Sprint(meta))
}
}
...@@ -248,18 +248,37 @@ func (ve *VirtualEnv) BuildVirtualEnv(rEnv *database.Connector, SQLs ...string) ...@@ -248,18 +248,37 @@ func (ve *VirtualEnv) BuildVirtualEnv(rEnv *database.Connector, SQLs ...string)
// 为了支持并发,需要将DB进行映射,但db.table这种形式无法保证DB的映射是正确的 // 为了支持并发,需要将DB进行映射,但db.table这种形式无法保证DB的映射是正确的
// TODO:暂不支持 create db.tableName (id int) 形式的建表语句 // TODO:暂不支持 create db.tableName (id int) 形式的建表语句
if stmt.Table.Qualifier.String() != "" || stmt.NewName.Qualifier.String() != "" { if stmt.Table.Qualifier.String() != "" {
common.Log.Error("BuildVirtualEnv DDL Not support '.'") common.Log.Error("BuildVirtualEnv DDL Not support '.'")
return false return false
} }
for _, tb := range stmt.FromTables {
if tb.Qualifier.String() != "" {
common.Log.Error("BuildVirtualEnv DDL Not support '.'")
return false
}
}
for _, tb := range stmt.ToTables {
if tb.Qualifier.String() != "" {
common.Log.Error("BuildVirtualEnv DDL Not support '.'")
return false
}
}
// 拉取表结构 // 拉取表结构
table := stmt.Table.Name.String() table := stmt.Table.Name.String()
if table != "" { if table != "" {
err = ve.createTable(*rEnv, rEnv.Database, table) err = ve.createTable(*rEnv, rEnv.Database, table)
// 这里如果报错可能有两种可能:
// 1. SQL 是 Create 语句,线上环境并没有相关的库表结构
// 2. 在测试环境中执行 SQL 报错
// 如果是因为 Create 语句报错,后续会在测试环境中直接执行 create 语句,不会对程序有负面影响
// 如果是因为执行 SQL 报错,那么其他地方执行 SQL 的时候也一定会报错
// 所以这里不需要 `return false`,可以继续执行
if err != nil { if err != nil {
common.Log.Error("BuildVirtualEnv Error : %v", err) common.Log.Error("BuildVirtualEnv Error : %v", err)
return false
} }
} }
......
...@@ -1016,68 +1016,68 @@ ...@@ -1016,68 +1016,68 @@
{ {
"checksumSHA1": "w8FCRjH70gM6QttB9QrEh9Y1x64=", "checksumSHA1": "w8FCRjH70gM6QttB9QrEh9Y1x64=",
"path": "vitess.io/vitess", "path": "vitess.io/vitess",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=", "checksumSHA1": "aKn1oKcY74N8TRLm3Ayt7Q4bbI4=",
"path": "vitess.io/vitess/go/bytes2", "path": "vitess.io/vitess/go/bytes2",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "JVCEN4UGRmg3TofIBdzZMZ3G0Ww=", "checksumSHA1": "JVCEN4UGRmg3TofIBdzZMZ3G0Ww=",
"path": "vitess.io/vitess/go/hack", "path": "vitess.io/vitess/go/hack",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "e1WJ7vCnVrlQQQlc6n/FewCDMso=", "checksumSHA1": "e1WJ7vCnVrlQQQlc6n/FewCDMso=",
"path": "vitess.io/vitess/go/sqltypes", "path": "vitess.io/vitess/go/sqltypes",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "ntFIQYkBS51G6y+FEkjFW40+HOU=", "checksumSHA1": "ntFIQYkBS51G6y+FEkjFW40+HOU=",
"path": "vitess.io/vitess/go/vt/log", "path": "vitess.io/vitess/go/vt/log",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "XozR8bmeSR5KTe/nlUJkpJY2HKI=", "checksumSHA1": "XozR8bmeSR5KTe/nlUJkpJY2HKI=",
"path": "vitess.io/vitess/go/vt/proto/query", "path": "vitess.io/vitess/go/vt/proto/query",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "OnWsUHLDKcO3spwH0jD55SvKD24=", "checksumSHA1": "OnWsUHLDKcO3spwH0jD55SvKD24=",
"path": "vitess.io/vitess/go/vt/proto/topodata", "path": "vitess.io/vitess/go/vt/proto/topodata",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "sBAuZ/itMR8U8qbK4yLHxkP6Cpc=", "checksumSHA1": "sBAuZ/itMR8U8qbK4yLHxkP6Cpc=",
"path": "vitess.io/vitess/go/vt/proto/vtgate", "path": "vitess.io/vitess/go/vt/proto/vtgate",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "pLWM+SPGZs3k+IhjktE/cGUlpM0=", "checksumSHA1": "pLWM+SPGZs3k+IhjktE/cGUlpM0=",
"path": "vitess.io/vitess/go/vt/proto/vtrpc", "path": "vitess.io/vitess/go/vt/proto/vtrpc",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "re3V8oX+ujxHbNZuB+QEtrcXxE8=", "checksumSHA1": "3rucaIfitefjezWeglPndd50Mcw=",
"path": "vitess.io/vitess/go/vt/sqlparser", "path": "vitess.io/vitess/go/vt/sqlparser",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
}, },
{ {
"checksumSHA1": "oF4XzuOzwvj1iduX/lYqNSyY/HM=", "checksumSHA1": "oF4XzuOzwvj1iduX/lYqNSyY/HM=",
"path": "vitess.io/vitess/go/vt/vterrors", "path": "vitess.io/vitess/go/vt/vterrors",
"revision": "6fca9975675109decbf1c389641597929824eeba", "revision": "54855ec7b36906b6d53aa5af0f0293a0a73ae928",
"revisionTime": "2018-10-31T20:10:04Z" "revisionTime": "2018-11-05T03:16:12Z"
} }
], ],
"rootPath": "github.com/XiaoMi/soar" "rootPath": "github.com/XiaoMi/soar"
......
...@@ -718,21 +718,30 @@ func (node *DBDDL) walkSubtree(visit Visit) error { ...@@ -718,21 +718,30 @@ func (node *DBDDL) walkSubtree(visit Visit) error {
return nil return nil
} }
// DDL represents a CREATE, ALTER, DROP, RENAME or TRUNCATE statement. // DDL represents a CREATE, ALTER, DROP, RENAME, TRUNCATE or ANALYZE statement.
// Table is set for AlterStr, DropStr, RenameStr, TruncateStr
// NewName is set for AlterStr, CreateStr, RenameStr.
// VindexSpec is set for CreateVindexStr, DropVindexStr, AddColVindexStr, DropColVindexStr
// VindexCols is set for AddColVindexStr
type DDL struct { type DDL struct {
Action string Action string
Table TableName
NewName TableName // FromTables is set if Action is RenameStr or DropStr.
FromTables TableNames
// ToTables is set if Action is RenameStr.
ToTables TableNames
// Table is set if Action is other than RenameStr or DropStr.
Table TableName
// The following fields are set if a DDL was fully analyzed.
IfExists bool IfExists bool
TableSpec *TableSpec TableSpec *TableSpec
OptLike *OptLike OptLike *OptLike
PartitionSpec *PartitionSpec PartitionSpec *PartitionSpec
VindexSpec *VindexSpec
VindexCols []ColIdent // VindexSpec is set for CreateVindexStr, DropVindexStr, AddColVindexStr, DropColVindexStr.
VindexSpec *VindexSpec
// VindexCols is set for AddColVindexStr.
VindexCols []ColIdent
} }
// DDL strings. // DDL strings.
...@@ -756,20 +765,23 @@ func (node *DDL) Format(buf *TrackedBuffer) { ...@@ -756,20 +765,23 @@ func (node *DDL) Format(buf *TrackedBuffer) {
switch node.Action { switch node.Action {
case CreateStr: case CreateStr:
if node.OptLike != nil { if node.OptLike != nil {
buf.Myprintf("%s table %v %v", node.Action, node.NewName, node.OptLike) buf.Myprintf("%s table %v %v", node.Action, node.Table, node.OptLike)
} else if node.TableSpec != nil { } else if node.TableSpec != nil {
buf.Myprintf("%s table %v %v", node.Action, node.NewName, node.TableSpec) buf.Myprintf("%s table %v %v", node.Action, node.Table, node.TableSpec)
} else { } else {
buf.Myprintf("%s table %v", node.Action, node.NewName) buf.Myprintf("%s table %v", node.Action, node.Table)
} }
case DropStr: case DropStr:
exists := "" exists := ""
if node.IfExists { if node.IfExists {
exists = " if exists" exists = " if exists"
} }
buf.Myprintf("%s table%s %v", node.Action, exists, node.Table) buf.Myprintf("%s table%s %v", node.Action, exists, node.FromTables)
case RenameStr: case RenameStr:
buf.Myprintf("%s table %v to %v", node.Action, node.Table, node.NewName) buf.Myprintf("%s table %v to %v", node.Action, node.FromTables[0], node.ToTables[0])
for i := 1; i < len(node.FromTables); i++ {
buf.Myprintf(", %v to %v", node.FromTables[i], node.ToTables[i])
}
case AlterStr: case AlterStr:
if node.PartitionSpec != nil { if node.PartitionSpec != nil {
buf.Myprintf("%s table %v %v", node.Action, node.Table, node.PartitionSpec) buf.Myprintf("%s table %v %v", node.Action, node.Table, node.PartitionSpec)
...@@ -804,11 +816,23 @@ func (node *DDL) walkSubtree(visit Visit) error { ...@@ -804,11 +816,23 @@ func (node *DDL) walkSubtree(visit Visit) error {
if node == nil { if node == nil {
return nil return nil
} }
return Walk( for _, t := range node.AffectedTables() {
visit, if err := Walk(visit, t); err != nil {
node.Table, return err
node.NewName, }
) }
return nil
}
// AffectedTables returns the list table names affected by the DDL.
func (node *DDL) AffectedTables() TableNames {
if node.Action == RenameStr || node.Action == DropStr {
list := make(TableNames, 0, len(node.FromTables)+len(node.ToTables))
list = append(list, node.FromTables...)
list = append(list, node.ToTables...)
return list
}
return TableNames{node.Table}
} }
// Partition strings // Partition strings
......
...@@ -628,349 +628,367 @@ var yyExca = [...]int{ ...@@ -628,349 +628,367 @@ var yyExca = [...]int{
5, 29, 5, 29,
-2, 4, -2, 4,
-1, 37, -1, 37,
159, 292, 159, 294,
160, 292, 160, 294,
-2, 282, -2, 284,
-1, 262, -1, 262,
112, 622, 112, 624,
-2, 618, -2, 620,
-1, 263, -1, 263,
112, 623, 112, 625,
-2, 619, -2, 621,
-1, 326, -1, 326,
82, 791, 82, 793,
-2, 60, -2, 60,
-1, 327, -1, 327,
82, 749, 82, 751,
-2, 61, -2, 61,
-1, 332, -1, 332,
82, 729, 82, 731,
-2, 584,
-1, 334,
82, 770,
-2, 586, -2, 586,
-1, 586, -1, 334,
1, 344, 82, 772,
5, 344, -2, 588,
12, 344, -1, 587,
13, 344, 1, 346,
14, 344, 5, 346,
15, 344, 12, 346,
17, 344, 13, 346,
19, 344, 14, 346,
30, 344, 15, 346,
31, 344, 17, 346,
42, 344, 19, 346,
43, 344, 30, 346,
44, 344, 31, 346,
45, 344, 42, 346,
46, 344, 43, 346,
48, 344, 44, 346,
49, 344, 45, 346,
52, 344, 46, 346,
53, 344, 48, 346,
55, 344, 49, 346,
56, 344, 52, 346,
263, 344, 53, 346,
-2, 362, 55, 346,
-1, 589, 56, 346,
263, 346,
-2, 364,
-1, 590,
53, 43, 53, 43,
55, 43, 55, 43,
-2, 45, -2, 45,
-1, 725, -1, 727,
112, 625, 112, 627,
-2, 621, -2, 623,
-1, 937, -1, 940,
5, 30, 5, 30,
-2, 428, -2, 430,
-1, 962, -1, 965,
5, 29, 5, 29,
-2, 558, -2, 560,
-1, 1202, -1, 1207,
5, 30, 5, 30,
-2, 559,
-1, 1252,
5, 29,
-2, 561, -2, 561,
-1, 1325, -1, 1257,
5, 29,
-2, 563,
-1, 1330,
5, 30, 5, 30,
-2, 562, -2, 564,
} }
const yyPrivate = 57344 const yyPrivate = 57344
const yyLast = 11302 const yyLast = 11224
var yyAct = [...]int{ var yyAct = [...]int{
263, 1360, 1350, 1316, 876, 661, 965, 551, 1264, 1103, 263, 1365, 1355, 1321, 878, 662, 968, 1227, 552, 267,
983, 241, 804, 1137, 1034, 1100, 966, 267, 1104, 903, 1269, 1107, 986, 1141, 969, 1104, 1037, 828, 293, 829,
850, 870, 293, 989, 836, 826, 57, 802, 269, 1008, 806, 804, 906, 57, 838, 1108, 1120, 872, 551, 3,
1222, 1110, 82, 1116, 856, 750, 204, 1077, 260, 204, 825, 1114, 82, 1011, 1081, 932, 204, 331, 762, 204,
690, 929, 1037, 760, 550, 3, 1025, 823, 806, 599, 992, 759, 600, 241, 752, 692, 1040, 1028, 793, 232,
840, 483, 776, 727, 866, 791, 489, 827, 430, 495, 778, 729, 294, 51, 842, 808, 484, 490, 430, 584,
784, 294, 51, 232, 503, 598, 322, 204, 82, 325, 852, 496, 583, 265, 868, 599, 325, 204, 82, 320,
265, 582, 204, 911, 204, 331, 82, 250, 320, 56, 786, 914, 204, 504, 204, 322, 82, 250, 56, 1358,
1353, 1337, 1348, 1323, 1345, 877, 757, 1336, 1322, 583, 240, 1342, 1353, 462, 566, 1328, 1350, 895, 879, 1341,
1095, 1196, 565, 435, 1275, 1131, 240, 1145, 1146, 1147, 1099, 1201, 435, 1327, 233, 234, 235, 236, 1280, 858,
1132, 1133, 818, 819, 817, 1150, 1148, 254, 233, 234, 239, 894, 254, 601, 51, 602, 457, 199, 195, 196,
235, 236, 996, 51, 239, 995, 238, 600, 997, 601, 197, 1135, 246, 1136, 1137, 269, 1296, 517, 516, 526,
456, 246, 759, 24, 25, 52, 27, 28, 1291, 516, 527, 519, 520, 521, 522, 523, 524, 525, 518, 899,
515, 525, 526, 518, 519, 520, 521, 522, 523, 524, 819, 528, 260, 61, 238, 1149, 1150, 1151, 893, 999,
517, 237, 43, 527, 1016, 849, 61, 29, 48, 49, 237, 475, 998, 1154, 1152, 1000, 820, 821, 476, 473,
199, 195, 196, 197, 474, 1225, 1241, 857, 1185, 1183, 474, 1019, 851, 1230, 1246, 859, 761, 231, 1190, 63,
231, 475, 472, 473, 467, 468, 1347, 38, 1344, 461, 64, 65, 66, 67, 1188, 468, 469, 1352, 1349, 1322,
1317, 54, 63, 64, 65, 66, 67, 1058, 785, 841, 1082, 1061, 459, 787, 461, 445, 1312, 843, 1373, 987,
1307, 1265, 1368, 1273, 445, 438, 458, 193, 460, 444, 989, 1270, 446, 438, 1369, 192, 193, 193, 890, 887,
984, 986, 669, 204, 1267, 204, 1055, 192, 843, 193, 888, 1062, 886, 204, 1272, 204, 671, 1130, 845, 661,
660, 204, 1057, 1126, 1125, 1124, 433, 441, 204, 207, 441, 204, 1278, 1058, 458, 460, 845, 1084, 204, 1060,
194, 905, 82, 82, 82, 82, 1296, 82, 457, 459, 1129, 1128, 82, 82, 82, 82, 433, 82, 207, 194,
539, 540, 1364, 1205, 1064, 843, 945, 82, 923, 824, 540, 541, 1301, 897, 900, 198, 1210, 82, 1068, 521,
699, 507, 31, 32, 34, 33, 36, 451, 50, 516, 522, 523, 524, 525, 518, 1012, 948, 528, 926, 701,
515, 525, 526, 518, 519, 520, 521, 522, 523, 524, 1086, 1158, 1090, 508, 1085, 452, 1083, 518, 826, 528,
517, 527, 696, 527, 1009, 1154, 502, 82, 1305, 37, 528, 1088, 693, 698, 502, 501, 988, 82, 431, 892,
44, 45, 1266, 70, 46, 47, 35, 985, 198, 517, 1087, 1103, 1271, 908, 463, 463, 463, 463, 492, 463,
1164, 491, 527, 462, 462, 462, 462, 1149, 462, 39, 501, 503, 503, 1089, 1091, 493, 1310, 70, 1168, 463,
40, 588, 41, 42, 1274, 1272, 857, 1114, 462, 904, 1118, 891, 603, 1297, 859, 1101, 503, 480, 481, 456,
481, 492, 930, 537, 842, 1292, 1321, 602, 1056, 71, 1367, 429, 1159, 1368, 844, 1366, 465, 466, 467, 51,
1054, 479, 480, 455, 691, 1097, 1155, 777, 51, 541, 470, 1326, 844, 1279, 1277, 1059, 944, 1057, 943, 437,
542, 543, 544, 545, 546, 547, 548, 201, 204, 204, 479, 502, 501, 71, 537, 1153, 779, 539, 204, 204,
204, 842, 843, 536, 82, 664, 538, 500, 1362, 1014, 204, 896, 736, 848, 82, 502, 501, 845, 503, 849,
82, 1363, 1193, 1361, 518, 519, 520, 521, 522, 523, 82, 665, 482, 694, 898, 945, 734, 735, 733, 1017,
524, 517, 1310, 502, 527, 497, 581, 586, 321, 1327, 582, 907, 503, 1315, 779, 550, 955, 554, 555, 556,
777, 431, 952, 432, 549, 434, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 431, 565, 567, 567,
557, 558, 559, 560, 561, 53, 564, 566, 566, 566, 567, 567, 567, 567, 567, 567, 575, 576, 577, 578,
566, 566, 566, 566, 566, 574, 575, 576, 577, 1232, 498, 588, 1332, 448, 449, 450, 719, 721, 722, 191,
587, 191, 464, 465, 466, 692, 469, 447, 448, 449, 538, 494, 720, 1237, 1236, 502, 501, 439, 440, 591,
596, 846, 431, 1231, 493, 1329, 478, 847, 590, 567, 54, 568, 569, 570, 571, 572, 573, 574, 1032, 597,
568, 569, 570, 571, 572, 573, 516, 515, 525, 526, 732, 1031, 503, 542, 543, 544, 545, 546, 547, 548,
518, 519, 520, 521, 522, 523, 524, 517, 842, 54, 549, 517, 516, 526, 527, 519, 520, 521, 522, 523,
527, 1029, 734, 839, 837, 429, 838, 501, 500, 730, 524, 525, 518, 844, 1020, 528, 704, 705, 841, 839,
204, 835, 841, 942, 1099, 82, 732, 733, 731, 1369, 204, 840, 1374, 22, 587, 82, 837, 843, 923, 924,
1028, 204, 204, 82, 502, 204, 317, 318, 204, 702, 925, 204, 204, 82, 317, 318, 204, 1334, 753, 204,
703, 1017, 204, 437, 82, 82, 82, 82, 82, 82, 754, 1311, 1001, 204, 1002, 82, 82, 82, 82, 82,
82, 82, 520, 521, 522, 523, 524, 517, 82, 82, 82, 82, 82, 464, 933, 1253, 1234, 1065, 1029, 82,
527, 941, 1303, 940, 442, 1306, 443, 204, 1370, 463, 82, 1375, 1275, 1351, 502, 501, 1338, 483, 204, 519,
1248, 22, 450, 501, 500, 501, 500, 1229, 1061, 452, 520, 521, 522, 523, 524, 525, 518, 463, 292, 528,
501, 500, 920, 921, 922, 82, 462, 501, 500, 204, 680, 503, 1308, 245, 1012, 463, 82, 1275, 1319, 483,
502, 1026, 502, 704, 462, 82, 751, 502, 752, 998, 204, 1275, 483, 1275, 1302, 1335, 82, 463, 463, 463,
1009, 999, 1004, 698, 502, 462, 462, 462, 462, 462, 463, 463, 463, 463, 463, 672, 1275, 1274, 660, 1007,
462, 462, 462, 1270, 1346, 676, 879, 678, 753, 462, 80, 463, 463, 24, 678, 881, 669, 1225, 1224, 1285,
462, 439, 440, 728, 717, 719, 720, 675, 292, 729, 730, 328, 1212, 483, 1209, 483, 706, 755, 681, 682,
718, 245, 1333, 482, 1270, 1314, 482, 328, 726, 82, 683, 684, 685, 686, 687, 688, 727, 963, 700, 677,
697, 735, 736, 737, 738, 739, 740, 741, 742, 743, 82, 964, 689, 690, 676, 666, 330, 283, 282, 285,
744, 745, 746, 747, 748, 749, 674, 501, 500, 721, 286, 287, 288, 664, 436, 659, 284, 289, 454, 771,
80, 706, 1270, 482, 1270, 1297, 769, 772, 1270, 1269, 774, 54, 708, 1165, 1164, 780, 1161, 1162, 594, 723,
204, 723, 778, 725, 502, 1220, 1219, 1330, 204, 204, 725, 204, 447, 766, 1284, 699, 1161, 1160, 1281, 204,
665, 663, 204, 204, 1207, 482, 82, 658, 764, 580, 204, 483, 51, 204, 204, 938, 483, 82, 790, 483,
51, 589, 1204, 482, 659, 453, 330, 1161, 1160, 82, 764, 483, 502, 501, 756, 757, 1155, 554, 610, 609,
754, 755, 668, 446, 436, 553, 586, 1157, 1158, 812, 82, 846, 1105, 1117, 814, 1117, 764, 1205, 783, 503,
586, 774, 1280, 679, 680, 681, 682, 683, 684, 685, 595, 790, 593, 993, 776, 24, 1167, 731, 517, 516,
686, 1157, 1156, 935, 482, 788, 482, 687, 688, 852, 526, 527, 519, 520, 521, 522, 523, 524, 525, 518,
853, 854, 855, 1078, 762, 482, 609, 608, 24, 803, 24, 805, 528, 728, 993, 588, 737, 738, 739, 740,
810, 1279, 1276, 587, 24, 863, 864, 865, 858, 859, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750,
860, 204, 781, 815, 82, 814, 82, 1151, 831, 990, 751, 812, 204, 816, 817, 82, 790, 82, 1256, 833,
204, 990, 960, 204, 82, 844, 961, 765, 766, 872, 58, 204, 204, 54, 789, 204, 82, 1163, 1071, 950,
1080, 1101, 1251, 773, 1113, 811, 593, 592, 1067, 1113, 854, 855, 856, 857, 1003, 818, 874, 1117, 54, 947,
204, 58, 204, 204, 762, 787, 54, 780, 1200, 782, 938, 813, 204, 593, 204, 204, 865, 866, 867, 790,
783, 788, 54, 662, 1163, 947, 1159, 1000, 816, 868, 330, 330, 330, 330, 587, 330, 593, 596, 587, 702,
869, 610, 788, 1082, 1113, 1086, 24, 1081, 944, 1079, 938, 670, 767, 768, 247, 330, 54, 463, 775, 463,
788, 935, 666, 667, 1084, 462, 670, 462, 594, 673, 870, 871, 938, 949, 860, 861, 862, 1343, 463, 1197,
592, 935, 935, 1083, 595, 462, 525, 526, 518, 519, 483, 1318, 782, 946, 784, 785, 1241, 1232, 853, 727,
520, 521, 522, 523, 524, 517, 1085, 1087, 527, 946, 795, 798, 799, 800, 796, 506, 797, 801, 882, 1217,
330, 330, 330, 330, 728, 330, 913, 912, 693, 700, 884, 873, 730, 1146, 1121, 1122, 1127, 1006, 869, 904,
729, 874, 943, 247, 54, 330, 54, 1338, 1313, 1236, 915, 864, 54, 916, 863, 663, 876, 517, 516, 526,
1227, 926, 927, 928, 851, 725, 1212, 871, 1142, 1003, 527, 519, 520, 521, 522, 523, 524, 525, 518, 927,
713, 1117, 1118, 705, 867, 925, 924, 862, 861, 204, 1360, 528, 1356, 1148, 1124, 928, 1105, 328, 1033, 674,
204, 204, 204, 204, 1355, 505, 1351, 1144, 1120, 1101, 477, 204, 204, 204, 204, 204, 980, 978, 1126, 970,
1030, 204, 672, 328, 204, 967, 476, 712, 204, 1045, 714, 981, 979, 204, 977, 982, 204, 799, 800, 976,
977, 54, 204, 1123, 1122, 978, 974, 586, 586, 586, 204, 1347, 330, 1340, 204, 965, 251, 252, 605, 1067,
586, 586, 973, 1342, 1335, 975, 1063, 82, 951, 962, 911, 497, 1346, 921, 920, 485, 707, 1024, 954, 82,
976, 908, 586, 880, 919, 882, 992, 1341, 1043, 991, 1203, 608, 455, 1016, 766, 994, 495, 486, 1317, 966,
586, 761, 763, 901, 251, 252, 963, 964, 764, 496, 967, 1316, 1254, 588, 588, 588, 588, 588, 1004, 731,
587, 587, 587, 587, 587, 980, 988, 779, 918, 917, 983, 972, 973, 971, 975, 995, 974, 1014, 805, 1008,
968, 786, 330, 971, 494, 803, 993, 987, 604, 979, 990, 996, 1242, 883, 673, 991, 588, 929, 930, 931,
1010, 797, 798, 587, 813, 82, 82, 1021, 82, 969, 922, 803, 248, 249, 497, 919, 1013, 82, 82, 242,
970, 934, 972, 484, 1001, 607, 454, 1018, 1019, 1006, 82, 1290, 243, 918, 763, 765, 58, 1289, 1244, 1023,
1007, 1013, 1237, 1312, 256, 485, 1311, 949, 1249, 1011, 993, 1025, 1026, 1027, 478, 1009, 1010, 1362, 1361, 62,
1005, 82, 1198, 881, 1020, 1044, 1022, 1023, 1024, 1027, 781, 691, 499, 1362, 82, 1298, 587, 587, 587, 587,
1049, 1046, 1039, 1047, 1042, 204, 671, 801, 1040, 1041, 587, 1231, 1030, 697, 60, 592, 55, 937, 204, 1,
248, 249, 496, 916, 82, 242, 1285, 243, 1050, 58, 1354, 587, 880, 330, 1036, 889, 1320, 82, 1268, 587,
1284, 915, 1048, 1239, 990, 477, 689, 462, 1051, 1357, 463, 330, 1140, 952, 1053, 1039, 836, 827, 69, 428,
1356, 1357, 875, 1060, 498, 1293, 1226, 1036, 695, 60, 68, 1309, 835, 330, 330, 330, 330, 330, 330, 330,
62, 899, 591, 55, 900, 1, 1349, 878, 1033, 887, 330, 1064, 834, 1276, 1021, 1022, 463, 330, 330, 1229,
1315, 1263, 462, 1136, 82, 82, 834, 1102, 1071, 1073, 847, 1035, 1018, 850, 1147, 1075, 1314, 82, 82, 1074,
1074, 902, 825, 330, 69, 428, 1096, 1088, 967, 1076, 1106, 1015, 726, 970, 616, 614, 1100, 1080, 615, 613,
1089, 330, 1090, 1091, 1105, 1093, 1094, 724, 82, 1112, 1093, 618, 617, 1109, 710, 612, 727, 1063, 215, 1092,
68, 1304, 330, 330, 330, 330, 330, 330, 330, 330, 323, 82, 802, 604, 506, 1111, 875, 330, 500, 72,
833, 82, 832, 82, 82, 1121, 330, 330, 1107, 1271, 1056, 1125, 1055, 885, 82, 471, 82, 82, 472, 1116,
1224, 1070, 845, 1015, 848, 1130, 1128, 1143, 1309, 1127, 217, 536, 256, 917, 997, 329, 1132, 1110, 1112, 51,
1012, 725, 615, 1106, 613, 51, 1134, 614, 612, 1139, 703, 1138, 1131, 489, 1288, 1139, 1243, 953, 563, 777,
617, 204, 616, 708, 611, 215, 1140, 1141, 323, 82, 268, 718, 1143, 281, 204, 1134, 278, 280, 758, 279,
800, 603, 873, 505, 932, 1032, 330, 499, 933, 72, 709, 962, 82, 1144, 1145, 510, 266, 258, 772, 772,
1053, 1052, 82, 204, 883, 937, 938, 939, 470, 82, 586, 579, 1156, 1157, 772, 82, 204, 794, 792, 791,
1135, 471, 217, 535, 948, 82, 1152, 1153, 204, 954, 328, 1123, 82, 204, 1119, 585, 1077, 1078, 1070, 82,
1059, 955, 956, 957, 958, 328, 914, 994, 329, 1108, 1200, 1295, 204, 830, 713, 26, 59, 253, 19, 1094,
1172, 701, 488, 1283, 1238, 950, 562, 756, 828, 775, 1095, 18, 1097, 1098, 17, 330, 20, 1177, 935, 16,
1173, 268, 1190, 982, 716, 1174, 586, 770, 770, 1178, 1169, 15, 936, 1179, 14, 443, 30, 21, 330, 940,
1179, 1165, 1180, 770, 1181, 1182, 281, 1184, 278, 280, 941, 942, 13, 1171, 12, 11, 1174, 10, 951, 9,
279, 1176, 707, 959, 1167, 509, 266, 1170, 1199, 258, 8, 1178, 7, 957, 1186, 958, 959, 960, 961, 6,
585, 578, 792, 283, 282, 285, 286, 287, 288, 587, 5, 4, 1204, 244, 588, 23, 2, 970, 0, 0,
1209, 967, 284, 289, 330, 82, 790, 486, 490, 1208, 0, 0, 1214, 0, 0, 0, 0, 985, 0, 82,
1218, 789, 1119, 82, 1115, 584, 1066, 330, 1195, 793, 1213, 0, 0, 1183, 1184, 0, 1185, 82, 0, 1187,
796, 797, 798, 794, 508, 795, 799, 1194, 1290, 1221, 0, 1189, 1199, 330, 0, 330, 0, 0, 1004, 0,
711, 26, 59, 82, 82, 82, 516, 515, 525, 526, 0, 0, 0, 0, 330, 726, 488, 82, 82, 82,
518, 519, 520, 521, 522, 523, 524, 517, 1234, 724, 0, 0, 0, 0, 0, 0, 1223, 0, 0, 0,
527, 253, 19, 18, 17, 20, 1214, 1215, 1216, 552, 589, 1219, 1220, 1221, 1239, 0, 0, 587, 1240, 0,
16, 1228, 1001, 1230, 15, 14, 1065, 30, 563, 21, 330, 516, 526, 527, 519, 520, 521, 522, 523, 524,
13, 12, 330, 11, 330, 82, 82, 10, 82, 9, 525, 518, 202, 1226, 528, 230, 0, 0, 0, 1181,
8, 7, 330, 82, 1240, 82, 82, 82, 204, 1250, 82, 82, 0, 82, 0, 0, 201, 0, 82, 463,
1257, 82, 1235, 1105, 462, 1075, 6, 5, 1242, 1243, 82, 82, 82, 204, 1109, 1263, 82, 1264, 1265, 1266,
1262, 1244, 1245, 1246, 1268, 4, 244, 82, 330, 23, 257, 1255, 0, 202, 0, 0, 0, 1257, 202, 1273,
893, 2, 0, 1258, 0, 1259, 1260, 1261, 1252, 793, 202, 0, 82, 1267, 0, 0, 0, 321, 0, 1286,
796, 797, 798, 794, 892, 795, 799, 0, 0, 1117, 1238, 0, 432, 0, 434, 487, 491, 1262, 1110, 0,
1118, 1294, 1106, 0, 0, 1253, 0, 1281, 0, 0, 1233, 1258, 1235, 0, 1282, 0, 1283, 0, 1299, 0,
0, 82, 1302, 1301, 1105, 0, 1277, 0, 1278, 0, 1079, 0, 509, 0, 0, 1109, 82, 0, 772, 1307,
0, 0, 897, 0, 0, 0, 0, 0, 0, 0, 1306, 0, 0, 0, 1245, 0, 0, 1300, 0, 0,
0, 891, 0, 1319, 0, 0, 0, 82, 1295, 1282, 0, 0, 830, 1048, 0, 1287, 0, 0, 0, 1324,
1324, 0, 0, 0, 0, 0, 828, 0, 204, 0, 0, 0, 82, 0, 0, 1329, 0, 553, 970, 1110,
0, 967, 1162, 1106, 0, 51, 0, 0, 82, 0, 0, 51, 0, 204, 0, 0, 564, 330, 0, 0,
1331, 0, 0, 0, 0, 0, 770, 0, 0, 0, 0, 0, 1046, 82, 0, 1336, 0, 1247, 1248, 0,
0, 0, 1233, 0, 1169, 0, 1339, 1340, 0, 82, 1249, 1250, 1251, 0, 0, 0, 0, 0, 0, 0,
0, 888, 885, 886, 0, 884, 0, 0, 0, 0, 0, 1344, 1345, 1038, 82, 0, 0, 0, 0, 0,
0, 0, 1354, 0, 1045, 0, 0, 1035, 0, 1365, 0, 1348, 0, 0, 0, 0, 0, 1359, 0, 202,
0, 1175, 0, 0, 0, 330, 487, 0, 1177, 1343, 0, 202, 0, 0, 1370, 1034, 330, 202, 330, 0,
0, 0, 694, 0, 0, 0, 895, 898, 0, 1186, 0, 0, 0, 442, 202, 444, 795, 798, 799, 800,
1187, 1188, 0, 1043, 1191, 0, 0, 0, 0, 0, 796, 451, 797, 801, 0, 0, 1121, 1122, 453, 1047,
0, 1358, 0, 0, 0, 714, 715, 1201, 1202, 1203, 1073, 0, 330, 0, 1052, 1049, 1042, 1050, 1045, 0,
0, 1206, 202, 1069, 0, 230, 0, 0, 0, 1352, 1048, 0, 1043, 1044, 0, 1357, 0, 1180, 0, 0,
0, 0, 890, 1031, 330, 0, 330, 0, 1217, 0, 0, 0, 1096, 0, 1182, 330, 1051, 0, 0, 0,
0, 0, 0, 0, 0, 1092, 0, 0, 0, 0, 0, 0, 1054, 0, 0, 1191, 1192, 1193, 0, 1046,
257, 0, 0, 202, 889, 0, 0, 0, 202, 330, 1196, 0, 0, 0, 0, 0, 0, 330, 0, 0,
202, 0, 0, 0, 0, 0, 0, 0, 552, 0, 0, 0, 0, 1206, 1207, 1208, 0, 1211, 0, 0,
1044, 767, 768, 0, 0, 1049, 1046, 1039, 1047, 1042, 0, 0, 772, 0, 0, 1113, 1115, 0, 0, 0,
0, 0, 330, 1040, 1041, 0, 1192, 482, 0, 0, 0, 0, 0, 0, 1222, 0, 0, 830, 0, 830,
0, 0, 0, 0, 894, 0, 0, 1048, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1115,
828, 0, 828, 1038, 330, 0, 1247, 896, 0, 0, 0, 0, 0, 0, 202, 202, 202, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 822, 0, 770, 1363, 696, 330, 0, 330, 1142, 1047, 0, 581, 0,
0, 0, 1109, 1111, 516, 515, 525, 526, 518, 519, 590, 1052, 1049, 1042, 1050, 1045, 0, 0, 0, 1043,
520, 521, 522, 523, 524, 517, 0, 0, 527, 0, 1044, 0, 0, 0, 716, 717, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1111, 0, 0, 0, 0, 0, 0, 1051, 0, 0, 0, 0, 0, 1041,
0, 0, 0, 1286, 1287, 1288, 1289, 0, 213, 330, 1170, 0, 1073, 1252, 0, 0, 0, 0, 0, 0,
0, 330, 1138, 0, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 1172, 0, 0, 0, 0, 0, 0,
1298, 1299, 1300, 0, 0, 0, 0, 0, 0, 202, 1175, 0, 0, 0, 0, 0, 0, 330, 0, 0,
0, 202, 226, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0,
0, 0, 0, 0, 202, 0, 0, 1166, 0, 0, 769, 770, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1320, 0, 0, 0, 0, 1325, 0, 0, 1328, 1291, 1292, 1293, 1294, 0, 0, 0, 0, 0, 0,
1168, 0, 909, 910, 482, 490, 0, 1171, 0, 0, 0, 0, 0, 0, 0, 0, 202, 1303, 1304, 1305,
0, 0, 0, 330, 0, 0, 1332, 0, 0, 0, 0, 0, 830, 0, 0, 0, 772, 202, 202, 0,
0, 0, 0, 208, 828, 0, 0, 0, 0, 0, 611, 0, 202, 0, 0, 202, 824, 0, 0, 679,
210, 0, 0, 0, 0, 0, 0, 0, 216, 212, 0, 667, 668, 0, 0, 0, 321, 330, 1325, 675,
0, 516, 515, 525, 526, 518, 519, 520, 521, 522, 0, 1038, 830, 1330, 0, 1228, 0, 0, 0, 0,
523, 524, 517, 1035, 828, 527, 0, 0, 0, 1366, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0,
1367, 0, 770, 0, 0, 0, 0, 936, 0, 0, 0, 0, 0, 1337, 0, 330, 330, 330, 695, 0,
214, 0, 0, 218, 0, 0, 225, 0, 0, 1189, 0, 1076, 0, 0, 0, 0, 202, 0, 0, 0,
482, 0, 953, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679, 0, 0, 0, 0,
0, 1223, 0, 0, 202, 202, 202, 0, 0, 0, 715, 517, 516, 526, 527, 519, 520, 521, 522, 523,
0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 524, 525, 518, 0, 0, 528, 1371, 1372, 1259, 1260,
0, 330, 330, 330, 0, 0, 0, 516, 515, 525, 0, 1261, 0, 0, 0, 0, 1228, 0, 1228, 1228,
526, 518, 519, 520, 521, 522, 523, 524, 517, 219, 1228, 0, 912, 913, 1142, 491, 0, 257, 0, 0,
211, 527, 220, 221, 222, 224, 223, 229, 0, 0, 0, 0, 257, 257, 0, 0, 773, 773, 257, 0,
0, 0, 0, 228, 227, 0, 0, 0, 0, 0, 1228, 0, 773, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1254, 1255, 0, 1256, 0, 0, 0, 0, 0, 257, 257, 257, 257, 0, 202, 0, 0,
0, 1223, 0, 1223, 1223, 1223, 0, 0, 0, 1138, 0, 0, 0, 0, 0, 202, 810, 0, 0, 202,
511, 0, 514, 0, 0, 0, 0, 0, 528, 529, 202, 788, 0, 0, 1313, 0, 0, 0, 0, 0,
530, 531, 532, 533, 534, 1223, 512, 513, 510, 516, 0, 0, 0, 0, 815, 0, 0, 939, 0, 0,
515, 525, 526, 518, 519, 520, 521, 522, 523, 524, 0, 24, 25, 52, 27, 28, 0, 772, 0, 0,
517, 0, 0, 527, 0, 0, 202, 0, 0, 1072, 1331, 0, 956, 0, 0, 0, 0, 0, 0, 0,
1062, 0, 0, 0, 0, 0, 0, 202, 202, 1308, 43, 0, 0, 0, 0, 29, 48, 49, 0, 0,
0, 202, 0, 0, 202, 0, 0, 0, 677, 516, 0, 1339, 526, 527, 519, 520, 521, 522, 523, 524,
515, 525, 526, 518, 519, 520, 521, 522, 523, 524, 525, 518, 0, 213, 528, 38, 0, 0, 202, 54,
517, 0, 770, 527, 0, 1326, 0, 0, 0, 0, 0, 0, 1228, 0, 0, 0, 0, 202, 202, 0,
0, 0, 0, 202, 0, 0, 0, 1098, 0, 0, 0, 202, 877, 0, 0, 0, 0, 226, 0, 0,
0, 0, 0, 0, 0, 0, 1334, 0, 0, 0, 0, 901, 902, 0, 0, 903, 0, 0, 202, 0,
0, 0, 0, 0, 0, 202, 931, 0, 0, 0, 909, 910, 0, 0, 0, 0, 0, 0, 679, 0,
0, 0, 0, 0, 677, 0, 0, 1223, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1129, 516, 515, 525, 526, 257, 0, 0, 0, 0, 0, 0, 633, 0, 0,
518, 519, 520, 521, 522, 523, 524, 517, 0, 0, 31, 32, 34, 33, 36, 0, 50, 0, 208, 0,
527, 516, 515, 525, 526, 518, 519, 520, 521, 522, 0, 0, 0, 0, 0, 210, 0, 0, 0, 0,
523, 524, 517, 0, 0, 527, 257, 0, 0, 0, 0, 0, 0, 216, 212, 0, 0, 37, 44, 45,
0, 257, 257, 0, 0, 771, 771, 257, 0, 0, 0, 1066, 46, 47, 35, 0, 0, 257, 0, 0,
0, 771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 40, 0,
0, 257, 257, 257, 257, 632, 202, 0, 0, 0, 41, 42, 0, 257, 0, 214, 1194, 483, 218, 0,
0, 0, 0, 0, 202, 808, 0, 0, 202, 202, 0, 225, 0, 0, 0, 0, 773, 202, 202, 202,
515, 525, 526, 518, 519, 520, 521, 522, 523, 524, 202, 202, 0, 0, 0, 621, 0, 0, 1102, 984,
517, 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 0, 810, 209, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 0, 0, 517, 516, 526, 527, 519, 520,
0, 0, 0, 0, 1197, 0, 0, 0, 0, 0, 521, 522, 523, 524, 525, 518, 0, 1198, 528, 0,
0, 552, 0, 0, 0, 0, 0, 0, 0, 1210, 0, 0, 634, 0, 219, 211, 1133, 220, 221, 222,
0, 0, 1211, 0, 0, 1213, 0, 0, 0, 0, 224, 223, 229, 0, 0, 0, 0, 0, 228, 227,
0, 0, 0, 620, 0, 0, 0, 202, 0, 0, 0, 0, 0, 53, 647, 648, 649, 650, 651, 652,
0, 0, 0, 0, 0, 0, 202, 0, 0, 202, 653, 0, 654, 655, 656, 657, 658, 635, 636, 637,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 638, 619, 620, 0, 0, 622, 0, 623, 624, 625,
0, 0, 0, 0, 0, 0, 202, 0, 906, 907, 626, 627, 628, 629, 630, 631, 632, 639, 640, 641,
633, 0, 0, 0, 0, 0, 677, 0, 0, 0, 642, 643, 644, 645, 646, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 257, 0, 0, 517, 516, 526, 527, 519, 520, 521, 522, 523,
0, 0, 646, 647, 648, 649, 650, 651, 652, 0, 524, 525, 518, 0, 202, 528, 0, 0, 0, 0,
653, 654, 655, 656, 657, 634, 635, 636, 637, 618, 0, 0, 0, 1195, 257, 0, 0, 0, 1069, 0,
619, 0, 0, 621, 0, 622, 623, 624, 625, 626, 0, 0, 0, 0, 0, 257, 0, 0, 0, 0,
627, 628, 629, 630, 631, 638, 639, 640, 641, 642, 0, 0, 0, 0, 0, 679, 1202, 0, 0, 0,
643, 644, 645, 0, 0, 257, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 773, 1215, 0, 512, 1216, 515, 0, 1218, 0, 0,
0, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 529, 530, 531, 532, 533, 534, 535, 0, 513,
0, 0, 0, 0, 771, 202, 202, 202, 202, 202, 514, 511, 517, 516, 526, 527, 519, 520, 521, 522,
0, 0, 0, 0, 0, 0, 0, 981, 0, 0, 523, 524, 525, 518, 0, 0, 528, 517, 516, 526,
202, 0, 0, 0, 808, 0, 0, 0, 202, 1318, 527, 519, 520, 521, 522, 523, 524, 525, 518, 0,
552, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 103, 0, 0, 0, 0, 0, 119, 0, 121,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 157, 130, 1166, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202, 0, 934, 0, 0, 0, 0, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 1173, 0, 202, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 1176, 517, 516, 526, 527, 519, 520,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, 522, 523, 524, 525, 518, 0, 0, 528, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 517, 516, 526,
527, 519, 520, 521, 522, 523, 524, 525, 518, 0,
0, 528, 0, 0, 773, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 108, 0, 0, 0, 205,
0, 0, 1323, 553, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145,
172, 206, 180, 162, 179, 186, 85, 161, 171, 97,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
131, 133, 0, 0, 0, 158, 175, 190, 94, 810,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152,
98, 174, 156, 517, 516, 526, 527, 519, 520, 521,
522, 523, 524, 525, 518, 0, 0, 528, 0, 0,
83, 0, 120, 187, 146, 105, 176, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 257, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 257, 0, 0, 0, 0, 0, 0, 0,
0, 0, 677, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 138, 0, 0, 771, 0, 0,
0, 0, 0, 103, 0, 0, 0, 0, 0, 119,
0, 121, 0, 0, 157, 130, 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, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 773, 0, 0, 0, 0,
0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 202,
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, 202, 0, 516, 0, 416, 407, 1333, 378, 419, 356, 370, 427, 371,
515, 525, 526, 518, 519, 520, 521, 522, 523, 524, 372, 400, 342, 386, 138, 368, 0, 359, 337, 365,
517, 0, 0, 527, 0, 0, 0, 0, 0, 202, 338, 357, 380, 103, 383, 355, 409, 389, 418, 119,
0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 425, 121, 394, 0, 157, 130, 0, 0, 382, 411,
0, 205, 0, 0, 202, 0, 144, 0, 160, 110, 384, 405, 377, 401, 347, 393, 420, 369, 398, 421,
118, 84, 90, 0, 109, 136, 149, 153, 0, 0, 0, 0, 0, 81, 0, 831, 832, 0, 0, 0,
0, 99, 0, 151, 140, 173, 0, 141, 150, 122, 0, 0, 96, 0, 396, 415, 367, 397, 399, 336,
395, 0, 340, 343, 426, 413, 362, 363, 1005, 0,
0, 0, 0, 0, 0, 381, 385, 402, 375, 0,
0, 0, 0, 0, 0, 0, 0, 360, 0, 392,
0, 0, 0, 344, 341, 0, 0, 379, 0, 0,
0, 346, 0, 361, 403, 0, 335, 108, 406, 412,
376, 205, 414, 374, 373, 417, 144, 0, 160, 110,
118, 84, 90, 0, 109, 136, 149, 153, 410, 358,
366, 99, 364, 151, 140, 173, 391, 141, 150, 122,
165, 145, 172, 206, 180, 162, 179, 186, 85, 161, 165, 145, 172, 206, 180, 162, 179, 186, 85, 161,
171, 97, 154, 87, 169, 159, 128, 114, 115, 86, 171, 97, 154, 87, 169, 159, 128, 114, 115, 86,
771, 148, 102, 106, 101, 137, 166, 167, 100, 189, 0, 148, 102, 106, 101, 137, 166, 167, 100, 189,
91, 178, 89, 92, 177, 135, 164, 170, 129, 126, 91, 178, 89, 92, 177, 135, 164, 170, 129, 126,
88, 168, 127, 125, 117, 104, 111, 142, 124, 143, 88, 168, 127, 125, 117, 104, 111, 142, 124, 143,
112, 132, 131, 133, 0, 0, 0, 158, 175, 190, 112, 132, 131, 133, 0, 339, 0, 158, 175, 190,
94, 0, 163, 181, 182, 183, 184, 185, 0, 0, 94, 354, 163, 181, 182, 183, 184, 185, 0, 0,
95, 107, 134, 93, 113, 155, 116, 123, 147, 188, 95, 107, 134, 93, 113, 155, 116, 123, 147, 188,
139, 152, 98, 174, 156, 0, 0, 0, 0, 0, 139, 152, 98, 174, 156, 350, 353, 348, 349, 387,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 388, 422, 423, 424, 404, 345, 0, 351, 352, 0,
0, 0, 83, 0, 120, 187, 146, 105, 176, 416, 408, 390, 83, 0, 120, 187, 146, 105, 176, 416,
407, 0, 378, 419, 356, 370, 427, 371, 372, 400, 407, 0, 378, 419, 356, 370, 427, 371, 372, 400,
342, 386, 138, 368, 808, 359, 337, 365, 338, 357, 342, 386, 138, 368, 0, 359, 337, 365, 338, 357,
380, 103, 383, 355, 409, 389, 418, 119, 425, 121, 380, 103, 383, 355, 409, 389, 418, 119, 425, 121,
394, 0, 157, 130, 0, 0, 382, 411, 384, 405, 394, 0, 157, 130, 0, 0, 382, 411, 384, 405,
377, 401, 347, 393, 420, 369, 398, 421, 0, 0, 377, 401, 347, 393, 420, 369, 398, 421, 0, 0,
0, 81, 0, 829, 830, 0, 0, 0, 0, 0, 0, 81, 0, 831, 832, 0, 0, 0, 0, 0,
96, 0, 396, 415, 367, 397, 399, 336, 395, 0, 96, 0, 396, 415, 367, 397, 399, 336, 395, 0,
340, 343, 426, 413, 362, 363, 1002, 0, 0, 0, 340, 343, 426, 413, 362, 363, 0, 0, 0, 0,
0, 0, 0, 381, 385, 402, 375, 0, 0, 0, 0, 0, 0, 381, 385, 402, 375, 0, 0, 0,
771, 0, 0, 0, 0, 360, 0, 392, 0, 0, 0, 0, 0, 0, 0, 360, 0, 392, 0, 0,
0, 344, 341, 0, 202, 379, 0, 0, 0, 346, 0, 344, 341, 0, 0, 379, 0, 0, 0, 346,
0, 361, 403, 0, 335, 108, 406, 412, 376, 205, 0, 361, 403, 0, 335, 108, 406, 412, 376, 205,
414, 374, 373, 417, 144, 0, 160, 110, 118, 84, 414, 374, 373, 417, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 410, 358, 366, 99, 90, 0, 109, 136, 149, 153, 410, 358, 366, 99,
...@@ -990,8 +1008,8 @@ var yyAct = [...]int{ ...@@ -990,8 +1008,8 @@ var yyAct = [...]int{
138, 368, 0, 359, 337, 365, 338, 357, 380, 103, 138, 368, 0, 359, 337, 365, 338, 357, 380, 103,
383, 355, 409, 389, 418, 119, 425, 121, 394, 0, 383, 355, 409, 389, 418, 119, 425, 121, 394, 0,
157, 130, 0, 0, 382, 411, 384, 405, 377, 401, 157, 130, 0, 0, 382, 411, 384, 405, 377, 401,
347, 393, 420, 369, 398, 421, 0, 0, 0, 81, 347, 393, 420, 369, 398, 421, 54, 0, 0, 81,
0, 829, 830, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0,
396, 415, 367, 397, 399, 336, 395, 0, 340, 343, 396, 415, 367, 397, 399, 336, 395, 0, 340, 343,
426, 413, 362, 363, 0, 0, 0, 0, 0, 0, 426, 413, 362, 363, 0, 0, 0, 0, 0, 0,
0, 381, 385, 402, 375, 0, 0, 0, 0, 0, 0, 381, 385, 402, 375, 0, 0, 0, 0, 0,
...@@ -1016,11 +1034,11 @@ var yyAct = [...]int{ ...@@ -1016,11 +1034,11 @@ var yyAct = [...]int{
0, 359, 337, 365, 338, 357, 380, 103, 383, 355, 0, 359, 337, 365, 338, 357, 380, 103, 383, 355,
409, 389, 418, 119, 425, 121, 394, 0, 157, 130, 409, 389, 418, 119, 425, 121, 394, 0, 157, 130,
0, 0, 382, 411, 384, 405, 377, 401, 347, 393, 0, 0, 382, 411, 384, 405, 377, 401, 347, 393,
420, 369, 398, 421, 54, 0, 0, 81, 0, 0, 420, 369, 398, 421, 0, 0, 0, 81, 0, 0,
0, 0, 0, 0, 0, 0, 96, 0, 396, 415, 0, 0, 0, 0, 0, 0, 96, 0, 396, 415,
367, 397, 399, 336, 395, 0, 340, 343, 426, 413, 367, 397, 399, 336, 395, 0, 340, 343, 426, 413,
362, 363, 0, 0, 0, 0, 0, 0, 0, 381, 362, 363, 0, 0, 0, 0, 0, 0, 0, 381,
385, 402, 375, 0, 0, 0, 0, 0, 0, 0, 385, 402, 375, 0, 0, 0, 0, 0, 0, 1072,
0, 360, 0, 392, 0, 0, 0, 344, 341, 0, 0, 360, 0, 392, 0, 0, 0, 344, 341, 0,
0, 379, 0, 0, 0, 346, 0, 361, 403, 0, 0, 379, 0, 0, 0, 346, 0, 361, 403, 0,
335, 108, 406, 412, 376, 205, 414, 374, 373, 417, 335, 108, 406, 412, 376, 205, 414, 374, 373, 417,
...@@ -1042,11 +1060,11 @@ var yyAct = [...]int{ ...@@ -1042,11 +1060,11 @@ var yyAct = [...]int{
337, 365, 338, 357, 380, 103, 383, 355, 409, 389, 337, 365, 338, 357, 380, 103, 383, 355, 409, 389,
418, 119, 425, 121, 394, 0, 157, 130, 0, 0, 418, 119, 425, 121, 394, 0, 157, 130, 0, 0,
382, 411, 384, 405, 377, 401, 347, 393, 420, 369, 382, 411, 384, 405, 377, 401, 347, 393, 420, 369,
398, 421, 0, 0, 0, 81, 0, 0, 0, 0, 398, 421, 0, 0, 0, 262, 0, 0, 0, 0,
0, 0, 0, 0, 96, 0, 396, 415, 367, 397, 0, 0, 0, 0, 96, 0, 396, 415, 367, 397,
399, 336, 395, 0, 340, 343, 426, 413, 362, 363, 399, 336, 395, 0, 340, 343, 426, 413, 362, 363,
0, 0, 0, 0, 0, 0, 0, 381, 385, 402, 0, 0, 0, 0, 0, 0, 0, 381, 385, 402,
375, 0, 0, 0, 0, 0, 0, 1068, 0, 360, 375, 0, 0, 0, 0, 0, 0, 724, 0, 360,
0, 392, 0, 0, 0, 344, 341, 0, 0, 379, 0, 392, 0, 0, 0, 344, 341, 0, 0, 379,
0, 0, 0, 346, 0, 361, 403, 0, 335, 108, 0, 0, 0, 346, 0, 361, 403, 0, 335, 108,
406, 412, 376, 205, 414, 374, 373, 417, 144, 0, 406, 412, 376, 205, 414, 374, 373, 417, 144, 0,
...@@ -1068,11 +1086,11 @@ var yyAct = [...]int{ ...@@ -1068,11 +1086,11 @@ var yyAct = [...]int{
338, 357, 380, 103, 383, 355, 409, 389, 418, 119, 338, 357, 380, 103, 383, 355, 409, 389, 418, 119,
425, 121, 394, 0, 157, 130, 0, 0, 382, 411, 425, 121, 394, 0, 157, 130, 0, 0, 382, 411,
384, 405, 377, 401, 347, 393, 420, 369, 398, 421, 384, 405, 377, 401, 347, 393, 420, 369, 398, 421,
0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0,
0, 0, 96, 0, 396, 415, 367, 397, 399, 336, 0, 0, 96, 0, 396, 415, 367, 397, 399, 336,
395, 0, 340, 343, 426, 413, 362, 363, 0, 0, 395, 0, 340, 343, 426, 413, 362, 363, 0, 0,
0, 0, 0, 0, 0, 381, 385, 402, 375, 0, 0, 0, 0, 0, 0, 381, 385, 402, 375, 0,
0, 0, 0, 0, 0, 722, 0, 360, 0, 392, 0, 0, 0, 0, 0, 0, 0, 360, 0, 392,
0, 0, 0, 344, 341, 0, 0, 379, 0, 0, 0, 0, 0, 344, 341, 0, 0, 379, 0, 0,
0, 346, 0, 361, 403, 0, 335, 108, 406, 412, 0, 346, 0, 361, 403, 0, 335, 108, 406, 412,
376, 205, 414, 374, 373, 417, 144, 0, 160, 110, 376, 205, 414, 374, 373, 417, 144, 0, 160, 110,
...@@ -1094,7 +1112,7 @@ var yyAct = [...]int{ ...@@ -1094,7 +1112,7 @@ var yyAct = [...]int{
380, 103, 383, 355, 409, 389, 418, 119, 425, 121, 380, 103, 383, 355, 409, 389, 418, 119, 425, 121,
394, 0, 157, 130, 0, 0, 382, 411, 384, 405, 394, 0, 157, 130, 0, 0, 382, 411, 384, 405,
377, 401, 347, 393, 420, 369, 398, 421, 0, 0, 377, 401, 347, 393, 420, 369, 398, 421, 0, 0,
0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, 0,
96, 0, 396, 415, 367, 397, 399, 336, 395, 0, 96, 0, 396, 415, 367, 397, 399, 336, 395, 0,
340, 343, 426, 413, 362, 363, 0, 0, 0, 0, 340, 343, 426, 413, 362, 363, 0, 0, 0, 0,
0, 0, 0, 381, 385, 402, 375, 0, 0, 0, 0, 0, 0, 381, 385, 402, 375, 0, 0, 0,
...@@ -1119,7 +1137,7 @@ var yyAct = [...]int{ ...@@ -1119,7 +1137,7 @@ var yyAct = [...]int{
138, 368, 0, 359, 337, 365, 338, 357, 380, 103, 138, 368, 0, 359, 337, 365, 338, 357, 380, 103,
383, 355, 409, 389, 418, 119, 425, 121, 394, 0, 383, 355, 409, 389, 418, 119, 425, 121, 394, 0,
157, 130, 0, 0, 382, 411, 384, 405, 377, 401, 157, 130, 0, 0, 382, 411, 384, 405, 377, 401,
347, 393, 420, 369, 398, 421, 0, 0, 0, 262, 347, 393, 420, 369, 398, 421, 0, 0, 0, 81,
0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0,
396, 415, 367, 397, 399, 336, 395, 0, 340, 343, 396, 415, 367, 397, 399, 336, 395, 0, 340, 343,
426, 413, 362, 363, 0, 0, 0, 0, 0, 0, 426, 413, 362, 363, 0, 0, 0, 0, 0, 0,
...@@ -1132,11 +1150,11 @@ var yyAct = [...]int{ ...@@ -1132,11 +1150,11 @@ var yyAct = [...]int{
140, 173, 391, 141, 150, 122, 165, 145, 172, 206, 140, 173, 391, 141, 150, 122, 165, 145, 172, 206,
180, 162, 179, 186, 85, 161, 171, 97, 154, 87, 180, 162, 179, 186, 85, 161, 171, 97, 154, 87,
169, 159, 128, 114, 115, 86, 0, 148, 102, 106, 169, 159, 128, 114, 115, 86, 0, 148, 102, 106,
101, 137, 166, 167, 100, 189, 91, 178, 89, 92, 101, 137, 166, 167, 100, 189, 91, 178, 89, 333,
177, 135, 164, 170, 129, 126, 88, 168, 127, 125, 177, 135, 164, 170, 129, 126, 88, 168, 127, 125,
117, 104, 111, 142, 124, 143, 112, 132, 131, 133, 117, 104, 111, 142, 124, 143, 112, 132, 131, 133,
0, 339, 0, 158, 175, 190, 94, 354, 163, 181, 0, 339, 0, 158, 175, 190, 94, 354, 163, 181,
182, 183, 184, 185, 0, 0, 95, 107, 134, 93, 182, 183, 184, 185, 0, 0, 95, 107, 334, 332,
113, 155, 116, 123, 147, 188, 139, 152, 98, 174, 113, 155, 116, 123, 147, 188, 139, 152, 98, 174,
156, 350, 353, 348, 349, 387, 388, 422, 423, 424, 156, 350, 353, 348, 349, 387, 388, 422, 423, 424,
404, 345, 0, 351, 352, 0, 408, 390, 83, 0, 404, 345, 0, 351, 352, 0, 408, 390, 83, 0,
...@@ -1145,7 +1163,7 @@ var yyAct = [...]int{ ...@@ -1145,7 +1163,7 @@ var yyAct = [...]int{
0, 359, 337, 365, 338, 357, 380, 103, 383, 355, 0, 359, 337, 365, 338, 357, 380, 103, 383, 355,
409, 389, 418, 119, 425, 121, 394, 0, 157, 130, 409, 389, 418, 119, 425, 121, 394, 0, 157, 130,
0, 0, 382, 411, 384, 405, 377, 401, 347, 393, 0, 0, 382, 411, 384, 405, 377, 401, 347, 393,
420, 369, 398, 421, 0, 0, 0, 81, 0, 0, 420, 369, 398, 421, 0, 0, 0, 203, 0, 0,
0, 0, 0, 0, 0, 0, 96, 0, 396, 415, 0, 0, 0, 0, 0, 0, 96, 0, 396, 415,
367, 397, 399, 336, 395, 0, 340, 343, 426, 413, 367, 397, 399, 336, 395, 0, 340, 343, 426, 413,
362, 363, 0, 0, 0, 0, 0, 0, 0, 381, 362, 363, 0, 0, 0, 0, 0, 0, 0, 381,
...@@ -1158,11 +1176,11 @@ var yyAct = [...]int{ ...@@ -1158,11 +1176,11 @@ var yyAct = [...]int{
391, 141, 150, 122, 165, 145, 172, 206, 180, 162, 391, 141, 150, 122, 165, 145, 172, 206, 180, 162,
179, 186, 85, 161, 171, 97, 154, 87, 169, 159, 179, 186, 85, 161, 171, 97, 154, 87, 169, 159,
128, 114, 115, 86, 0, 148, 102, 106, 101, 137, 128, 114, 115, 86, 0, 148, 102, 106, 101, 137,
166, 167, 100, 189, 91, 178, 89, 333, 177, 135, 166, 167, 100, 189, 91, 178, 89, 92, 177, 135,
164, 170, 129, 126, 88, 168, 127, 125, 117, 104, 164, 170, 129, 126, 88, 168, 127, 125, 117, 104,
111, 142, 124, 143, 112, 132, 131, 133, 0, 339, 111, 142, 124, 143, 112, 132, 131, 133, 0, 339,
0, 158, 175, 190, 94, 354, 163, 181, 182, 183, 0, 158, 175, 190, 94, 354, 163, 181, 182, 183,
184, 185, 0, 0, 95, 107, 334, 332, 113, 155, 184, 185, 0, 0, 95, 107, 134, 93, 113, 155,
116, 123, 147, 188, 139, 152, 98, 174, 156, 350, 116, 123, 147, 188, 139, 152, 98, 174, 156, 350,
353, 348, 349, 387, 388, 422, 423, 424, 404, 345, 353, 348, 349, 387, 388, 422, 423, 424, 404, 345,
0, 351, 352, 0, 408, 390, 83, 0, 120, 187, 0, 351, 352, 0, 408, 390, 83, 0, 120, 187,
...@@ -1171,7 +1189,7 @@ var yyAct = [...]int{ ...@@ -1171,7 +1189,7 @@ var yyAct = [...]int{
337, 365, 338, 357, 380, 103, 383, 355, 409, 389, 337, 365, 338, 357, 380, 103, 383, 355, 409, 389,
418, 119, 425, 121, 394, 0, 157, 130, 0, 0, 418, 119, 425, 121, 394, 0, 157, 130, 0, 0,
382, 411, 384, 405, 377, 401, 347, 393, 420, 369, 382, 411, 384, 405, 377, 401, 347, 393, 420, 369,
398, 421, 0, 0, 0, 203, 0, 0, 0, 0, 398, 421, 0, 0, 0, 81, 0, 0, 0, 0,
0, 0, 0, 0, 96, 0, 396, 415, 367, 397, 0, 0, 0, 0, 96, 0, 396, 415, 367, 397,
399, 336, 395, 0, 340, 343, 426, 413, 362, 363, 399, 336, 395, 0, 340, 343, 426, 413, 362, 363,
0, 0, 0, 0, 0, 0, 0, 381, 385, 402, 0, 0, 0, 0, 0, 0, 0, 381, 385, 402,
...@@ -1182,13 +1200,13 @@ var yyAct = [...]int{ ...@@ -1182,13 +1200,13 @@ var yyAct = [...]int{
160, 110, 118, 84, 90, 0, 109, 136, 149, 153, 160, 110, 118, 84, 90, 0, 109, 136, 149, 153,
410, 358, 366, 99, 364, 151, 140, 173, 391, 141, 410, 358, 366, 99, 364, 151, 140, 173, 391, 141,
150, 122, 165, 145, 172, 206, 180, 162, 179, 186, 150, 122, 165, 145, 172, 206, 180, 162, 179, 186,
85, 161, 171, 97, 154, 87, 169, 159, 128, 114, 85, 161, 598, 97, 154, 87, 169, 159, 128, 114,
115, 86, 0, 148, 102, 106, 101, 137, 166, 167, 115, 86, 0, 148, 102, 106, 101, 137, 166, 167,
100, 189, 91, 178, 89, 92, 177, 135, 164, 170, 100, 189, 91, 178, 89, 333, 177, 135, 164, 170,
129, 126, 88, 168, 127, 125, 117, 104, 111, 142, 129, 126, 88, 168, 127, 125, 117, 104, 111, 142,
124, 143, 112, 132, 131, 133, 0, 339, 0, 158, 124, 143, 112, 132, 131, 133, 0, 339, 0, 158,
175, 190, 94, 354, 163, 181, 182, 183, 184, 185, 175, 190, 94, 354, 163, 181, 182, 183, 184, 185,
0, 0, 95, 107, 134, 93, 113, 155, 116, 123, 0, 0, 95, 107, 334, 332, 113, 155, 116, 123,
147, 188, 139, 152, 98, 174, 156, 350, 353, 348, 147, 188, 139, 152, 98, 174, 156, 350, 353, 348,
349, 387, 388, 422, 423, 424, 404, 345, 0, 351, 349, 387, 388, 422, 423, 424, 404, 345, 0, 351,
352, 0, 408, 390, 83, 0, 120, 187, 146, 105, 352, 0, 408, 390, 83, 0, 120, 187, 146, 105,
...@@ -1208,67 +1226,115 @@ var yyAct = [...]int{ ...@@ -1208,67 +1226,115 @@ var yyAct = [...]int{
118, 84, 90, 0, 109, 136, 149, 153, 410, 358, 118, 84, 90, 0, 109, 136, 149, 153, 410, 358,
366, 99, 364, 151, 140, 173, 391, 141, 150, 122, 366, 99, 364, 151, 140, 173, 391, 141, 150, 122,
165, 145, 172, 206, 180, 162, 179, 186, 85, 161, 165, 145, 172, 206, 180, 162, 179, 186, 85, 161,
597, 97, 154, 87, 169, 159, 128, 114, 115, 86, 324, 97, 154, 87, 169, 159, 128, 114, 115, 86,
0, 148, 102, 106, 101, 137, 166, 167, 100, 189, 0, 148, 102, 106, 101, 137, 166, 167, 100, 189,
91, 178, 89, 333, 177, 135, 164, 170, 129, 126, 91, 178, 89, 333, 177, 135, 164, 170, 129, 126,
88, 168, 127, 125, 117, 104, 111, 142, 124, 143, 88, 168, 127, 125, 117, 104, 111, 142, 124, 143,
112, 132, 131, 133, 0, 339, 0, 158, 175, 190, 112, 132, 131, 133, 0, 339, 0, 158, 175, 190,
94, 354, 163, 181, 182, 183, 184, 185, 0, 0, 94, 354, 163, 181, 182, 183, 184, 185, 0, 0,
95, 107, 334, 332, 113, 155, 116, 123, 147, 188, 95, 107, 334, 332, 327, 326, 116, 123, 147, 188,
139, 152, 98, 174, 156, 350, 353, 348, 349, 387, 139, 152, 98, 174, 156, 350, 353, 348, 349, 387,
388, 422, 423, 424, 404, 345, 0, 351, 352, 0, 388, 422, 423, 424, 404, 345, 0, 351, 352, 0,
408, 390, 83, 0, 120, 187, 146, 105, 176, 416, 408, 390, 83, 0, 120, 187, 146, 105, 176, 138,
407, 0, 378, 419, 356, 370, 427, 371, 372, 400, 0, 0, 0, 0, 264, 0, 0, 0, 103, 0,
342, 386, 138, 368, 0, 359, 337, 365, 338, 357, 261, 0, 0, 0, 119, 304, 121, 0, 0, 157,
380, 103, 383, 355, 409, 389, 418, 119, 425, 121, 130, 0, 0, 0, 0, 295, 296, 0, 0, 0,
394, 0, 157, 130, 0, 0, 382, 411, 384, 405, 0, 0, 0, 822, 0, 54, 0, 0, 262, 283,
377, 401, 347, 393, 420, 369, 398, 421, 0, 0, 282, 285, 286, 287, 288, 0, 0, 96, 284, 289,
0, 81, 0, 0, 0, 0, 0, 0, 0, 0, 290, 291, 823, 0, 0, 259, 276, 0, 303, 0,
96, 0, 396, 415, 367, 397, 399, 336, 395, 0,
340, 343, 426, 413, 362, 363, 0, 0, 0, 0,
0, 0, 0, 381, 385, 402, 375, 0, 0, 0,
0, 0, 0, 0, 0, 360, 0, 392, 0, 0,
0, 344, 341, 0, 0, 379, 0, 0, 0, 346,
0, 361, 403, 0, 335, 108, 406, 412, 376, 205,
414, 374, 373, 417, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 410, 358, 366, 99,
364, 151, 140, 173, 391, 141, 150, 122, 165, 145,
172, 206, 180, 162, 179, 186, 85, 161, 324, 97,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
89, 333, 177, 135, 164, 170, 129, 126, 88, 168,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
131, 133, 0, 339, 0, 158, 175, 190, 94, 354,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
334, 332, 327, 326, 116, 123, 147, 188, 139, 152,
98, 174, 156, 350, 353, 348, 349, 387, 388, 422,
423, 424, 404, 345, 0, 351, 352, 0, 408, 390,
83, 0, 120, 187, 146, 105, 176, 138, 0, 0,
0, 0, 264, 0, 0, 0, 103, 0, 261, 0,
0, 0, 119, 304, 121, 0, 0, 157, 130, 0,
0, 0, 0, 295, 296, 0, 0, 0, 0, 0,
0, 820, 0, 54, 0, 0, 262, 283, 282, 285,
286, 287, 288, 0, 0, 96, 284, 289, 290, 291,
821, 0, 0, 259, 276, 0, 303, 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, 273, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 274,
0, 0, 315, 0, 275, 0, 0, 270, 271, 272, 0, 0, 0, 0, 315, 0, 275, 0, 0, 270,
277, 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, 272, 277, 0, 0, 0, 0, 0, 0, 0,
108, 0, 0, 0, 205, 0, 0, 313, 0, 144, 0, 0, 108, 0, 0, 0, 205, 0, 0, 313,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149, 0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0, 136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179, 173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128, 162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166, 159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164, 137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111, 135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0, 104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184, 0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116, 183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
123, 147, 188, 139, 152, 98, 174, 156, 305, 314, 155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
311, 312, 309, 310, 308, 307, 306, 316, 297, 298, 305, 314, 311, 312, 309, 310, 308, 307, 306, 316,
299, 300, 302, 0, 301, 83, 0, 120, 187, 146, 297, 298, 299, 300, 302, 0, 301, 83, 0, 120,
105, 176, 138, 0, 0, 758, 0, 264, 0, 0, 187, 146, 105, 176, 138, 0, 0, 760, 0, 264,
0, 0, 0, 103, 0, 261, 0, 0, 0, 119,
304, 121, 0, 0, 157, 130, 0, 0, 0, 0,
295, 296, 0, 0, 0, 0, 0, 0, 0, 0,
54, 0, 0, 262, 283, 282, 285, 286, 287, 288,
0, 0, 96, 284, 289, 290, 291, 0, 0, 0,
259, 276, 0, 303, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 273, 274, 255, 0, 0, 0, 315,
0, 275, 0, 0, 270, 271, 272, 277, 0, 0,
0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
0, 205, 0, 0, 313, 0, 144, 0, 160, 110,
118, 84, 90, 0, 109, 136, 149, 153, 0, 0,
0, 99, 0, 151, 140, 173, 0, 141, 150, 122,
165, 145, 172, 206, 180, 162, 179, 186, 85, 161,
171, 97, 154, 87, 169, 159, 128, 114, 115, 86,
0, 148, 102, 106, 101, 137, 166, 167, 100, 189,
91, 178, 89, 92, 177, 135, 164, 170, 129, 126,
88, 168, 127, 125, 117, 104, 111, 142, 124, 143,
112, 132, 131, 133, 0, 0, 0, 158, 175, 190,
94, 0, 163, 181, 182, 183, 184, 185, 0, 0,
95, 107, 134, 93, 113, 155, 116, 123, 147, 188,
139, 152, 98, 174, 156, 305, 314, 311, 312, 309,
310, 308, 307, 306, 316, 297, 298, 299, 300, 302,
0, 301, 83, 0, 120, 187, 146, 105, 176, 138,
0, 0, 0, 0, 264, 0, 0, 0, 103, 0,
261, 0, 0, 0, 119, 304, 121, 0, 0, 157,
130, 0, 0, 0, 0, 295, 296, 0, 0, 0,
0, 0, 0, 0, 0, 54, 0, 483, 262, 283,
282, 285, 286, 287, 288, 0, 0, 96, 284, 289,
290, 291, 0, 0, 0, 259, 276, 0, 303, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 273, 274,
0, 0, 0, 0, 315, 0, 275, 0, 0, 270,
271, 272, 277, 0, 0, 0, 0, 0, 0, 0,
0, 0, 108, 0, 0, 0, 205, 0, 0, 313,
0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
305, 314, 311, 312, 309, 310, 308, 307, 306, 316,
297, 298, 299, 300, 302, 0, 301, 83, 0, 120,
187, 146, 105, 176, 138, 0, 0, 0, 0, 264,
0, 0, 0, 103, 0, 261, 0, 0, 0, 119,
304, 121, 0, 0, 157, 130, 0, 0, 0, 0,
295, 296, 0, 0, 0, 0, 0, 0, 0, 0,
54, 0, 0, 262, 283, 282, 285, 286, 287, 288,
0, 0, 96, 284, 289, 290, 291, 0, 0, 0,
259, 276, 0, 303, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 273, 274, 255, 0, 0, 0, 315,
0, 275, 0, 0, 270, 271, 272, 277, 0, 0,
0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
0, 205, 0, 0, 313, 0, 144, 0, 160, 110,
118, 84, 90, 0, 109, 136, 149, 153, 0, 0,
0, 99, 0, 151, 140, 173, 0, 141, 150, 122,
165, 145, 172, 206, 180, 162, 179, 186, 85, 161,
171, 97, 154, 87, 169, 159, 128, 114, 115, 86,
0, 148, 102, 106, 101, 137, 166, 167, 100, 189,
91, 178, 89, 92, 177, 135, 164, 170, 129, 126,
88, 168, 127, 125, 117, 104, 111, 142, 124, 143,
112, 132, 131, 133, 0, 0, 0, 158, 175, 190,
94, 0, 163, 181, 182, 183, 184, 185, 0, 0,
95, 107, 134, 93, 113, 155, 116, 123, 147, 188,
139, 152, 98, 174, 156, 305, 314, 311, 312, 309,
310, 308, 307, 306, 316, 297, 298, 299, 300, 302,
24, 301, 83, 0, 120, 187, 146, 105, 176, 0,
0, 0, 138, 0, 0, 0, 0, 264, 0, 0,
0, 103, 0, 261, 0, 0, 0, 119, 304, 121, 0, 103, 0, 261, 0, 0, 0, 119, 304, 121,
0, 0, 157, 130, 0, 0, 0, 0, 295, 296, 0, 0, 157, 130, 0, 0, 0, 0, 295, 296,
0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
...@@ -1276,7 +1342,7 @@ var yyAct = [...]int{ ...@@ -1276,7 +1342,7 @@ var yyAct = [...]int{
96, 284, 289, 290, 291, 0, 0, 0, 259, 276, 96, 284, 289, 290, 291, 0, 0, 0, 259, 276,
0, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, 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, 273, 274, 255, 0, 0, 0, 315, 0, 275, 0, 273, 274, 0, 0, 0, 0, 315, 0, 275,
0, 0, 270, 271, 272, 277, 0, 0, 0, 0, 0, 0, 270, 271, 272, 277, 0, 0, 0, 0,
0, 0, 0, 0, 0, 108, 0, 0, 0, 205, 0, 0, 0, 0, 0, 108, 0, 0, 0, 205,
0, 0, 313, 0, 144, 0, 160, 110, 118, 84, 0, 0, 313, 0, 144, 0, 160, 110, 118, 84,
...@@ -1296,7 +1362,7 @@ var yyAct = [...]int{ ...@@ -1296,7 +1362,7 @@ var yyAct = [...]int{
0, 0, 264, 0, 0, 0, 103, 0, 261, 0, 0, 0, 264, 0, 0, 0, 103, 0, 261, 0,
0, 0, 119, 304, 121, 0, 0, 157, 130, 0, 0, 0, 119, 304, 121, 0, 0, 157, 130, 0,
0, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 295, 296, 0, 0, 0, 0, 0,
0, 0, 0, 54, 0, 482, 262, 283, 282, 285, 0, 0, 0, 54, 0, 0, 262, 283, 282, 285,
286, 287, 288, 0, 0, 96, 284, 289, 290, 291, 286, 287, 288, 0, 0, 96, 284, 289, 290, 291,
0, 0, 0, 259, 276, 0, 303, 0, 0, 0, 0, 0, 0, 259, 276, 0, 303, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
...@@ -1316,229 +1382,62 @@ var yyAct = [...]int{ ...@@ -1316,229 +1382,62 @@ var yyAct = [...]int{
185, 0, 0, 95, 107, 134, 93, 113, 155, 116, 185, 0, 0, 95, 107, 134, 93, 113, 155, 116,
123, 147, 188, 139, 152, 98, 174, 156, 305, 314, 123, 147, 188, 139, 152, 98, 174, 156, 305, 314,
311, 312, 309, 310, 308, 307, 306, 316, 297, 298, 311, 312, 309, 310, 308, 307, 306, 316, 297, 298,
299, 300, 302, 0, 301, 83, 0, 120, 187, 146, 299, 300, 302, 138, 301, 83, 0, 120, 187, 146,
105, 176, 138, 0, 0, 0, 0, 264, 0, 0, 105, 176, 103, 0, 0, 0, 0, 0, 119, 304,
0, 103, 0, 261, 0, 0, 0, 119, 304, 121, 121, 0, 0, 157, 130, 0, 0, 0, 0, 295,
0, 0, 157, 130, 0, 0, 0, 0, 295, 296, 296, 0, 0, 0, 0, 0, 0, 0, 0, 54,
0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 262, 283, 282, 285, 286, 287, 288, 0,
0, 262, 283, 282, 285, 286, 287, 288, 0, 0, 0, 96, 284, 289, 290, 291, 0, 0, 0, 0,
96, 284, 289, 290, 291, 0, 0, 0, 259, 276, 276, 0, 303, 0, 0, 0, 0, 0, 0, 0,
0, 303, 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, 273, 274, 255, 0, 0, 0, 315, 0, 275, 0, 0, 273, 274, 0, 0, 0, 0, 315, 0,
0, 0, 270, 271, 272, 277, 0, 0, 0, 0, 275, 0, 0, 270, 271, 272, 277, 0, 0, 0,
0, 0, 0, 0, 0, 108, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0,
0, 0, 313, 0, 144, 0, 160, 110, 118, 84, 205, 0, 0, 313, 0, 144, 0, 160, 110, 118,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99, 84, 90, 0, 109, 136, 149, 153, 0, 0, 0,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145, 99, 0, 151, 140, 173, 1364, 141, 150, 122, 165,
172, 206, 180, 162, 179, 186, 85, 161, 171, 97, 145, 172, 206, 180, 162, 179, 186, 85, 161, 171,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148, 97, 154, 87, 169, 159, 128, 114, 115, 86, 0,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178, 148, 102, 106, 101, 137, 166, 167, 100, 189, 91,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168, 178, 89, 92, 177, 135, 164, 170, 129, 126, 88,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132, 168, 127, 125, 117, 104, 111, 142, 124, 143, 112,
131, 133, 0, 0, 0, 158, 175, 190, 94, 0, 132, 131, 133, 0, 0, 0, 158, 175, 190, 94,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107, 0, 163, 181, 182, 183, 184, 185, 0, 0, 95,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152, 107, 134, 93, 113, 155, 116, 123, 147, 188, 139,
98, 174, 156, 305, 314, 311, 312, 309, 310, 308, 152, 98, 174, 156, 305, 314, 311, 312, 309, 310,
307, 306, 316, 297, 298, 299, 300, 302, 24, 301, 308, 307, 306, 316, 297, 298, 299, 300, 302, 138,
83, 0, 120, 187, 146, 105, 176, 0, 0, 0, 301, 83, 0, 120, 187, 146, 105, 176, 103, 0,
138, 0, 0, 0, 0, 264, 0, 0, 0, 103, 0, 0, 0, 0, 119, 304, 121, 0, 0, 157,
0, 261, 0, 0, 0, 119, 304, 121, 0, 0, 130, 0, 0, 0, 0, 295, 296, 0, 0, 0,
157, 130, 0, 0, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 262, 283,
0, 0, 0, 0, 0, 0, 54, 0, 0, 262, 282, 285, 286, 287, 288, 0, 0, 96, 284, 289,
283, 282, 285, 286, 287, 288, 0, 0, 96, 284, 290, 291, 0, 0, 0, 0, 276, 0, 303, 0,
289, 290, 291, 0, 0, 0, 259, 276, 0, 303,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 273,
274, 0, 0, 0, 0, 315, 0, 275, 0, 0,
270, 271, 272, 277, 0, 0, 0, 0, 0, 0,
0, 0, 0, 108, 0, 0, 0, 205, 0, 0,
313, 0, 144, 0, 160, 110, 118, 84, 90, 0,
109, 136, 149, 153, 0, 0, 0, 99, 0, 151,
140, 173, 0, 141, 150, 122, 165, 145, 172, 206,
180, 162, 179, 186, 85, 161, 171, 97, 154, 87,
169, 159, 128, 114, 115, 86, 0, 148, 102, 106,
101, 137, 166, 167, 100, 189, 91, 178, 89, 92,
177, 135, 164, 170, 129, 126, 88, 168, 127, 125,
117, 104, 111, 142, 124, 143, 112, 132, 131, 133,
0, 0, 0, 158, 175, 190, 94, 0, 163, 181,
182, 183, 184, 185, 0, 0, 95, 107, 134, 93,
113, 155, 116, 123, 147, 188, 139, 152, 98, 174,
156, 305, 314, 311, 312, 309, 310, 308, 307, 306,
316, 297, 298, 299, 300, 302, 0, 301, 83, 0,
120, 187, 146, 105, 176, 138, 0, 0, 0, 0,
264, 0, 0, 0, 103, 0, 261, 0, 0, 0,
119, 304, 121, 0, 0, 157, 130, 0, 0, 0,
0, 295, 296, 0, 0, 0, 0, 0, 0, 0,
0, 54, 0, 0, 262, 283, 282, 285, 286, 287,
288, 0, 0, 96, 284, 289, 290, 291, 0, 0,
0, 259, 276, 0, 303, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 273, 274, 0, 0, 0, 0,
315, 0, 275, 0, 0, 270, 271, 272, 277, 0,
0, 0, 0, 0, 0, 0, 0, 0, 108, 0,
0, 0, 205, 0, 0, 313, 0, 144, 0, 160,
110, 118, 84, 90, 0, 109, 136, 149, 153, 0,
0, 0, 99, 0, 151, 140, 173, 0, 141, 150,
122, 165, 145, 172, 206, 180, 162, 179, 186, 85,
161, 171, 97, 154, 87, 169, 159, 128, 114, 115,
86, 0, 148, 102, 106, 101, 137, 166, 167, 100,
189, 91, 178, 89, 92, 177, 135, 164, 170, 129,
126, 88, 168, 127, 125, 117, 104, 111, 142, 124,
143, 112, 132, 131, 133, 0, 0, 0, 158, 175,
190, 94, 0, 163, 181, 182, 183, 184, 185, 0,
0, 95, 107, 134, 93, 113, 155, 116, 123, 147,
188, 139, 152, 98, 174, 156, 305, 314, 311, 312,
309, 310, 308, 307, 306, 316, 297, 298, 299, 300,
302, 138, 301, 83, 0, 120, 187, 146, 105, 176,
103, 0, 0, 0, 0, 0, 119, 304, 121, 0,
0, 157, 130, 0, 0, 0, 0, 295, 296, 0,
0, 0, 0, 0, 0, 0, 0, 54, 0, 0,
262, 283, 282, 285, 286, 287, 288, 0, 0, 96,
284, 289, 290, 291, 0, 0, 0, 0, 276, 0,
303, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
273, 274, 0, 0, 0, 0, 315, 0, 275, 0,
0, 270, 271, 272, 277, 0, 0, 0, 0, 0,
0, 0, 0, 0, 108, 0, 0, 0, 205, 0,
0, 313, 0, 144, 0, 160, 110, 118, 84, 90,
0, 109, 136, 149, 153, 0, 0, 0, 99, 0,
151, 140, 173, 1359, 141, 150, 122, 165, 145, 172,
206, 180, 162, 179, 186, 85, 161, 171, 97, 154,
87, 169, 159, 128, 114, 115, 86, 0, 148, 102,
106, 101, 137, 166, 167, 100, 189, 91, 178, 89,
92, 177, 135, 164, 170, 129, 126, 88, 168, 127,
125, 117, 104, 111, 142, 124, 143, 112, 132, 131,
133, 0, 0, 0, 158, 175, 190, 94, 0, 163,
181, 182, 183, 184, 185, 0, 0, 95, 107, 134,
93, 113, 155, 116, 123, 147, 188, 139, 152, 98,
174, 156, 305, 314, 311, 312, 309, 310, 308, 307,
306, 316, 297, 298, 299, 300, 302, 138, 301, 83,
0, 120, 187, 146, 105, 176, 103, 0, 0, 0,
0, 0, 119, 304, 121, 0, 0, 157, 130, 0,
0, 0, 0, 295, 296, 0, 0, 0, 0, 0,
0, 0, 0, 54, 0, 0, 262, 283, 282, 285,
286, 287, 288, 0, 0, 96, 284, 289, 290, 291,
0, 0, 0, 0, 276, 0, 303, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 273, 274, 0, 0,
0, 0, 315, 0, 275, 0, 0, 270, 271, 272,
277, 0, 0, 0, 0, 0, 0, 0, 0, 0,
108, 0, 0, 0, 205, 0, 0, 313, 0, 144,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116,
123, 147, 188, 139, 152, 98, 174, 156, 305, 314,
311, 312, 309, 310, 308, 307, 306, 316, 297, 298,
299, 300, 302, 0, 301, 83, 0, 120, 187, 146,
105, 176, 138, 0, 0, 0, 504, 0, 0, 0,
0, 103, 0, 0, 0, 0, 0, 119, 0, 121,
0, 0, 157, 130, 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, 81, 0, 506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 273, 274,
96, 0, 0, 0, 0, 0, 501, 500, 0, 0, 0, 0, 0, 0, 315, 0, 275, 0, 0, 270,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, 272, 277, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 502, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 205, 0, 0, 313,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
0, 0, 0, 0, 0, 108, 0, 0, 0, 205, 173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
0, 0, 0, 0, 144, 0, 160, 110, 118, 84, 162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99, 159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145, 137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
172, 206, 180, 162, 179, 186, 85, 161, 171, 97, 135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148, 104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178, 0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168, 183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132, 155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
131, 133, 0, 0, 0, 158, 175, 190, 94, 0, 305, 314, 311, 312, 309, 310, 308, 307, 306, 316,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107, 297, 298, 299, 300, 302, 0, 301, 83, 0, 120,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152, 187, 146, 105, 176, 138, 0, 0, 0, 505, 0,
98, 174, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 119,
0, 0, 138, 0, 0, 0, 0, 0, 0, 0,
83, 103, 120, 187, 146, 105, 176, 119, 0, 121,
0, 0, 157, 130, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 81, 0, 0, 0, 0, 0, 0, 0, 0,
96, 0, 0, 0, 0, 0, 74, 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, 108, 77, 78, 0, 73,
0, 0, 0, 79, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145,
172, 75, 180, 162, 179, 186, 85, 161, 171, 97,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
131, 133, 0, 0, 0, 158, 175, 190, 94, 0,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152,
98, 174, 156, 0, 76, 0, 0, 0, 0, 0,
0, 0, 138, 0, 0, 0, 807, 0, 0, 0,
83, 103, 120, 187, 146, 105, 176, 119, 0, 121,
0, 0, 157, 130, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 203, 0, 809, 0, 0, 0, 0, 0, 0,
96, 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, 108, 0, 0, 0, 205,
0, 0, 0, 0, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145,
172, 206, 180, 162, 179, 186, 85, 161, 171, 97,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
131, 133, 0, 0, 0, 158, 175, 190, 94, 0,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152,
98, 174, 156, 0, 0, 0, 24, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 138, 0,
83, 0, 120, 187, 146, 105, 176, 103, 0, 0,
0, 0, 0, 119, 0, 121, 0, 0, 157, 130,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 54, 0, 0, 81, 0, 0,
0, 0, 0, 0, 0, 0, 96, 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, 108, 0, 0, 0, 205, 0, 0, 0, 0,
144, 0, 160, 110, 118, 84, 90, 0, 109, 136,
149, 153, 0, 0, 0, 99, 0, 151, 140, 173,
0, 141, 150, 122, 165, 145, 172, 206, 180, 162,
179, 186, 85, 161, 171, 97, 154, 87, 169, 159,
128, 114, 115, 86, 0, 148, 102, 106, 101, 137,
166, 167, 100, 189, 91, 178, 89, 92, 177, 135,
164, 170, 129, 126, 88, 168, 127, 125, 117, 104,
111, 142, 124, 143, 112, 132, 131, 133, 0, 0,
0, 158, 175, 190, 94, 0, 163, 181, 182, 183,
184, 185, 0, 0, 95, 107, 134, 93, 113, 155,
116, 123, 147, 188, 139, 152, 98, 174, 156, 0,
0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 138, 0, 83, 0, 120, 187,
146, 105, 176, 103, 0, 0, 0, 0, 0, 119,
0, 121, 0, 0, 157, 130, 0, 0, 0, 0, 0, 121, 0, 0, 157, 130, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
54, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 507, 0, 0, 0, 0,
0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 502, 501,
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, 503, 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, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 0, 0,
...@@ -1554,21 +1453,21 @@ var yyAct = [...]int{ ...@@ -1554,21 +1453,21 @@ var yyAct = [...]int{
94, 0, 163, 181, 182, 183, 184, 185, 0, 0, 94, 0, 163, 181, 182, 183, 184, 185, 0, 0,
95, 107, 134, 93, 113, 155, 116, 123, 147, 188, 95, 107, 134, 93, 113, 155, 116, 123, 147, 188,
139, 152, 98, 174, 156, 0, 0, 0, 0, 0, 139, 152, 98, 174, 156, 0, 0, 0, 0, 0,
0, 0, 0, 0, 138, 0, 0, 0, 807, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0,
0, 0, 83, 103, 120, 187, 146, 105, 176, 119, 0, 0, 83, 103, 120, 187, 146, 105, 176, 119,
0, 121, 0, 0, 157, 130, 0, 0, 0, 0, 0, 121, 0, 0, 157, 130, 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, 203, 0, 809, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0,
0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 74, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 77, 78,
0, 205, 0, 0, 0, 0, 144, 0, 160, 110, 0, 73, 0, 0, 0, 79, 144, 0, 160, 110,
118, 84, 90, 0, 109, 136, 149, 153, 0, 0, 118, 84, 90, 0, 109, 136, 149, 153, 0, 0,
0, 99, 0, 151, 140, 173, 0, 805, 150, 122, 0, 99, 0, 151, 140, 173, 0, 141, 150, 122,
165, 145, 172, 206, 180, 162, 179, 186, 85, 161, 165, 145, 172, 75, 180, 162, 179, 186, 85, 161,
171, 97, 154, 87, 169, 159, 128, 114, 115, 86, 171, 97, 154, 87, 169, 159, 128, 114, 115, 86,
0, 148, 102, 106, 101, 137, 166, 167, 100, 189, 0, 148, 102, 106, 101, 137, 166, 167, 100, 189,
91, 178, 89, 92, 177, 135, 164, 170, 129, 126, 91, 178, 89, 92, 177, 135, 164, 170, 129, 126,
...@@ -1576,12 +1475,12 @@ var yyAct = [...]int{ ...@@ -1576,12 +1475,12 @@ var yyAct = [...]int{
112, 132, 131, 133, 0, 0, 0, 158, 175, 190, 112, 132, 131, 133, 0, 0, 0, 158, 175, 190,
94, 0, 163, 181, 182, 183, 184, 185, 0, 0, 94, 0, 163, 181, 182, 183, 184, 185, 0, 0,
95, 107, 134, 93, 113, 155, 116, 123, 147, 188, 95, 107, 134, 93, 113, 155, 116, 123, 147, 188,
139, 152, 98, 174, 156, 0, 0, 0, 0, 0, 139, 152, 98, 174, 156, 0, 76, 0, 0, 0,
0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 809, 0,
0, 0, 83, 103, 120, 187, 146, 105, 176, 119, 0, 0, 83, 103, 120, 187, 146, 105, 176, 119,
0, 121, 0, 0, 157, 130, 0, 0, 0, 0, 0, 121, 0, 0, 157, 130, 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, 81, 0, 0, 709, 0, 0, 710, 0, 0, 0, 203, 0, 811, 0, 0, 0, 0,
0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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,
...@@ -1599,13 +1498,13 @@ var yyAct = [...]int{ ...@@ -1599,13 +1498,13 @@ var yyAct = [...]int{
112, 132, 131, 133, 0, 0, 0, 158, 175, 190, 112, 132, 131, 133, 0, 0, 0, 158, 175, 190,
94, 0, 163, 181, 182, 183, 184, 185, 0, 0, 94, 0, 163, 181, 182, 183, 184, 185, 0, 0,
95, 107, 134, 93, 113, 155, 116, 123, 147, 188, 95, 107, 134, 93, 113, 155, 116, 123, 147, 188,
139, 152, 98, 174, 156, 0, 0, 0, 0, 0, 139, 152, 98, 174, 156, 0, 0, 0, 24, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
138, 0, 83, 0, 120, 187, 146, 105, 176, 103, 138, 0, 83, 0, 120, 187, 146, 105, 176, 103,
0, 606, 0, 0, 0, 119, 0, 121, 0, 0, 0, 0, 0, 0, 0, 119, 0, 121, 0, 0,
157, 130, 0, 0, 0, 0, 0, 0, 0, 0, 157, 130, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, 54, 0, 0, 81,
0, 605, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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,
...@@ -1623,228 +1522,322 @@ var yyAct = [...]int{ ...@@ -1623,228 +1522,322 @@ var yyAct = [...]int{
0, 0, 0, 158, 175, 190, 94, 0, 163, 181, 0, 0, 0, 158, 175, 190, 94, 0, 163, 181,
182, 183, 184, 185, 0, 0, 95, 107, 134, 93, 182, 183, 184, 185, 0, 0, 95, 107, 134, 93,
113, 155, 116, 123, 147, 188, 139, 152, 98, 174, 113, 155, 116, 123, 147, 188, 139, 152, 98, 174,
156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 24, 0, 0, 0, 0, 0,
138, 0, 0, 0, 0, 0, 0, 0, 83, 103, 0, 0, 0, 0, 0, 0, 138, 0, 83, 0,
120, 187, 146, 105, 176, 119, 0, 121, 0, 0, 120, 187, 146, 105, 176, 103, 0, 0, 0, 0,
157, 130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 0, 121, 0, 0, 157, 130, 0, 0,
0, 0, 0, 0, 0, 0, 54, 0, 0, 203,
0, 0, 0, 0, 0, 0, 0, 0, 96, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 54, 0, 0, 203, 0, 0, 0, 0,
0, 0, 0, 0, 96, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 108, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 144, 0, 160, 110, 118, 84, 90, 0, 0, 0, 0, 205, 0, 0, 0, 0, 144, 0,
109, 136, 149, 153, 0, 0, 0, 99, 0, 151, 160, 110, 118, 84, 90, 0, 109, 136, 149, 153,
140, 173, 0, 141, 150, 122, 165, 145, 172, 206, 0, 0, 0, 99, 0, 151, 140, 173, 0, 141,
180, 162, 179, 186, 85, 161, 171, 97, 154, 87, 150, 122, 165, 145, 172, 206, 180, 162, 179, 186,
169, 159, 128, 114, 115, 86, 0, 148, 102, 106, 85, 161, 171, 97, 154, 87, 169, 159, 128, 114,
101, 137, 166, 167, 100, 189, 91, 178, 89, 92, 115, 86, 0, 148, 102, 106, 101, 137, 166, 167,
177, 135, 164, 170, 129, 126, 88, 168, 127, 125, 100, 189, 91, 178, 89, 92, 177, 135, 164, 170,
117, 104, 111, 142, 124, 143, 112, 132, 131, 133, 129, 126, 88, 168, 127, 125, 117, 104, 111, 142,
0, 0, 0, 158, 175, 190, 94, 0, 163, 181, 124, 143, 112, 132, 131, 133, 0, 0, 0, 158,
182, 183, 184, 185, 0, 0, 95, 107, 134, 93, 175, 190, 94, 0, 163, 181, 182, 183, 184, 185,
113, 155, 116, 123, 147, 188, 139, 152, 98, 174, 0, 0, 95, 107, 134, 93, 113, 155, 116, 123,
156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 188, 139, 152, 98, 174, 156, 0, 0, 0,
138, 0, 0, 0, 0, 0, 0, 0, 83, 103, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0,
120, 187, 146, 105, 176, 119, 0, 121, 0, 0, 809, 0, 0, 0, 83, 103, 120, 187, 146, 105,
157, 130, 0, 0, 0, 0, 0, 0, 0, 0, 176, 119, 0, 121, 0, 0, 157, 130, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 203,
0, 809, 0, 0, 0, 0, 0, 0, 96, 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, 203, 0, 811, 0, 0,
0, 0, 0, 0, 96, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 108, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 144, 0, 160, 110, 118, 84, 90, 0, 0, 0, 0, 205, 0, 0, 0, 0, 144, 0,
109, 136, 149, 153, 0, 0, 0, 99, 0, 151, 160, 110, 118, 84, 90, 0, 109, 136, 149, 153,
140, 173, 0, 141, 150, 122, 165, 145, 172, 206, 0, 0, 0, 99, 0, 151, 140, 173, 0, 807,
180, 162, 179, 186, 85, 161, 171, 97, 154, 87, 150, 122, 165, 145, 172, 206, 180, 162, 179, 186,
169, 159, 128, 114, 115, 86, 0, 148, 102, 106, 85, 161, 171, 97, 154, 87, 169, 159, 128, 114,
101, 137, 166, 167, 100, 189, 91, 178, 89, 92, 115, 86, 0, 148, 102, 106, 101, 137, 166, 167,
177, 135, 164, 170, 129, 126, 88, 168, 127, 125, 100, 189, 91, 178, 89, 92, 177, 135, 164, 170,
117, 104, 111, 142, 124, 143, 112, 132, 131, 133, 129, 126, 88, 168, 127, 125, 117, 104, 111, 142,
0, 0, 0, 158, 175, 190, 94, 0, 163, 181, 124, 143, 112, 132, 131, 133, 0, 0, 0, 158,
182, 183, 184, 185, 0, 0, 95, 107, 134, 93, 175, 190, 94, 0, 163, 181, 182, 183, 184, 185,
113, 155, 116, 123, 147, 188, 139, 152, 98, 174, 0, 0, 95, 107, 134, 93, 113, 155, 116, 123,
156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 188, 139, 152, 98, 174, 156, 0, 0, 0,
138, 0, 0, 0, 0, 0, 0, 0, 83, 103, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0,
120, 187, 146, 105, 176, 119, 0, 121, 0, 0, 0, 0, 0, 0, 83, 103, 120, 187, 146, 105,
157, 130, 0, 0, 0, 0, 0, 0, 0, 0, 176, 119, 0, 121, 0, 0, 157, 130, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 81,
0, 506, 0, 0, 0, 0, 0, 0, 96, 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, 81, 0, 0, 711, 0,
0, 712, 0, 0, 96, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 108, 0, 0, 0, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
0, 0, 144, 0, 160, 110, 118, 84, 90, 0, 0, 0, 0, 205, 0, 0, 0, 0, 144, 0,
109, 136, 149, 153, 0, 0, 0, 99, 0, 151, 160, 110, 118, 84, 90, 0, 109, 136, 149, 153,
140, 173, 0, 141, 150, 122, 165, 145, 172, 206, 0, 0, 0, 99, 0, 151, 140, 173, 0, 141,
180, 162, 179, 186, 85, 161, 171, 97, 154, 87, 150, 122, 165, 145, 172, 206, 180, 162, 179, 186,
169, 159, 128, 114, 115, 86, 0, 148, 102, 106, 85, 161, 171, 97, 154, 87, 169, 159, 128, 114,
101, 137, 166, 167, 100, 189, 91, 178, 89, 92, 115, 86, 0, 148, 102, 106, 101, 137, 166, 167,
177, 135, 164, 170, 129, 126, 88, 168, 127, 125, 100, 189, 91, 178, 89, 92, 177, 135, 164, 170,
117, 104, 111, 142, 124, 143, 112, 132, 131, 133, 129, 126, 88, 168, 127, 125, 117, 104, 111, 142,
0, 0, 0, 158, 175, 190, 94, 0, 163, 181, 124, 143, 112, 132, 131, 133, 0, 0, 0, 158,
182, 183, 184, 185, 0, 0, 95, 107, 134, 93, 175, 190, 94, 0, 163, 181, 182, 183, 184, 185,
113, 155, 116, 123, 147, 188, 139, 152, 98, 174, 0, 0, 95, 107, 134, 93, 113, 155, 116, 123,
156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 188, 139, 152, 98, 174, 156, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 138, 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
120, 187, 146, 105, 176, 579, 103, 0, 0, 0, 0, 0, 138, 0, 83, 0, 120, 187, 146, 105,
0, 0, 119, 0, 121, 0, 0, 157, 130, 0, 176, 103, 0, 607, 0, 0, 0, 119, 0, 121,
0, 0, 157, 130, 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, 203, 0, 0, 0, 0, 81, 0, 606, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 96, 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, 108, 0, 0, 0, 205,
0, 0, 0, 0, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145,
172, 206, 180, 162, 179, 186, 85, 161, 171, 97,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
131, 133, 0, 0, 0, 158, 175, 190, 94, 0,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152,
98, 174, 156, 0, 0, 0, 0, 0, 0, 0,
0, 0, 138, 0, 0, 0, 0, 0, 0, 0,
83, 103, 120, 187, 146, 105, 176, 119, 0, 121,
0, 0, 157, 130, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 54, 0,
0, 203, 0, 0, 0, 0, 0, 0, 0, 0,
96, 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, 108, 0, 0, 0, 205,
0, 0, 0, 0, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145,
172, 206, 180, 162, 179, 186, 85, 161, 171, 97,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
131, 133, 0, 0, 0, 158, 175, 190, 94, 0,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152,
98, 174, 156, 0, 0, 0, 0, 0, 0, 0,
0, 0, 138, 0, 0, 0, 0, 0, 0, 0,
83, 103, 120, 187, 146, 105, 176, 119, 0, 121,
0, 0, 157, 130, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 203, 0, 811, 0, 0, 0, 0, 0, 0,
96, 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, 108, 0, 0, 0, 205,
0, 0, 0, 0, 144, 0, 160, 110, 118, 84,
90, 0, 109, 136, 149, 153, 0, 0, 0, 99,
0, 151, 140, 173, 0, 141, 150, 122, 165, 145,
172, 206, 180, 162, 179, 186, 85, 161, 171, 97,
154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
89, 92, 177, 135, 164, 170, 129, 126, 88, 168,
127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
131, 133, 0, 0, 0, 158, 175, 190, 94, 0,
163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
134, 93, 113, 155, 116, 123, 147, 188, 139, 152,
98, 174, 156, 0, 0, 0, 0, 0, 0, 0,
0, 0, 138, 0, 0, 0, 0, 0, 0, 0,
83, 103, 120, 187, 146, 105, 176, 119, 0, 121,
0, 0, 157, 130, 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, 81, 0, 507, 0, 0, 0, 0, 0, 0,
96, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
108, 0, 0, 0, 205, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 108, 0, 0, 0, 205,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149, 0, 0, 0, 0, 144, 0, 160, 110, 118, 84,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0, 90, 0, 109, 136, 149, 153, 0, 0, 0, 99,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179, 0, 151, 140, 173, 0, 141, 150, 122, 165, 145,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128, 172, 206, 180, 162, 179, 186, 85, 161, 171, 97,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166, 154, 87, 169, 159, 128, 114, 115, 86, 0, 148,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164, 102, 106, 101, 137, 166, 167, 100, 189, 91, 178,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111, 89, 92, 177, 135, 164, 170, 129, 126, 88, 168,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0, 127, 125, 117, 104, 111, 142, 124, 143, 112, 132,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184, 131, 133, 0, 0, 0, 158, 175, 190, 94, 0,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116, 163, 181, 182, 183, 184, 185, 0, 0, 95, 107,
123, 147, 188, 139, 152, 98, 174, 156, 0, 0, 134, 93, 113, 155, 116, 123, 147, 188, 139, 152,
319, 0, 0, 0, 0, 0, 0, 138, 0, 0, 98, 174, 156, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 83, 103, 120, 187, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
105, 176, 119, 0, 121, 0, 0, 157, 130, 0, 83, 0, 120, 187, 146, 105, 176, 580, 103, 0,
0, 0, 0, 0, 119, 0, 121, 0, 0, 157,
130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
0, 0, 0, 0, 0, 0, 0, 96, 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, 203, 0, 0, 0,
0, 0, 0, 0, 0, 96, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 108, 0, 0, 0, 205, 0, 0, 0,
0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
0, 0, 319, 0, 0, 0, 0, 0, 0, 138,
0, 0, 0, 0, 0, 0, 0, 83, 103, 120,
187, 146, 105, 176, 119, 0, 121, 0, 0, 157,
130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
108, 0, 0, 0, 205, 0, 0, 0, 0, 144,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116,
123, 147, 188, 139, 152, 98, 174, 156, 0, 0,
0, 0, 0, 0, 0, 0, 0, 138, 0, 0,
0, 0, 0, 0, 0, 83, 103, 120, 187, 146,
105, 176, 119, 0, 121, 0, 0, 157, 130, 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, 203, 0, 0, 0,
0, 0, 0, 0, 0, 96, 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, 108, 0, 0, 0, 205, 0, 0, 0,
0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
0, 0, 0, 0, 0, 0, 0, 83, 103, 120,
187, 146, 105, 176, 119, 0, 121, 0, 0, 157,
130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
0, 0, 0, 0, 0, 0, 0, 96, 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,
108, 0, 200, 0, 205, 0, 0, 0, 0, 144,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116,
123, 147, 188, 139, 152, 98, 174, 156, 0, 0,
0, 0, 0, 0, 0, 0, 0, 138, 0, 0,
0, 0, 0, 0, 0, 83, 103, 120, 187, 146,
105, 176, 119, 0, 121, 0, 0, 157, 130, 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, 81, 0, 0, 0,
0, 0, 0, 0, 0, 96, 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, 108, 0, 200, 0, 205, 0, 0, 0,
0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
0, 0, 0, 0, 0, 0, 0, 83, 103, 120,
187, 146, 105, 176, 119, 0, 121, 0, 0, 157,
130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 81, 0,
0, 0, 0, 0, 0, 0, 0, 96, 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,
108, 0, 0, 0, 205, 0, 0, 0, 0, 144,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116,
123, 147, 188, 139, 152, 98, 174, 156, 0, 0,
0, 0, 0, 0, 0, 0, 0, 138, 0, 0,
0, 0, 0, 0, 0, 83, 103, 120, 187, 146,
105, 176, 119, 0, 121, 0, 0, 157, 130, 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, 203, 0, 0, 0,
0, 0, 0, 0, 0, 96, 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, 108, 0, 0, 0, 205, 0, 0, 0,
0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
0, 0, 0, 0, 0, 0, 0, 83, 103, 120,
187, 146, 105, 176, 119, 0, 121, 0, 0, 157,
130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 203, 0,
0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
108, 0, 0, 0, 205, 0, 0, 0, 0, 144,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116,
123, 147, 188, 139, 152, 98, 174, 156, 0, 0,
0, 0, 0, 0, 0, 0, 0, 138, 0, 0,
0, 0, 0, 0, 0, 83, 103, 120, 187, 146,
105, 176, 119, 0, 121, 0, 0, 157, 130, 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, 262, 0, 0, 0, 0, 0, 108, 0, 0, 0, 205, 0, 0, 0,
0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
0, 0, 0, 0, 0, 0, 0, 0, 0, 138,
0, 0, 0, 0, 0, 0, 0, 83, 103, 120,
187, 146, 105, 176, 119, 0, 121, 0, 0, 157,
130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 262, 0,
0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 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,
108, 0, 0, 0, 205, 0, 0, 0, 0, 144, 0, 0, 108, 0, 0, 0, 205, 0, 0, 0,
0, 160, 110, 118, 84, 90, 0, 109, 136, 149, 0, 144, 0, 160, 110, 118, 84, 90, 0, 109,
153, 0, 0, 0, 99, 0, 151, 140, 173, 0, 136, 149, 153, 0, 0, 0, 99, 0, 151, 140,
141, 150, 122, 165, 145, 172, 206, 180, 162, 179, 173, 0, 141, 150, 122, 165, 145, 172, 206, 180,
186, 85, 161, 171, 97, 154, 87, 169, 159, 128, 162, 179, 186, 85, 161, 171, 97, 154, 87, 169,
114, 115, 86, 0, 148, 102, 106, 101, 137, 166, 159, 128, 114, 115, 86, 0, 148, 102, 106, 101,
167, 100, 189, 91, 178, 89, 92, 177, 135, 164, 137, 166, 167, 100, 189, 91, 178, 89, 92, 177,
170, 129, 126, 88, 168, 127, 125, 117, 104, 111, 135, 164, 170, 129, 126, 88, 168, 127, 125, 117,
142, 124, 143, 112, 132, 131, 133, 0, 0, 0, 104, 111, 142, 124, 143, 112, 132, 131, 133, 0,
158, 175, 190, 94, 0, 163, 181, 182, 183, 184, 0, 0, 158, 175, 190, 94, 0, 163, 181, 182,
185, 0, 0, 95, 107, 134, 93, 113, 155, 116, 183, 184, 185, 0, 0, 95, 107, 134, 93, 113,
123, 147, 188, 139, 152, 98, 174, 156, 0, 0, 155, 116, 123, 147, 188, 139, 152, 98, 174, 156,
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, 83, 0, 120, 187, 146, 0, 0, 0, 0, 0, 0, 0, 83, 0, 120,
105, 176, 187, 146, 105, 176,
} }
var yyPact = [...]int{ var yyPact = [...]int{
117, -1000, -184, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1775, -1000, -185, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 871, 909, -1000, -1000, -1000, -1000, -1000, -1000,
223, 7486, 60, 96, -15, 10271, 95, 1790, 10731, -1000,
-7, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -76, -82,
-1000, 619, -1000, -1000, -1000, -1000, -1000, 862, 866, 708,
852, 776, -1000, 6046, 59, 59, 10041, 5066, -1000, -1000,
201, 10731, 92, 10731, -156, 10501, 55, 55, 55, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 914, 944, -1000, -1000, -1000, -1000, -1000, -1000,
209, 7564, 72, 87, 28, 10349, 86, 1505, 10809, -1000,
-4, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -75, -100,
-1000, 710, -1000, -1000, -1000, -1000, -1000, 908, 911, 757,
900, 804, -1000, 6124, 60, 60, 10119, 5144, -1000, -1000,
335, 10809, 82, 10809, -155, 10579, 57, 57, 57, -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, -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,
...@@ -1855,22 +1848,22 @@ var yyPact = [...]int{ ...@@ -1855,22 +1848,22 @@ 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, -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, 77, 10731, -1000, 10731, 54, 525, 54, 54, 54,
10731, -1000, 133, -1000, -1000, -1000, -1000, 10731, 511, 802,
49, 3002, 3002, 3002, 3002, 6, 3002, -75, 738, 882,
-1000, -1000, -1000, -1000, -1000, -1000, 3002, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, 84, 10809, -1000, 10809, 56, 556, 56, 56, 56, 443, 806, 6539, 6539, 871, -1000, 619, -1000, -1000, -1000,
10809, -1000, 125, -1000, -1000, -1000, -1000, 10809, 548, 856, 800, -1000, -1000, 305, 891, -1000, 7256, 131, -1000, 6539,
63, 3080, 3080, 3080, 3080, 5, 3080, -62, 754, 923, 2059, 662, -1000, -1000, 662, -1000, -1000, 107, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 3080, -1000, -1000, -1000, 7011, 7011, 7011, 7011, 7011, 7011, 7011, 7011, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
490, 864, 6617, 6617, 914, -1000, 710, -1000, -1000, -1000, -1000, -1000, 662, -1000, 6294, 662, 662, 662, 662, 662,
828, -1000, -1000, 280, 933, -1000, 7334, 119, -1000, 6617, 662, 662, 662, 6539, 662, 662, 662, 662, 662, 662,
1686, 712, -1000, -1000, 712, -1000, -1000, 107, -1000, -1000, 662, 662, 662, 662, 662, 662, 662, 9811, 9114, 10731,
7089, 7089, 7089, 7089, 7089, 7089, 7089, 7089, -1000, -1000, 567, -1000, 652, 4808, -127, -1000, -1000, -1000, 200, 8884,
-1000, -1000, -1000, 801, -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, 712, -1000, 6372, 712, 712, 712, 712, 712,
712, 712, 712, 6617, 712, 712, 712, 712, 712, 712,
712, 712, 712, 712, 712, 712, 712, 9889, 9192, 10809,
675, -1000, 679, 4886, -113, -1000, -1000, -1000, 215, 8962,
-1000, -1000, -1000, 855, -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, -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,
...@@ -1878,201 +1871,191 @@ var yyPact = [...]int{ ...@@ -1878,201 +1871,191 @@ 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, -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, -1000, -1000, -1000, 553, 10731,
-1000, 1857, -1000, 508, 3002, 74, 712, 506, 257, 498,
10731, 10731, 3002, 656, 70, 10731, 841, 737, 10731, 497,
492, -1000, 4550, -1000, 3002, 3002, 3002, 3002, 3002, 3002,
3002, 3002, -1000, -1000, -1000, -1000, -1000, -1000, 3002, 3002,
-1000, 890, 241, -1000, -1000, -1000, -1000, 10731, 6539, -1000,
-1000, -1000, -1000, -1000, -1000, 904, 161, 530, 127, 654,
-1000, 402, 862, 443, 776, 8648, 757, -1000, -1000, 10731,
-1000, 6539, 6539, 308, -1000, 9574, -1000, -1000, 3518, 183,
7011, 336, 246, 7011, 7011, 7011, 7011, 7011, 7011, 7011,
7011, 7011, 7011, 7011, 7011, 7011, 7011, 7011, 391, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, 480, -1000, 619,
499, 499, 142, 142, 142, 142, 142, 142, 142, 2174,
5556, 443, 545, 239, 6294, 6046, 6046, 6539, 6539, 10961,
10961, 6046, 853, 238, 239, 10961, -1000, 443, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, 6046, 6046, 6046, 6046, 22,
10731, -1000, 644, 698, -1000, -1000, -1000, 849, 8188, 8418,
22, 638, 9114, 10731, -1000, -1000, 4292, 652, -127, 630,
-1000, -101, -87, 5311, 141, -1000, -1000, -1000, -1000, 2744,
299, 555, 255, -60, -1000, -1000, -1000, 684, -1000, 684,
684, 684, 684, -32, -32, -32, -32, -1000, -1000, -1000,
-1000, -1000, 710, 707, -1000, 684, 684, 684, -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, 591, 10809, -1000, -1000, -1000, -1000, 704, 704, 704, 697, 697, 713,
-1000, 1915, -1000, 540, 3080, 75, 650, 534, 251, 533, -1000, 10731, -171, 468, 3002, 840, 3002, -1000, 72, -1000,
10809, 10809, 3080, 66, 10809, 893, 750, 10809, 509, 480, 10731, 10731, 651, -1000, 10731, 3002, -1000, -1000, -1000, -1000,
-1000, 4628, -1000, 3080, 3080, 3080, 3080, 3080, 3080, 3080,
3080, -1000, -1000, -1000, -1000, -1000, -1000, 3080, 3080, -1000,
925, 293, -1000, -1000, -1000, -1000, 10809, 6617, -1000, -1000,
-1000, -1000, -1000, -1000, 939, 160, 495, 118, 704, -1000,
425, 908, 490, 804, 8726, 764, -1000, -1000, 10809, -1000,
6617, 6617, 466, -1000, 9652, -1000, -1000, 3596, 167, 7089,
365, 346, 7089, 7089, 7089, 7089, 7089, 7089, 7089, 7089,
7089, 7089, 7089, 7089, 7089, 7089, 7089, 449, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 471, -1000, 710, 1065,
1065, 144, 144, 144, 144, 144, 144, 144, 2306, 5634,
490, 589, 413, 6372, 6124, 6124, 6617, 6617, 11039, 11039,
6124, 901, 229, 413, 11039, -1000, 490, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, 6124, 6124, 6124, 6124, 27, 10809,
-1000, 665, 1107, -1000, -1000, -1000, 895, 8266, 8496, 27,
632, 9192, 10809, -1000, -1000, 4370, 679, -113, 653, -1000,
-127, -131, 5389, 122, -1000, -1000, -1000, -1000, 2822, 294,
619, 323, -67, -1000, -1000, -1000, 720, -1000, 720, 720,
720, 720, -30, -30, -30, -30, -1000, -1000, -1000, -1000,
-1000, 734, 733, -1000, 720, 720, 720, -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, 730, 730, 730, 723, 723, 708, -1000, -1000, 10731, 251, 10731, 10731, -1000, 239, -1000, 782, 6539,
10809, -174, 469, 3080, 880, 3080, -1000, 1225, -1000, 10809, 6539, 4034, 6539, -1000, -1000, -1000, 806, -1000, 853, 864,
-1000, -1000, 10809, 3080, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 790, 789, 6046, -1000, -1000, 183, 197, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 10809, 370, -1000, -1000, -1000, -1000, 126, 662, -1000, 2320, -1000,
199, 10809, 10809, -1000, 413, -1000, 793, 6617, 6617, 4112, -1000, -1000, -1000, 336, 7011, 7011, 7011, 318, 2320, 2151,
6617, -1000, -1000, -1000, 864, -1000, 901, 912, -1000, 825, 1717, 1097, 142, 130, 130, 143, 143, 143, 143, 143,
824, 6124, -1000, -1000, 167, 254, -1000, -1000, 424, -1000, 382, 382, -1000, -1000, -1000, 443, -1000, -1000, -1000, 443,
-1000, -1000, -1000, 116, 712, -1000, 1808, -1000, -1000, -1000, 6046, 635, -1000, -1000, 6539, -1000, 443, 540, 540, 253,
-1000, 365, 7089, 7089, 7089, 146, 1808, 1793, 641, 1866, 313, 678, -1000, 124, 668, 540, 6046, 266, -1000, 6539,
144, 363, 363, 165, 165, 165, 165, 165, 237, 237, 443, -1000, 540, 443, 540, 540, 517, 662, -1000, 10961,
-1000, -1000, -1000, 490, -1000, -1000, -1000, 490, 6124, 666, 9114, 9114, 9114, 9114, 9114, -1000, 767, 762, -1000, 755,
-1000, -1000, 6617, -1000, 490, 578, 578, 418, 411, 707, 754, 763, 10731, -1000, 543, 8188, 129, 662, -1000, 9344,
-1000, 114, 694, 578, 6124, 272, -1000, 6617, 490, -1000, -1000, -1000, 878, 9114, 611, -1000, -1000, 630, -127, -93,
578, 490, 578, 578, 642, 712, -1000, 11039, 9192, 9192, -1000, -1000, -1000, -1000, 239, -1000, 395, 629, 2486, -1000,
9192, 9192, 9192, -1000, 780, 774, -1000, 783, 768, 827, -1000, -1000, -1000, -1000, -1000, -1000, 703, 462, -1000, 831,
10809, -1000, 580, 8266, 140, 712, -1000, 9422, -1000, -1000, 170, 178, 437, 829, -1000, -1000, -1000, 804, -1000, 271,
922, 9192, 657, -1000, -1000, 653, -113, -120, -1000, -1000, -62, -1000, -1000, 364, -32, -32, -1000, -1000, 141, 797,
-1000, -1000, 413, -1000, 452, 652, 2564, -1000, -1000, -1000, 141, 141, 141, 409, 409, -1000, -1000, -1000, -1000, 341,
-1000, -1000, -1000, -1000, 725, 455, -1000, 872, 170, 197, -1000, -1000, -1000, 338, -1000, 736, 10501, 3002, -1000, 3776,
453, 871, -1000, -1000, -1000, 862, -1000, 261, -69, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1372, 1265, 181, -1000,
-1000, 391, -30, -30, -1000, -1000, 122, 847, 122, 122,
122, 442, 442, -1000, -1000, -1000, -1000, 380, -1000, -1000,
-1000, 361, -1000, 748, 10579, 3080, -1000, 3854, -1000, -1000,
-1000, -1000, -1000, -1000, 1326, 781, 174, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 26, -1000,
3080, -1000, 293, -1000, 429, 6617, -1000, -1000, 787, 413,
413, 112, -1000, -1000, 10809, -1000, -1000, -1000, -1000, 677,
-1000, -1000, -1000, 3338, 6124, -1000, 146, 1808, 1726, -1000,
7089, 7089, -1000, -1000, 578, 6124, 413, -1000, -1000, -1000,
535, 449, 535, 7089, 7089, 4112, 7089, 7089, -166, 676,
224, -1000, 6617, 355, -1000, -1000, -1000, -1000, -1000, 747,
11039, 712, -1000, 8030, 10579, 659, -1000, 205, 1107, 729,
746, 1207, -1000, -1000, -1000, -1000, 772, -1000, 771, -1000,
-1000, -1000, -1000, -1000, 81, 80, 79, 10579, -1000, 914,
6617, 657, -1000, -1000, -1000, -137, -136, -1000, -1000, -1000,
2822, -1000, 2822, 10579, 41, -1000, 453, 453, -1000, -1000,
-1000, 724, 745, 38, -1000, -1000, -1000, 611, 122, 122,
-1000, 198, -1000, -1000, -1000, 576, -1000, 562, 651, 552,
10809, -1000, -1000, 649, -1000, 188, -1000, -1000, 10579, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, 10579, 10809, -1000, -1000, -1000, -1000, -1000, 10579, -1000, 20, 65, -1000, 3002, -1000, 241, -1000, 408, 6539, -1000,
199, -1000, 413, -1000, 3854, -1000, 922, 9192, -1000, -1000, -1000, 780, 239, 239, 116, -1000, -1000, 10731, -1000, -1000,
490, -1000, 7089, 1808, 1808, -1000, -1000, 490, 720, 720, -1000, -1000, 667, -1000, -1000, -1000, 3260, 6046, -1000, 318,
-1000, 720, 723, -1000, 720, -13, 720, -14, 490, 490, 2320, 1588, -1000, 7011, 7011, -1000, -1000, 540, 6046, 239,
1614, 1073, -1000, 1411, 313, 712, -163, -1000, 413, 6617, -1000, -1000, -1000, 62, 391, 62, 7011, 7011, 4034, 7011,
-1000, 875, 629, 643, -1000, -1000, 5879, 490, 547, 111, 7011, -166, 655, 204, -1000, 6539, 182, -1000, -1000, -1000,
539, -1000, 914, 11039, 6617, -1000, -1000, 6617, 722, -1000, -1000, -1000, 734, 10961, 662, -1000, 7952, 10501, 632, -1000,
6617, -1000, -1000, -1000, 712, 712, 712, 539, 908, 413, 198, 698, 702, 732, 1334, -1000, -1000, -1000, -1000, 756,
-1000, -1000, -1000, -1000, 2564, -1000, 530, -1000, 720, -1000, -1000, 714, -1000, -1000, -1000, -1000, -1000, 87, 86, 73,
-1000, -1000, 10579, -54, 937, -1000, -1000, -1000, -1000, 716, 10501, -1000, 871, 6539, 611, -1000, -1000, -1000, -121, -123,
-1000, -1000, -1000, -1000, -1000, -1000, -30, 428, -30, 333, -1000, -1000, -1000, 2744, -1000, 2744, 10501, 39, -1000, 437,
-1000, 319, 3080, 3854, 2822, -1000, 715, -1000, -1000, -1000, 437, -1000, -1000, -1000, 699, 731, 76, -1000, -1000, -1000,
-1000, 866, -1000, 920, 646, -1000, 1808, -1000, -1000, 99, 550, 141, 141, -1000, 184, -1000, -1000, -1000, 531, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 7089, 521, 622, 518, 10731, -1000, -1000, 571, -1000, 196, -1000,
7089, -1000, 7089, 7089, 7089, 490, 421, 413, 870, -1000, -1000, 10501, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
712, -1000, -1000, 648, 10579, 10579, -1000, 10579, 908, -1000, -1000, -1000, -1000, -1000, 10501, 10731, -1000, -1000, -1000, -1000,
413, 413, 10579, 413, 10579, 10579, 10579, 7794, -1000, 128, -1000, 10501, 10731, -1000, 251, -1000, 239, -1000, 3776, -1000,
10579, -1000, 523, -1000, 155, -1000, -145, 596, 122, -1000, 878, 9114, -1000, -1000, 443, -1000, 7011, 2320, 2320, -1000,
122, 595, 566, -1000, -1000, -1000, 10579, 712, 916, 910, -1000, 443, 684, 684, -1000, 684, 697, -1000, 684, -8,
-1000, -1000, 1538, 1538, 1538, 1538, 36, -1000, -1000, 936, 684, -14, 443, 443, 1891, 2074, -1000, 674, 1978, 662,
-1000, 712, -1000, 710, 104, -1000, -1000, -1000, 519, 517, -163, -1000, 239, 6539, -1000, 803, 560, 562, -1000, -1000,
517, 517, 140, 128, -1000, 415, 176, 416, -1000, 40, 5801, 443, 479, 114, 477, -1000, 871, 10961, 6539, -1000,
10579, 276, 868, -1000, 865, 714, -1000, -1000, -1000, -1000, -1000, 6539, 695, -1000, 6539, -1000, -1000, -1000, 662, 662,
-1000, 489, 19, -1000, 6617, 6617, -1000, -1000, -1000, -1000, 662, 477, 862, 239, -1000, -1000, -1000, -1000, 2486, -1000,
490, 39, -177, 11039, 643, 490, 10579, -1000, -1000, -1000, 472, -1000, 684, -1000, -1000, -1000, 10501, -56, 902, -1000,
-1000, -1000, -1000, -1000, 289, -1000, -1000, 10809, -1000, -1000, -1000, -1000, -1000, 683, -1000, -1000, -1000, -1000, -1000, -1000,
336, -1000, -1000, 531, 650, 487, -1000, 10579, 413, 639, -32, 407, -32, 324, -1000, 323, 3002, 3776, 2744, -1000,
-1000, 785, -171, -180, 634, -1000, -1000, -1000, 713, -1000, 682, -1000, -1000, -1000, -1000, 836, -1000, -1000, 875, 566,
-1000, -174, -1000, 19, 803, -1000, 784, -1000, 10579, -1000, -1000, 2320, -1000, -1000, 97, -1000, -1000, -1000, -1000, -1000,
-1000, 15, -175, 468, 12, -178, 744, 712, -181, 742, -1000, -1000, -1000, -1000, 7011, 7011, -1000, 7011, 7011, 7011,
-1000, 930, 6853, -1000, -1000, 932, 192, 192, 1538, 490, 443, 406, 239, 814, -1000, 662, -1000, -1000, 634, 10501,
-1000, -1000, -1000, 47, 410, -1000, -1000, -1000, -1000, -1000, 10501, -1000, 10501, 862, -1000, 239, 239, 10501, 239, 10501,
-1000, 10501, 10501, 7716, -1000, 128, 10501, -1000, 461, -1000, 174,
-1000, -141, 532, 141, -1000, 141, 528, 473, -1000, -1000,
-1000, 10501, 662, 873, 865, -1000, -1000, 535, 535, 535,
535, 24, -1000, -1000, 896, -1000, 662, -1000, 619, 110,
-1000, -1000, -1000, 448, 446, 446, 446, 129, 128, -1000,
435, 194, 392, -1000, 36, 10501, 277, 813, -1000, 810,
677, -1000, -1000, -1000, -1000, -1000, 442, 18, -1000, 6539,
6539, -1000, -1000, -1000, -1000, 443, 44, -175, 10961, 562,
443, 10501, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 312,
-1000, -1000, 10731, -1000, -1000, 388, -1000, -1000, 449, 712,
421, -1000, 10501, 239, 561, -1000, 774, -169, -180, 558,
-1000, -1000, -1000, 673, -1000, -1000, -171, -1000, 18, 788,
-1000, 772, -1000, 10501, -1000, -1000, 15, -173, 417, 13,
-178, 730, 662, -182, 728, -1000, 888, 6775, -1000, -1000,
894, 154, 154, 535, 443, -1000, -1000, -1000, 43, 403,
-1000, -1000, -1000, -1000, -1000, -1000,
} }
var yyPgo = [...]int{ var yyPgo = [...]int{
0, 1241, 44, 481, 1239, 1236, 1235, 1227, 1226, 1211, 0, 1126, 28, 433, 1125, 1123, 1121, 1120, 1119, 1112,
1210, 1209, 1207, 1203, 1201, 1200, 1199, 1197, 1195, 1194, 1110, 1109, 1107, 1105, 1104, 1102, 1097, 1096, 1095, 1094,
1190, 1185, 1184, 1183, 1182, 146, 1181, 1162, 1161, 59, 1091, 1089, 1086, 1084, 1081, 1078, 133, 1077, 1076, 1075,
1160, 77, 1158, 1148, 41, 122, 86, 43, 894, 1146, 61, 1074, 77, 1071, 1070, 35, 156, 41, 38, 1012,
27, 71, 89, 1145, 33, 1144, 1142, 78, 1141, 55, 1068, 21, 62, 59, 1065, 26, 1064, 1061, 69, 1059,
1136, 1122, 281, 1121, 1120, 10, 23, 1119, 1116, 1115, 48, 1058, 1057, 1180, 1051, 1050, 12, 40, 1047, 1046,
1113, 70, 38, 1112, 1110, 1109, 1108, 1106, 1094, 53, 1045, 1041, 63, 132, 1040, 1039, 1037, 1036, 1033, 1031,
7, 9, 22, 18, 1091, 28, 17, 1089, 52, 1086, 51, 8, 11, 18, 25, 1030, 115, 9, 1029, 50,
1085, 1084, 1083, 26, 1082, 56, 1081, 11, 51, 1079, 1028, 1027, 1026, 1024, 23, 1023, 57, 1020, 43, 56,
30, 60, 31, 15, 6, 66, 65, 1078, 16, 69, 1018, 7, 70, 31, 15, 6, 75, 65, 1015, 14,
49, 1077, 1076, 381, 1063, 1062, 40, 1061, 1058, 19, 66, 42, 1014, 1013, 379, 1011, 1010, 45, 1008, 1005,
189, 453, 1054, 1051, 1050, 1049, 75, 0, 538, 479, 22, 175, 309, 1003, 1002, 1000, 999, 37, 0, 488,
64, 1047, 1042, 1041, 1366, 73, 48, 12, 1040, 63, 463, 73, 998, 996, 993, 1166, 71, 55, 20, 992,
169, 35, 1038, 1035, 37, 1034, 1032, 1030, 1028, 1027, 49, 83, 44, 990, 988, 34, 985, 982, 981, 979,
1024, 1022, 20, 1020, 1018, 1017, 34, 47, 1014, 1013, 978, 975, 974, 60, 971, 966, 964, 99, 30, 963,
54, 21, 1012, 1010, 1009, 46, 58, 1002, 1000, 50, 962, 64, 27, 960, 959, 953, 47, 58, 952, 942,
29, 991, 990, 975, 974, 972, 25, 57, 966, 13, 54, 33, 941, 940, 939, 938, 937, 17, 19, 936,
963, 8, 961, 24, 960, 3, 959, 14, 958, 4, 13, 932, 10, 928, 24, 926, 3, 925, 16, 924,
957, 5, 42, 1, 956, 2, 955, 953, 61, 290, 4, 922, 5, 46, 1, 920, 2, 919, 916, 52,
952, 950, 92, 332, 915, 899, 84,
} }
var yyR1 = [...]int{ var yyR1 = [...]int{
0, 186, 187, 187, 1, 1, 1, 1, 1, 1, 0, 187, 188, 188, 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, 2, 2, 2, 6, 3, 4, 1, 1, 1, 1, 2, 2, 2, 6, 3, 4,
4, 5, 5, 7, 7, 28, 28, 8, 9, 9, 4, 5, 5, 7, 7, 29, 29, 8, 9, 9,
9, 190, 190, 47, 47, 91, 91, 10, 10, 10, 9, 191, 191, 48, 48, 92, 92, 10, 10, 10,
10, 96, 96, 100, 100, 100, 101, 101, 101, 101, 10, 97, 97, 101, 101, 101, 102, 102, 102, 102,
132, 132, 11, 11, 11, 11, 11, 11, 11, 11, 133, 133, 11, 11, 11, 11, 11, 11, 11, 11,
181, 181, 180, 179, 179, 178, 178, 177, 17, 162, 182, 182, 181, 180, 180, 179, 179, 178, 17, 163,
164, 164, 163, 163, 163, 163, 156, 135, 135, 135, 165, 165, 164, 164, 164, 164, 157, 136, 136, 136,
135, 138, 138, 136, 136, 136, 136, 136, 136, 136, 136, 139, 139, 137, 137, 137, 137, 137, 137, 137,
137, 137, 137, 137, 137, 139, 139, 139, 139, 139, 138, 138, 138, 138, 138, 140, 140, 140, 140, 140,
140, 140, 140, 140, 140, 140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
140, 140, 140, 140, 140, 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, 142, 142, 142,
141, 141, 141, 155, 155, 142, 142, 150, 150, 151, 142, 142, 142, 156, 156, 143, 143, 151, 151, 152,
151, 151, 148, 148, 149, 149, 152, 152, 152, 143, 152, 152, 149, 149, 150, 150, 153, 153, 153, 144,
143, 143, 143, 143, 143, 143, 143, 145, 145, 145, 144, 144, 144, 144, 144, 144, 144, 146, 146, 146,
153, 153, 146, 146, 146, 147, 147, 147, 154, 154, 154, 154, 147, 147, 147, 148, 148, 148, 155, 155,
154, 154, 154, 144, 144, 157, 157, 172, 172, 171, 155, 155, 155, 145, 145, 158, 158, 173, 173, 172,
171, 171, 161, 161, 168, 168, 168, 168, 168, 159, 172, 172, 162, 162, 169, 169, 169, 169, 169, 160,
159, 160, 160, 170, 170, 169, 158, 158, 173, 173, 160, 161, 161, 171, 171, 170, 159, 159, 174, 174,
173, 173, 184, 185, 183, 183, 183, 183, 183, 165, 174, 174, 185, 186, 184, 184, 184, 184, 184, 166,
165, 165, 166, 166, 166, 167, 167, 167, 12, 12, 166, 166, 167, 167, 167, 168, 168, 168, 12, 12,
12, 12, 12, 12, 12, 12, 12, 182, 182, 182, 12, 12, 12, 12, 12, 12, 12, 183, 183, 183,
182, 182, 182, 182, 182, 182, 182, 182, 176, 174, 183, 183, 183, 183, 183, 183, 183, 183, 177, 175,
174, 175, 175, 13, 14, 14, 14, 14, 14, 15, 175, 176, 176, 13, 18, 18, 14, 14, 14, 14,
15, 18, 19, 19, 19, 19, 19, 19, 19, 19, 14, 15, 15, 19, 20, 20, 20, 20, 20, 20,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
107, 107, 105, 105, 108, 108, 106, 106, 106, 109, 20, 20, 108, 108, 106, 106, 109, 109, 107, 107,
109, 109, 133, 133, 133, 20, 20, 22, 22, 23, 107, 110, 110, 110, 134, 134, 134, 21, 21, 23,
24, 21, 21, 21, 21, 21, 21, 21, 16, 191, 23, 24, 25, 22, 22, 22, 22, 22, 22, 22,
25, 26, 26, 27, 27, 27, 31, 31, 31, 29, 16, 192, 26, 27, 27, 28, 28, 28, 32, 32,
29, 30, 30, 36, 36, 35, 35, 37, 37, 37, 32, 30, 30, 31, 31, 37, 37, 36, 36, 38,
37, 121, 121, 121, 120, 120, 39, 39, 40, 40, 38, 38, 38, 122, 122, 122, 121, 121, 40, 40,
41, 41, 42, 42, 42, 42, 54, 54, 90, 90, 41, 41, 42, 42, 43, 43, 43, 43, 55, 55,
92, 92, 43, 43, 43, 43, 44, 44, 45, 45, 91, 91, 93, 93, 44, 44, 44, 44, 45, 45,
46, 46, 128, 128, 127, 127, 127, 126, 126, 48, 46, 46, 47, 47, 129, 129, 128, 128, 128, 127,
48, 48, 50, 49, 49, 49, 49, 51, 51, 53, 127, 49, 49, 49, 51, 50, 50, 50, 50, 52,
53, 52, 52, 55, 55, 55, 55, 56, 56, 38, 52, 54, 54, 53, 53, 56, 56, 56, 56, 57,
38, 38, 38, 38, 38, 38, 104, 104, 58, 58, 57, 39, 39, 39, 39, 39, 39, 39, 105, 105,
57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 59, 59, 58, 58, 58, 58, 58, 58, 58, 58,
68, 68, 68, 68, 68, 68, 59, 59, 59, 59, 58, 58, 69, 69, 69, 69, 69, 69, 60, 60,
59, 59, 59, 34, 34, 69, 69, 69, 75, 70, 60, 60, 60, 60, 60, 35, 35, 70, 70, 70,
70, 62, 62, 62, 62, 62, 62, 62, 62, 62, 76, 71, 71, 63, 63, 63, 63, 63, 63, 63,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
62, 62, 62, 66, 66, 66, 64, 64, 64, 64, 63, 63, 63, 63, 63, 67, 67, 67, 65, 65,
64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
64, 65, 65, 65, 65, 65, 65, 65, 65, 192, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66,
192, 67, 67, 67, 67, 32, 32, 32, 32, 32, 66, 193, 193, 68, 68, 68, 68, 33, 33, 33,
131, 131, 134, 134, 134, 134, 134, 134, 134, 134, 33, 33, 132, 132, 135, 135, 135, 135, 135, 135,
134, 134, 134, 134, 134, 79, 79, 33, 33, 77, 135, 135, 135, 135, 135, 135, 135, 80, 80, 34,
77, 78, 80, 80, 76, 76, 76, 61, 61, 61, 34, 78, 78, 79, 81, 81, 77, 77, 77, 62,
61, 61, 61, 61, 61, 63, 63, 63, 81, 81, 62, 62, 62, 62, 62, 62, 62, 64, 64, 64,
82, 82, 83, 83, 84, 84, 85, 86, 86, 86, 82, 82, 83, 83, 84, 84, 85, 85, 86, 87,
87, 87, 87, 87, 88, 88, 88, 60, 60, 60, 87, 87, 88, 88, 88, 88, 89, 89, 89, 61,
60, 60, 60, 89, 89, 89, 89, 93, 93, 71, 61, 61, 61, 61, 61, 90, 90, 90, 90, 94,
71, 73, 73, 72, 74, 94, 94, 98, 95, 95, 94, 72, 72, 74, 74, 73, 75, 95, 95, 99,
99, 99, 99, 99, 97, 97, 97, 123, 123, 123, 96, 96, 100, 100, 100, 100, 98, 98, 98, 124,
102, 102, 110, 110, 111, 111, 103, 103, 112, 112, 124, 124, 103, 103, 111, 111, 112, 112, 104, 104,
112, 112, 112, 112, 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
113, 114, 114, 115, 115, 115, 122, 122, 118, 118, 114, 114, 114, 115, 115, 116, 116, 116, 123, 123,
119, 119, 124, 124, 125, 125, 116, 116, 116, 116, 119, 119, 120, 120, 125, 125, 126, 126, 117, 117,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
116, 116, 116, 116, 116, 116, 116, 116, 116, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
...@@ -2082,9 +2065,18 @@ var yyR1 = [...]int{ ...@@ -2082,9 +2065,18 @@ var yyR1 = [...]int{
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117,
117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, 118, 118, 118, 118,
117, 117, 117, 117, 117, 117, 117, 117, 117, 188, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
189, 129, 130, 130, 130, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
118, 189, 190, 130, 131, 131, 131,
} }
var yyR2 = [...]int{ var yyR2 = [...]int{
...@@ -2112,44 +2104,44 @@ var yyR2 = [...]int{ ...@@ -2112,44 +2104,44 @@ var yyR2 = [...]int{
1, 3, 1, 2, 3, 1, 1, 1, 6, 7, 1, 3, 1, 2, 3, 1, 1, 1, 6, 7,
7, 12, 7, 7, 7, 4, 5, 1, 1, 1, 7, 12, 7, 7, 7, 4, 5, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 1,
3, 8, 8, 5, 4, 6, 5, 4, 4, 3, 3, 8, 8, 3, 3, 5, 4, 6, 5, 4,
2, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 3, 4, 4, 4, 4, 4, 4,
3, 3, 3, 3, 4, 3, 7, 5, 4, 2, 4, 4, 3, 3, 3, 3, 4, 3, 7, 5,
2, 4, 4, 2, 2, 2, 2, 2, 2, 3, 4, 2, 2, 4, 4, 2, 2, 2, 2, 2,
1, 1, 0, 1, 1, 1, 0, 2, 2, 0, 2, 3, 1, 1, 0, 1, 1, 1, 0, 2,
2, 2, 0, 1, 1, 2, 1, 1, 2, 1, 2, 0, 2, 2, 0, 1, 1, 2, 1, 1,
1, 2, 2, 2, 2, 2, 3, 3, 2, 0, 2, 1, 1, 2, 2, 2, 2, 2, 3, 3,
2, 0, 2, 1, 2, 2, 0, 1, 1, 0, 2, 0, 2, 0, 2, 1, 2, 2, 0, 1,
1, 0, 1, 0, 1, 1, 3, 1, 2, 3, 1, 0, 1, 0, 1, 0, 1, 1, 3, 1,
5, 0, 1, 2, 1, 1, 0, 2, 1, 3, 2, 3, 5, 0, 1, 2, 1, 1, 0, 2,
1, 1, 1, 3, 1, 3, 3, 7, 1, 3, 1, 3, 1, 1, 1, 3, 1, 3, 3, 7,
1, 3, 4, 4, 4, 3, 2, 4, 0, 1, 1, 3, 1, 3, 4, 4, 4, 3, 2, 4,
0, 2, 0, 1, 0, 1, 2, 1, 1, 1, 0, 1, 0, 2, 0, 1, 0, 1, 2, 1,
2, 2, 1, 2, 3, 2, 3, 2, 2, 2, 1, 1, 2, 2, 1, 2, 3, 2, 3, 2,
1, 1, 3, 0, 5, 5, 5, 0, 2, 1, 2, 2, 1, 1, 3, 0, 5, 5, 5, 0,
3, 3, 2, 3, 1, 2, 0, 3, 1, 1, 2, 1, 3, 3, 2, 3, 1, 2, 0, 3,
3, 3, 4, 4, 5, 3, 4, 5, 6, 2, 1, 1, 3, 3, 4, 4, 5, 3, 4, 5,
1, 2, 1, 2, 1, 2, 1, 1, 1, 1, 6, 2, 1, 2, 1, 2, 1, 2, 1, 1,
1, 1, 1, 0, 2, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1,
3, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 1, 3, 1, 1, 1, 1, 1, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 2, 2, 2, 2, 2, 2, 2, 3, 1, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2,
1, 1, 1, 4, 5, 6, 4, 4, 6, 6, 3, 1, 1, 1, 1, 4, 5, 6, 4, 4,
6, 6, 8, 8, 6, 8, 8, 9, 7, 5, 6, 6, 6, 6, 8, 8, 6, 8, 8, 9,
4, 2, 2, 2, 2, 2, 2, 2, 2, 0, 7, 5, 4, 2, 2, 2, 2, 2, 2, 2,
2, 4, 4, 4, 4, 0, 3, 4, 7, 3, 2, 0, 2, 4, 4, 4, 4, 0, 3, 4,
1, 1, 2, 3, 3, 1, 2, 2, 1, 2, 7, 3, 1, 1, 2, 3, 3, 1, 2, 2,
1, 2, 2, 1, 2, 0, 1, 0, 2, 1, 1, 2, 1, 2, 2, 1, 2, 0, 1, 0,
2, 4, 0, 2, 1, 3, 5, 1, 1, 1, 2, 1, 2, 4, 0, 2, 1, 3, 5, 1,
1, 1, 1, 1, 1, 1, 2, 2, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2,
0, 2, 0, 3, 1, 3, 2, 0, 1, 1, 0, 3, 0, 2, 0, 3, 1, 3, 2, 0,
0, 2, 4, 4, 0, 2, 4, 2, 1, 3, 1, 1, 0, 2, 4, 4, 0, 2, 4, 2,
5, 4, 6, 1, 3, 3, 5, 0, 5, 1, 1, 3, 5, 4, 6, 1, 3, 3, 5, 0,
3, 1, 2, 3, 1, 1, 3, 3, 1, 3, 5, 1, 3, 1, 2, 3, 1, 1, 3, 3,
3, 3, 3, 3, 1, 2, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 1, 2, 1, 1,
1, 1, 0, 2, 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, 0, 2, 0, 3, 0, 1,
1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 0, 1, 1, 0, 2, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 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, 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,
...@@ -2171,19 +2163,19 @@ var yyR2 = [...]int{ ...@@ -2171,19 +2163,19 @@ 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, 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, 0, 0, 1, 1,
} }
var yyChk = [...]int{ var yyChk = [...]int{
-1000, -186, -1, -2, -6, -7, -8, -9, -10, -11, -1000, -187, -1, -2, -6, -7, -8, -9, -10, -11,
-12, -13, -14, -15, -18, -19, -20, -22, -23, -24, -12, -13, -14, -15, -19, -20, -21, -23, -24, -25,
-21, -16, -3, -4, 6, 7, -28, 9, 10, 30, -22, -16, -3, -4, 6, 7, -29, 9, 10, 30,
-17, 115, 116, 118, 117, 149, 119, 142, 50, 162, -17, 115, 116, 118, 117, 149, 119, 142, 50, 162,
163, 165, 166, 25, 143, 144, 147, 148, 31, 32, 163, 165, 166, 25, 143, 144, 147, 148, 31, 32,
121, -188, 8, 248, 54, -187, 263, -83, 15, -27, 121, -189, 8, 248, 54, -188, 263, -84, 15, -28,
5, -25, -191, -25, -25, -25, -25, -25, -162, -164, 5, -26, -192, -26, -26, -26, -26, -26, -163, -165,
54, 90, -115, 125, 72, 157, 240, 122, 123, 129, 54, 90, -116, 125, 72, 157, 240, 122, 123, 129,
-118, 57, -117, 256, 135, 162, 173, 167, 194, 186, -119, 57, -118, 256, 135, 162, 173, 167, 194, 186,
136, 184, 187, 227, 214, 224, 66, 165, 236, 145, 136, 184, 187, 227, 214, 224, 66, 165, 236, 145,
182, 178, 176, 27, 199, 261, 177, 225, 121, 138, 182, 178, 176, 27, 199, 261, 177, 225, 121, 138,
133, 200, 204, 228, 171, 172, 230, 198, 134, 33, 133, 200, 204, 228, 171, 172, 230, 198, 134, 33,
...@@ -2194,21 +2186,21 @@ var yyChk = [...]int{ ...@@ -2194,21 +2186,21 @@ var yyChk = [...]int{
132, 163, 159, 216, 190, 154, 180, 181, 195, 168, 132, 163, 159, 216, 190, 154, 180, 181, 195, 168,
191, 164, 156, 149, 237, 212, 262, 188, 185, 160, 191, 164, 156, 149, 237, 212, 262, 188, 185, 160,
158, 217, 218, 219, 220, 221, 161, 259, 233, 183, 158, 217, 218, 219, 220, 221, 161, 259, 233, 183,
213, -103, 125, 127, 123, 123, 124, 125, 240, 122, 213, -104, 125, 127, 123, 123, 124, 125, 240, 122,
123, -52, -124, 57, -117, 125, 157, 123, 108, 187, 123, -53, -125, 57, -118, 125, 157, 123, 108, 187,
115, 215, 124, 33, 155, -133, 123, -105, 158, 214, 115, 215, 124, 33, 155, -134, 123, -106, 158, 214,
217, 218, 219, 221, 220, 161, 57, 229, 228, 222, 217, 218, 219, 221, 220, 161, 57, 229, 228, 222,
-124, 164, -129, -129, -129, -129, -129, 216, 216, -129, -125, 164, -130, -130, -130, -130, -130, 216, 216, -130,
-2, -87, 17, 16, -5, -3, -188, 6, 20, 21, -2, -88, 17, 16, -5, -3, -189, 6, 20, 21,
-31, 40, 41, -26, -37, 99, -38, -124, -57, 74, -32, 40, 41, -27, -38, 99, -39, -125, -58, 74,
-62, 29, 57, -117, 23, -61, -58, -76, -74, -75, -63, 29, 57, -118, 23, -62, -59, -77, -75, -76,
108, 109, 110, 97, 98, 105, 75, 111, -66, -64, 108, 109, 110, 97, 98, 105, 75, 111, -67, -65,
-65, -67, 59, 58, 67, 60, 61, 62, 63, 68, -66, -68, 59, 58, 67, 60, 61, 62, 63, 68,
69, 70, -118, -72, -188, 44, 45, 249, 250, 251, 69, 70, -119, -73, -189, 44, 45, 249, 250, 251,
252, 255, 253, 77, 34, 239, 247, 246, 245, 243, 252, 255, 253, 77, 34, 239, 247, 246, 245, 243,
244, 241, 242, 128, 240, 103, 248, -103, -103, 11, 244, 241, 242, 128, 240, 103, 248, -104, -104, 11,
-47, -52, -95, -132, 164, -99, 229, 228, -119, -97, -48, -53, -96, -133, 164, -100, 229, 228, -120, -98,
-118, -116, 227, 187, 226, 120, 73, 22, 24, 209, -119, -117, 227, 187, 226, 120, 73, 22, 24, 209,
76, 108, 16, 77, 107, 249, 115, 48, 241, 242, 76, 108, 16, 77, 107, 249, 115, 48, 241, 242,
239, 251, 252, 240, 215, 29, 10, 25, 143, 21, 239, 251, 252, 240, 215, 29, 10, 25, 143, 21,
101, 117, 80, 81, 146, 23, 144, 70, 19, 51, 101, 117, 80, 81, 146, 23, 144, 70, 19, 51,
...@@ -2217,243 +2209,243 @@ var yyChk = [...]int{ ...@@ -2217,243 +2209,243 @@ var yyChk = [...]int{
255, 150, 103, 49, 36, 74, 68, 71, 52, 72, 255, 150, 103, 49, 36, 74, 68, 71, 52, 72,
15, 47, 91, 118, 248, 45, 122, 6, 254, 30, 15, 47, 91, 118, 248, 45, 122, 6, 254, 30,
142, 43, 123, 79, 126, 69, 5, 129, 32, 9, 142, 43, 123, 79, 126, 69, 5, 129, 32, 9,
50, 53, 245, 246, 247, 34, 78, 12, -163, 90, 50, 53, 245, 246, 247, 34, 78, 12, -164, 90,
-156, 57, -52, 124, -52, 248, -118, -111, 128, -111, -157, 57, -53, 124, -53, 248, -119, -112, 128, -112,
-111, 123, -52, -52, -110, 128, 57, -110, -110, -110, -112, 123, -53, -18, -53, -111, 128, 57, -111, -111,
-52, 112, -52, 57, 30, 240, 57, 155, 123, 156, -111, -53, 112, -53, 57, 30, 240, 57, 155, 123,
125, -130, -188, -119, -130, -130, -130, 159, 160, -130, 156, 125, -131, -189, -120, -131, -131, -131, 159, 160,
-108, -107, 224, 225, 216, 223, 52, 12, -130, -129, -131, -109, -108, 224, 225, 216, 223, 52, 12, -131,
-129, -189, 56, -88, 19, 31, -38, -124, -84, -85, -130, -130, -190, 56, -89, 19, 31, -39, -125, -85,
-38, -83, -2, -25, 36, -29, 21, 65, 11, -121, -86, -39, -84, -2, -26, 36, -30, 21, 65, 11,
73, 72, 89, -120, 22, -118, 59, 112, -38, -59, -122, 73, 72, 89, -121, 22, -119, 59, 112, -39,
92, 74, 90, 91, 76, 94, 93, 104, 97, 98, -60, 92, 74, 90, 91, 76, 94, 93, 104, 97,
99, 100, 101, 102, 103, 95, 96, 107, 82, 83, 98, 99, 100, 101, 102, 103, 95, 96, 107, 82,
84, 85, 86, 87, 88, -104, -188, -75, -188, 113, 83, 84, 85, 86, 87, 88, -105, -189, -76, -189,
114, -62, -62, -62, -62, -62, -62, -62, -62, -188, 113, 114, -63, -63, -63, -63, -63, -63, -63, -63,
-2, -70, -38, -188, -188, -188, -188, -188, -188, -188, -189, -2, -71, -39, -189, -189, -189, -189, -189, -189,
-188, -188, -79, -38, -188, -192, -188, -192, -192, -192, -189, -189, -189, -80, -39, -189, -193, -189, -193, -193,
-192, -192, -192, -192, -188, -188, -188, -188, -53, 26, -193, -193, -193, -193, -193, -189, -189, -189, -189, -54,
-52, -40, -41, -42, -43, -54, -75, -188, -52, -52, 26, -53, -41, -42, -43, -44, -55, -76, -189, -53,
-47, -190, 55, 11, 53, 55, -95, 164, -96, -100, -53, -48, -191, 55, 11, 53, 55, -96, 164, -97,
230, 232, 82, -123, -118, 59, 29, 30, 56, 55, -101, 230, 232, 82, -124, -119, 59, 29, 30, 56,
-52, -135, -138, -140, -139, -141, -136, -137, 184, 185, 55, -53, -136, -139, -141, -140, -142, -137, -138, 184,
108, 188, 190, 191, 192, 193, 194, 195, 196, 197, 185, 108, 188, 190, 191, 192, 193, 194, 195, 196,
198, 199, 30, 145, 180, 181, 182, 183, 200, 201, 197, 198, 199, 30, 145, 180, 181, 182, 183, 200,
202, 203, 204, 205, 206, 207, 167, 168, 169, 170, 201, 202, 203, 204, 205, 206, 207, 167, 168, 169,
171, 172, 173, 175, 176, 177, 178, 179, 57, -130, 170, 171, 172, 173, 175, 176, 177, 178, 179, 57,
125, -181, 53, 57, 74, 57, -52, -52, -130, 126, -131, 125, -182, 53, 57, 74, 57, -53, -53, -131,
-52, 23, 52, -52, 57, 57, -125, -124, -116, -130, 55, 126, -48, 23, 52, -53, 57, 57, -126, -125,
-130, -130, -130, -130, -130, -130, -130, -130, -130, 11, -117, -131, -131, -131, -131, -131, -131, -131, -131, -131,
-106, 11, 92, -52, -38, 9, 92, 55, 18, 112, -131, 11, -107, 11, 92, -53, -39, 9, 92, 55,
55, -86, 24, 25, -87, -189, -31, -63, -118, 60, 18, 112, 55, -87, 24, 25, -88, -190, -32, -64,
63, -30, 43, -52, -38, -38, -68, 68, 74, 69, -119, 60, 63, -31, 43, -53, -39, -39, -69, 68,
70, -120, 99, -125, -119, -116, -62, -69, -72, -75, 74, 69, 70, -121, 99, -126, -120, -117, -63, -70,
64, 92, 90, 91, 76, -62, -62, -62, -62, -62, -73, -76, 64, 92, 90, 91, 76, -63, -63, -63,
-62, -62, -62, -62, -62, -62, -62, -62, -62, -62, -63, -63, -63, -63, -63, -63, -63, -63, -63, -63,
-131, 57, 59, 57, -61, -61, -118, -36, 21, -35, -63, -63, -132, 57, 59, 57, -62, -62, -119, -37,
-37, -189, 55, -189, -2, -35, -35, -38, -38, -76, 21, -36, -38, -190, 55, -190, -2, -36, -36, -39,
-118, -124, -76, -35, -29, -77, -78, 78, -76, -189, -39, -77, -119, -125, -77, -36, -30, -78, -79, 78,
-35, -36, -35, -35, -91, 151, -52, 30, 55, -48, -77, -190, -36, -37, -36, -36, -92, 151, -53, 30,
-50, -49, -51, 42, 46, 48, 43, 44, 45, 49, 55, -49, -51, -50, -52, 42, 46, 48, 43, 44,
-128, 22, -40, -188, -127, 151, -126, 22, -124, 59, 45, 49, -129, 22, -41, -189, -128, 151, -127, 22,
-91, 53, -40, -52, -99, -96, 55, 231, 233, 234, -125, 59, -92, 53, -41, -53, -100, -97, 55, 231,
52, 71, -38, -147, 107, -165, -166, -167, -119, 59, 233, 234, 52, 71, -39, -148, 107, -166, -167, -168,
60, -156, -157, -158, -168, 137, -173, 130, 132, 129, -120, 59, 60, -157, -158, -159, -169, 137, -174, 130,
-159, 138, 124, 28, 56, -152, 68, 74, -148, 212, 132, 129, -160, 138, 124, 28, 56, -153, 68, 74,
-142, 54, -142, -142, -142, -142, -146, 187, -146, -146, -149, 212, -143, 54, -143, -143, -143, -143, -147, 187,
-146, 54, 54, -142, -142, -142, -150, 54, -150, -150, -147, -147, -147, 54, 54, -143, -143, -143, -151, 54,
-151, 54, -151, -122, 53, -52, -179, 259, -180, 57, -151, -151, -152, 54, -152, -123, 53, -53, -180, 259,
-130, 23, -130, -112, 120, 117, 118, -176, 116, 209, -181, 57, -131, 23, -131, -113, 120, 117, 118, -177,
187, 66, 29, 15, 249, 151, 262, 57, 152, -52, 116, 209, 187, 66, 29, 15, 249, 151, 262, 57,
-52, -130, -52, -109, 90, 12, -124, -124, 38, -38, 152, -53, -53, -53, -131, -53, -110, 90, 12, -125,
-38, -125, -85, -88, -102, 19, 11, 34, 34, -35, -125, 38, -39, -39, -126, -86, -89, -103, 19, 11,
68, 69, 70, 112, -188, -69, -62, -62, -62, -34, 34, 34, -36, 68, 69, 70, 112, -189, -70, -63,
146, 73, -189, -189, -35, 55, -38, -189, -189, -189, -63, -63, -35, 146, 73, -190, -190, -36, 55, -39,
55, 53, 22, 55, 11, 112, 55, 11, -189, -35, -190, -190, -190, 55, 53, 22, 55, 11, 112, 55,
-80, -78, 80, -38, -189, -189, -189, -189, -189, -60, 11, -190, -36, -81, -79, 80, -39, -190, -190, -190,
30, 34, -2, -188, -188, -94, -98, -76, -41, -42, -190, -190, -61, 30, 34, -2, -189, -189, -95, -99,
-42, -41, -42, 42, 42, 42, 47, 42, 47, 42, -77, -42, -43, -43, -42, -43, 42, 42, 42, 47,
-49, -124, -189, -55, 50, 127, 51, -188, -126, -56, 42, 47, 42, -50, -125, -190, -56, 50, 127, 51,
12, -40, -56, -100, -101, 235, 232, 238, 57, 59, -189, -127, -57, 12, -41, -57, -101, -102, 235, 232,
55, -167, 82, 54, 57, 28, -159, -159, -160, 57, 238, 57, 59, 55, -168, 82, 54, 57, 28, -160,
-160, 28, -143, 29, 68, -149, 213, 60, -146, -146, -160, -161, 57, -161, 28, -144, 29, 68, -150, 213,
-147, 30, -147, -147, -147, -155, 59, -155, 60, 60, 60, -147, -147, -148, 30, -148, -148, -148, -156, 59,
52, -118, -130, -178, -177, -119, -129, -182, 157, 131, -156, 60, 60, 52, -119, -131, -179, -178, -120, -130,
137, 138, 133, 57, 124, 28, 130, 132, 151, 129, -183, 157, 131, 137, 138, 133, 57, 124, 28, 130,
-182, 157, -113, -114, 126, 22, 124, 28, 151, -130, 132, 151, 129, -183, 157, -114, -115, 126, 22, 124,
-106, 59, -38, 39, 112, -52, -39, 11, 99, -119, 28, 151, 126, -131, -107, 59, -39, 39, 112, -53,
-36, -34, 73, -62, -62, -189, -37, -134, 108, 184, -40, 11, 99, -120, -37, -35, 73, -63, -63, -190,
145, 182, 178, 198, 189, 211, 180, 212, -131, -134, -38, -135, 108, 184, 145, 182, 178, 198, 189, 211,
-62, -62, -119, -62, -62, 256, -83, 81, -38, 79, 180, 212, -132, -135, -63, -63, -120, -63, -63, 256,
-93, 52, -94, -71, -73, -72, -188, -2, -89, -118, -84, 81, -39, 79, -94, 52, -95, -72, -74, -73,
-92, -118, -56, 55, 82, -45, -44, 52, 53, -46, -189, -2, -90, -119, -93, -119, -57, 55, 82, -46,
52, -44, 42, 42, 124, 124, 124, -92, -83, -38, -45, 52, 53, -47, 52, -45, 42, 42, 124, 124,
-56, 232, 236, 237, -166, -167, -170, -169, -118, -173, 124, -93, -84, -39, -57, 232, 236, 237, -167, -168,
-160, -160, 54, -145, 52, 59, 60, 61, 68, 239, -171, -170, -119, -174, -161, -161, 54, -146, 52, 59,
67, 56, -147, -147, 57, 108, 56, 55, 56, 55, 60, 61, 68, 239, 67, 56, -148, -148, 57, 108,
56, 55, -52, 55, 82, -129, -118, -129, -118, -52, 56, 55, 56, 55, 56, 55, -53, 55, 82, -130,
-129, -118, -109, -56, -40, -189, -62, -189, -142, -142, -119, -130, -119, -53, -130, -119, -53, -110, -57, -41,
-142, -151, -142, 172, -142, 172, -189, -189, -189, 55, -190, -63, -190, -143, -143, -143, -152, -143, 172, -143,
19, -189, 55, 19, -188, -33, 254, -38, 27, -93, 172, -190, -190, -190, 55, 19, -190, 55, 19, -189,
55, -189, -189, -189, 55, 112, -189, 55, -83, -98, -34, 254, -39, 27, -94, 55, -190, -190, -190, 55,
-38, -38, 54, -38, -188, -188, -188, -189, -87, 56, 112, -190, 55, -84, -99, -39, -39, 54, -39, -189,
55, -142, -90, -118, -153, 209, 9, 54, -146, 59, -189, -189, -190, -88, 56, 55, -143, -91, -119, -154,
-146, 60, 60, -130, -177, -167, 54, 26, -81, 13, 209, 9, 54, -147, 59, -147, 60, 60, -131, -178,
-146, 57, -62, -62, -62, -62, -62, -189, 59, 28, -168, 54, 26, -82, 13, -147, 57, -63, -63, -63,
-73, 34, -2, -188, -118, -118, -118, -87, -90, -90, -63, -63, -190, 59, 28, -74, 34, -2, -189, -119,
-90, -90, -127, -172, -171, 53, 134, 66, -169, 56, -119, -119, -88, -91, -91, -91, -91, -128, -173, -172,
55, -154, 130, 28, 129, 239, 56, -147, -147, 56, 53, 134, 66, -170, 56, 55, -155, 130, 28, 129,
56, -90, -188, -82, 14, 16, -189, -189, -189, -189, 239, 56, -148, -148, 56, 56, -91, -189, -83, 14,
-32, 92, 259, 9, -71, -2, 112, 56, -189, -189, 16, -190, -190, -190, -190, -33, 92, 259, 9, -72,
-189, -55, -171, 57, -161, 82, 59, 140, -118, -144, -2, 112, 56, -190, -190, -190, -56, -172, 57, -162,
66, 28, 28, 54, 56, -174, -175, 151, -38, -70, 82, 59, 140, -119, -145, 66, 28, 28, 54, 56,
-189, 257, 49, 260, -94, -189, -118, 60, -52, 59, -175, -176, 151, -39, -71, -190, 257, 49, 260, -95,
56, -181, -189, 55, -118, 39, 258, 261, 54, -179, -190, -119, 60, -53, 59, 56, -182, -190, 55, -119,
-175, 34, 39, -90, 153, 259, 56, 154, 260, -184, 39, 258, 261, 54, -180, -176, 34, 39, -91, 153,
-185, 52, -188, 261, -185, 52, 10, 9, -62, 150, 259, 56, 154, 260, -185, -186, 52, -189, 261, -186,
-183, 141, 136, 139, 30, -183, -189, -189, 135, 29, 52, 10, 9, -63, 150, -184, 141, 136, 139, 30,
68, -184, -190, -190, 135, 29, 68,
} }
var yyDef = [...]int{ var yyDef = [...]int{
23, -2, 2, -2, 5, 6, 7, 8, 9, 10, 23, -2, 2, -2, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 542, 0, 309, 309, 309, 309, 309, 309, 21, 22, 544, 0, 311, 311, 311, 311, 311, 311,
0, 613, 596, 0, 0, 0, 0, -2, 296, 297, 0, 615, 598, 0, 0, 0, 0, -2, 298, 299,
0, 299, 300, 831, 831, 831, 831, 831, 0, 0, 0, 301, 302, 833, 833, 833, 833, 833, 0, 0,
831, 0, 35, 36, 829, 1, 3, 550, 0, 0, 833, 0, 35, 36, 831, 1, 3, 552, 0, 0,
313, 316, 311, 0, 596, 596, 0, 0, 62, 63, 315, 318, 313, 0, 598, 598, 0, 0, 62, 63,
0, 0, 0, 816, 0, 817, 594, 594, 594, 614, 0, 0, 0, 818, 0, 819, 596, 596, 596, 616,
615, 618, 619, 719, 720, 721, 722, 723, 724, 725, 617, 620, 621, 721, 722, 723, 724, 725, 726, 727,
726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737,
736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747,
746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757,
756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767,
766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777,
776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787,
786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797,
796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807,
806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817,
818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829,
828, 0, 0, 597, 0, 592, 0, 592, 592, 592, 830, 0, 0, 599, 0, 594, 0, 594, 594, 594,
0, 250, 381, 622, 623, 816, 817, 0, 0, 0, 0, 252, 383, 624, 625, 818, 819, 0, 0, 0,
0, 832, 832, 832, 832, 0, 832, 0, 269, 270, 0, 834, 834, 834, 834, 0, 834, 0, 271, 272,
273, 274, 275, 276, 277, 278, 832, 293, 294, 283, 275, 276, 277, 278, 279, 280, 834, 295, 296, 285,
295, 298, 301, 302, 303, 304, 305, 831, 831, 308, 297, 300, 303, 304, 305, 306, 307, 833, 833, 310,
29, 554, 0, 0, 542, 31, 0, 309, 314, 315, 29, 556, 0, 0, 544, 31, 0, 311, 316, 317,
319, 317, 318, 310, 0, 327, 331, 0, 389, 0, 321, 319, 320, 312, 0, 329, 333, 0, 391, 0,
394, 396, -2, -2, 0, 431, 432, 433, 434, 435, 396, 398, -2, -2, 0, 433, 434, 435, 436, 437,
0, 0, 0, 0, 0, 0, 0, 0, 459, 460, 0, 0, 0, 0, 0, 0, 0, 0, 461, 462,
461, 462, 527, 528, 529, 530, 531, 532, 533, 534, 463, 464, 529, 530, 531, 532, 533, 534, 535, 536,
398, 399, 524, 574, 0, 0, 0, 0, 0, 0, 400, 401, 526, 576, 0, 0, 0, 0, 0, 0,
0, 0, 0, 515, 0, 489, 489, 489, 489, 489, 0, 0, 0, 517, 0, 491, 491, 491, 491, 491,
489, 489, 489, 0, 0, 0, 0, 0, 0, 0, 491, 491, 491, 0, 0, 0, 0, 0, 0, 0,
0, 43, 47, 0, 807, 578, -2, -2, 0, 0, 0, 43, 47, 0, 809, 580, -2, -2, 0, 0,
620, 621, -2, 728, -2, 626, 627, 628, 629, 630, 622, 623, -2, 730, -2, 628, 629, 630, 631, 632,
631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652,
651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662,
661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672,
671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682,
681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692,
691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702,
701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712,
711, 712, 713, 714, 715, 716, 717, 718, 0, 0, 713, 714, 715, 716, 717, 718, 719, 720, 0, 0,
82, 0, 80, 0, 832, 0, 70, 0, 0, 0, 82, 0, 80, 0, 834, 0, 70, 0, 0, 0,
0, 0, 832, 0, 0, 0, 0, 0, 0, 0, 0, 0, 834, 243, 0, 0, 0, 0, 0, 0,
249, 0, 251, 832, 832, 832, 832, 832, 832, 832, 0, 251, 0, 253, 834, 834, 834, 834, 834, 834,
832, 260, 833, 834, 261, 262, 263, 832, 832, 265, 834, 834, 262, 835, 836, 263, 264, 265, 834, 834,
0, 286, 284, 285, 280, 281, 0, 0, 279, 306, 267, 0, 288, 286, 287, 282, 283, 0, 0, 281,
307, 30, 830, 24, 0, 0, 551, 0, 543, 544, 308, 309, 30, 832, 24, 0, 0, 553, 0, 545,
547, 550, 29, 316, 0, 321, 320, 312, 0, 328, 546, 549, 552, 29, 318, 0, 323, 322, 314, 0,
0, 0, 0, 332, 0, 334, 335, 0, 392, 0, 330, 0, 0, 0, 334, 0, 336, 337, 0, 394,
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, 416, 417, 0, 0, 0, 0, 0, 0, 0, 0, 0, 418,
418, 419, 420, 421, 422, 395, 0, 409, 0, 0, 419, 420, 421, 422, 423, 424, 397, 0, 411, 0,
0, 451, 452, 453, 454, 455, 456, 457, 0, 323, 0, 0, 453, 454, 455, 456, 457, 458, 459, 0,
29, 0, 429, 0, 0, 0, 0, 0, 0, 0, 325, 29, 0, 431, 0, 0, 0, 0, 0, 0,
0, 319, 0, 516, 0, 481, 0, 482, 483, 484, 0, 0, 321, 0, 518, 0, 483, 0, 484, 485,
485, 486, 487, 488, 0, 323, 0, 0, 45, 0, 486, 487, 488, 489, 490, 0, 325, 0, 0, 45,
380, 0, 338, 340, 341, 342, -2, 0, 364, -2, 0, 382, 0, 340, 342, 343, 344, -2, 0, 366,
0, 0, 0, 41, 42, 0, 48, 807, 50, 51, -2, 0, 0, 0, 41, 42, 0, 48, 809, 50,
0, 0, 0, 165, 587, 588, 589, 585, 209, 0, 51, 0, 0, 0, 165, 589, 590, 591, 587, 209,
0, 146, 142, 88, 89, 90, 135, 92, 135, 135, 0, 0, 146, 142, 88, 89, 90, 135, 92, 135,
135, 135, 162, 162, 162, 162, 118, 119, 120, 121, 135, 135, 135, 162, 162, 162, 162, 118, 119, 120,
122, 0, 0, 105, 135, 135, 135, 109, 125, 126, 121, 122, 0, 0, 105, 135, 135, 135, 109, 125,
127, 128, 129, 130, 131, 132, 93, 94, 95, 96, 126, 127, 128, 129, 130, 131, 132, 93, 94, 95,
97, 98, 99, 137, 137, 137, 139, 139, 616, 65, 96, 97, 98, 99, 137, 137, 137, 139, 139, 618,
0, 73, 0, 832, 0, 832, 78, 0, 225, 0, 65, 0, 73, 0, 834, 0, 834, 78, 0, 225,
244, 593, 0, 832, 247, 248, 382, 624, 625, 252, 0, 0, 246, 595, 0, 834, 249, 250, 384, 626,
253, 254, 255, 256, 257, 258, 259, 264, 268, 0, 627, 254, 255, 256, 257, 258, 259, 260, 261, 266,
289, 0, 0, 272, 271, 555, 0, 0, 0, 0, 270, 0, 291, 0, 0, 274, 273, 557, 0, 0,
0, 546, 548, 549, 554, 32, 319, 0, 535, 0, 0, 0, 0, 548, 550, 551, 556, 32, 321, 0,
0, 0, 322, 27, 390, 391, 393, 410, 0, 412, 537, 0, 0, 0, 324, 27, 392, 393, 395, 412,
414, 333, 329, 0, 525, -2, 400, 401, 425, 426, 0, 414, 416, 335, 331, 0, 527, -2, 402, 403,
427, 0, 0, 0, 0, 423, 405, 0, 436, 437, 427, 428, 429, 0, 0, 0, 0, 425, 407, 0,
438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
450, 500, 501, 0, 448, 449, 458, 0, 0, 324, 448, 449, 452, 502, 503, 0, 450, 451, 460, 0,
325, 428, 0, 573, 29, 0, 0, 0, 0, 0, 0, 326, 327, 430, 0, 575, 29, 0, 0, 0,
524, 0, 0, 0, 0, 522, 519, 0, 0, 490, 0, 0, 526, 0, 0, 0, 0, 524, 521, 0,
0, 0, 0, 0, 0, 0, 379, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 0, 381, 0,
0, 0, 0, 369, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 371, 0, 0, 374, 0,
0, 363, 0, 0, 383, 777, 365, 0, 367, 368, 0, 0, 0, 365, 0, 0, 385, 779, 367, 0,
387, 0, 387, 44, 579, 49, 0, 0, 54, 55, 369, 370, 389, 0, 389, 44, 581, 49, 0, 0,
580, 581, 582, 583, 0, 79, 210, 212, 215, 216, 54, 55, 582, 583, 584, 585, 0, 79, 210, 212,
217, 83, 84, 85, 0, 0, 197, 0, 0, 191, 215, 216, 217, 83, 84, 85, 0, 0, 197, 0,
191, 0, 189, 190, 81, 149, 147, 0, 144, 143, 0, 191, 191, 0, 189, 190, 81, 149, 147, 0,
91, 0, 162, 162, 112, 113, 165, 0, 165, 165, 144, 143, 91, 0, 162, 162, 112, 113, 165, 0,
165, 0, 0, 106, 107, 108, 100, 0, 101, 102, 165, 165, 165, 0, 0, 106, 107, 108, 100, 0,
103, 0, 104, 0, 0, 832, 67, 0, 71, 72, 101, 102, 103, 0, 104, 0, 0, 834, 67, 0,
68, 595, 69, 831, 0, 0, 608, 226, 598, 599, 71, 72, 68, 597, 69, 833, 0, 0, 610, 226,
600, 601, 602, 603, 604, 605, 606, 607, 0, 243, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
832, 246, 286, 267, 0, 0, 287, 288, 0, 552, 0, 0, 244, 834, 248, 288, 269, 0, 0, 289,
553, 0, 545, 25, 0, 590, 591, 536, 537, 336, 290, 0, 554, 555, 0, 547, 25, 0, 592, 593,
411, 413, 415, 0, 323, 402, 423, 406, 0, 403, 538, 539, 338, 413, 415, 417, 0, 325, 404, 425,
0, 0, 397, 463, 0, 0, 430, -2, 466, 467, 408, 0, 405, 0, 0, 399, 465, 0, 0, 432,
0, 0, 0, 0, 0, 0, 0, 0, 0, 542, -2, 468, 469, 0, 0, 0, 0, 0, 0, 0,
0, 520, 0, 0, 480, 491, 492, 493, 494, 567, 0, 0, 544, 0, 522, 0, 0, 482, 493, 494,
0, 0, -2, 0, 0, 387, 575, 0, 339, 358, 495, 496, 569, 0, 0, -2, 0, 0, 389, 577,
360, 0, 355, 370, 371, 373, 0, 375, 0, 377, 0, 341, 360, 362, 0, 357, 372, 373, 375, 0,
378, 343, 345, 346, 0, 0, 0, 0, 366, 542, 377, 0, 379, 380, 345, 347, 348, 0, 0, 0,
0, 387, 40, 52, 53, 0, 0, 59, 166, 167, 0, 368, 544, 0, 389, 40, 52, 53, 0, 0,
0, 213, 0, 0, 0, 184, 191, 191, 187, 192, 59, 166, 167, 0, 213, 0, 0, 0, 184, 191,
188, 0, 157, 0, 148, 87, 145, 0, 165, 165, 191, 187, 192, 188, 0, 157, 0, 148, 87, 145,
114, 0, 115, 116, 117, 0, 133, 0, 0, 0, 0, 165, 165, 114, 0, 115, 116, 117, 0, 133,
0, 617, 66, 74, 75, 0, 218, 831, 0, 227, 0, 0, 0, 0, 619, 66, 74, 75, 0, 218,
228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 833, 0, 227, 228, 229, 230, 231, 232, 233, 234,
831, 0, 0, 831, 609, 610, 611, 612, 0, 245, 235, 236, 237, 833, 0, 0, 833, 611, 612, 613,
289, 290, 291, 556, 0, 26, 387, 0, 330, 526, 614, 0, 0, 247, 291, 292, 293, 558, 0, 26,
0, 404, 0, 424, 407, 464, 326, 0, 135, 135, 389, 0, 332, 528, 0, 406, 0, 426, 409, 466,
505, 135, 139, 508, 135, 510, 135, 513, 0, 0, 328, 0, 135, 135, 507, 135, 139, 510, 135, 512,
0, 0, 525, 0, 0, 0, 517, 479, 523, 0, 135, 515, 0, 0, 0, 0, 527, 0, 0, 0,
33, 0, 567, 557, 569, 571, 0, 29, 0, 563, 519, 481, 525, 0, 33, 0, 569, 559, 571, 573,
0, 350, 542, 0, 0, 352, 359, 0, 0, 353, 0, 29, 0, 565, 0, 352, 544, 0, 0, 354,
0, 354, 374, 376, 0, 0, 0, 0, 550, 388, 361, 0, 0, 355, 0, 356, 376, 378, 0, 0,
39, 56, 57, 58, 211, 214, 0, 193, 135, 196, 0, 0, 552, 390, 39, 56, 57, 58, 211, 214,
185, 186, 0, 160, 0, 150, 151, 152, 153, 154, 0, 193, 135, 196, 185, 186, 0, 160, 0, 150,
156, 136, 110, 111, 163, 164, 162, 0, 162, 0, 151, 152, 153, 154, 156, 136, 110, 111, 163, 164,
140, 0, 832, 0, 0, 219, 0, 220, 222, 223, 162, 0, 162, 0, 140, 0, 834, 0, 0, 219,
224, 0, 266, 538, 337, 465, 408, 468, 502, 162, 0, 220, 222, 223, 224, 0, 245, 268, 540, 339,
506, 507, 509, 511, 512, 514, 470, 469, 471, 0, 467, 410, 470, 504, 162, 508, 509, 511, 513, 514,
0, 474, 0, 0, 0, 0, 0, 521, 0, 34, 516, 472, 471, 473, 0, 0, 476, 0, 0, 0,
0, 572, -2, 0, 0, 0, 46, 0, 550, 576, 0, 0, 523, 0, 34, 0, 574, -2, 0, 0,
577, 356, 0, 361, 0, 0, 0, 364, 38, 176, 0, 46, 0, 552, 578, 579, 358, 0, 363, 0,
0, 195, 0, 348, 168, 161, 0, 0, 165, 134, 0, 0, 366, 38, 176, 0, 195, 0, 350, 168,
165, 0, 0, 64, 76, 77, 0, 0, 540, 0, 161, 0, 0, 165, 134, 165, 0, 0, 64, 76,
503, 504, 0, 0, 0, 0, 495, 478, 518, 0, 77, 0, 0, 542, 0, 505, 506, 0, 0, 0,
570, 0, -2, 0, 565, 564, 351, 37, 0, 0, 0, 497, 480, 520, 0, 572, 0, -2, 0, 567,
0, 0, 383, 175, 177, 0, 182, 0, 194, 0, 566, 353, 37, 0, 0, 0, 0, 385, 175, 177,
0, 173, 0, 170, 172, 158, 155, 123, 124, 138, 0, 182, 0, 194, 0, 0, 173, 0, 170, 172,
141, 0, 0, 28, 0, 0, 472, 473, 475, 476, 158, 155, 123, 124, 138, 141, 0, 0, 28, 0,
0, 0, 0, 0, 560, 29, 0, 357, 384, 385, 0, 474, 475, 477, 478, 0, 0, 0, 0, 562,
386, 347, 178, 179, 0, 183, 181, 0, 349, 86, 29, 0, 359, 386, 387, 388, 349, 178, 179, 0,
0, 169, 171, 0, 70, 0, 239, 0, 541, 539, 183, 181, 0, 351, 86, 0, 169, 171, 0, 70,
477, 0, 0, 0, 568, -2, 566, 180, 0, 174, 0, 239, 0, 543, 541, 479, 0, 0, 0, 570,
159, 73, 238, 0, 0, 496, 0, 499, 0, 221, -2, 568, 180, 0, 174, 159, 73, 238, 0, 0,
240, 0, 497, 0, 0, 0, 198, 0, 0, 199, 498, 0, 501, 0, 221, 240, 0, 499, 0, 0,
200, 0, 0, 498, 201, 0, 0, 0, 0, 0, 0, 198, 0, 0, 199, 200, 0, 0, 500, 201,
202, 204, 205, 0, 0, 203, 241, 242, 206, 207, 0, 0, 0, 0, 0, 202, 204, 205, 0, 0,
208, 203, 241, 242, 206, 207, 208,
} }
var yyTok1 = [...]int{ var yyTok1 = [...]int{
...@@ -3132,19 +3124,19 @@ yydefault: ...@@ -3132,19 +3124,19 @@ yydefault:
//line sql.y:561 //line sql.y:561
{ {
// Change this to an alter statement // Change this to an alter statement
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName, NewName: yyDollar[7].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[7].tableName}
} }
case 65: case 65:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:566 //line sql.y:566
{ {
yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[3].tableName.ToViewName()} yyVAL.statement = &DDL{Action: CreateStr, Table: yyDollar[3].tableName.ToViewName()}
} }
case 66: case 66:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:570 //line sql.y:570
{ {
yyVAL.statement = &DDL{Action: CreateStr, NewName: yyDollar[5].tableName.ToViewName()} yyVAL.statement = &DDL{Action: CreateStr, Table: yyDollar[5].tableName.ToViewName()}
} }
case 67: case 67:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
...@@ -3222,7 +3214,7 @@ yydefault: ...@@ -3222,7 +3214,7 @@ yydefault:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:634 //line sql.y:634
{ {
yyVAL.ddl = &DDL{Action: CreateStr, NewName: yyDollar[4].tableName} yyVAL.ddl = &DDL{Action: CreateStr, Table: yyDollar[4].tableName}
setDDL(yylex, yyVAL.ddl) setDDL(yylex, yyVAL.ddl)
} }
case 79: case 79:
...@@ -4076,19 +4068,19 @@ yydefault: ...@@ -4076,19 +4068,19 @@ yydefault:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:1292 //line sql.y:1292
{ {
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName}
} }
case 219: case 219:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1296 //line sql.y:1296
{ {
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName}
} }
case 220: case 220:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1300 //line sql.y:1300
{ {
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName}
} }
case 221: case 221:
yyDollar = yyS[yypt-12 : yypt+1] yyDollar = yyS[yypt-12 : yypt+1]
...@@ -4122,20 +4114,20 @@ yydefault: ...@@ -4122,20 +4114,20 @@ yydefault:
//line sql.y:1327 //line sql.y:1327
{ {
// Change this to a rename statement // Change this to a rename statement
yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[4].tableName, NewName: yyDollar[7].tableName} yyVAL.statement = &DDL{Action: RenameStr, FromTables: TableNames{yyDollar[4].tableName}, ToTables: TableNames{yyDollar[7].tableName}}
} }
case 224: case 224:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1332 //line sql.y:1332
{ {
// Rename an index can just be an alter // Rename an index can just be an alter
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName, NewName: yyDollar[4].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[4].tableName}
} }
case 225: case 225:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1337 //line sql.y:1337
{ {
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName(), NewName: yyDollar[3].tableName.ToViewName()} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName()}
} }
case 226: case 226:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
...@@ -4174,162 +4166,176 @@ yydefault: ...@@ -4174,162 +4166,176 @@ yydefault:
yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true}
} }
case 243: case 243:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1386 //line sql.y:1386
{ {
yyVAL.statement = &DDL{Action: RenameStr, Table: yyDollar[3].tableName, NewName: yyDollar[5].tableName} yyVAL.statement = yyDollar[3].ddl
} }
case 244: case 244:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1392 //line sql.y:1392
{
yyVAL.ddl = &DDL{Action: RenameStr, FromTables: TableNames{yyDollar[1].tableName}, ToTables: TableNames{yyDollar[3].tableName}}
}
case 245:
yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1396
{
yyVAL.ddl = yyDollar[1].ddl
yyVAL.ddl.FromTables = append(yyVAL.ddl.FromTables, yyDollar[3].tableName)
yyVAL.ddl.ToTables = append(yyVAL.ddl.ToTables, yyDollar[5].tableName)
}
case 246:
yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1404
{ {
var exists bool var exists bool
if yyDollar[3].byt != 0 { if yyDollar[3].byt != 0 {
exists = true exists = true
} }
yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName, IfExists: exists} yyVAL.statement = &DDL{Action: DropStr, FromTables: yyDollar[4].tableNames, IfExists: exists}
} }
case 245: case 247:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:1400 //line sql.y:1412
{ {
// Change this to an alter statement // Change this to an alter statement
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, NewName: yyDollar[5].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName}
} }
case 246: case 248:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1405 //line sql.y:1417
{ {
var exists bool var exists bool
if yyDollar[3].byt != 0 { if yyDollar[3].byt != 0 {
exists = true exists = true
} }
yyVAL.statement = &DDL{Action: DropStr, Table: yyDollar[4].tableName.ToViewName(), IfExists: exists} yyVAL.statement = &DDL{Action: DropStr, FromTables: TableNames{yyDollar[4].tableName.ToViewName()}, IfExists: exists}
} }
case 247: case 249:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1413 //line sql.y:1425
{ {
yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)}
} }
case 248: case 250:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1417 //line sql.y:1429
{ {
yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)} yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].bytes)}
} }
case 249: case 251:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1423 //line sql.y:1435
{ {
yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName}
} }
case 250: case 252:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1427 //line sql.y:1439
{ {
yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName}
} }
case 251: case 253:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1432 //line sql.y:1444
{ {
yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName, NewName: yyDollar[3].tableName} yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName}
} }
case 252: case 254:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1438 //line sql.y:1450
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 253: case 255:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1442 //line sql.y:1454
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 254: case 256:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1446 //line sql.y:1458
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 255: case 257:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1451 //line sql.y:1463
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 256: case 258:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1455 //line sql.y:1467
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 257: case 259:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1459 //line sql.y:1471
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 258: case 260:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1463 //line sql.y:1475
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 259: case 261:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1467 //line sql.y:1479
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)}
} }
case 260: case 262:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1471 //line sql.y:1483
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 261: case 263:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1475 //line sql.y:1487
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 262: case 264:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1479 //line sql.y:1491
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 263: case 265:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1483 //line sql.y:1495
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 264: case 266:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1487 //line sql.y:1499
{ {
yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)}
} }
case 265: case 267:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1491 //line sql.y:1503
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 266: case 268:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1495 //line sql.y:1507
{ {
showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter} showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter}
yyVAL.statement = &Show{Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName} yyVAL.statement = &Show{Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName}
} }
case 267: case 269:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1500 //line sql.y:1512
{ {
// this is ugly, but I couldn't find a better way for now // this is ugly, but I couldn't find a better way for now
if yyDollar[3].str == "processlist" { if yyDollar[3].str == "processlist" {
...@@ -4339,650 +4345,650 @@ yydefault: ...@@ -4339,650 +4345,650 @@ yydefault:
yyVAL.statement = &Show{Type: yyDollar[3].str, ShowTablesOpt: showTablesOpt} yyVAL.statement = &Show{Type: yyDollar[3].str, ShowTablesOpt: showTablesOpt}
} }
} }
case 268: case 270:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1510 //line sql.y:1522
{ {
yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)}
} }
case 269: case 271:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1514 //line sql.y:1526
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 270: case 272:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1518 //line sql.y:1530
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 271: case 273:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1522 //line sql.y:1534
{ {
// Cannot dereference $4 directly, or else the parser stackcannot be pooled. See yyParsePooled // Cannot dereference $4 directly, or else the parser stackcannot be pooled. See yyParsePooled
showCollationFilterOpt := yyDollar[4].expr showCollationFilterOpt := yyDollar[4].expr
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), ShowCollationFilterOpt: &showCollationFilterOpt} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), ShowCollationFilterOpt: &showCollationFilterOpt}
} }
case 272: case 274:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1528 //line sql.y:1540
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), OnTable: yyDollar[4].tableName}
} }
case 273: case 275:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1532 //line sql.y:1544
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 274: case 276:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1536 //line sql.y:1548
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 275: case 277:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1540 //line sql.y:1552
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 276: case 278:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1544 //line sql.y:1556
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 277: case 279:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1548 //line sql.y:1560
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 278: case 280:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1552 //line sql.y:1564
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 279: case 281:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1562 //line sql.y:1574
{ {
yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)}
} }
case 280: case 282:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1568 //line sql.y:1580
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 281: case 283:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1572 //line sql.y:1584
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 282: case 284:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1578 //line sql.y:1590
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 283: case 285:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1582 //line sql.y:1594
{ {
yyVAL.str = "full " yyVAL.str = "full "
} }
case 284: case 286:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1588 //line sql.y:1600
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 285: case 287:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1592 //line sql.y:1604
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 286: case 288:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1598 //line sql.y:1610
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 287: case 289:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1602 //line sql.y:1614
{ {
yyVAL.str = yyDollar[2].tableIdent.v yyVAL.str = yyDollar[2].tableIdent.v
} }
case 288: case 290:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1606 //line sql.y:1618
{ {
yyVAL.str = yyDollar[2].tableIdent.v yyVAL.str = yyDollar[2].tableIdent.v
} }
case 289: case 291:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1612 //line sql.y:1624
{ {
yyVAL.showFilter = nil yyVAL.showFilter = nil
} }
case 290: case 292:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1616 //line sql.y:1628
{ {
yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)}
} }
case 291: case 293:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1620 //line sql.y:1632
{ {
yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr}
} }
case 292: case 294:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1626 //line sql.y:1638
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 293: case 295:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1630 //line sql.y:1642
{ {
yyVAL.str = SessionStr yyVAL.str = SessionStr
} }
case 294: case 296:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1634 //line sql.y:1646
{ {
yyVAL.str = GlobalStr yyVAL.str = GlobalStr
} }
case 295: case 297:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1640 //line sql.y:1652
{ {
yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent}
} }
case 296: case 298:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1644 //line sql.y:1656
{ {
yyVAL.statement = &Use{DBName: TableIdent{v: ""}} yyVAL.statement = &Use{DBName: TableIdent{v: ""}}
} }
case 297: case 299:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1650 //line sql.y:1662
{ {
yyVAL.statement = &Begin{} yyVAL.statement = &Begin{}
} }
case 298: case 300:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1654 //line sql.y:1666
{ {
yyVAL.statement = &Begin{} yyVAL.statement = &Begin{}
} }
case 299: case 301:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1660 //line sql.y:1672
{ {
yyVAL.statement = &Commit{} yyVAL.statement = &Commit{}
} }
case 300: case 302:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1666 //line sql.y:1678
{ {
yyVAL.statement = &Rollback{} yyVAL.statement = &Rollback{}
} }
case 301: case 303:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1672 //line sql.y:1684
{ {
yyVAL.statement = &OtherRead{} yyVAL.statement = &OtherRead{}
} }
case 302: case 304:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1676 //line sql.y:1688
{ {
yyVAL.statement = &OtherRead{} yyVAL.statement = &OtherRead{}
} }
case 303: case 305:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1680 //line sql.y:1692
{ {
yyVAL.statement = &OtherRead{} yyVAL.statement = &OtherRead{}
} }
case 304: case 306:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1684 //line sql.y:1696
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 305: case 307:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1688 //line sql.y:1700
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 306: case 308:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1692 //line sql.y:1704
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 307: case 309:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1696 //line sql.y:1708
{ {
yyVAL.statement = &OtherAdmin{} yyVAL.statement = &OtherAdmin{}
} }
case 308: case 310:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1702 //line sql.y:1714
{ {
yyVAL.statement = &DDL{Action: FlushStr} yyVAL.statement = &DDL{Action: FlushStr}
} }
case 309: case 311:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1706 //line sql.y:1718
{ {
setAllowComments(yylex, true) setAllowComments(yylex, true)
} }
case 310: case 312:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1710 //line sql.y:1722
{ {
yyVAL.bytes2 = yyDollar[2].bytes2 yyVAL.bytes2 = yyDollar[2].bytes2
setAllowComments(yylex, false) setAllowComments(yylex, false)
} }
case 311: case 313:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1716 //line sql.y:1728
{ {
yyVAL.bytes2 = nil yyVAL.bytes2 = nil
} }
case 312: case 314:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1720 //line sql.y:1732
{ {
yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes)
} }
case 313: case 315:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1726 //line sql.y:1738
{ {
yyVAL.str = UnionStr yyVAL.str = UnionStr
} }
case 314: case 316:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1730 //line sql.y:1742
{ {
yyVAL.str = UnionAllStr yyVAL.str = UnionAllStr
} }
case 315: case 317:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1734 //line sql.y:1746
{ {
yyVAL.str = UnionDistinctStr yyVAL.str = UnionDistinctStr
} }
case 316: case 318:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1739 //line sql.y:1751
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 317: case 319:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1743 //line sql.y:1755
{ {
yyVAL.str = SQLNoCacheStr yyVAL.str = SQLNoCacheStr
} }
case 318: case 320:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1747 //line sql.y:1759
{ {
yyVAL.str = SQLCacheStr yyVAL.str = SQLCacheStr
} }
case 319: case 321:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1752 //line sql.y:1764
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 320: case 322:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1756 //line sql.y:1768
{ {
yyVAL.str = DistinctStr yyVAL.str = DistinctStr
} }
case 321: case 323:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1761 //line sql.y:1773
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 322: case 324:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1765 //line sql.y:1777
{ {
yyVAL.str = StraightJoinHint yyVAL.str = StraightJoinHint
} }
case 323: case 325:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1770 //line sql.y:1782
{ {
yyVAL.selectExprs = nil yyVAL.selectExprs = nil
} }
case 324: case 326:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1774 //line sql.y:1786
{ {
yyVAL.selectExprs = yyDollar[1].selectExprs yyVAL.selectExprs = yyDollar[1].selectExprs
} }
case 325: case 327:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1780 //line sql.y:1792
{ {
yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr}
} }
case 326: case 328:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1784 //line sql.y:1796
{ {
yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr)
} }
case 327: case 329:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1790 //line sql.y:1802
{ {
yyVAL.selectExpr = &StarExpr{} yyVAL.selectExpr = &StarExpr{}
} }
case 328: case 330:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1794 //line sql.y:1806
{ {
yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent}
} }
case 329: case 331:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1798 //line sql.y:1810
{ {
yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}}
} }
case 330: case 332:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:1802 //line sql.y:1814
{ {
yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}}
} }
case 331: case 333:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1807 //line sql.y:1819
{ {
yyVAL.colIdent = ColIdent{} yyVAL.colIdent = ColIdent{}
} }
case 332: case 334:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1811 //line sql.y:1823
{ {
yyVAL.colIdent = yyDollar[1].colIdent yyVAL.colIdent = yyDollar[1].colIdent
} }
case 333: case 335:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1815 //line sql.y:1827
{ {
yyVAL.colIdent = yyDollar[2].colIdent yyVAL.colIdent = yyDollar[2].colIdent
} }
case 335: case 337:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1822 //line sql.y:1834
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 336: case 338:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1827 //line sql.y:1839
{ {
yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}}
} }
case 337: case 339:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1831 //line sql.y:1843
{ {
yyVAL.tableExprs = yyDollar[2].tableExprs yyVAL.tableExprs = yyDollar[2].tableExprs
} }
case 338: case 340:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1837 //line sql.y:1849
{ {
yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr}
} }
case 339: case 341:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1841 //line sql.y:1853
{ {
yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr)
} }
case 342: case 344:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1851 //line sql.y:1863
{ {
yyVAL.tableExpr = yyDollar[1].aliasedTableName yyVAL.tableExpr = yyDollar[1].aliasedTableName
} }
case 343: case 345:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1855 //line sql.y:1867
{ {
yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent}
} }
case 344: case 346:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1859 //line sql.y:1871
{ {
// missed alias for subquery // missed alias for subquery
yylex.Error("Every derived table must have its own alias") yylex.Error("Every derived table must have its own alias")
return 1 return 1
} }
case 345: case 347:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1865 //line sql.y:1877
{ {
yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs}
} }
case 346: case 348:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1871 //line sql.y:1883
{ {
yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints}
} }
case 347: case 349:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:1875 //line sql.y:1887
{ {
yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints}
} }
case 348: case 350:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1881 //line sql.y:1893
{ {
yyVAL.columns = Columns{yyDollar[1].colIdent} yyVAL.columns = Columns{yyDollar[1].colIdent}
} }
case 349: case 351:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1885 //line sql.y:1897
{ {
yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent)
} }
case 350: case 352:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1891 //line sql.y:1903
{ {
yyVAL.partitions = Partitions{yyDollar[1].colIdent} yyVAL.partitions = Partitions{yyDollar[1].colIdent}
} }
case 351: case 353:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1895 //line sql.y:1907
{ {
yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent)
} }
case 352: case 354:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1908 //line sql.y:1920
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition}
} }
case 353: case 355:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1912 //line sql.y:1924
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition}
} }
case 354: case 356:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1916 //line sql.y:1928
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition}
} }
case 355: case 357:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1920 //line sql.y:1932
{ {
yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr}
} }
case 356: case 358:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1926 //line sql.y:1938
{ {
yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr}
} }
case 357: case 359:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:1928 //line sql.y:1940
{ {
yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns}
} }
case 358: case 360:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1932 //line sql.y:1944
{ {
yyVAL.joinCondition = JoinCondition{} yyVAL.joinCondition = JoinCondition{}
} }
case 359: case 361:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1934 //line sql.y:1946
{ {
yyVAL.joinCondition = yyDollar[1].joinCondition yyVAL.joinCondition = yyDollar[1].joinCondition
} }
case 360: case 362:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1938 //line sql.y:1950
{ {
yyVAL.joinCondition = JoinCondition{} yyVAL.joinCondition = JoinCondition{}
} }
case 361: case 363:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1940 //line sql.y:1952
{ {
yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr}
} }
case 362: case 364:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1943 //line sql.y:1955
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 363: case 365:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1945 //line sql.y:1957
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 364: case 366:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:1948 //line sql.y:1960
{ {
yyVAL.tableIdent = NewTableIdent("") yyVAL.tableIdent = NewTableIdent("")
} }
case 365: case 367:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1952 //line sql.y:1964
{ {
yyVAL.tableIdent = yyDollar[1].tableIdent yyVAL.tableIdent = yyDollar[1].tableIdent
} }
case 366: case 368:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1956 //line sql.y:1968
{ {
yyVAL.tableIdent = yyDollar[2].tableIdent yyVAL.tableIdent = yyDollar[2].tableIdent
} }
case 368: case 370:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1963 //line sql.y:1975
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 369: case 371:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1969 //line sql.y:1981
{ {
yyVAL.str = JoinStr yyVAL.str = JoinStr
} }
case 370: case 372:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1973 //line sql.y:1985
{ {
yyVAL.str = JoinStr yyVAL.str = JoinStr
} }
case 371: case 373:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1977 //line sql.y:1989
{ {
yyVAL.str = JoinStr yyVAL.str = JoinStr
} }
case 372: case 374:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:1983 //line sql.y:1995
{ {
yyVAL.str = StraightJoinStr yyVAL.str = StraightJoinStr
} }
case 373: case 375:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1989 //line sql.y:2001
{ {
yyVAL.str = LeftJoinStr yyVAL.str = LeftJoinStr
} }
case 374: case 376:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:1993 //line sql.y:2005
{ {
yyVAL.str = LeftJoinStr yyVAL.str = LeftJoinStr
} }
case 375: case 377:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:1997 //line sql.y:2009
{ {
yyVAL.str = RightJoinStr yyVAL.str = RightJoinStr
} }
case 376: case 378:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2001 //line sql.y:2013
{ {
yyVAL.str = RightJoinStr yyVAL.str = RightJoinStr
} }
case 377: case 379:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2007 //line sql.y:2019
{ {
yyVAL.str = NaturalJoinStr yyVAL.str = NaturalJoinStr
} }
case 378: case 380:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2011 //line sql.y:2023
{ {
if yyDollar[2].str == LeftJoinStr { if yyDollar[2].str == LeftJoinStr {
yyVAL.str = NaturalLeftJoinStr yyVAL.str = NaturalLeftJoinStr
...@@ -4990,459 +4996,459 @@ yydefault: ...@@ -4990,459 +4996,459 @@ yydefault:
yyVAL.str = NaturalRightJoinStr yyVAL.str = NaturalRightJoinStr
} }
} }
case 379: case 381:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2021 //line sql.y:2033
{ {
yyVAL.tableName = yyDollar[2].tableName yyVAL.tableName = yyDollar[2].tableName
} }
case 380: case 382:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2025 //line sql.y:2037
{ {
yyVAL.tableName = yyDollar[1].tableName yyVAL.tableName = yyDollar[1].tableName
} }
case 381: case 383:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2031 //line sql.y:2043
{ {
yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent}
} }
case 382: case 384:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2035 //line sql.y:2047
{ {
yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}
} }
case 383: case 385:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2040 //line sql.y:2052
{ {
yyVAL.indexHints = nil yyVAL.indexHints = nil
} }
case 384: case 386:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2044 //line sql.y:2056
{ {
yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns}
} }
case 385: case 387:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2048 //line sql.y:2060
{ {
yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns}
} }
case 386: case 388:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2052 //line sql.y:2064
{ {
yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns}
} }
case 387: case 389:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2057 //line sql.y:2069
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 388: case 390:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2061 //line sql.y:2073
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 389: case 391:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2067 //line sql.y:2079
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 390: case 392:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2071 //line sql.y:2083
{ {
yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr}
} }
case 391: case 393:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2075 //line sql.y:2087
{ {
yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr}
} }
case 392: case 394:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2079 //line sql.y:2091
{ {
yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr}
} }
case 393: case 395:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2083 //line sql.y:2095
{ {
yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr}
} }
case 394: case 396:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2087 //line sql.y:2099
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 395: case 397:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2091 //line sql.y:2103
{ {
yyVAL.expr = &Default{ColName: yyDollar[2].str} yyVAL.expr = &Default{ColName: yyDollar[2].str}
} }
case 396: case 398:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2097 //line sql.y:2109
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 397: case 399:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2101 //line sql.y:2113
{ {
yyVAL.str = string(yyDollar[2].bytes) yyVAL.str = string(yyDollar[2].bytes)
} }
case 398: case 400:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2107 //line sql.y:2119
{ {
yyVAL.boolVal = BoolVal(true) yyVAL.boolVal = BoolVal(true)
} }
case 399: case 401:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2111 //line sql.y:2123
{ {
yyVAL.boolVal = BoolVal(false) yyVAL.boolVal = BoolVal(false)
} }
case 400: case 402:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2117 //line sql.y:2129
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr}
} }
case 401: case 403:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2121 //line sql.y:2133
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple}
} }
case 402: case 404:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2125 //line sql.y:2137
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple}
} }
case 403: case 405:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2129 //line sql.y:2141
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr}
} }
case 404: case 406:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2133 //line sql.y:2145
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr}
} }
case 405: case 407:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2137 //line sql.y:2149
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr}
} }
case 406: case 408:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2141 //line sql.y:2153
{ {
yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr}
} }
case 407: case 409:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2145 //line sql.y:2157
{ {
yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr}
} }
case 408: case 410:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2149 //line sql.y:2161
{ {
yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr}
} }
case 409: case 411:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2153 //line sql.y:2165
{ {
yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery}
} }
case 410: case 412:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2159 //line sql.y:2171
{ {
yyVAL.str = IsNullStr yyVAL.str = IsNullStr
} }
case 411: case 413:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2163 //line sql.y:2175
{ {
yyVAL.str = IsNotNullStr yyVAL.str = IsNotNullStr
} }
case 412: case 414:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2167 //line sql.y:2179
{ {
yyVAL.str = IsTrueStr yyVAL.str = IsTrueStr
} }
case 413: case 415:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2171 //line sql.y:2183
{ {
yyVAL.str = IsNotTrueStr yyVAL.str = IsNotTrueStr
} }
case 414: case 416:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2175 //line sql.y:2187
{ {
yyVAL.str = IsFalseStr yyVAL.str = IsFalseStr
} }
case 415: case 417:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2179 //line sql.y:2191
{ {
yyVAL.str = IsNotFalseStr yyVAL.str = IsNotFalseStr
} }
case 416: case 418:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2185 //line sql.y:2197
{ {
yyVAL.str = EqualStr yyVAL.str = EqualStr
} }
case 417: case 419:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2189 //line sql.y:2201
{ {
yyVAL.str = LessThanStr yyVAL.str = LessThanStr
} }
case 418: case 420:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2193 //line sql.y:2205
{ {
yyVAL.str = GreaterThanStr yyVAL.str = GreaterThanStr
} }
case 419: case 421:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2197 //line sql.y:2209
{ {
yyVAL.str = LessEqualStr yyVAL.str = LessEqualStr
} }
case 420: case 422:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2201 //line sql.y:2213
{ {
yyVAL.str = GreaterEqualStr yyVAL.str = GreaterEqualStr
} }
case 421: case 423:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2205 //line sql.y:2217
{ {
yyVAL.str = NotEqualStr yyVAL.str = NotEqualStr
} }
case 422: case 424:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2209 //line sql.y:2221
{ {
yyVAL.str = NullSafeEqualStr yyVAL.str = NullSafeEqualStr
} }
case 423: case 425:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2214 //line sql.y:2226
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 424: case 426:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2218 //line sql.y:2230
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 425: case 427:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2224 //line sql.y:2236
{ {
yyVAL.colTuple = yyDollar[1].valTuple yyVAL.colTuple = yyDollar[1].valTuple
} }
case 426: case 428:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2228 //line sql.y:2240
{ {
yyVAL.colTuple = yyDollar[1].subquery yyVAL.colTuple = yyDollar[1].subquery
} }
case 427: case 429:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2232 //line sql.y:2244
{ {
yyVAL.colTuple = ListArg(yyDollar[1].bytes) yyVAL.colTuple = ListArg(yyDollar[1].bytes)
} }
case 428: case 430:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2238 //line sql.y:2250
{ {
yyVAL.subquery = &Subquery{yyDollar[2].selStmt} yyVAL.subquery = &Subquery{yyDollar[2].selStmt}
} }
case 429: case 431:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2244 //line sql.y:2256
{ {
yyVAL.exprs = Exprs{yyDollar[1].expr} yyVAL.exprs = Exprs{yyDollar[1].expr}
} }
case 430: case 432:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2248 //line sql.y:2260
{ {
yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr)
} }
case 431: case 433:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2254 //line sql.y:2266
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 432: case 434:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2258 //line sql.y:2270
{ {
yyVAL.expr = yyDollar[1].boolVal yyVAL.expr = yyDollar[1].boolVal
} }
case 433: case 435:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2262 //line sql.y:2274
{ {
yyVAL.expr = yyDollar[1].colName yyVAL.expr = yyDollar[1].colName
} }
case 434: case 436:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2266 //line sql.y:2278
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 435: case 437:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2270 //line sql.y:2282
{ {
yyVAL.expr = yyDollar[1].subquery yyVAL.expr = yyDollar[1].subquery
} }
case 436: case 438:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2274 //line sql.y:2286
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr}
} }
case 437: case 439:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2278 //line sql.y:2290
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr}
} }
case 438: case 440:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2282 //line sql.y:2294
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr}
} }
case 439: case 441:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2286 //line sql.y:2298
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr}
} }
case 440: case 442:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2290 //line sql.y:2302
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr}
} }
case 441: case 443:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2294 //line sql.y:2306
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr}
} }
case 442: case 444:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2298 //line sql.y:2310
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr}
} }
case 443: case 445:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2302 //line sql.y:2314
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr}
} }
case 444: case 446:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2306 //line sql.y:2318
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr}
} }
case 445: case 447:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2310 //line sql.y:2322
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr}
} }
case 446: case 448:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2314 //line sql.y:2326
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr}
} }
case 447: case 449:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2318 //line sql.y:2330
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr}
} }
case 448: case 450:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2322 //line sql.y:2334
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr}
} }
case 449: case 451:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2326 //line sql.y:2338
{ {
yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr}
} }
case 450: case 452:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2330 //line sql.y:2342
{ {
yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str}
} }
case 451: case 453:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2334 //line sql.y:2346
{ {
yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr}
} }
case 452: case 454:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2338 //line sql.y:2350
{ {
yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr}
} }
case 453: case 455:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2342 //line sql.y:2354
{ {
yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr}
} }
case 454: case 456:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2346 //line sql.y:2358
{ {
if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal {
yyVAL.expr = num yyVAL.expr = num
...@@ -5450,9 +5456,9 @@ yydefault: ...@@ -5450,9 +5456,9 @@ yydefault:
yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr}
} }
} }
case 455: case 457:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2354 //line sql.y:2366
{ {
if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal {
// Handle double negative // Handle double negative
...@@ -5466,21 +5472,21 @@ yydefault: ...@@ -5466,21 +5472,21 @@ yydefault:
yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr}
} }
} }
case 456: case 458:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2368 //line sql.y:2380
{ {
yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr}
} }
case 457: case 459:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2372 //line sql.y:2384
{ {
yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr}
} }
case 458: case 460:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2376 //line sql.y:2388
{ {
// This rule prevents the usage of INTERVAL // This rule prevents the usage of INTERVAL
// as a function. If support is needed for that, // as a function. If support is needed for that,
...@@ -5488,431 +5494,431 @@ yydefault: ...@@ -5488,431 +5494,431 @@ yydefault:
// will be non-trivial because of grammar conflicts. // will be non-trivial because of grammar conflicts.
yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()} yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent.String()}
} }
case 463: case 465:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2394 //line sql.y:2406
{ {
yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs}
} }
case 464: case 466:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2398 //line sql.y:2410
{ {
yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs}
} }
case 465: case 467:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2402 //line sql.y:2414
{ {
yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs}
} }
case 466: case 468:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2412 //line sql.y:2424
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs}
} }
case 467: case 469:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2416 //line sql.y:2428
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs}
} }
case 468: case 470:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2420 //line sql.y:2432
{ {
yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType}
} }
case 469: case 471:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2424 //line sql.y:2436
{ {
yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType}
} }
case 470: case 472:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2428 //line sql.y:2440
{ {
yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str}
} }
case 471: case 473:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2432 //line sql.y:2444
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil}
} }
case 472: case 474:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2436 //line sql.y:2448
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 473: case 475:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2440 //line sql.y:2452
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 474: case 476:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2444 //line sql.y:2456
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: nil}
} }
case 475: case 477:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2448 //line sql.y:2460
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 476: case 478:
yyDollar = yyS[yypt-8 : yypt+1] yyDollar = yyS[yypt-8 : yypt+1]
//line sql.y:2452 //line sql.y:2464
{ {
yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr}
} }
case 477: case 479:
yyDollar = yyS[yypt-9 : yypt+1] yyDollar = yyS[yypt-9 : yypt+1]
//line sql.y:2456 //line sql.y:2468
{ {
yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str}
} }
case 478: case 480:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:2460 //line sql.y:2472
{ {
yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str}
} }
case 479: case 481:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2464 //line sql.y:2476
{ {
yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr}
} }
case 480: case 482:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2468 //line sql.y:2480
{ {
yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName}
} }
case 481: case 483:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2478 //line sql.y:2490
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")}
} }
case 482: case 484:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2482 //line sql.y:2494
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")}
} }
case 483: case 485:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2486 //line sql.y:2498
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")}
} }
case 484: case 486:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2490 //line sql.y:2502
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")}
} }
case 485: case 487:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2495 //line sql.y:2507
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")}
} }
case 486: case 488:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2500 //line sql.y:2512
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")}
} }
case 487: case 489:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2505 //line sql.y:2517
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")}
} }
case 488: case 490:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2510 //line sql.y:2522
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")}
} }
case 491: case 493:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2524 //line sql.y:2536
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs}
} }
case 492: case 494:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2528 //line sql.y:2540
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs}
} }
case 493: case 495:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2532 //line sql.y:2544
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs}
} }
case 494: case 496:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2536 //line sql.y:2548
{ {
yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs}
} }
case 495: case 497:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2542 //line sql.y:2554
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 496: case 498:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2546 //line sql.y:2558
{ {
yyVAL.str = BooleanModeStr yyVAL.str = BooleanModeStr
} }
case 497: case 499:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2550 //line sql.y:2562
{ {
yyVAL.str = NaturalLanguageModeStr yyVAL.str = NaturalLanguageModeStr
} }
case 498: case 500:
yyDollar = yyS[yypt-7 : yypt+1] yyDollar = yyS[yypt-7 : yypt+1]
//line sql.y:2554 //line sql.y:2566
{ {
yyVAL.str = NaturalLanguageModeWithQueryExpansionStr yyVAL.str = NaturalLanguageModeWithQueryExpansionStr
} }
case 499: case 501:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2558 //line sql.y:2570
{ {
yyVAL.str = QueryExpansionStr yyVAL.str = QueryExpansionStr
} }
case 500: case 502:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2564 //line sql.y:2576
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 501: case 503:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2568 //line sql.y:2580
{ {
yyVAL.str = string(yyDollar[1].bytes) yyVAL.str = string(yyDollar[1].bytes)
} }
case 502: case 504:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2574 //line sql.y:2586
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal}
} }
case 503: case 505:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2578 //line sql.y:2590
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr}
} }
case 504: case 506:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2582 //line sql.y:2594
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)}
} }
case 505: case 507:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2586 //line sql.y:2598
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 506: case 508:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2590 //line sql.y:2602
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal}
} }
case 507: case 509:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2594 //line sql.y:2606
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length
yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale
} }
case 508: case 510:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2600 //line sql.y:2612
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 509: case 511:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2604 //line sql.y:2616
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal}
} }
case 510: case 512:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2608 //line sql.y:2620
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 511: case 513:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2612 //line sql.y:2624
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 512: case 514:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2616 //line sql.y:2628
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal}
} }
case 513: case 515:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2620 //line sql.y:2632
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 514: case 516:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2624 //line sql.y:2636
{ {
yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)}
} }
case 515: case 517:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2629 //line sql.y:2641
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 516: case 518:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2633 //line sql.y:2645
{ {
yyVAL.expr = yyDollar[1].expr yyVAL.expr = yyDollar[1].expr
} }
case 517: case 519:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2638 //line sql.y:2650
{ {
yyVAL.str = string("") yyVAL.str = string("")
} }
case 518: case 520:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2642 //line sql.y:2654
{ {
yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'"
} }
case 519: case 521:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2648 //line sql.y:2660
{ {
yyVAL.whens = []*When{yyDollar[1].when} yyVAL.whens = []*When{yyDollar[1].when}
} }
case 520: case 522:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2652 //line sql.y:2664
{ {
yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when)
} }
case 521: case 523:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2658 //line sql.y:2670
{ {
yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr}
} }
case 522: case 524:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2663 //line sql.y:2675
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 523: case 525:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2667 //line sql.y:2679
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 524: case 526:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2673 //line sql.y:2685
{ {
yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} yyVAL.colName = &ColName{Name: yyDollar[1].colIdent}
} }
case 525: case 527:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2677 //line sql.y:2689
{ {
yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent}
} }
case 526: case 528:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2681 //line sql.y:2693
{ {
yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent}
} }
case 527: case 529:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2687 //line sql.y:2699
{ {
yyVAL.expr = NewStrVal(yyDollar[1].bytes) yyVAL.expr = NewStrVal(yyDollar[1].bytes)
} }
case 528: case 530:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2691 //line sql.y:2703
{ {
yyVAL.expr = NewHexVal(yyDollar[1].bytes) yyVAL.expr = NewHexVal(yyDollar[1].bytes)
} }
case 529: case 531:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2695 //line sql.y:2707
{ {
yyVAL.expr = NewBitVal(yyDollar[1].bytes) yyVAL.expr = NewBitVal(yyDollar[1].bytes)
} }
case 530: case 532:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2699 //line sql.y:2711
{ {
yyVAL.expr = NewIntVal(yyDollar[1].bytes) yyVAL.expr = NewIntVal(yyDollar[1].bytes)
} }
case 531: case 533:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2703 //line sql.y:2715
{ {
yyVAL.expr = NewFloatVal(yyDollar[1].bytes) yyVAL.expr = NewFloatVal(yyDollar[1].bytes)
} }
case 532: case 534:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2707 //line sql.y:2719
{ {
yyVAL.expr = NewHexNum(yyDollar[1].bytes) yyVAL.expr = NewHexNum(yyDollar[1].bytes)
} }
case 533: case 535:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2711 //line sql.y:2723
{ {
yyVAL.expr = NewValArg(yyDollar[1].bytes) yyVAL.expr = NewValArg(yyDollar[1].bytes)
} }
case 534: case 536:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2715 //line sql.y:2727
{ {
yyVAL.expr = &NullVal{} yyVAL.expr = &NullVal{}
} }
case 535: case 537:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2721 //line sql.y:2733
{ {
// TODO(sougou): Deprecate this construct. // TODO(sougou): Deprecate this construct.
if yyDollar[1].colIdent.Lowered() != "value" { if yyDollar[1].colIdent.Lowered() != "value" {
...@@ -5921,239 +5927,239 @@ yydefault: ...@@ -5921,239 +5927,239 @@ yydefault:
} }
yyVAL.expr = NewIntVal([]byte("1")) yyVAL.expr = NewIntVal([]byte("1"))
} }
case 536: case 538:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2730 //line sql.y:2742
{ {
yyVAL.expr = NewIntVal(yyDollar[1].bytes) yyVAL.expr = NewIntVal(yyDollar[1].bytes)
} }
case 537: case 539:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2734 //line sql.y:2746
{ {
yyVAL.expr = NewValArg(yyDollar[1].bytes) yyVAL.expr = NewValArg(yyDollar[1].bytes)
} }
case 538: case 540:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2739 //line sql.y:2751
{ {
yyVAL.exprs = nil yyVAL.exprs = nil
} }
case 539: case 541:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2743 //line sql.y:2755
{ {
yyVAL.exprs = yyDollar[3].exprs yyVAL.exprs = yyDollar[3].exprs
} }
case 540: case 542:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2748 //line sql.y:2760
{ {
yyVAL.expr = nil yyVAL.expr = nil
} }
case 541: case 543:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2752 //line sql.y:2764
{ {
yyVAL.expr = yyDollar[2].expr yyVAL.expr = yyDollar[2].expr
} }
case 542: case 544:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2757 //line sql.y:2769
{ {
yyVAL.orderBy = nil yyVAL.orderBy = nil
} }
case 543: case 545:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2761 //line sql.y:2773
{ {
yyVAL.orderBy = yyDollar[3].orderBy yyVAL.orderBy = yyDollar[3].orderBy
} }
case 544: case 546:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2767 //line sql.y:2779
{ {
yyVAL.orderBy = OrderBy{yyDollar[1].order} yyVAL.orderBy = OrderBy{yyDollar[1].order}
} }
case 545: case 547:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2771 //line sql.y:2783
{ {
yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order)
} }
case 546: case 548:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2777 //line sql.y:2789
{ {
yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str}
} }
case 547: case 549:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2782 //line sql.y:2794
{ {
yyVAL.str = AscScr yyVAL.str = AscScr
} }
case 548: case 550:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2786 //line sql.y:2798
{ {
yyVAL.str = AscScr yyVAL.str = AscScr
} }
case 549: case 551:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2790 //line sql.y:2802
{ {
yyVAL.str = DescScr yyVAL.str = DescScr
} }
case 550: case 552:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2795 //line sql.y:2807
{ {
yyVAL.limit = nil yyVAL.limit = nil
} }
case 551: case 553:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2799 //line sql.y:2811
{ {
yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr}
} }
case 552: case 554:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2803 //line sql.y:2815
{ {
yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr}
} }
case 553: case 555:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2807 //line sql.y:2819
{ {
yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr}
} }
case 554: case 556:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2812 //line sql.y:2824
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 555: case 557:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2816 //line sql.y:2828
{ {
yyVAL.str = ForUpdateStr yyVAL.str = ForUpdateStr
} }
case 556: case 558:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2820 //line sql.y:2832
{ {
yyVAL.str = ShareModeStr yyVAL.str = ShareModeStr
} }
case 557: case 559:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2833 //line sql.y:2845
{ {
yyVAL.ins = &Insert{Rows: yyDollar[2].values} yyVAL.ins = &Insert{Rows: yyDollar[2].values}
} }
case 558: case 560:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2837 //line sql.y:2849
{ {
yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt}
} }
case 559: case 561:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2841 //line sql.y:2853
{ {
// Drop the redundant parenthesis. // Drop the redundant parenthesis.
yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt}
} }
case 560: case 562:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2846 //line sql.y:2858
{ {
yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values}
} }
case 561: case 563:
yyDollar = yyS[yypt-4 : yypt+1] yyDollar = yyS[yypt-4 : yypt+1]
//line sql.y:2850 //line sql.y:2862
{ {
yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt}
} }
case 562: case 564:
yyDollar = yyS[yypt-6 : yypt+1] yyDollar = yyS[yypt-6 : yypt+1]
//line sql.y:2854 //line sql.y:2866
{ {
// Drop the redundant parenthesis. // Drop the redundant parenthesis.
yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt}
} }
case 563: case 565:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2861 //line sql.y:2873
{ {
yyVAL.columns = Columns{yyDollar[1].colIdent} yyVAL.columns = Columns{yyDollar[1].colIdent}
} }
case 564: case 566:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2865 //line sql.y:2877
{ {
yyVAL.columns = Columns{yyDollar[3].colIdent} yyVAL.columns = Columns{yyDollar[3].colIdent}
} }
case 565: case 567:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2869 //line sql.y:2881
{ {
yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent)
} }
case 566: case 568:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2873 //line sql.y:2885
{ {
yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent)
} }
case 567: case 569:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2878 //line sql.y:2890
{ {
yyVAL.updateExprs = nil yyVAL.updateExprs = nil
} }
case 568: case 570:
yyDollar = yyS[yypt-5 : yypt+1] yyDollar = yyS[yypt-5 : yypt+1]
//line sql.y:2882 //line sql.y:2894
{ {
yyVAL.updateExprs = yyDollar[5].updateExprs yyVAL.updateExprs = yyDollar[5].updateExprs
} }
case 569: case 571:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2888 //line sql.y:2900
{ {
yyVAL.values = Values{yyDollar[1].valTuple} yyVAL.values = Values{yyDollar[1].valTuple}
} }
case 570: case 572:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2892 //line sql.y:2904
{ {
yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple)
} }
case 571: case 573:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2898 //line sql.y:2910
{ {
yyVAL.valTuple = yyDollar[1].valTuple yyVAL.valTuple = yyDollar[1].valTuple
} }
case 572: case 574:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2902 //line sql.y:2914
{ {
yyVAL.valTuple = ValTuple{} yyVAL.valTuple = ValTuple{}
} }
case 573: case 575:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2908 //line sql.y:2920
{ {
yyVAL.valTuple = ValTuple(yyDollar[2].exprs) yyVAL.valTuple = ValTuple(yyDollar[2].exprs)
} }
case 574: case 576:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2914 //line sql.y:2926
{ {
if len(yyDollar[1].valTuple) == 1 { if len(yyDollar[1].valTuple) == 1 {
yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]}
...@@ -6161,312 +6167,312 @@ yydefault: ...@@ -6161,312 +6167,312 @@ yydefault:
yyVAL.expr = yyDollar[1].valTuple yyVAL.expr = yyDollar[1].valTuple
} }
} }
case 575: case 577:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2924 //line sql.y:2936
{ {
yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr}
} }
case 576: case 578:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2928 //line sql.y:2940
{ {
yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr)
} }
case 577: case 579:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2934 //line sql.y:2946
{ {
yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr}
} }
case 578: case 580:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2940 //line sql.y:2952
{ {
yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} yyVAL.setExprs = SetExprs{yyDollar[1].setExpr}
} }
case 579: case 581:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2944 //line sql.y:2956
{ {
yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr)
} }
case 580: case 582:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2950 //line sql.y:2962
{ {
yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))} yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("on"))}
} }
case 581: case 583:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2954 //line sql.y:2966
{ {
yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("off"))} yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrVal([]byte("off"))}
} }
case 582: case 584:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2958 //line sql.y:2970
{ {
yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr}
} }
case 583: case 585:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:2962 //line sql.y:2974
{ {
yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr}
} }
case 585: case 587:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2969 //line sql.y:2981
{ {
yyVAL.bytes = []byte("charset") yyVAL.bytes = []byte("charset")
} }
case 587: case 589:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2976 //line sql.y:2988
{ {
yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String()))
} }
case 588: case 590:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2980 //line sql.y:2992
{ {
yyVAL.expr = NewStrVal(yyDollar[1].bytes) yyVAL.expr = NewStrVal(yyDollar[1].bytes)
} }
case 589: case 591:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:2984 //line sql.y:2996
{ {
yyVAL.expr = &Default{} yyVAL.expr = &Default{}
} }
case 592: case 594:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2993 //line sql.y:3005
{ {
yyVAL.byt = 0 yyVAL.byt = 0
} }
case 593: case 595:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:2995 //line sql.y:3007
{ {
yyVAL.byt = 1 yyVAL.byt = 1
} }
case 594: case 596:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:2998 //line sql.y:3010
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 595: case 597:
yyDollar = yyS[yypt-3 : yypt+1] yyDollar = yyS[yypt-3 : yypt+1]
//line sql.y:3000 //line sql.y:3012
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 596: case 598:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3003 //line sql.y:3015
{ {
yyVAL.str = "" yyVAL.str = ""
} }
case 597:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3005
{
yyVAL.str = IgnoreStr
}
case 598:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3009
{
yyVAL.empty = struct{}{}
}
case 599: case 599:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3011 //line sql.y:3017
{ {
yyVAL.empty = struct{}{} yyVAL.str = IgnoreStr
} }
case 600: case 600:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3013 //line sql.y:3021
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 601: case 601:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3015 //line sql.y:3023
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 602: case 602:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3017 //line sql.y:3025
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 603: case 603:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3019 //line sql.y:3027
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 604: case 604:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3021 //line sql.y:3029
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 605: case 605:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3023 //line sql.y:3031
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 606: case 606:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3025 //line sql.y:3033
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 607: case 607:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3027 //line sql.y:3035
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 608: case 608:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3030 //line sql.y:3037
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 609: case 609:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3032 //line sql.y:3039
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 610: case 610:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3034 //line sql.y:3042
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 611: case 611:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3038 //line sql.y:3044
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 612: case 612:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3040 //line sql.y:3046
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 613: case 613:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3043 //line sql.y:3050
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 614: case 614:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3045 //line sql.y:3052
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 615: case 615:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3047 //line sql.y:3055
{ {
yyVAL.empty = struct{}{} yyVAL.empty = struct{}{}
} }
case 616: case 616:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3057
{
yyVAL.empty = struct{}{}
}
case 617:
yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3059
{
yyVAL.empty = struct{}{}
}
case 618:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3050 //line sql.y:3062
{ {
yyVAL.colIdent = ColIdent{} yyVAL.colIdent = ColIdent{}
} }
case 617: case 619:
yyDollar = yyS[yypt-2 : yypt+1] yyDollar = yyS[yypt-2 : yypt+1]
//line sql.y:3052 //line sql.y:3064
{ {
yyVAL.colIdent = yyDollar[2].colIdent yyVAL.colIdent = yyDollar[2].colIdent
} }
case 618: case 620:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3056 //line sql.y:3068
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 619: case 621:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3060 //line sql.y:3072
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 621: case 623:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3067 //line sql.y:3079
{ {
yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes))
} }
case 622: case 624:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3073 //line sql.y:3085
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 623: case 625:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3077 //line sql.y:3089
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 625: case 627:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3084 //line sql.y:3096
{ {
yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes))
} }
case 829: case 831:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3313 //line sql.y:3325
{ {
if incNesting(yylex) { if incNesting(yylex) {
yylex.Error("max nesting level reached") yylex.Error("max nesting level reached")
return 1 return 1
} }
} }
case 830: case 832:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3322 //line sql.y:3334
{ {
decNesting(yylex) decNesting(yylex)
} }
case 831: case 833:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3327 //line sql.y:3339
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
case 832: case 834:
yyDollar = yyS[yypt-0 : yypt+1] yyDollar = yyS[yypt-0 : yypt+1]
//line sql.y:3332 //line sql.y:3344
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
case 833: case 835:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3336 //line sql.y:3348
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
case 834: case 836:
yyDollar = yyS[yypt-1 : yypt+1] yyDollar = yyS[yypt-1 : yypt+1]
//line sql.y:3340 //line sql.y:3352
{ {
skipToEnd(yylex) skipToEnd(yylex)
} }
......
...@@ -204,7 +204,7 @@ func skipToEnd(yylex interface{}) { ...@@ -204,7 +204,7 @@ func skipToEnd(yylex interface{}) {
%type <selStmt> select_statement base_select union_lhs union_rhs %type <selStmt> select_statement base_select union_lhs union_rhs
%type <statement> stream_statement insert_statement update_statement delete_statement set_statement %type <statement> stream_statement insert_statement update_statement delete_statement set_statement
%type <statement> create_statement alter_statement rename_statement drop_statement truncate_statement flush_statement %type <statement> create_statement alter_statement rename_statement drop_statement truncate_statement flush_statement
%type <ddl> create_table_prefix %type <ddl> create_table_prefix rename_list
%type <statement> analyze_statement show_statement use_statement other_statement %type <statement> analyze_statement show_statement use_statement other_statement
%type <statement> begin_statement commit_statement rollback_statement %type <statement> begin_statement commit_statement rollback_statement
%type <bytes2> comment_opt comment_list %type <bytes2> comment_opt comment_list
...@@ -560,15 +560,15 @@ create_statement: ...@@ -560,15 +560,15 @@ create_statement:
| CREATE constraint_opt INDEX ID using_opt ON table_name ddl_skip_to_end | CREATE constraint_opt INDEX ID using_opt ON table_name ddl_skip_to_end
{ {
// Change this to an alter statement // Change this to an alter statement
$$ = &DDL{Action: AlterStr, Table: $7, NewName:$7} $$ = &DDL{Action: AlterStr, Table: $7}
} }
| CREATE VIEW table_name ddl_skip_to_end | CREATE VIEW table_name ddl_skip_to_end
{ {
$$ = &DDL{Action: CreateStr, NewName: $3.ToViewName()} $$ = &DDL{Action: CreateStr, Table: $3.ToViewName()}
} }
| CREATE OR REPLACE VIEW table_name ddl_skip_to_end | CREATE OR REPLACE VIEW table_name ddl_skip_to_end
{ {
$$ = &DDL{Action: CreateStr, NewName: $5.ToViewName()} $$ = &DDL{Action: CreateStr, Table: $5.ToViewName()}
} }
| CREATE VINDEX sql_id vindex_type_opt vindex_params_opt | CREATE VINDEX sql_id vindex_type_opt vindex_params_opt
{ {
...@@ -632,7 +632,7 @@ vindex_param: ...@@ -632,7 +632,7 @@ vindex_param:
create_table_prefix: create_table_prefix:
CREATE TABLE not_exists_opt table_name CREATE TABLE not_exists_opt table_name
{ {
$$ = &DDL{Action: CreateStr, NewName: $4} $$ = &DDL{Action: CreateStr, Table: $4}
setDDL(yylex, $$) setDDL(yylex, $$)
} }
...@@ -1290,15 +1290,15 @@ table_opt_value: ...@@ -1290,15 +1290,15 @@ table_opt_value:
alter_statement: alter_statement:
ALTER ignore_opt TABLE table_name non_add_drop_or_rename_operation skip_to_end ALTER ignore_opt TABLE table_name non_add_drop_or_rename_operation skip_to_end
{ {
$$ = &DDL{Action: AlterStr, Table: $4, NewName: $4} $$ = &DDL{Action: AlterStr, Table: $4}
} }
| ALTER ignore_opt TABLE table_name ADD alter_object_type skip_to_end | ALTER ignore_opt TABLE table_name ADD alter_object_type skip_to_end
{ {
$$ = &DDL{Action: AlterStr, Table: $4, NewName: $4} $$ = &DDL{Action: AlterStr, Table: $4}
} }
| ALTER ignore_opt TABLE table_name DROP alter_object_type skip_to_end | ALTER ignore_opt TABLE table_name DROP alter_object_type skip_to_end
{ {
$$ = &DDL{Action: AlterStr, Table: $4, NewName: $4} $$ = &DDL{Action: AlterStr, Table: $4}
} }
| ALTER ignore_opt TABLE table_name ADD VINDEX sql_id '(' column_list ')' vindex_type_opt vindex_params_opt | ALTER ignore_opt TABLE table_name ADD VINDEX sql_id '(' column_list ')' vindex_type_opt vindex_params_opt
{ {
...@@ -1326,16 +1326,16 @@ alter_statement: ...@@ -1326,16 +1326,16 @@ alter_statement:
| ALTER ignore_opt TABLE table_name RENAME to_opt table_name | ALTER ignore_opt TABLE table_name RENAME to_opt table_name
{ {
// Change this to a rename statement // Change this to a rename statement
$$ = &DDL{Action: RenameStr, Table: $4, NewName: $7} $$ = &DDL{Action: RenameStr, FromTables: TableNames{$4}, ToTables: TableNames{$7}}
} }
| ALTER ignore_opt TABLE table_name RENAME index_opt skip_to_end | ALTER ignore_opt TABLE table_name RENAME index_opt skip_to_end
{ {
// Rename an index can just be an alter // Rename an index can just be an alter
$$ = &DDL{Action: AlterStr, Table: $4, NewName: $4} $$ = &DDL{Action: AlterStr, Table: $4}
} }
| ALTER VIEW table_name ddl_skip_to_end | ALTER VIEW table_name ddl_skip_to_end
{ {
$$ = &DDL{Action: AlterStr, Table: $3.ToViewName(), NewName: $3.ToViewName()} $$ = &DDL{Action: AlterStr, Table: $3.ToViewName()}
} }
| ALTER ignore_opt TABLE table_name partition_operation | ALTER ignore_opt TABLE table_name partition_operation
{ {
...@@ -1382,24 +1382,36 @@ partition_definition: ...@@ -1382,24 +1382,36 @@ partition_definition:
} }
rename_statement: rename_statement:
RENAME TABLE table_name TO table_name RENAME TABLE rename_list
{ {
$$ = &DDL{Action: RenameStr, Table: $3, NewName: $5} $$ = $3
}
rename_list:
table_name TO table_name
{
$$ = &DDL{Action: RenameStr, FromTables: TableNames{$1}, ToTables: TableNames{$3}}
}
| rename_list ',' table_name TO table_name
{
$$ = $1
$$.FromTables = append($$.FromTables, $3)
$$.ToTables = append($$.ToTables, $5)
} }
drop_statement: drop_statement:
DROP TABLE exists_opt table_name DROP TABLE exists_opt table_name_list
{ {
var exists bool var exists bool
if $3 != 0 { if $3 != 0 {
exists = true exists = true
} }
$$ = &DDL{Action: DropStr, Table: $4, IfExists: exists} $$ = &DDL{Action: DropStr, FromTables: $4, IfExists: exists}
} }
| DROP INDEX ID ON table_name ddl_skip_to_end | DROP INDEX ID ON table_name ddl_skip_to_end
{ {
// Change this to an alter statement // Change this to an alter statement
$$ = &DDL{Action: AlterStr, Table: $5, NewName: $5} $$ = &DDL{Action: AlterStr, Table: $5}
} }
| DROP VIEW exists_opt table_name ddl_skip_to_end | DROP VIEW exists_opt table_name ddl_skip_to_end
{ {
...@@ -1407,7 +1419,7 @@ drop_statement: ...@@ -1407,7 +1419,7 @@ drop_statement:
if $3 != 0 { if $3 != 0 {
exists = true exists = true
} }
$$ = &DDL{Action: DropStr, Table: $4.ToViewName(), IfExists: exists} $$ = &DDL{Action: DropStr, FromTables: TableNames{$4.ToViewName()}, IfExists: exists}
} }
| DROP DATABASE exists_opt ID | DROP DATABASE exists_opt ID
{ {
...@@ -1430,7 +1442,7 @@ truncate_statement: ...@@ -1430,7 +1442,7 @@ truncate_statement:
analyze_statement: analyze_statement:
ANALYZE TABLE table_name ANALYZE TABLE table_name
{ {
$$ = &DDL{Action: AlterStr, Table: $3, NewName: $3} $$ = &DDL{Action: AlterStr, Table: $3}
} }
show_statement: show_statement:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册