Skip to content

Commit 8734ba5

Browse files
committed
Grammar: support parsing comparison with literal in tight side (e.g. 1<2>(false))
1 parent a3775e4 commit 8734ba5

File tree

4,292 files changed

+872815
-820351
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

4,292 files changed

+872815
-820351
lines changed

grammar/src/main/antlr/KotlinParser.g4

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,11 @@ multiplicativeExpression
421421
;
422422

423423
asExpression
424-
: prefixUnaryExpression (NL* asOperator NL* type)?
424+
: comparisonWithLiteralRightSide (NL* asOperator NL* type)?
425+
;
426+
427+
comparisonWithLiteralRightSide
428+
: prefixUnaryExpression (NL* LANGLE NL* literalConstant NL* RANGLE NL* (expression | parenthesizedExpression))*
425429
;
426430

427431
prefixUnaryExpression

grammar/testData/diagnostics/Abstract.b.antlrtree.txt

Lines changed: 132 additions & 110 deletions
Large diffs are not rendered by default.

grammar/testData/diagnostics/Abstract.c.antlrtree.txt

Lines changed: 100 additions & 93 deletions
Large diffs are not rendered by default.

grammar/testData/diagnostics/AbstractAccessor.antlrtree.txt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -206,11 +206,12 @@ File: AbstractAccessor.kt - 0dc14db75b4f030d55b4337e405bf860
206206
additiveExpression
207207
multiplicativeExpression
208208
asExpression
209-
prefixUnaryExpression
210-
postfixUnaryExpression
211-
primaryExpression
212-
literalConstant
213-
IntegerLiteral("0")
209+
comparisonWithLiteralRightSide
210+
prefixUnaryExpression
211+
postfixUnaryExpression
212+
primaryExpression
213+
literalConstant
214+
IntegerLiteral("0")
214215
NL("\n")
215216
setter
216217
modifiers

grammar/testData/diagnostics/AbstractInAbstractClass.antlrtree.txt

Lines changed: 126 additions & 105 deletions
Large diffs are not rendered by default.

grammar/testData/diagnostics/AbstractInClass.antlrtree.txt

Lines changed: 132 additions & 110 deletions
Large diffs are not rendered by default.

grammar/testData/diagnostics/AbstractInTrait.antlrtree.txt

Lines changed: 132 additions & 110 deletions
Large diffs are not rendered by default.

grammar/testData/diagnostics/AnonymousInitializerVarAndConstructor.antlrtree.txt

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,12 @@ File: AnonymousInitializerVarAndConstructor.kt - 5b0762eea5f1ee4dd211ae314d5d73a
4848
additiveExpression
4949
multiplicativeExpression
5050
asExpression
51-
prefixUnaryExpression
52-
postfixUnaryExpression
53-
primaryExpression
54-
simpleIdentifier
55-
Identifier("w")
51+
comparisonWithLiteralRightSide
52+
prefixUnaryExpression
53+
postfixUnaryExpression
54+
primaryExpression
55+
simpleIdentifier
56+
Identifier("w")
5657
NL("\n")
5758
NL("\n")
5859
classMemberDeclaration
@@ -80,11 +81,12 @@ File: AnonymousInitializerVarAndConstructor.kt - 5b0762eea5f1ee4dd211ae314d5d73a
8081
additiveExpression
8182
multiplicativeExpression
8283
asExpression
83-
prefixUnaryExpression
84-
postfixUnaryExpression
85-
primaryExpression
86-
literalConstant
87-
IntegerLiteral("81")
84+
comparisonWithLiteralRightSide
85+
prefixUnaryExpression
86+
postfixUnaryExpression
87+
primaryExpression
88+
literalConstant
89+
IntegerLiteral("81")
8890
semis
8991
NL("\n")
9092
RCURL("}")

grammar/testData/diagnostics/AnonymousInitializers.antlrtree.txt

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,12 @@ File: AnonymousInitializers.kt - 0cfb90d554324f61dc7cc05cd31fde83
5555
additiveExpression
5656
multiplicativeExpression
5757
asExpression
58-
prefixUnaryExpression
59-
postfixUnaryExpression
60-
primaryExpression
61-
literalConstant
62-
IntegerLiteral("1")
58+
comparisonWithLiteralRightSide
59+
prefixUnaryExpression
60+
postfixUnaryExpression
61+
primaryExpression
62+
literalConstant
63+
IntegerLiteral("1")
6364
semis
6465
NL("\n")
6566
NL("\n")
@@ -119,11 +120,12 @@ File: AnonymousInitializers.kt - 0cfb90d554324f61dc7cc05cd31fde83
119120
additiveExpression
120121
multiplicativeExpression
121122
asExpression
122-
prefixUnaryExpression
123-
postfixUnaryExpression
124-
primaryExpression
125-
literalConstant
126-
IntegerLiteral("1")
123+
comparisonWithLiteralRightSide
124+
prefixUnaryExpression
125+
postfixUnaryExpression
126+
primaryExpression
127+
literalConstant
128+
IntegerLiteral("1")
127129
NL("\n")
128130
classMemberDeclaration
129131
anonymousInitializer
@@ -152,11 +154,12 @@ File: AnonymousInitializers.kt - 0cfb90d554324f61dc7cc05cd31fde83
152154
additiveExpression
153155
multiplicativeExpression
154156
asExpression
155-
prefixUnaryExpression
156-
postfixUnaryExpression
157-
primaryExpression
158-
simpleIdentifier
159-
Identifier("x")
157+
comparisonWithLiteralRightSide
158+
prefixUnaryExpression
159+
postfixUnaryExpression
160+
primaryExpression
161+
simpleIdentifier
162+
Identifier("x")
160163
NL("\n")
161164
NL("\n")
162165
RCURL("}")
@@ -195,11 +198,12 @@ File: AnonymousInitializers.kt - 0cfb90d554324f61dc7cc05cd31fde83
195198
additiveExpression
196199
multiplicativeExpression
197200
asExpression
198-
prefixUnaryExpression
199-
postfixUnaryExpression
200-
primaryExpression
201-
literalConstant
202-
IntegerLiteral("1")
201+
comparisonWithLiteralRightSide
202+
prefixUnaryExpression
203+
postfixUnaryExpression
204+
primaryExpression
205+
literalConstant
206+
IntegerLiteral("1")
203207
semis
204208
NL("\n")
205209
NL("\n")
@@ -230,11 +234,12 @@ File: AnonymousInitializers.kt - 0cfb90d554324f61dc7cc05cd31fde83
230234
additiveExpression
231235
multiplicativeExpression
232236
asExpression
233-
prefixUnaryExpression
234-
postfixUnaryExpression
235-
primaryExpression
236-
simpleIdentifier
237-
Identifier("b")
237+
comparisonWithLiteralRightSide
238+
prefixUnaryExpression
239+
postfixUnaryExpression
240+
primaryExpression
241+
simpleIdentifier
242+
Identifier("b")
238243
semis
239244
NL("\n")
240245
statement
@@ -257,11 +262,12 @@ File: AnonymousInitializers.kt - 0cfb90d554324f61dc7cc05cd31fde83
257262
additiveExpression
258263
multiplicativeExpression
259264
asExpression
260-
prefixUnaryExpression
261-
postfixUnaryExpression
262-
primaryExpression
263-
simpleIdentifier
264-
Identifier("x")
265+
comparisonWithLiteralRightSide
266+
prefixUnaryExpression
267+
postfixUnaryExpression
268+
primaryExpression
269+
simpleIdentifier
270+
Identifier("x")
265271
NL("\n")
266272
RCURL("}")
267273
semis

0 commit comments

Comments
 (0)