(tkn token.Token)
| 98 | } |
| 99 | |
| 100 | func (self *_parser) errorUnexpectedToken(tkn token.Token) error { |
| 101 | switch tkn { |
| 102 | case token.EOF: |
| 103 | return self.error(file.Idx(0), err_UnexpectedEndOfInput) |
| 104 | } |
| 105 | value := tkn.String() |
| 106 | switch tkn { |
| 107 | case token.BOOLEAN, token.NULL: |
| 108 | value = self.literal |
| 109 | case token.IDENTIFIER: |
| 110 | return self.error(self.idx, "Unexpected identifier") |
| 111 | case token.KEYWORD: |
| 112 | // TODO Might be a future reserved word |
| 113 | return self.error(self.idx, "Unexpected reserved word") |
| 114 | case token.ESCAPED_RESERVED_WORD: |
| 115 | return self.error(self.idx, "Keyword must not contain escaped characters") |
| 116 | case token.NUMBER: |
| 117 | return self.error(self.idx, "Unexpected number") |
| 118 | case token.STRING: |
| 119 | return self.error(self.idx, "Unexpected string") |
| 120 | } |
| 121 | return self.error(self.idx, err_UnexpectedToken, value) |
| 122 | } |
| 123 | |
| 124 | // ErrorList is a list of *Errors. |
| 125 | type ErrorList []*Error |
no test coverage detected