diff --git a/parser/parser.go b/parser/parser.go index 3907a53..ac183b6 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -111,3 +111,12 @@ func (parser *ParsingOperation) nextToken (allowed ...lexer.TokenKind) (err erro err = parser.expect(allowed...) return } + +// previousToken goes back one token. If the parser is already at the beginning, +// this does nothing. +func (parser *ParsingOperation) previousToken () { + parser.tokenIndex -- + if parser.tokenIndex < 0 { parser.tokenIndex = 0 } + parser.token = parser.tokens[parser.tokenIndex] + return +}