From 6b3d019631763acee7e76575eeae6f8dc1ed1c21 Mon Sep 17 00:00:00 2001 From: Boshen <1430279+Boshen@users.noreply.github.com> Date: Sat, 18 May 2024 14:41:32 +0000 Subject: [PATCH] refactor(paresr): move some structs to js module (#3341) --- crates/oxc_parser/src/js/declaration.rs | 18 +-------------- crates/oxc_parser/src/js/function.rs | 9 +------- crates/oxc_parser/src/js/mod.rs | 30 +++++++++++++++++++++++-- crates/oxc_parser/src/js/module.rs | 2 +- crates/oxc_parser/src/js/statement.rs | 4 +--- crates/oxc_parser/src/ts/statement.rs | 5 +---- 6 files changed, 33 insertions(+), 35 deletions(-) diff --git a/crates/oxc_parser/src/js/declaration.rs b/crates/oxc_parser/src/js/declaration.rs index ce764d645..0c85258a1 100644 --- a/crates/oxc_parser/src/js/declaration.rs +++ b/crates/oxc_parser/src/js/declaration.rs @@ -5,23 +5,7 @@ use oxc_span::{GetSpan, Span}; use crate::{diagnostics, lexer::Kind, ParserImpl, StatementContext}; -#[derive(Clone, Debug, Copy, Eq, PartialEq)] -pub enum VariableDeclarationParent { - For, - Statement, - Clause, -} - -#[derive(Clone, Debug, Copy, Eq, PartialEq)] -pub struct VariableDeclarationContext { - pub parent: VariableDeclarationParent, -} - -impl VariableDeclarationContext { - pub(crate) fn new(parent: VariableDeclarationParent) -> Self { - Self { parent } - } -} +use super::{VariableDeclarationContext, VariableDeclarationParent}; impl<'a> ParserImpl<'a> { pub(crate) fn parse_let(&mut self, stmt_ctx: StatementContext) -> Result> { diff --git a/crates/oxc_parser/src/js/function.rs b/crates/oxc_parser/src/js/function.rs index 8295ace6a..f62f8e1fb 100644 --- a/crates/oxc_parser/src/js/function.rs +++ b/crates/oxc_parser/src/js/function.rs @@ -5,16 +5,9 @@ use oxc_ast::ast::*; use oxc_diagnostics::Result; use oxc_span::Span; -use super::list::FormalParameterList; use crate::{diagnostics, lexer::Kind, list::SeparatedList, Context, ParserImpl, StatementContext}; -#[derive(Debug, Clone, Copy, Eq, PartialEq)] -pub enum FunctionKind { - Declaration { single_statement: bool }, - Expression, - DefaultExport, - TSDeclaration, -} +use super::{list::FormalParameterList, FunctionKind}; impl FunctionKind { pub(crate) fn is_id_required(self) -> bool { diff --git a/crates/oxc_parser/src/js/mod.rs b/crates/oxc_parser/src/js/mod.rs index dd2dffefd..229577973 100644 --- a/crates/oxc_parser/src/js/mod.rs +++ b/crates/oxc_parser/src/js/mod.rs @@ -8,9 +8,9 @@ pub mod list; mod arrow; mod binding; mod class; -pub mod declaration; +mod declaration; mod expression; -pub mod function; +mod function; mod module; mod object; mod operator; @@ -22,3 +22,29 @@ pub enum Tristate { False, Maybe, } + +#[derive(Debug, Clone, Copy, Eq, PartialEq)] +pub enum FunctionKind { + Declaration { single_statement: bool }, + Expression, + DefaultExport, + TSDeclaration, +} + +#[derive(Clone, Debug, Copy, Eq, PartialEq)] +pub enum VariableDeclarationParent { + For, + Statement, + Clause, +} + +#[derive(Clone, Debug, Copy, Eq, PartialEq)] +pub struct VariableDeclarationContext { + pub parent: VariableDeclarationParent, +} + +impl VariableDeclarationContext { + pub(crate) fn new(parent: VariableDeclarationParent) -> Self { + Self { parent } + } +} diff --git a/crates/oxc_parser/src/js/module.rs b/crates/oxc_parser/src/js/module.rs index d8f34d743..c5fd94409 100644 --- a/crates/oxc_parser/src/js/module.rs +++ b/crates/oxc_parser/src/js/module.rs @@ -4,8 +4,8 @@ use oxc_diagnostics::Result; use oxc_span::Span; use super::{ - function::FunctionKind, list::{AssertEntries, ExportNamedSpecifiers, ImportSpecifierList}, + FunctionKind, }; use crate::{diagnostics, lexer::Kind, list::SeparatedList, Context, ParserImpl}; diff --git a/crates/oxc_parser/src/js/statement.rs b/crates/oxc_parser/src/js/statement.rs index 9efa1d34f..0dfbd8461 100644 --- a/crates/oxc_parser/src/js/statement.rs +++ b/crates/oxc_parser/src/js/statement.rs @@ -4,9 +4,7 @@ use oxc_diagnostics::Result; use oxc_span::{Atom, GetSpan, Span}; use super::{ - declaration::{VariableDeclarationContext, VariableDeclarationParent}, - grammar::CoverGrammar, - list::SwitchCases, + grammar::CoverGrammar, list::SwitchCases, VariableDeclarationContext, VariableDeclarationParent, }; use crate::{diagnostics, lexer::Kind, list::NormalList, Context, ParserImpl, StatementContext}; diff --git a/crates/oxc_parser/src/ts/statement.rs b/crates/oxc_parser/src/ts/statement.rs index ecd14c453..7b1c59a43 100644 --- a/crates/oxc_parser/src/ts/statement.rs +++ b/crates/oxc_parser/src/ts/statement.rs @@ -8,10 +8,7 @@ use super::{ types::ModifierFlags, }; use crate::{ - js::{ - declaration::{VariableDeclarationContext, VariableDeclarationParent}, - function::FunctionKind, - }, + js::{FunctionKind, VariableDeclarationContext, VariableDeclarationParent}, lexer::Kind, list::{NormalList, SeparatedList}, ParserImpl, StatementContext,