parse-js 0.24.1

JavaScript parsing library
Documentation
use super::pattern::ParsePatternRules;
use super::ParseCtx;
use super::Parser;
use crate::ast::Node;
use crate::ast::Syntax;
use crate::error::SyntaxResult;
use crate::token::TokenType;

impl<'a> Parser<'a> {
  pub fn parse_top_level(&mut self) -> SyntaxResult<Node> {
    let ctx = ParseCtx {
      rules: ParsePatternRules {
        await_allowed: true,
        yield_allowed: true,
      },
    };
    let body = self.parse_stmts(ctx, TokenType::EOF)?;
    self.require(TokenType::EOF)?;
    let top_level_node = Node::new(self.source_range(), Syntax::TopLevel { body });
    Ok(top_level_node)
  }
}