diff options
author | Michael Muré <batolettre@gmail.com> | 2020-02-05 22:03:19 +0100 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2020-02-05 22:33:03 +0100 |
commit | 1d4bb7ceb0cef79d68df0bacc913b01e40e6ddd6 (patch) | |
tree | e088b0fa43058afde1db71541d8fcb4b94905d6e /vendor/github.com/vektah/gqlparser/parser/parser.go | |
parent | f093be96e98284580d61664adecd0a2ff8b354e4 (diff) | |
download | git-bug-1d4bb7ceb0cef79d68df0bacc913b01e40e6ddd6.tar.gz |
migrate to go modules
Diffstat (limited to 'vendor/github.com/vektah/gqlparser/parser/parser.go')
-rw-r--r-- | vendor/github.com/vektah/gqlparser/parser/parser.go | 136 |
1 files changed, 0 insertions, 136 deletions
diff --git a/vendor/github.com/vektah/gqlparser/parser/parser.go b/vendor/github.com/vektah/gqlparser/parser/parser.go deleted file mode 100644 index 96e98402..00000000 --- a/vendor/github.com/vektah/gqlparser/parser/parser.go +++ /dev/null @@ -1,136 +0,0 @@ -package parser - -import ( - "strconv" - - "github.com/vektah/gqlparser/ast" - "github.com/vektah/gqlparser/gqlerror" - "github.com/vektah/gqlparser/lexer" -) - -type parser struct { - lexer lexer.Lexer - err *gqlerror.Error - - peeked bool - peekToken lexer.Token - peekError *gqlerror.Error - - prev lexer.Token -} - -func (p *parser) peekPos() *ast.Position { - if p.err != nil { - return nil - } - - peek := p.peek() - return &peek.Pos -} - -func (p *parser) peek() lexer.Token { - if p.err != nil { - return p.prev - } - - if !p.peeked { - p.peekToken, p.peekError = p.lexer.ReadToken() - p.peeked = true - } - - return p.peekToken -} - -func (p *parser) error(tok lexer.Token, format string, args ...interface{}) { - if p.err != nil { - return - } - p.err = gqlerror.ErrorLocf(tok.Pos.Src.Name, tok.Pos.Line, tok.Pos.Column, format, args...) -} - -func (p *parser) next() lexer.Token { - if p.err != nil { - return p.prev - } - if p.peeked { - p.peeked = false - p.prev, p.err = p.peekToken, p.peekError - } else { - p.prev, p.err = p.lexer.ReadToken() - } - return p.prev -} - -func (p *parser) expectKeyword(value string) lexer.Token { - tok := p.peek() - if tok.Kind == lexer.Name && tok.Value == value { - return p.next() - } - - p.error(tok, "Expected %s, found %s", strconv.Quote(value), tok.String()) - return tok -} - -func (p *parser) expect(kind lexer.Type) lexer.Token { - tok := p.peek() - if tok.Kind == kind { - return p.next() - } - - p.error(tok, "Expected %s, found %s", kind, tok.Kind.String()) - return tok -} - -func (p *parser) skip(kind lexer.Type) bool { - if p.err != nil { - return false - } - - tok := p.peek() - - if tok.Kind != kind { - return false - } - p.next() - return true -} - -func (p *parser) unexpectedError() { - p.unexpectedToken(p.peek()) -} - -func (p *parser) unexpectedToken(tok lexer.Token) { - p.error(tok, "Unexpected %s", tok.String()) -} - -func (p *parser) many(start lexer.Type, end lexer.Type, cb func()) { - hasDef := p.skip(start) - if !hasDef { - return - } - - for p.peek().Kind != end && p.err == nil { - cb() - } - p.next() -} - -func (p *parser) some(start lexer.Type, end lexer.Type, cb func()) { - hasDef := p.skip(start) - if !hasDef { - return - } - - called := false - for p.peek().Kind != end && p.err == nil { - called = true - cb() - } - - if !called { - p.error(p.peek(), "expected at least one definition, found %s", p.peek().Kind.String()) - return - } - - p.next() -} |