1 // Acorn is a tiny, fast JavaScript parser written in JavaScript.
3 // Acorn was written by Marijn Haverbeke, Ingvar Stepanyan, and
4 // various contributors and released under an MIT license.
6 // Git repositories for Acorn are available at
8 // http://marijnhaverbeke.nl/git/acorn
9 // https://github.com/acornjs/acorn.git
11 // Please use the [github bug tracker][ghbt] to report issues.
13 // [ghbt]: https://github.com/acornjs/acorn/issues
15 // [walk]: util/walk.js
17 import {Parser} from "./state.js"
18 import "./parseutil.js"
19 import "./statement.js"
21 import "./expression.js"
22 import "./location.js"
25 import {defaultOptions} from "./options.js"
26 import {Position, SourceLocation, getLineInfo} from "./locutil.js"
27 import {Node} from "./node.js"
28 import {TokenType, types as tokTypes, keywords as keywordTypes} from "./tokentype.js"
29 import {TokContext, types as tokContexts} from "./tokencontext.js"
30 import {isIdentifierChar, isIdentifierStart} from "./identifier.js"
31 import {Token} from "./tokenize.js"
32 import {isNewLine, lineBreak, lineBreakG, nonASCIIwhitespace} from "./whitespace.js"
34 export const version = "8.7.0"
78 // The main exported interface (under `self.acorn` when in the
79 // browser) is a `parse` function that takes a code string and
80 // returns an abstract syntax tree as specified by [Mozilla parser
83 // [api]: https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API
85 export function parse(input, options) {
86 return Parser.parse(input, options)
89 // This function tries to parse a single expression at a given
90 // offset in a string. Useful for parsing mixed-language formats
91 // that embed JavaScript expressions.
93 export function parseExpressionAt(input, pos, options) {
94 return Parser.parseExpressionAt(input, pos, options)
97 // Acorn is organized as a tokenizer and a recursive-descent parser.
98 // The `tokenizer` export provides an interface to the tokenizer.
100 export function tokenizer(input, options) {
101 return Parser.tokenizer(input, options)