| 99 | class Parser extends EventEmitter { |
| 100 | // TODO: docs |
| 101 | constructor(builderInstance, visitorInstance, walkerInstance) { |
| 102 | super(); |
| 103 | |
| 104 | this.clear(); |
| 105 | |
| 106 | this._astBuilder = builderInstance || new (require('jsdoc/src/astbuilder').AstBuilder)(); |
| 107 | this._visitor = visitorInstance || new (require('jsdoc/src/visitor').Visitor)(); |
| 108 | this._walker = walkerInstance || new (require('jsdoc/src/walker').Walker)(); |
| 109 | |
| 110 | this._visitor.setParser(this); |
| 111 | |
| 112 | Object.defineProperties(this, { |
| 113 | astBuilder: { |
| 114 | get() { |
| 115 | return this._astBuilder; |
| 116 | } |
| 117 | }, |
| 118 | visitor: { |
| 119 | get() { |
| 120 | return this._visitor; |
| 121 | } |
| 122 | }, |
| 123 | walker: { |
| 124 | get() { |
| 125 | return this._walker; |
| 126 | } |
| 127 | } |
| 128 | }); |
| 129 | } |
| 130 | |
| 131 | // TODO: docs |
| 132 | clear() { |