MCPcopy
hub / github.com/jquery/esprima / unexpectedTokenError

Method unexpectedTokenError

src/parser.ts:201–242  ·  view source on GitHub ↗
(token?: any, message?: string)

Source from the content-addressed store, hash-verified

199
200 // Throw an exception because of the token.
201 unexpectedTokenError(token?: any, message?: string): Error {
202 let msg = message || Messages.UnexpectedToken;
203
204 let value;
205 if (token) {
206 if (!message) {
207 msg = (token.type === Token.EOF) ? Messages.UnexpectedEOS :
208 (token.type === Token.Identifier) ? Messages.UnexpectedIdentifier :
209 (token.type === Token.NumericLiteral) ? Messages.UnexpectedNumber :
210 (token.type === Token.StringLiteral) ? Messages.UnexpectedString :
211 (token.type === Token.Template) ? Messages.UnexpectedTemplate :
212 Messages.UnexpectedToken;
213
214 if (token.type === Token.Keyword) {
215 if (this.scanner.isFutureReservedWord(token.value)) {
216 msg = Messages.UnexpectedReserved;
217 } else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {
218 msg = Messages.StrictReservedWord;
219 }
220 }
221 }
222
223 value = token.value;
224 } else {
225 value = 'ILLEGAL';
226 }
227
228 msg = msg.replace('%0', value);
229
230 if (token && typeof token.lineNumber === 'number') {
231 const index = token.start;
232 const line = token.lineNumber;
233 const lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;
234 const column = token.start - lastMarkerLineStart + 1;
235 return this.errorHandler.createError(index, line, column, msg);
236 } else {
237 const index = this.lastMarker.index;
238 const line = this.lastMarker.line;
239 const column = this.lastMarker.column + 1;
240 return this.errorHandler.createError(index, line, column, msg);
241 }
242 }
243
244 throwUnexpectedToken(token?, message?): never {
245 throw this.unexpectedTokenError(token, message);

Callers 2

throwUnexpectedTokenMethod · 0.95

Calls 3

isFutureReservedWordMethod · 0.80
createErrorMethod · 0.80

Tested by

no test coverage detected