57 lines
1.2 KiB
Markdown
57 lines
1.2 KiB
Markdown
|
# Debugging 2022-02-12...
|
||
|
## apb.js
|
||
|
```javascript
|
||
|
var XQLint = require('../lib/xqlint').XQLint;
|
||
|
var source = 'let $v1 := 1\nlet $foo := $v1\nreturn $v1 + $';
|
||
|
var linter = new XQLint(source);
|
||
|
var lines = source.split('\n');
|
||
|
var pos = { line: lines.length -1 , col: lines[lines.length - 1].length };
|
||
|
var proposals = linter.getCompletions(pos);
|
||
|
console.log(proposals);
|
||
|
```
|
||
|
------
|
||
|
|
||
|
## completer.js/getCompletions
|
||
|
|
||
|
### wcandillon /xqlint
|
||
|
```javascript
|
||
|
ast.pos={sl: 0, sc: 0, el: 2, ec: 14}
|
||
|
pos={col:14,line:2}
|
||
|
|
||
|
node=TreeOps.findNode(ast, pos);
|
||
|
// node{name: 'token', value: "$"}
|
||
|
|
||
|
sctx = TreeOps.findNode(rootSctx, pos);
|
||
|
```
|
||
|
### quodatum
|
||
|
```javascript
|
||
|
pos={col:14,line:2}
|
||
|
ast.pos={sl: 0, sc: 0, el: 2, ec: **10**}
|
||
|
ast.name=XQuery
|
||
|
```
|
||
|
Therefore error is in XQlint
|
||
|
## XQLint
|
||
|
```javascript
|
||
|
// save source, ast=null
|
||
|
var h = new JSONParseTreeHandler(source);
|
||
|
|
||
|
// set source and handler
|
||
|
var parser = new XQueryParser(source, h);
|
||
|
try {
|
||
|
// attempt to parse startNonterminal "XQuery"
|
||
|
parser.parse_XQuery();
|
||
|
}catch(e){
|
||
|
syntaxError = true;
|
||
|
h.closeParseTree();
|
||
|
}
|
||
|
ast = h.getParseTree();
|
||
|
```
|
||
|
|
||
|
### wcandillon /xqlint
|
||
|
```javascript
|
||
|
ast.pos={sl: 0, sc: 0, el: 2, ec: 14}
|
||
|
```
|
||
|
### quodatum
|
||
|
```javascript
|
||
|
pos={col:14,line:2}
|
||
|
```
|