@@ -154,6 +154,10 @@ expression_chain -> expression _expression_with_comments:* {%
154
154
([expr , chain ]) => [expr, ... chain]
155
155
% }
156
156
157
+ andless_expression_chain - > andless_expression _andless_expression_with_comments: * {%
158
+ ([expr , chain ]) => [expr, ... chain]
159
+ % }
160
+
157
161
expression_with_comments_ - > expression _ {%
158
162
([expr , _ ]) => addComments (expr, { trailing: _ })
159
163
% }
@@ -162,18 +166,25 @@ _expression_with_comments -> _ expression {%
162
166
([_ , expr ]) => addComments (expr, { leading: _ })
163
167
% }
164
168
169
+ _andless_expression_with_comments - > _ andless_expression {%
170
+ ([_ , expr ]) => addComments (expr, { leading: _ })
171
+ % }
172
+
165
173
free_form_sql - > ( asteriskless_free_form_sql | asterisk ) {% unwrap % }
166
174
167
175
asteriskless_free_form_sql - >
168
- ( asteriskless_expression
176
+ ( asteriskless_andless_expression
177
+ | logic_operator
169
178
| between_predicate
170
179
| comma
171
180
| comment
172
181
| other_keyword ) {% unwrap % }
173
182
174
- expression - > ( asteriskless_expression | asterisk ) {% unwrap % }
183
+ expression - > ( andless_expression | logic_operator ) {% unwrap % }
184
+
185
+ andless_expression - > ( asteriskless_andless_expression | asterisk ) {% unwrap % }
175
186
176
- asteriskless_expression - >
187
+ asteriskless_andless_expression - >
177
188
( array_subscript
178
189
| case_expression
179
190
| function_call
@@ -251,7 +262,7 @@ property_access -> expression _ %DOT _ (identifier | array_subscript | all_colum
251
262
}
252
263
% }
253
264
254
- between_predicate - > % BETWEEN _ expression_chain _ % AND _ expression {%
265
+ between_predicate - > % BETWEEN _ andless_expression_chain _ % AND _ andless_expression {%
255
266
([betweenToken , _1 , expr1 , _2 , andToken , _3 , expr2 ]) => ({
256
267
type: NodeType .between_predicate ,
257
268
betweenKw: toKeywordNode (betweenToken),
@@ -312,8 +323,12 @@ literal ->
312
323
keyword - >
313
324
( % RESERVED_KEYWORD
314
325
| % RESERVED_PHRASE
315
- | % RESERVED_JOIN
316
- | % AND
326
+ | % RESERVED_JOIN ) {%
327
+ ([[token ]]) => toKeywordNode (token)
328
+ % }
329
+
330
+ logic_operator - >
331
+ ( % AND
317
332
| % OR
318
333
| % XOR ) {%
319
334
([[token ]]) => toKeywordNode (token)
0 commit comments