parse_js/parse/
toplevel.rs1use super::pattern::ParsePatternRules;
2use super::ParseCtx;
3use super::Parser;
4use crate::ast::Node;
5use crate::ast::Syntax;
6use crate::error::SyntaxResult;
7use crate::token::TokenType;
8
9impl<'a> Parser<'a> {
10 pub fn parse_top_level(&mut self) -> SyntaxResult<Node> {
11 let ctx = ParseCtx {
12 rules: ParsePatternRules {
13 await_allowed: true,
14 yield_allowed: true,
15 },
16 };
17 let body = self.parse_stmts(ctx, TokenType::EOF)?;
18 self.require(TokenType::EOF)?;
19 let top_level_node = Node::new(self.source_range(), Syntax::TopLevel { body });
20 Ok(top_level_node)
21 }
22}