Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ast, parser): add oxc_regular_expression types to the parser and AST. #5256

Conversation

rzvxa
Copy link
Contributor

@rzvxa rzvxa commented Aug 27, 2024

closes #5060

Copy link

graphite-app bot commented Aug 27, 2024

Your org has enabled the Graphite merge queue for merging into main

Add the label “merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix.

You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link.

@github-actions github-actions bot added A-parser Area - Parser A-ast Area - AST A-ast-tools Area - AST tools labels Aug 27, 2024
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch 2 times, most recently from 9346477 to 26ea256 Compare August 28, 2024 20:48
@rzvxa rzvxa changed the base branch from main to 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate August 28, 2024 20:48
@github-actions github-actions bot added the A-prettier Area - Prettier label Aug 28, 2024
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 2372afc to e36d41d Compare August 28, 2024 20:53
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 26ea256 to 4559c56 Compare August 28, 2024 20:53
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 4559c56 to be45db7 Compare August 28, 2024 20:55
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from e36d41d to 9bb903e Compare August 29, 2024 08:33
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from be45db7 to 031b44d Compare August 29, 2024 08:33
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 9bb903e to 61d3cec Compare August 29, 2024 08:42
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 031b44d to 4dfc7d5 Compare August 29, 2024 08:42
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 61d3cec to 8f1ec2a Compare August 29, 2024 15:57
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 4dfc7d5 to 1da0d8e Compare August 29, 2024 15:57
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 8f1ec2a to 062474d Compare August 29, 2024 16:02
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 1da0d8e to ef7838a Compare August 29, 2024 16:02
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 062474d to 5317313 Compare August 29, 2024 16:30
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from ef7838a to 2ce62f8 Compare August 29, 2024 16:30
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 5317313 to bfbd08b Compare August 29, 2024 16:40
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 2ce62f8 to c9f5f04 Compare August 29, 2024 16:40
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from bfbd08b to ab31674 Compare September 1, 2024 08:31
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from c9f5f04 to 1e0140c Compare September 1, 2024 08:32
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from ab31674 to 045419e Compare September 1, 2024 09:49
@rzvxa rzvxa marked this pull request as ready for review September 2, 2024 23:03
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 284b2d5 to 31de461 Compare September 2, 2024 23:19
@rzvxa
Copy link
Contributor Author

rzvxa commented Sep 2, 2024

Added a few documentation comments, Everything still uses strings for processing regexes, I've created this issue to track this:
#5416

@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 0b47a4a to 07e0cd6 Compare September 3, 2024 01:51
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 31de461 to b240294 Compare September 3, 2024 01:51
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 60ebfd3 to 4693472 Compare September 3, 2024 02:12
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from b240294 to 549b141 Compare September 3, 2024 02:12
@rzvxa rzvxa force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 4693472 to e274018 Compare September 3, 2024 02:15
@rzvxa rzvxa force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 549b141 to 39db3e0 Compare September 3, 2024 02:15
@Boshen Boshen added the 0-merge Merge with Graphite Merge Queue label Sep 3, 2024
Copy link

graphite-app bot commented Sep 3, 2024

Merge activity

  • Sep 2, 10:18 PM EDT: The merge label 'merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Sep 2, 10:25 PM EDT: Boshen added this pull request to the Graphite merge queue.
  • Sep 2, 10:52 PM EDT: Boshen merged this pull request with the Graphite merge queue.

Boshen pushed a commit that referenced this pull request Sep 3, 2024
In an effort toward the implementation of #5256, this PR allows us to have a separately generated "derive" file for each crate.
This also eliminates a bunch of boilerplate when writing new "derive" generators and generally makes it more approachable.
@Boshen Boshen force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from e274018 to 6730088 Compare September 3, 2024 02:31
Boshen pushed a commit that referenced this pull request Sep 3, 2024
@Boshen Boshen force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 39db3e0 to 9c630dc Compare September 3, 2024 02:31
Boshen pushed a commit that referenced this pull request Sep 3, 2024
In an effort toward the implementation of #5256, this PR allows us to have a separately generated "derive" file for each crate.
This also eliminates a bunch of boilerplate when writing new "derive" generators and generally makes it more approachable.
@Boshen Boshen force-pushed the 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate branch from 6730088 to b47aca0 Compare September 3, 2024 02:37
@Boshen Boshen force-pushed the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch from 9c630dc to 59abf27 Compare September 3, 2024 02:37
Base automatically changed from 08-28-refactor_syntax_use_generate_derive_for_clonein_in_types_outside_of_oxc_ast_crate to main September 3, 2024 02:49
@graphite-app graphite-app bot merged commit 59abf27 into main Sep 3, 2024
24 of 25 checks passed
@graphite-app graphite-app bot deleted the 08-27-feat_ast_parser_add_optional_oxc_regular_expression_types_to_the_parser_and_ast branch September 3, 2024 02:52
@rzvxa rzvxa mentioned this pull request Sep 3, 2024
This was referenced Sep 5, 2024
Boshen added a commit that referenced this pull request Sep 6, 2024
## [0.27.0] - 2024-09-06

- bd820f9 semantic: [**BREAKING**] Remove
`SymbolTable::get_symbol_id_from_name` and
`SymbolTable::get_scope_id_from_name` (#5480) (overlookmotel)

- cba93f5 ast: [**BREAKING**] Add `ThisExpression` variants to
`JSXElementName` and `JSXMemberExpressionObject` (#5466) (overlookmotel)

- 87c5df2 ast: [**BREAKING**] Rename `Expression::without_parentheses`
(#5448) (overlookmotel)

### Features

- e8bdd12 allocator: Add `AsMut` impl for `Box` (#5515) (overlookmotel)
- 90facd3 ast: Add `ContentHash` trait; remove noop `Hash`
implementation from `Span` (#5451) (rzvxa)
- 23285f4 ast: Add `ContentEq` trait. (#5427) (rzvxa)
- 59abf27 ast, parser: Add `oxc_regular_expression` types to the parser
and AST. (#5256) (rzvxa)
- 68a1c01 ast_tools: Add dedicated `Derive` trait. (#5278) (rzvxa)
- c782916 codegen: Print `type_parameters` in `TaggedTemplateExpression`
(#5438) (Dunqing)
- 4cb63fe index: Impl rayon related to trait for IndexVec (#5421)
(IWANABETHATGUY)
- ba4b68c minifier: Remove parenthesized expression for dce (#5439)
(Boshen)
- ed8ab6d oxc: Conditional expose `oxc_cfg` in `oxc` crate (#5524)
(IWANABETHATGUY)
- 91b39c4 oxc_diagnostic: Impl DerefMut for OxcDiagnostic (#5474)
(IWANABETHATGUY)
- 10279f5 parser: Add syntax error for hyphen in `JSXMemberExpression`
`<Foo.bar-baz />` (#5440) (Boshen)
- 0f50b1e semantic: Check for initializers in ambient
`VariableDeclaration`s (#5463) (DonIsaac)
- 62f7fff semantic: Check for non-declared, non-abstract object
accessors without bodies (#5461) (DonIsaac)
- 5407143 semantic: Check for non-declared, non-abstract class accessors
without bodies (#5460) (DonIsaac)
- 052e94c semantic: Check for parameter properties in constructor
overloads (#5459) (DonIsaac)
- 32d4bbb transformer: Add `TransformOptions::enable_all` method (#5495)
(Boshen)
- c59d8b3 transformer: Support all /regex/ to `new RegExp` transforms
(#5387) (Dunqing)
- cedf7a4 xtask: Impl `as_ast_kind` method for each variant (#5491)
(IWANABETHATGUY)

### Bug Fixes

- 0df1d9d ast, codegen, linter: Panics in fixers. (#5431) (rzvxa)
- fce549e diagnostics: Ignore `Interrupted` and `BrokenPipe` errors
while printing (#5526) (Boshen)
- ea7a52f napi/transform: Fix test (Boshen)
- 9b984b3 regex: Panic on displaying surrogated `UnicodeEscape`
characters. (#5469) (rzvxa)
- 88b7ddb regular_expression: Handle unterminated character class
(#5523) (leaysgur)
- 7a797ac semantic: Incorrect reference when `MemberExpression` used in
`TSPropertySignature` (#5525) (Dunqing)
- d8b9909 semantic: `IdentifierReference` within `TSPropertySignature`
cannot reference type-only import binding (#5441) (Dunqing)
- 8f9627d transformer: RegExp transform do not transform invalid regexps
(#5494) (overlookmotel)
- 2060efc transformer: RegExp transform don't transform all RegExps
(#5486) (overlookmotel)
- cfe5497 transformer: Do not create double reference in JSX transform
(#5414) (overlookmotel)
- 0617249 transformer/nullish-coalescing-operator: Incorrect reference
flags (#5408) (Dunqing)
- 0eb32a6 traverse: Invalid variable name generated by
`generate_uid_based_on_node` (#5407) (Dunqing)- b96bea4 Add back
lifetime (#5507) (IWANABETHATGUY)

### Performance

- bfabd8f syntax: Further optimize `is_identifier_name` (#5426)
(overlookmotel)
- aeda84f syntax: Optimize `is_identifier_name` (#5425) (overlookmotel)
- ed8937e transformer: Memoize rope instance (#5518) (Dunqing)
- bfab091 transformer: Store needed options only on `RegExp` (#5484)
(overlookmotel)
- b4765af transformer: Pre-calculate if unsupported patterns in RegExp
transform (#5483) (overlookmotel)
- 182ab91 transformer: Pre-calculate unsupported flags in RegExp
transform (#5482) (overlookmotel)

### Documentation

- 64db1b4 ast: Clarify docs for `RegExpPattern` (#5497) (overlookmotel)
- 3f204a9 span: Update docs about `ContentEq` `Vec` comparison speed
(#5478) (overlookmotel)- 00511fd Use `oxc_index` instead of `index_vec`
in doc comments (#5423) (IWANABETHATGUY)

### Refactor

- 9f6e0ed ast: Simplify `ContentEq` trait definition. (#5468) (rzvxa)
- a43e951 ast: Use loop instead of recursion (#5447) (overlookmotel)
- 2224cc4 ast: Renumber `JSXMemberExpressionObject` discriminants
(#5464) (overlookmotel)
- a952c47 ast: Use loop not recursion (#5449) (overlookmotel)
- d9d7e7c ast: Remove `IdentifierName` from `TSThisParameter` (#5327)
(overlookmotel)
- ccc8a27 ast, ast_tools: Use full method path for generated derives
trait calls. (#5462) (rzvxa)
- fdb8857 linter: Use "parsed pattern" in `no_div_regex` rule. (#5417)
(rzvxa)
- e7bd49d regular_expression: Correct typo (#5429) (overlookmotel)
- e4ed41d semantic: Change the reference flag to `ReferenceFlags::Type`
if it is used within a `TSTypeQuery` (#5444) (Dunqing)
- 94a6ac6 span: Use `Hasher` from `std` (#5476) (overlookmotel)
- b47aca0 syntax: Use `generate_derive` for `CloneIn` in types outside
of `oxc_ast` crate. (#5280) (rzvxa)
- a96866d transformer: Re-order imports (#5499) (overlookmotel)
- 6abde0a transformer: Clarify match in RegExp transform (#5498)
(overlookmotel)
- 09c522a transformer: RegExp transform report pattern parsing errors
(#5496) (overlookmotel)
- dd19823 transformer: RegExp transform do not take ownership of
`Pattern` then reallocate it (#5492) (overlookmotel)
- 2514cc9 transformer/react: Move all entry points to implementation of
Traverse trait (#5473) (Dunqing)
- c984219 transformer/typescript: Move all entry points to
implementation of Traverse trait (#5422) (Dunqing)

### Styling

- 2a43fa4 linter: Introduce the writing style from PR #5491 and reduce
the if nesting (#5512) (dalaoshu)

### Testing

- 340b535 linter/no-unused-vars: Arrow functions in tagged templates
(#5510) (Don Isaac)

Co-authored-by: Boshen <[email protected]>
@oxc-bot oxc-bot mentioned this pull request Sep 7, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0-merge Merge with Graphite Merge Queue A-ast Area - AST A-ast-tools Area - AST tools A-codegen Area - Code Generation A-linter Area - Linter A-parser Area - Parser A-prettier Area - Prettier
Projects
None yet
Development

Successfully merging this pull request may close these issues.

parser: add regex AST node
3 participants