parseFrameExtent parses a single frame extent
()
| 698 | |
| 699 | // parseFrameExtent parses a single frame extent |
| 700 | func (p *Parser) parseFrameExtent() (Expr, error) { |
| 701 | switch { |
| 702 | case p.matchKeyword(KeywordCurrent): |
| 703 | return p.parseFrameCurrentRow() |
| 704 | case p.matchKeyword(KeywordUnbounded): |
| 705 | return p.parseFrameUnbounded() |
| 706 | case p.matchTokenKind(TokenKindInt): |
| 707 | return p.parseFrameNumber() |
| 708 | case p.matchTokenKind(TokenKindLBrace): |
| 709 | return p.parseFrameParam() |
| 710 | case p.matchKeyword(KeywordInterval): |
| 711 | return p.parseFrameInterval() |
| 712 | default: |
| 713 | return nil, fmt.Errorf("expected UNBOUNDED, CURRENT ROW, integer, parameter, or interval") |
| 714 | } |
| 715 | } |
| 716 | |
| 717 | func (p *Parser) parseFrameCurrentRow() (Expr, error) { |
| 718 | currentPos := p.Pos() |
no test coverage detected