gherkin
Version:
Gherkin parser
29 lines (22 loc) • 673 B
JavaScript
function AstNode (ruleType) {
this.ruleType = ruleType;
this._subItems = {};
}
AstNode.prototype.add = function (ruleType, obj) {
var items = this._subItems[ruleType];
if(items === undefined) this._subItems[ruleType] = items = [];
items.push(obj);
}
AstNode.prototype.getSingle = function (ruleType) {
return (this._subItems[ruleType] || [])[0];
}
AstNode.prototype.getItems = function (ruleType) {
return this._subItems[ruleType] || [];
}
AstNode.prototype.getToken = function (tokenType) {
return this.getSingle(tokenType);
}
AstNode.prototype.getTokens = function (tokenType) {
return this._subItems[tokenType] || [];
}
module.exports = AstNode;