1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- // Acorn is a tiny, fast JavaScript parser written in JavaScript.
- //
- // Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and
- // various contributors and released under an MIT license.
- //
- // Git repositories for Acorn are available at
- //
- // http://marijnhaverbeke.nl/git/acorn
- // https://github.com/ternjs/acorn.git
- //
- // Please use the [github bug tracker][ghbt] to report issues.
- //
- // [ghbt]: https://github.com/ternjs/acorn/issues
- //
- // This file defines the main parser interface. The library also comes
- // with a [error-tolerant parser][dammit] and an
- // [abstract syntax tree walker][walk], defined in other files.
- //
- // [dammit]: acorn_loose.js
- // [walk]: util/walk.js
- import {Parser} from "./state"
- import "./parseutil"
- import "./statement"
- import "./lval"
- import "./expression"
- import "./location"
- export {Parser, plugins} from "./state"
- export {defaultOptions} from "./options"
- export {Position, SourceLocation, getLineInfo} from "./locutil"
- export {Node} from "./node"
- export {TokenType, types as tokTypes, keywords as keywordTypes} from "./tokentype"
- export {TokContext, types as tokContexts} from "./tokencontext"
- export {isIdentifierChar, isIdentifierStart} from "./identifier"
- export {Token} from "./tokenize"
- export {isNewLine, lineBreak, lineBreakG} from "./whitespace"
- export const version = "4.0.11"
- // The main exported interface (under `self.acorn` when in the
- // browser) is a `parse` function that takes a code string and
- // returns an abstract syntax tree as specified by [Mozilla parser
- // API][api].
- //
- // [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
- export function parse(input, options) {
- return new Parser(options, input).parse()
- }
- // This function tries to parse a single expression at a given
- // offset in a string. Useful for parsing mixed-language formats
- // that embed JavaScript expressions.
- export function parseExpressionAt(input, pos, options) {
- let p = new Parser(options, input, pos)
- p.nextToken()
- return p.parseExpression()
- }
- // Acorn is organized as a tokenizer and a recursive-descent parser.
- // The `tokenizer` export provides an interface to the tokenizer.
- export function tokenizer(input, options) {
- return new Parser(options, input)
- }
- // This is a terrible kludge to support the existing, pre-ES6
- // interface where the loose parser module retroactively adds exports
- // to this module.
- export let parse_dammit, LooseParser, pluginsLoose
- export function addLooseExports(parse, Parser, plugins) {
- parse_dammit = parse
- LooseParser = Parser
- pluginsLoose = plugins
- }
|