Improvements in the XQuery parse tree handler API.
This commit is contained in:
parent
5d899eed55
commit
148f4dc8c4
1 changed files with 12 additions and 5 deletions
|
|
@ -65,7 +65,7 @@ define(function(require, exports, module){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function popNode(name, end){
|
function popNode(){
|
||||||
|
|
||||||
if(ptr.children.length > 0) {
|
if(ptr.children.length > 0) {
|
||||||
var s = ptr.children[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() {
|
this.peek = function() {
|
||||||
return ptr;
|
return ptr;
|
||||||
};
|
};
|
||||||
|
|
@ -127,21 +134,21 @@ define(function(require, exports, module){
|
||||||
};
|
};
|
||||||
|
|
||||||
this.endNonterminal = function(name, end) {
|
this.endNonterminal = function(name, end) {
|
||||||
popNode(name, end);
|
popNode();
|
||||||
};
|
};
|
||||||
|
|
||||||
this.terminal = function(name, begin, end) {
|
this.terminal = function(name, begin, end) {
|
||||||
name = (name.substring(0, 1) === "'" && name.substring(name.length - 1) === "'") ? "TOKEN" : name;
|
name = (name.substring(0, 1) === "'" && name.substring(name.length - 1) === "'") ? "TOKEN" : name;
|
||||||
pushNode(name, begin);
|
pushNode(name, begin);
|
||||||
setValue(ptr, begin, end);
|
setValue(ptr, begin, end);
|
||||||
popNode(name, end);
|
popNode();
|
||||||
};
|
};
|
||||||
|
|
||||||
this.whitespace = function(begin, end) {
|
this.whitespace = function(begin, end) {
|
||||||
var name = "WS";
|
var name = "WS";
|
||||||
pushNode(name, begin);
|
pushNode(name, begin);
|
||||||
setValue(ptr, begin, end);
|
setValue(ptr, begin, end);
|
||||||
popNode(name, end);
|
popNode();
|
||||||
};
|
};
|
||||||
|
|
||||||
function setValue(node, begin, end) {
|
function setValue(node, begin, end) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue