treebank-parser
Version:
A simple parser for treebanks stored in S-Expressions
35 lines (26 loc) • 948 B
JavaScript
exports.get_node = function(tree, properties) {
var node = tree;
for (var i=0; i<properties.length; i++) {
node = node[properties[i]];
}
return node;
};
exports.set_tree_value = function(tree, properties, value) {
var property = properties[properties.length-1];
var node = exports.get_node(tree, properties.slice(0, properties.length-1));
node[property] = value;
};
exports.get_property_name_for_duplicate = function(node, property_name) {
var property_count = 0, match_regexp = new RegExp('^' + property_name + '_\\d+$');
for (var property in node) {
if (node.hasOwnProperty(property) && match_regexp.exec(property)) {
property_count++;
}
}
var new_property_name = property_name + '_' + property_count;
return new_property_name;
};
exports.strip_duplicate_indicator = function(property_name) {
var stripped_property_name = property_name.replace(/_\d+$/, '');
return stripped_property_name;
};