Oxc Parser for JavaScript and TypeScript
Performance
The following optimization techniques are used:
- AST is allocated in a memory arena (bumpalo) for fast AST drop
- [oxc_span::Span] offsets uses
u32
instead ofusize
- Scope binding, symbol resolution and complicated syntax errors are not done in the parser, they are delegated to the semantic analyzer
Usage
The parser has a minimal API with three inputs and one return struct ([ParserReturn]).
let parser_return = new.parse;
Example
https://github.com/Boshen/oxc/blob/main/crates/oxc_parser/examples/parser.rs
Visitor
See [oxc_ast::Visit] and [oxc_ast::VisitMut]
Visiting without a visitor
For ad-hoc tasks, the semantic analyzer can be used to get a parent pointing tree with untyped nodes, the nodes can be iterated through a sequential loop.
for node in semantic.nodes.iter