diff --git a/crates/oxc_parser/src/lexer/byte_handlers.rs b/crates/oxc_parser/src/lexer/byte_handlers.rs index 4f7447e56..11a7adf1a 100644 --- a/crates/oxc_parser/src/lexer/byte_handlers.rs +++ b/crates/oxc_parser/src/lexer/byte_handlers.rs @@ -1,6 +1,7 @@ -use super::{Kind, Lexer}; use crate::diagnostics; +use super::{Kind, Lexer}; + /// Handle next byte of source. /// /// # SAFETY diff --git a/crates/oxc_parser/src/lexer/comment.rs b/crates/oxc_parser/src/lexer/comment.rs index 57f34c74f..7646e9fb3 100644 --- a/crates/oxc_parser/src/lexer/comment.rs +++ b/crates/oxc_parser/src/lexer/comment.rs @@ -1,13 +1,15 @@ use memchr::memmem::Finder; + use oxc_syntax::identifier::is_line_terminator; +use crate::diagnostics; + use super::{ cold_branch, search::{byte_search, safe_byte_match_table, SafeByteMatchTable}, source::SourcePosition, Kind, Lexer, }; -use crate::diagnostics; // Irregular line breaks - '\u{2028}' (LS) and '\u{2029}' (PS) const LS_OR_PS_FIRST: u8 = 0xE2; diff --git a/crates/oxc_parser/src/lexer/identifier.rs b/crates/oxc_parser/src/lexer/identifier.rs index 8feaa47cc..7dde35d16 100644 --- a/crates/oxc_parser/src/lexer/identifier.rs +++ b/crates/oxc_parser/src/lexer/identifier.rs @@ -6,12 +6,13 @@ use oxc_syntax::identifier::{ is_identifier_part, is_identifier_part_unicode, is_identifier_start_unicode, }; +use crate::diagnostics; + use super::{ cold_branch, search::{byte_search, safe_byte_match_table, SafeByteMatchTable}, Kind, Lexer, SourcePosition, }; -use crate::diagnostics; const MIN_ESCAPED_STR_LEN: usize = 16; diff --git a/crates/oxc_parser/src/lexer/jsx.rs b/crates/oxc_parser/src/lexer/jsx.rs index cd4f90199..10574d4b8 100644 --- a/crates/oxc_parser/src/lexer/jsx.rs +++ b/crates/oxc_parser/src/lexer/jsx.rs @@ -1,12 +1,14 @@ use memchr::{memchr, memchr2}; + use oxc_syntax::identifier::is_identifier_part; +use crate::diagnostics; + use super::{ cold_branch, search::{byte_search, safe_byte_match_table, SafeByteMatchTable}, Kind, Lexer, Token, }; -use crate::diagnostics; static NOT_ASCII_JSX_ID_CONTINUE_TABLE: SafeByteMatchTable = safe_byte_match_table!(|b| !(b.is_ascii_alphanumeric() || matches!(b, b'_' | b'$' | b'-'))); diff --git a/crates/oxc_parser/src/lexer/kind.rs b/crates/oxc_parser/src/lexer/kind.rs index 00d6c38dc..d6ec78b1b 100644 --- a/crates/oxc_parser/src/lexer/kind.rs +++ b/crates/oxc_parser/src/lexer/kind.rs @@ -197,7 +197,7 @@ pub enum Kind { } #[allow(clippy::enum_glob_use)] -use self::Kind::*; +use Kind::*; impl Kind { #[inline] diff --git a/crates/oxc_parser/src/lexer/mod.rs b/crates/oxc_parser/src/lexer/mod.rs index eb99eeb7b..8437e87ff 100644 --- a/crates/oxc_parser/src/lexer/mod.rs +++ b/crates/oxc_parser/src/lexer/mod.rs @@ -5,6 +5,17 @@ //! * [rustc](https://github.com/rust-lang/rust/blob/1.82.0/compiler/rustc_lexer/src) //! * [v8](https://v8.dev/blog/scanner) +use std::collections::VecDeque; + +use rustc_hash::FxHashMap; + +use oxc_allocator::Allocator; +use oxc_ast::ast::RegExpFlags; +use oxc_diagnostics::OxcDiagnostic; +use oxc_span::{SourceType, Span}; + +use crate::{diagnostics, UniquePromise}; + mod byte_handlers; mod comment; mod identifier; @@ -24,25 +35,13 @@ mod typescript; mod unicode; mod whitespace; -use std::collections::VecDeque; +pub use kind::Kind; +pub use number::{parse_big_int, parse_float, parse_int}; +pub use token::Token; -use oxc_allocator::Allocator; -use oxc_ast::ast::RegExpFlags; -use oxc_diagnostics::OxcDiagnostic; -use oxc_span::{SourceType, Span}; -use rustc_hash::FxHashMap; - -use self::{ - byte_handlers::handle_byte, - source::{Source, SourcePosition}, - trivia_builder::TriviaBuilder, -}; -pub use self::{ - kind::Kind, - number::{parse_big_int, parse_float, parse_int}, - token::Token, -}; -use crate::{diagnostics, UniquePromise}; +use byte_handlers::handle_byte; +use source::{Source, SourcePosition}; +use trivia_builder::TriviaBuilder; #[derive(Debug, Clone, Copy)] pub struct LexerCheckpoint<'a> { diff --git a/crates/oxc_parser/src/lexer/numeric.rs b/crates/oxc_parser/src/lexer/numeric.rs index a3e0b68b3..462f10b55 100644 --- a/crates/oxc_parser/src/lexer/numeric.rs +++ b/crates/oxc_parser/src/lexer/numeric.rs @@ -1,8 +1,9 @@ use oxc_syntax::identifier::{is_identifier_part_ascii, is_identifier_start}; -use super::{Kind, Lexer, Span}; use crate::diagnostics; +use super::{Kind, Lexer, Span}; + impl Lexer<'_> { /// 12.9.3 Numeric Literals with `0` prefix pub(super) fn read_zero(&mut self) -> Kind { diff --git a/crates/oxc_parser/src/lexer/regex.rs b/crates/oxc_parser/src/lexer/regex.rs index 01c184ef5..06505746d 100644 --- a/crates/oxc_parser/src/lexer/regex.rs +++ b/crates/oxc_parser/src/lexer/regex.rs @@ -1,9 +1,10 @@ use oxc_diagnostics::Result; use oxc_syntax::identifier::is_line_terminator; -use super::{Kind, Lexer, RegExpFlags, Token}; use crate::diagnostics; +use super::{Kind, Lexer, RegExpFlags, Token}; + impl Lexer<'_> { /// Re-tokenize the current `/` or `/=` and return `RegExp` /// See Section 12: diff --git a/crates/oxc_parser/src/lexer/source.rs b/crates/oxc_parser/src/lexer/source.rs index d6b93727d..608a781b1 100644 --- a/crates/oxc_parser/src/lexer/source.rs +++ b/crates/oxc_parser/src/lexer/source.rs @@ -2,9 +2,10 @@ use std::{marker::PhantomData, slice, str}; -use super::search::SEARCH_BATCH_SIZE; use crate::{UniquePromise, MAX_LEN}; +use super::search::SEARCH_BATCH_SIZE; + /// `Source` holds the source text for the lexer, and provides APIs to read it. /// /// It provides a cursor which allows consuming source text either as `char`s, or as bytes. diff --git a/crates/oxc_parser/src/lexer/string.rs b/crates/oxc_parser/src/lexer/string.rs index 7c004779c..d8281fa23 100644 --- a/crates/oxc_parser/src/lexer/string.rs +++ b/crates/oxc_parser/src/lexer/string.rs @@ -2,12 +2,13 @@ use std::cmp::max; use oxc_allocator::String; +use crate::diagnostics; + use super::{ cold_branch, search::{byte_search, safe_byte_match_table, SafeByteMatchTable}, Kind, Lexer, LexerContext, Span, Token, }; -use crate::diagnostics; const MIN_ESCAPED_STR_LEN: usize = 16; diff --git a/crates/oxc_parser/src/lexer/template.rs b/crates/oxc_parser/src/lexer/template.rs index 281b19493..aa6605a20 100644 --- a/crates/oxc_parser/src/lexer/template.rs +++ b/crates/oxc_parser/src/lexer/template.rs @@ -2,12 +2,13 @@ use std::cmp::max; use oxc_allocator::String; +use crate::diagnostics; + use super::{ cold_branch, search::{byte_search, safe_byte_match_table, SafeByteMatchTable}, Kind, Lexer, SourcePosition, Token, }; -use crate::diagnostics; const MIN_ESCAPED_TEMPLATE_LIT_LEN: usize = 16; diff --git a/crates/oxc_parser/src/lexer/unicode.rs b/crates/oxc_parser/src/lexer/unicode.rs index d67508ec7..bfa894080 100644 --- a/crates/oxc_parser/src/lexer/unicode.rs +++ b/crates/oxc_parser/src/lexer/unicode.rs @@ -4,9 +4,10 @@ use oxc_syntax::identifier::{ is_irregular_line_terminator, is_irregular_whitespace, CR, FF, LF, LS, PS, TAB, VT, }; -use super::{Kind, Lexer, Span}; use crate::diagnostics; +use super::{Kind, Lexer, Span}; + enum SurrogatePair { // valid \u Hex4Digits \u Hex4Digits Astral(u32),