Improvements in the XQuery parse tree handler API.

This commit is contained in:
William Candillon 2013-02-25 15:59:33 +01:00
commit 148f4dc8c4

View file

@ -65,7 +65,7 @@ define(function(require, exports, module){
}
}
function popNode(name, end){
function popNode(){
if(ptr.children.length > 0) {
var s = ptr.children[0];
@ -111,7 +111,14 @@ define(function(require, exports, module){
}
}
}
this.closeParseTree = function() {
while(ptr.getParent !== null) {
popNode();
}
popNode();
};
this.peek = function() {
return ptr;
};
@ -127,21 +134,21 @@ define(function(require, exports, module){
};
this.endNonterminal = function(name, end) {
popNode(name, end);
popNode();
};
this.terminal = function(name, begin, end) {
name = (name.substring(0, 1) === "'" && name.substring(name.length - 1) === "'") ? "TOKEN" : name;
pushNode(name, begin);
setValue(ptr, begin, end);
popNode(name, end);
popNode();
};
this.whitespace = function(begin, end) {
var name = "WS";
pushNode(name, begin);
setValue(ptr, begin, end);
popNode(name, end);
popNode();
};
function setValue(node, begin, end) {