text: "use strict";
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  exports.version = exports.lineBreakG = exports.lineBreak = exports.isNewLine = exports.Token = exports.isIdentifierStart = exports.isIdentifierChar = exports.tokContexts = exports.TokContext = exports.tokTypes = exports.TokenType = exports.Node = exports.getLineInfo = exports.SourceLocation = exports.Position = exports.defaultOptions = exports.plugins = exports.Parser = undefined;
  
  var _state = require("./state");
  
  Object.defineProperty(exports, "Parser", {
    enumerable: true,
    get: function get() {
      return _state.Parser;
    }
  });
  Object.defineProperty(exports, "plugins", {
    enumerable: true,
    get: function get() {
      return _state.plugins;
    }
  });
  
  var _options = require("./options");
  
  Object.defineProperty(exports, "defaultOptions", {
    enumerable: true,
    get: function get() {
      return _options.defaultOptions;
    }
  });
  
  var _locutil = require("./locutil");
  
  Object.defineProperty(exports, "Position", {
    enumerable: true,
    get: function get() {
      return _locutil.Position;
    }
  });
  Object.defineProperty(exports, "SourceLocation", {
    enumerable: true,
    get: function get() {
      return _locutil.SourceLocation;
    }
  });
  Object.defineProperty(exports, "getLineInfo", {
    enumerable: true,
    get: function get() {
      return _locutil.getLineInfo;
    }
  });
  
  var _node = require("./node");
  
  Object.defineProperty(exports, "Node", {
    enumerable: true,
    get: function get() {
      return _node.Node;
    }
  });
  
  var _tokentype = require("./tokentype");
  
  Object.defineProperty(exports, "TokenType", {
    enumerable: true,
    get: function get() {
      return _tokentype.TokenType;
    }
  });
  Object.defineProperty(exports, "tokTypes", {
    enumerable: true,
    get: function get() {
      return _tokentype.types;
    }
  });
  
  var _tokencontext = require("./tokencontext");
  
  Object.defineProperty(exports, "TokContext", {
    enumerable: true,
    get: function get() {
      return _tokencontext.TokContext;
    }
  });
  Object.defineProperty(exports, "tokContexts", {
    enumerable: true,
    get: function get() {
      return _tokencontext.types;
    }
  });
  
  var _identifier = require("./identifier");
  
  Object.defineProperty(exports, "isIdentifierChar", {
    enumerable: true,
    get: function get() {
      return _identifier.isIdentifierChar;
    }
  });
  Object.defineProperty(exports, "isIdentifierStart", {
    enumerable: true,
    get: function get() {
      return _identifier.isIdentifierStart;
    }
  });
  
  var _tokenize = require("./tokenize");
  
  Object.defineProperty(exports, "Token", {
    enumerable: true,
    get: function get() {
      return _tokenize.Token;
    }
  });
  
  var _whitespace = require("./whitespace");
  
  Object.defineProperty(exports, "isNewLine", {
    enumerable: true,
    get: function get() {
      return _whitespace.isNewLine;
    }
  });
  Object.defineProperty(exports, "lineBreak", {
    enumerable: true,
    get: function get() {
      return _whitespace.lineBreak;
    }
  });
  Object.defineProperty(exports, "lineBreakG", {
    enumerable: true,
    get: function get() {
      return _whitespace.lineBreakG;
    }
  });
  exports.parse = parse;
  exports.parseExpressionAt = parseExpressionAt;
  exports.tokenizer = tokenizer;
  
  require("./parseutil");
  
  require("./statement");
  
  require("./lval");
  
  require("./expression");
  
  require("./location");
  
  var version = exports.version = "2.7.0";
  
  // 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
  
  function parse(input, options) {
    return new _state.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.
  
  function parseExpressionAt(input, pos, options) {
    var p = new _state.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.
  
  function tokenizer(input, options) {
    return new _state.Parser(options, input);
  }