(_ Pos)
| 955 | } |
| 956 | |
| 957 | func (p *Parser) parseSubQuery(_ Pos) (*SubQuery, error) { |
| 958 | |
| 959 | hasParen := p.tryConsumeTokenKind(TokenKindLParen) != nil |
| 960 | |
| 961 | selectQuery, err := p.parseSelectQuery(p.Pos()) |
| 962 | if err != nil { |
| 963 | return nil, err |
| 964 | } |
| 965 | if hasParen { |
| 966 | if err := p.expectTokenKind(TokenKindRParen); err != nil { |
| 967 | return nil, err |
| 968 | } |
| 969 | } |
| 970 | |
| 971 | return &SubQuery{ |
| 972 | HasParen: hasParen, |
| 973 | Select: selectQuery, |
| 974 | }, nil |
| 975 | } |
| 976 | |
| 977 | func (p *Parser) parseSelectQuery(_ Pos) (*SelectQuery, error) { |
| 978 | if !p.matchKeyword(KeywordSelect) && !p.matchKeyword(KeywordWith) && !p.matchTokenKind(TokenKindLParen) { |
no test coverage detected