File tree Expand file tree Collapse file tree 13 files changed +149
-24
lines changed
Expand file tree Collapse file tree 13 files changed +149
-24
lines changed Original file line number Diff line number Diff line change @@ -1754,8 +1754,8 @@ additive_operator
17541754 = "+" / "-"
17551755
17561756multiplicative_expr
1757- = head :primary
1758- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
1757+ = head :unary_expr_or_primary
1758+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
17591759 return createBinaryExprChain (head, tail)
17601760 }
17611761
@@ -1782,6 +1782,16 @@ primary
17821782 }
17831783 / var_decl
17841784
1785+ unary_expr_or_primary
1786+ = primary
1787+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
1788+ // if (op === '!') op = 'NOT'
1789+ return createUnaryExpr (op, tail[1 ])
1790+ }
1791+
1792+ unary_operator
1793+ = '!' / '-' / '+' / '~'
1794+
17851795column_ref
17861796 = tbl :ident __ DOT __ col :column {
17871797 columnList .add (` select::${ tbl} ::${ col} ` );
Original file line number Diff line number Diff line change @@ -2263,8 +2263,8 @@ additive_operator
22632263 = "+" / "-"
22642264
22652265multiplicative_expr
2266- = head :primary
2267- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
2266+ = head :unary_expr_or_primary
2267+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
22682268 return createBinaryExprChain (head, tail)
22692269 }
22702270
@@ -2288,6 +2288,16 @@ primary
22882288 return list;
22892289 }
22902290
2291+ unary_expr_or_primary
2292+ = primary
2293+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
2294+ // if (op === '!') op = 'NOT'
2295+ return createUnaryExpr (op, tail[1 ])
2296+ }
2297+
2298+ unary_operator
2299+ = '!' / '-' / '+' / '~'
2300+
22912301interval_expr
22922302 = KW_INTERVAL __
22932303 e :expr __
Original file line number Diff line number Diff line change @@ -1770,8 +1770,8 @@ additive_operator
17701770 = "+" / "-"
17711771
17721772multiplicative_expr
1773- = head :primary
1774- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
1773+ = head :unary_expr_or_primary
1774+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
17751775 return createBinaryExprChain (head, tail)
17761776 }
17771777
@@ -1793,6 +1793,16 @@ primary
17931793 }
17941794 / var_decl
17951795
1796+ unary_expr_or_primary
1797+ = primary
1798+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
1799+ // if (op === '!') op = 'NOT'
1800+ return createUnaryExpr (op, tail[1 ])
1801+ }
1802+
1803+ unary_operator
1804+ = '!' / '-' / '+' / '~'
1805+
17961806column_ref
17971807 = tbl :(ident __ DOT __ )? col :column __ a :((DOUBLE_ARROW / SINGLE_ARROW ) __ (literal_string / literal_numeric ))+ __ ca :collate_expr ? {
17981808 const tableName = tbl && tbl[0 ] || null
Original file line number Diff line number Diff line change @@ -2577,8 +2577,8 @@ additive_operator
25772577 = "+" / "-"
25782578
25792579multiplicative_expr
2580- = head :primary
2581- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
2580+ = head :unary_expr_or_primary
2581+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
25822582 // => binary_expr
25832583 return createBinaryExprChain (head, tail)
25842584 }
@@ -2608,6 +2608,16 @@ primary
26082608 }
26092609 }
26102610
2611+ unary_expr_or_primary
2612+ = primary
2613+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
2614+ // if (op === '!') op = 'NOT'
2615+ return createUnaryExpr (op, tail[1 ])
2616+ }
2617+
2618+ unary_operator
2619+ = '!' / '-' / '+' / '~'
2620+
26112621map_expr_item
26122622 = k :literal_string __ COMMA __ v :ident_without_kw_type {
26132623 columnList .add (` select::null::${ v .value } ` );
Original file line number Diff line number Diff line change @@ -1758,8 +1758,8 @@ additive_operator
17581758 = "+" / "-"
17591759
17601760multiplicative_expr
1761- = head :primary
1762- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
1761+ = head :unary_expr_or_primary
1762+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
17631763 return createBinaryExprChain (head, tail)
17641764 }
17651765
@@ -1786,6 +1786,16 @@ primary
17861786 }
17871787 / var_decl
17881788
1789+ unary_expr_or_primary
1790+ = primary
1791+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
1792+ // if (op === '!') op = 'NOT'
1793+ return createUnaryExpr (op, tail[1 ])
1794+ }
1795+
1796+ unary_operator
1797+ = '!' / '-' / '+' / '~'
1798+
17891799column_ref
17901800 = tbl :ident __ DOT __ col :column {
17911801 columnList .add (` select::${ tbl} ::${ col} ` );
Original file line number Diff line number Diff line change @@ -3905,8 +3905,8 @@ additive_operator
39053905 = "+" / "-"
39063906
39073907multiplicative_expr
3908- = head :primary
3909- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
3908+ = head :unary_expr_or_primary
3909+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
39103910 // => binary_expr
39113911 return createBinaryExprChain (head, tail)
39123912 }
@@ -3936,6 +3936,16 @@ primary
39363936 }
39373937 }
39383938
3939+ unary_expr_or_primary
3940+ = primary
3941+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
3942+ // if (op === '!') op = 'NOT'
3943+ return createUnaryExpr (op, tail[1 ])
3944+ }
3945+
3946+ unary_operator
3947+ = '!' / '-' / '+' / '~'
3948+
39393949string_constants_escape
39403950 = 'E' i "'" __ n :single_char * __ "'" {
39413951 // => { type: 'origin'; value: string; }
Original file line number Diff line number Diff line change @@ -4087,8 +4087,8 @@ additive_operator
40874087 = "+" / "-"
40884088
40894089multiplicative_expr
4090- = head :primary
4091- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
4090+ = head :unary_expr_or_primary
4091+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
40924092 // => binary_expr
40934093 return createBinaryExprChain (head, tail)
40944094 }
@@ -4118,6 +4118,16 @@ primary
41184118 }
41194119 }
41204120
4121+ unary_expr_or_primary
4122+ = primary
4123+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
4124+ // if (op === '!') op = 'NOT'
4125+ return createUnaryExpr (op, tail[1 ])
4126+ }
4127+
4128+ unary_operator
4129+ = '!' / '-' / '+' / '~'
4130+
41214131string_constants_escape
41224132 = 'E' i "'" __ n :single_char * __ "'" {
41234133 // => { type: 'origin'; value: string; }
Original file line number Diff line number Diff line change @@ -3941,8 +3941,8 @@ additive_operator
39413941 = "+" / "-"
39423942
39433943multiplicative_expr
3944- = head :primary
3945- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
3944+ = head :unary_expr_or_primary
3945+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
39463946 // => binary_expr
39473947 return createBinaryExprChain (head, tail)
39483948 }
@@ -3972,6 +3972,16 @@ primary
39723972 }
39733973 }
39743974
3975+ unary_expr_or_primary
3976+ = primary
3977+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
3978+ // if (op === '!') op = 'NOT'
3979+ return createUnaryExpr (op, tail[1 ])
3980+ }
3981+
3982+ unary_operator
3983+ = '!' / '-' / '+' / '~'
3984+
39753985string_constants_escape
39763986 = 'E' i "'" __ n :single_char * __ "'" {
39773987 // => { type: 'origin'; value: string; }
Original file line number Diff line number Diff line change @@ -3296,8 +3296,8 @@ additive_operator
32963296 = "+" / "-"
32973297
32983298multiplicative_expr
3299- = head :primary
3300- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
3299+ = head :unary_expr_or_primary
3300+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
33013301 // => binary_expr
33023302 return createBinaryExprChain (head, tail)
33033303 }
@@ -3327,6 +3327,16 @@ primary
33273327 }
33283328 }
33293329
3330+ unary_expr_or_primary
3331+ = primary
3332+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
3333+ // if (op === '!') op = 'NOT'
3334+ return createUnaryExpr (op, tail[1 ])
3335+ }
3336+
3337+ unary_operator
3338+ = '!' / '-' / '+' / '~'
3339+
33303340string_constants_escape
33313341 = 'E' i "'" __ n :single_char * __ "'" {
33323342 // => { type: 'origin'; value: string; }
Original file line number Diff line number Diff line change @@ -1934,8 +1934,8 @@ additive_operator
19341934 = "+" / "-"
19351935
19361936multiplicative_expr
1937- = head :primary
1938- tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ primary )* {
1937+ = head :unary_expr_or_primary
1938+ tail :(__ (multiplicative_operator / LOGIC_OPERATOR ) __ unary_expr_or_primary )* {
19391939 return createBinaryExprChain (head, tail)
19401940 }
19411941
@@ -1963,6 +1963,16 @@ primary
19631963 }
19641964 }
19651965
1966+ unary_expr_or_primary
1967+ = primary
1968+ / op :(unary_operator ) tail :(__ unary_expr_or_primary ) {
1969+ // if (op === '!') op = 'NOT'
1970+ return createUnaryExpr (op, tail[1 ])
1971+ }
1972+
1973+ unary_operator
1974+ = '!' / '-' / '+' / '~'
1975+
19661976column_ref
19671977 = tbl :(ident __ DOT __ )? col :column __ a :((DOUBLE_ARROW / SINGLE_ARROW ) __ (literal_string / literal_numeric ))+ __ ca :collate_expr ? {
19681978 const tableName = tbl && tbl[0 ] || null
You can’t perform that action at this time.
0 commit comments