(pos Pos)
| 599 | } |
| 600 | |
| 601 | func (p *Parser) parseHostClause(pos Pos) (*HostClause, error) { |
| 602 | if err := p.expectKeyword(KeywordHost); err != nil { |
| 603 | return nil, err |
| 604 | } |
| 605 | |
| 606 | host := &HostClause{HostPos: pos} |
| 607 | |
| 608 | switch { |
| 609 | case p.matchOneOfKeywords(KeywordLocal, KeywordAny, KeywordNone): |
| 610 | hostType := p.last().String |
| 611 | _ = p.lexer.consumeToken() |
| 612 | host.HostType = hostType |
| 613 | host.HostEnd = p.last().End |
| 614 | case p.matchOneOfKeywords(KeywordName, KeywordRegexp, KeywordIp, KeywordLike): |
| 615 | hostType := p.last().String |
| 616 | _ = p.lexer.consumeToken() |
| 617 | host.HostType = hostType |
| 618 | value, err := p.parseString(p.Pos()) |
| 619 | if err != nil { |
| 620 | return nil, err |
| 621 | } |
| 622 | host.HostValue = value |
| 623 | host.HostEnd = value.End() |
| 624 | default: |
| 625 | return nil, fmt.Errorf("expected LOCAL|NAME|REGEXP|IP|LIKE|ANY|NONE") |
| 626 | } |
| 627 | |
| 628 | return host, nil |
| 629 | } |
| 630 | |
| 631 | func (p *Parser) parseDefaultRoleClause(pos Pos) (*DefaultRoleClause, error) { |
| 632 | if err := p.expectKeyword(KeywordDefault); err != nil { |
no test coverage detected