From f36ca2548cd13dda53d4e2c6f4084164f562c832 Mon Sep 17 00:00:00 2001 From: Ivan Goncharov Date: Tue, 1 Oct 2019 17:10:59 +0300 Subject: [PATCH] Lexer: remove passthrough options (#2209) --- src/language/lexer.js | 15 +++++---------- src/language/parser.js | 2 +- tstypes/language/lexer.d.ts | 8 ++------ 3 files changed, 8 insertions(+), 17 deletions(-) diff --git a/src/language/lexer.js b/src/language/lexer.js index b200ef7071..3fe1ad469f 100644 --- a/src/language/lexer.js +++ b/src/language/lexer.js @@ -17,14 +17,10 @@ import { type TokenKindEnum, TokenKind } from './tokenKind'; * EOF, after which the lexer will repeatedly return the same EOF token * whenever called. */ -export function createLexer( - source: Source, - options: TOptions, -): Lexer { +export function createLexer(source: Source): Lexer { const startOfFileToken = new Tok(TokenKind.SOF, 0, 0, 0, 0, null); - const lexer: Lexer = { + const lexer: Lexer = { source, - options, lastToken: startOfFileToken, token: startOfFileToken, line: 1, @@ -55,9 +51,8 @@ function lookahead() { /** * The return type of createLexer. */ -export type Lexer = { +export type Lexer = { source: Source, - options: TOptions, /** * The previously focused non-ignored token. @@ -167,7 +162,7 @@ function printCharCode(code) { * punctuators immediately or calls the appropriate helper function for more * complicated tokens. */ -function readToken(lexer: Lexer, prev: Token): Token { +function readToken(lexer: Lexer, prev: Token): Token { const source = lexer.source; const body = source.body; const bodyLength = body.length; @@ -334,7 +329,7 @@ function unexpectedCharacterMessage(code) { function positionAfterWhitespace( body: string, startPosition: number, - lexer: Lexer, + lexer: Lexer, ): number { const bodyLength = body.length; let position = startPosition; diff --git a/src/language/parser.js b/src/language/parser.js index cade275231..ce38a0f773 100644 --- a/src/language/parser.js +++ b/src/language/parser.js @@ -168,7 +168,7 @@ export function parseType( class Parser { _options: ParseOptions; - _lexer: Lexer; + _lexer: Lexer; constructor(source: string | Source, options?: ParseOptions) { const sourceObj = typeof source === 'string' ? new Source(source) : source; diff --git a/tstypes/language/lexer.d.ts b/tstypes/language/lexer.d.ts index f5c1f85563..f1a7257f54 100644 --- a/tstypes/language/lexer.d.ts +++ b/tstypes/language/lexer.d.ts @@ -10,17 +10,13 @@ import { Source } from './source'; * EOF, after which the lexer will repeatedly return the same EOF token * whenever called. */ -export function createLexer( - source: Source, - options: TOptions, -): Lexer; +export function createLexer(source: Source): Lexer; /** * The return type of createLexer. */ -export interface Lexer { +export interface Lexer { source: Source; - options: TOptions; /** * The previously focused non-ignored token.