combinators = require('./combinators'), operators = require('./operators'); function regExpSource (re) { return re.source; } function regExpUnion (list) { return new RegExp('(' + list.map(regExpSource).join('|') + ')'); } utils.extend(exports, { UNIVERSAL: /\*/, GROUP_SEPARATOR: /\s*,\s*/, WHITESPACE: /\s*/, IDENTIFIER: /[A-Za-z_$][A-Za-z0-9_$\-]+/, ATTRIBUTE_START: /\[\s*/, ATTRIBUTE_END: /\s*\]/, QUOTES: /["']/, }); Object.defineProperties(exports, { TYPE: { value: new RegExp('(' + exports.IDENTIFIER.source + ')'), enumerable: true }, ID: { value: new RegExp('#(' + exports.IDENTIFIER.source + ')'), enumerable: true }, MEMBER: {
updateAttributes: function (name, obj) { utils.extend(this.item.data, obj); return this; },
this.traverser = this.traverser || new ObjectTraverse({ typeKey: esprima ? 'type' : opts.typeKey, childKeys: esprima ? require('./esprima/node-child-keys') : opts.childKeys }); (this.queryEngine = this.queryEngine || new QueryEngine({ idKey: opts.idKey, typeKey: esprima ? 'type' : opts.typeKey, typeAliases: opts.esprima ? require('./esprima/type-aliases') : opts.typeAliases })).removeAllListeners(); (this.results = this.results || []).length = 0; return this; } }); //--------------------------------------------------------------------------- // Exports //--------------------------------------------------------------------------- module.exports = utils.extend(Eligo, { Query: Query, Path: Path });