Skip to content

Commit d2ddcba

Browse files
authored
Merge pull request m-novikov#56 from DerekStride/derek/unary-predicates
Unary predicates
2 parents 41f1de2 + 6adc957 commit d2ddcba

File tree

5 files changed

+69577
-68899
lines changed

5 files changed

+69577
-68899
lines changed

grammar.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1356,10 +1356,13 @@ module.exports = grammar({
13561356
$.select_expression,
13571357
),
13581358

1359-
where_expression: $ => seq(
1360-
$._expression,
1359+
where_expression: $ => choice(
1360+
$.predicate,
1361+
alias($._field_predicate, $.predicate),
13611362
),
13621363

1364+
_field_predicate: $ => field('operand', $.field),
1365+
13631366
predicate: $ => choice(
13641367
...[
13651368
['=', 'binary_relation'],

src/grammar.json

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5541,14 +5541,31 @@
55415541
]
55425542
},
55435543
"where_expression": {
5544-
"type": "SEQ",
5544+
"type": "CHOICE",
55455545
"members": [
55465546
{
55475547
"type": "SYMBOL",
5548-
"name": "_expression"
5548+
"name": "predicate"
5549+
},
5550+
{
5551+
"type": "ALIAS",
5552+
"content": {
5553+
"type": "SYMBOL",
5554+
"name": "_field_predicate"
5555+
},
5556+
"named": true,
5557+
"value": "predicate"
55495558
}
55505559
]
55515560
},
5561+
"_field_predicate": {
5562+
"type": "FIELD",
5563+
"name": "operand",
5564+
"content": {
5565+
"type": "SYMBOL",
5566+
"name": "field"
5567+
}
5568+
},
55525569
"predicate": {
55535570
"type": "CHOICE",
55545571
"members": [

src/node-types.json

Lines changed: 10 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -2943,6 +2943,16 @@
29432943
}
29442944
]
29452945
},
2946+
"operand": {
2947+
"multiple": false,
2948+
"required": false,
2949+
"types": [
2950+
{
2951+
"type": "field",
2952+
"named": true
2953+
}
2954+
]
2955+
},
29462956
"operator": {
29472957
"multiple": true,
29482958
"required": false,
@@ -3792,53 +3802,9 @@
37923802
"multiple": false,
37933803
"required": true,
37943804
"types": [
3795-
{
3796-
"type": "binary_expression",
3797-
"named": true
3798-
},
3799-
{
3800-
"type": "case",
3801-
"named": true
3802-
},
3803-
{
3804-
"type": "cast",
3805-
"named": true
3806-
},
3807-
{
3808-
"type": "count",
3809-
"named": true
3810-
},
3811-
{
3812-
"type": "field",
3813-
"named": true
3814-
},
3815-
{
3816-
"type": "invocation",
3817-
"named": true
3818-
},
3819-
{
3820-
"type": "list",
3821-
"named": true
3822-
},
3823-
{
3824-
"type": "literal",
3825-
"named": true
3826-
},
3827-
{
3828-
"type": "parameter",
3829-
"named": true
3830-
},
38313805
{
38323806
"type": "predicate",
38333807
"named": true
3834-
},
3835-
{
3836-
"type": "subquery",
3837-
"named": true
3838-
},
3839-
{
3840-
"type": "window_function",
3841-
"named": true
38423808
}
38433809
]
38443810
}

0 commit comments

Comments
 (0)