Fix bugs in XQuery lexer.
This commit is contained in:
parent
f65d123dc8
commit
39f2ad34a7
3 changed files with 1143 additions and 1131 deletions
|
|
@ -145,17 +145,23 @@ define(function(require, exports, module){
|
|||
};
|
||||
|
||||
function setValue(node, begin, end) {
|
||||
|
||||
var e = end - cursor;
|
||||
ptr.value = remains.substring(0, e);
|
||||
var sl = line;
|
||||
var sc = line === 0 ? lineCursor : lineCursor - 1;
|
||||
var el = sl + ptr.value.split("\n").length - 1;
|
||||
var lastIdx = ptr.value.lastIndexOf("\n");
|
||||
var ec = lastIdx === -1 ? sc + ptr.value.length : ptr.value.substring(lastIdx).length;
|
||||
remains = remains.substring(e);
|
||||
cursor = end;
|
||||
lineCursor = lastIdx === -1 ? lineCursor + (ptr.value.length) : ec;
|
||||
line = el;
|
||||
|
||||
var sl = line;
|
||||
var sc = lineCursor;
|
||||
var el = sl + ptr.value.split("\n").length - 1;
|
||||
var lastIdx = ptr.value.lastIndexOf("\n");
|
||||
var ec = lastIdx === -1 ? sc + ptr.value.length : ptr.value.substring(lastIdx + 1).length;
|
||||
// ec = ec === 0 ? 0 : ec - 1;
|
||||
|
||||
line = el;
|
||||
//lineCursor = ec === 0 ? 0 : ec;
|
||||
lineCursor = ec;
|
||||
|
||||
ptr.pos.sl = sl;
|
||||
ptr.pos.sc = sc;
|
||||
ptr.pos.el = el;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@ start ::= '<![CDATA['
|
|||
| ","
|
||||
| "."
|
||||
| ";"
|
||||
| ":"
|
||||
| "!"
|
||||
| "|"
|
||||
| Annotation
|
||||
| ModuleDecl
|
||||
| OptionDecl
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue