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) {
|
||||
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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue