[parser] Fix high not precedence (#938)

This commit is contained in:
Yichen
2020-11-23 05:47:11 +01:00
committed by Ti Chi Robot
parent 8d06dff8f2
commit 3b263d21cc
2 changed files with 6967 additions and 6949 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1237,6 +1237,7 @@ import (
RegexpSym "REGEXP or RLIKE"
IntoOpt "INTO or EmptyString"
ValueSym "Value or Values"
NotSym "Not token"
Char "{CHAR|CHARACTER}"
NChar "{NCHAR|NATIONAL CHARACTER|NATIONAL CHAR}"
Varchar "{VARCHAR|VARCHARACTER|CHARACTER VARYING|CHAR VARYING}"
@ -2700,12 +2701,19 @@ PrimaryOpt:
{}
| "PRIMARY"
NotSym:
not
| not2
{
$$ = "NOT"
}
EnforcedOrNot:
"ENFORCED"
{
$$ = true
}
| "NOT" "ENFORCED"
| NotSym "ENFORCED"
{
$$ = false
}
@ -2721,7 +2729,7 @@ EnforcedOrNotOrNotNullOpt:
// This branch is needed to workaround the need of a lookahead of 2 for the grammar:
//
// { [NOT] NULL | CHECK(...) [NOT] ENFORCED } ...
"NOT" "NULL"
NotSym "NULL"
{
$$ = 0
}
@ -2735,7 +2743,7 @@ EnforcedOrNotOrNotNullOpt:
}
ColumnOption:
"NOT" "NULL"
NotSym "NULL"
{
$$ = &ast.ColumnOption{Tp: ast.ColumnOptionNotNull}
}
@ -4752,7 +4760,7 @@ BetweenOrNotOp:
{
$$ = true
}
| "NOT" "BETWEEN"
| NotSym "BETWEEN"
{
$$ = false
}
@ -4762,7 +4770,7 @@ IsOrNotOp:
{
$$ = true
}
| "IS" "NOT"
| "IS" NotSym
{
$$ = false
}
@ -4772,7 +4780,7 @@ InOrNotOp:
{
$$ = true
}
| "NOT" "IN"
| NotSym "IN"
{
$$ = false
}
@ -4782,7 +4790,7 @@ LikeOrNotOp:
{
$$ = true
}
| "NOT" "LIKE"
| NotSym "LIKE"
{
$$ = false
}
@ -4792,7 +4800,7 @@ RegexpOrNotOp:
{
$$ = true
}
| "NOT" RegexpSym
| NotSym RegexpSym
{
$$ = false
}
@ -4966,7 +4974,7 @@ IfNotExists:
{
$$ = false
}
| "IF" "NOT" "EXISTS"
| "IF" NotSym "EXISTS"
{
$$ = true
}