@@ -53,7 +53,7 @@ func (p *Parser) getNextPrecedence() int {
53
53
return PrecedenceMulDivMod
54
54
case p .matchTokenKind (TokenKindArrow ):
55
55
return PrecedenceArrow
56
- case p .matchTokenKind ("(" ), p .matchTokenKind ("[" ):
56
+ case p .matchTokenKind (TokenKindLParen ), p .matchTokenKind (TokenKindLBracket ):
57
57
return PrecedenceBracket
58
58
case p .matchTokenKind (TokenKindDash ):
59
59
return PrecedenceDoubleColon
@@ -101,7 +101,7 @@ func (p *Parser) parseInfix(expr Expr, precedence int) (Expr, error) {
101
101
if err != nil {
102
102
return nil , err
103
103
}
104
- if _ , err = p .consumeTokenKind ("(" ); err != nil {
104
+ if _ , err = p .consumeTokenKind (TokenKindLParen ); err != nil {
105
105
return nil , err
106
106
}
107
107
// it's a tuple type definition after "::" operator
@@ -182,7 +182,7 @@ func (p *Parser) parseInfix(expr Expr, precedence int) (Expr, error) {
182
182
Operation : TokenKind ("NOT " + op ),
183
183
RightExpr : rightExpr ,
184
184
}, nil
185
- case p .matchTokenKind ("[" ):
185
+ case p .matchTokenKind (TokenKindLBracket ):
186
186
params , err := p .parseArrayParams (p .Pos ())
187
187
if err != nil {
188
188
return nil , err
@@ -238,7 +238,7 @@ func (p *Parser) parseSubExpr(pos Pos, precedence int) (Expr, error) {
238
238
}
239
239
240
240
func (p * Parser ) parseTernaryExpr (condition Expr ) (* TernaryOperation , error ) {
241
- if _ , err := p .consumeTokenKind ("?" ); err != nil {
241
+ if _ , err := p .consumeTokenKind (TokenKindQuery ); err != nil {
242
242
return nil , err
243
243
}
244
244
trueExpr , err := p .parseExpr (p .Pos ())
@@ -263,7 +263,7 @@ func (p *Parser) parseColumnExtractExpr(pos Pos) (*ExtractExpr, error) {
263
263
if err := p .consumeKeyword (KeywordExtract ); err != nil {
264
264
return nil , err
265
265
}
266
- if _ , err := p .consumeTokenKind ("(" ); err != nil {
266
+ if _ , err := p .consumeTokenKind (TokenKindLParen ); err != nil {
267
267
return nil , err
268
268
}
269
269
@@ -285,7 +285,7 @@ func (p *Parser) parseColumnExtractExpr(pos Pos) (*ExtractExpr, error) {
285
285
if err != nil {
286
286
return nil , err
287
287
}
288
- if err := p .consumeKeyword ( ")" ); err != nil {
288
+ if _ , err := p .consumeTokenKind ( TokenKindRParen ); err != nil {
289
289
return nil , err
290
290
}
291
291
return & ExtractExpr {
@@ -307,15 +307,7 @@ func (p *Parser) parseUnaryExpr(pos Pos) (Expr, error) {
307
307
return p .parseColumnExpr (pos )
308
308
}
309
309
310
- var expr Expr
311
- var err error
312
- switch {
313
- case p .matchTokenKind (TokenKindIdent ),
314
- p .matchTokenKind ("(" ):
315
- expr , err = p .parseExpr (p .Pos ())
316
- default :
317
- expr , err = p .parseColumnExpr (p .Pos ())
318
- }
310
+ expr , err := p .parseColumnExpr (p .Pos ())
319
311
if err != nil {
320
312
return nil , err
321
313
}
@@ -365,7 +357,7 @@ func (p *Parser) parseColumnExpr(pos Pos) (Expr, error) { //nolint:funlen
365
357
case p .matchTokenKind (TokenKindInt ),
366
358
p .matchTokenKind (TokenKindFloat ): // number literal
367
359
return p .parseNumber (pos )
368
- case p .matchTokenKind ("(" ):
360
+ case p .matchTokenKind (TokenKindLParen ):
369
361
if peek , _ := p .lexer .peekToken (); peek != nil {
370
362
if peek .Kind == TokenKindKeyword && strings .EqualFold (peek .String , KeywordSelect ) {
371
363
return p .parseSubQuery (pos )
@@ -374,9 +366,9 @@ func (p *Parser) parseColumnExpr(pos Pos) (Expr, error) { //nolint:funlen
374
366
return p .parseFunctionParams (p .Pos ())
375
367
case p .matchTokenKind ("*" ):
376
368
return p .parseColumnStar (p .Pos ())
377
- case p .matchTokenKind ("[" ):
369
+ case p .matchTokenKind (TokenKindLBracket ):
378
370
return p .parseArrayParams (p .Pos ())
379
- case p .matchTokenKind ("{" ):
371
+ case p .matchTokenKind (TokenKindLBrace ):
380
372
// The map literal string also starts with '{', so we need to check the next token
381
373
// to determine if it is a map literal or a query param.
382
374
if p .peekTokenKind (TokenKindIdent ) {
@@ -403,7 +395,7 @@ func (p *Parser) parseColumnCastExpr(pos Pos) (Expr, error) {
403
395
return nil , err
404
396
}
405
397
406
- if _ , err := p .consumeTokenKind ("(" ); err != nil {
398
+ if _ , err := p .consumeTokenKind (TokenKindLParen ); err != nil {
407
399
return nil , err
408
400
}
409
401
@@ -434,7 +426,7 @@ func (p *Parser) parseColumnCastExpr(pos Pos) (Expr, error) {
434
426
return nil , err
435
427
}
436
428
437
- if _ , err := p .consumeTokenKind (")" ); err != nil {
429
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
438
430
return nil , err
439
431
}
440
432
@@ -447,12 +439,12 @@ func (p *Parser) parseColumnCastExpr(pos Pos) (Expr, error) {
447
439
}, nil
448
440
}
449
441
450
- func (p * Parser ) parseColumnExprListWithRoundBracket (pos Pos ) (* ColumnExprList , error ) {
451
- return p .parseColumnExprListWithTerm (")" , pos )
442
+ func (p * Parser ) parseColumnExprListWithLParen (pos Pos ) (* ColumnExprList , error ) {
443
+ return p .parseColumnExprListWithTerm (TokenKindRParen , pos )
452
444
}
453
445
454
446
func (p * Parser ) parseColumnExprListWithSquareBracket (pos Pos ) (* ColumnExprList , error ) {
455
- return p .parseColumnExprListWithTerm ("]" , pos )
447
+ return p .parseColumnExprListWithTerm (TokenKindRBracket , pos )
456
448
}
457
449
458
450
func (p * Parser ) parseColumnExprList (pos Pos ) (* ColumnExprList , error ) {
@@ -552,15 +544,15 @@ func (p *Parser) parseFunctionExpr(_ Pos) (*FunctionExpr, error) {
552
544
}
553
545
554
546
func (p * Parser ) parseColumnArgList (pos Pos ) (* ColumnArgList , error ) {
555
- if _ , err := p .consumeTokenKind ("(" ); err != nil {
547
+ if _ , err := p .consumeTokenKind (TokenKindLParen ); err != nil {
556
548
return nil , err
557
549
}
558
550
distinct := false
559
551
if p .tryConsumeKeyword (KeywordDistinct ) != nil {
560
552
distinct = true
561
553
}
562
554
var items []Expr
563
- for ! p .lexer .isEOF () && ! p .matchTokenKind (")" ) {
555
+ for ! p .lexer .isEOF () && ! p .matchTokenKind (TokenKindRParen ) {
564
556
item , err := p .parseExpr (p .Pos ())
565
557
if err != nil {
566
558
return nil , err
@@ -571,7 +563,7 @@ func (p *Parser) parseColumnArgList(pos Pos) (*ColumnArgList, error) {
571
563
}
572
564
}
573
565
rightParenPos := p .Pos ()
574
- if _ , err := p .consumeTokenKind (")" ); err != nil {
566
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
575
567
return nil , err
576
568
}
577
569
return & ColumnArgList {
@@ -583,15 +575,15 @@ func (p *Parser) parseColumnArgList(pos Pos) (*ColumnArgList, error) {
583
575
}
584
576
585
577
func (p * Parser ) parseFunctionParams (pos Pos ) (* ParamExprList , error ) {
586
- if _ , err := p .consumeTokenKind ("(" ); err != nil {
578
+ if _ , err := p .consumeTokenKind (TokenKindLParen ); err != nil {
587
579
return nil , err
588
580
}
589
- params , err := p .parseColumnExprListWithRoundBracket (p .Pos ())
581
+ params , err := p .parseColumnExprListWithLParen (p .Pos ())
590
582
if err != nil {
591
583
return nil , err
592
584
}
593
585
rightParenPos := p .Pos ()
594
- if _ , err := p .consumeTokenKind (")" ); err != nil {
586
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
595
587
return nil , err
596
588
}
597
589
paramExprList := & ParamExprList {
@@ -603,7 +595,7 @@ func (p *Parser) parseFunctionParams(pos Pos) (*ParamExprList, error) {
603
595
// For some aggregate functions might support parametric arguments:
604
596
// e.g. QUANTILE(0.5)(x) or QUANTILE(0.5, 0.9)(x).
605
597
// So we need to have a check if there is another argument list with detecting the left bracket.
606
- if p .matchTokenKind ("(" ) {
598
+ if p .matchTokenKind (TokenKindLParen ) {
607
599
columnArgList , err := p .parseColumnArgList (p .Pos ())
608
600
if err != nil {
609
601
return nil , err
@@ -614,12 +606,12 @@ func (p *Parser) parseFunctionParams(pos Pos) (*ParamExprList, error) {
614
606
}
615
607
616
608
func (p * Parser ) parseMapLiteral (pos Pos ) (* MapLiteral , error ) {
617
- if _ , err := p .consumeTokenKind ("{" ); err != nil {
609
+ if _ , err := p .consumeTokenKind (TokenKindLBrace ); err != nil {
618
610
return nil , err
619
611
}
620
612
621
613
keyValues := make ([]KeyValue , 0 )
622
- for ! p .lexer .isEOF () && ! p .matchTokenKind ("}" ) {
614
+ for ! p .lexer .isEOF () && ! p .matchTokenKind (TokenKindRBrace ) {
623
615
key , err := p .parseString (p .Pos ())
624
616
if err != nil {
625
617
return nil , err
@@ -640,7 +632,7 @@ func (p *Parser) parseMapLiteral(pos Pos) (*MapLiteral, error) {
640
632
}
641
633
}
642
634
rightBracePos := p .Pos ()
643
- if _ , err := p .consumeTokenKind ("}" ); err != nil {
635
+ if _ , err := p .consumeTokenKind (TokenKindRBrace ); err != nil {
644
636
return nil , err
645
637
}
646
638
return & MapLiteral {
@@ -651,7 +643,7 @@ func (p *Parser) parseMapLiteral(pos Pos) (*MapLiteral, error) {
651
643
}
652
644
653
645
func (p * Parser ) parseQueryParam (pos Pos ) (* QueryParam , error ) {
654
- if _ , err := p .consumeTokenKind ("{" ); err != nil {
646
+ if _ , err := p .consumeTokenKind (TokenKindLBrace ); err != nil {
655
647
return nil , err
656
648
}
657
649
@@ -667,7 +659,7 @@ func (p *Parser) parseQueryParam(pos Pos) (*QueryParam, error) {
667
659
return nil , err
668
660
}
669
661
rightBracePos := p .Pos ()
670
- if _ , err := p .consumeTokenKind ("}" ); err != nil {
662
+ if _ , err := p .consumeTokenKind (TokenKindRBrace ); err != nil {
671
663
return nil , err
672
664
}
673
665
return & QueryParam {
@@ -679,15 +671,15 @@ func (p *Parser) parseQueryParam(pos Pos) (*QueryParam, error) {
679
671
}
680
672
681
673
func (p * Parser ) parseArrayParams (pos Pos ) (* ArrayParamList , error ) {
682
- if _ , err := p .consumeTokenKind ("[" ); err != nil {
674
+ if _ , err := p .consumeTokenKind (TokenKindLBracket ); err != nil {
683
675
return nil , err
684
676
}
685
677
params , err := p .parseColumnExprListWithSquareBracket (p .Pos ())
686
678
if err != nil {
687
679
return nil , err
688
680
}
689
681
rightBracketPos := p .Pos ()
690
- if _ , err := p .consumeTokenKind ("]" ); err != nil {
682
+ if _ , err := p .consumeTokenKind (TokenKindRBracket ); err != nil {
691
683
return nil , err
692
684
}
693
685
return & ArrayParamList {
@@ -815,7 +807,7 @@ func (p *Parser) parseColumnType(_ Pos) (ColumnType, error) { // nolint:funlen
815
807
if err != nil {
816
808
return nil , err
817
809
}
818
- if p .tryConsumeTokenKind ("(" ) != nil {
810
+ if p .tryConsumeTokenKind (TokenKindLParen ) != nil {
819
811
switch {
820
812
case p .matchTokenKind (TokenKindIdent ):
821
813
if ident .Name == "Nested" {
@@ -851,7 +843,7 @@ func (p *Parser) parseColumnPropertyType(_ Pos) (Expr, error) {
851
843
852
844
func (p * Parser ) parseComplexType (name * Ident , pos Pos ) (* ComplexType , error ) {
853
845
subTypes := make ([]ColumnType , 0 )
854
- for ! p .lexer .isEOF () && ! p .matchTokenKind (")" ) {
846
+ for ! p .lexer .isEOF () && ! p .matchTokenKind (TokenKindRParen ) {
855
847
subExpr , err := p .parseColumnType (p .Pos ())
856
848
if err != nil {
857
849
return nil , err
@@ -862,7 +854,7 @@ func (p *Parser) parseComplexType(name *Ident, pos Pos) (*ComplexType, error) {
862
854
}
863
855
}
864
856
rightParenPos := p .Pos ()
865
- if _ , err := p .consumeTokenKind (")" ); err != nil {
857
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
866
858
return nil , err
867
859
}
868
860
return & ComplexType {
@@ -879,7 +871,7 @@ func (p *Parser) parseEnumType(name *Ident, pos Pos) (*EnumType, error) {
879
871
ListPos : pos ,
880
872
Values : make ([]EnumValue , 0 ),
881
873
}
882
- for ! p .lexer .isEOF () && ! p .matchTokenKind (")" ) {
874
+ for ! p .lexer .isEOF () && ! p .matchTokenKind (TokenKindRParen ) {
883
875
enumValue , err := p .parseEnumValueExpr (p .Pos ())
884
876
if err != nil {
885
877
return nil , err
@@ -895,7 +887,7 @@ func (p *Parser) parseEnumType(name *Ident, pos Pos) (*EnumType, error) {
895
887
if len (enumType .Values ) > 0 {
896
888
enumType .ListEnd = enumType .Values [len (enumType .Values )- 1 ].Value .NumEnd
897
889
}
898
- if _ , err := p .consumeTokenKind (")" ); err != nil {
890
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
899
891
return nil , err
900
892
}
901
893
return enumType , nil
@@ -917,7 +909,7 @@ func (p *Parser) parseColumnTypeWithParams(name *Ident, pos Pos) (*TypeWithParam
917
909
}
918
910
919
911
rightParenPos := p .Pos ()
920
- if _ , err := p .consumeTokenKind (")" ); err != nil {
912
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
921
913
return nil , err
922
914
}
923
915
return & TypeWithParams {
@@ -934,7 +926,7 @@ func (p *Parser) parseNestedType(name *Ident, pos Pos) (*NestedType, error) {
934
926
return nil , err
935
927
}
936
928
rightParenPos := p .Pos ()
937
- if _ , err := p .consumeTokenKind (")" ); err != nil {
929
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
938
930
return nil , err
939
931
}
940
932
return & NestedType {
@@ -950,7 +942,7 @@ func (p *Parser) tryParseCompressionCodecs(pos Pos) (*CompressionCodec, error) {
950
942
return nil , nil // nolint
951
943
}
952
944
953
- if _ , err := p .consumeTokenKind ("(" ); err != nil {
945
+ if _ , err := p .consumeTokenKind (TokenKindLParen ); err != nil {
954
946
return nil , err
955
947
}
956
948
@@ -992,7 +984,7 @@ func (p *Parser) tryParseCompressionCodecs(pos Pos) (*CompressionCodec, error) {
992
984
}
993
985
994
986
rightParenPos := p .last ().End
995
- if _ , err := p .consumeTokenKind (")" ); err != nil {
987
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
996
988
return nil , err
997
989
}
998
990
@@ -1038,7 +1030,7 @@ func (p *Parser) parseColumnStar(pos Pos) (*Ident, error) {
1038
1030
}
1039
1031
1040
1032
func (p * Parser ) tryParseCompressionLevel (pos Pos ) (* NumberLiteral , error ) {
1041
- if p .tryConsumeTokenKind ("(" ) == nil {
1033
+ if p .tryConsumeTokenKind (TokenKindLParen ) == nil {
1042
1034
return nil , nil // nolint
1043
1035
}
1044
1036
@@ -1047,7 +1039,7 @@ func (p *Parser) tryParseCompressionLevel(pos Pos) (*NumberLiteral, error) {
1047
1039
return nil , err
1048
1040
}
1049
1041
1050
- if _ , err := p .consumeTokenKind (")" ); err != nil {
1042
+ if _ , err := p .consumeTokenKind (TokenKindRParen ); err != nil {
1051
1043
return nil , err
1052
1044
}
1053
1045
return num , nil
0 commit comments