Make Whitespace._findToken private and add comments

This commit is contained in:
Jason 2016-01-19 21:46:22 +08:00
parent ed227a6c8a
commit 235d8397fd

View File

@ -17,7 +17,7 @@ export default class Whitespace {
let endToken; let endToken;
let tokens = this.tokens; let tokens = this.tokens;
let index = this.findToken(token => token.start - node.start, 0, tokens.length); let index = this._findToken(token => token.start - node.start, 0, tokens.length);
if (typeof index === "number") { if (typeof index === "number") {
while (index && node.start === tokens[index - 1].start) --index; while (index && node.start === tokens[index - 1].start) --index;
startToken = tokens[index - 1]; startToken = tokens[index - 1];
@ -36,7 +36,7 @@ export default class Whitespace {
let endToken; let endToken;
let tokens = this.tokens; let tokens = this.tokens;
let index = this.findToken(token => token.end - node.end, 0, tokens.length); let index = this._findToken(token => token.end - node.end, 0, tokens.length);
if (typeof index === "number") { if (typeof index === "number") {
while (index && node.end === tokens[index - 1].end) --index; while (index && node.end === tokens[index - 1].end) --index;
startToken = tokens[index]; startToken = tokens[index];
@ -57,18 +57,6 @@ export default class Whitespace {
} }
} }
findToken(test, start, end) {
const middle = (start + end) >>> 1;
const match = test(this.tokens[middle]);
if (match < 0 && end > middle) {
return this.findToken(test, middle + 1, end);
} else if (match > 0 && start < middle) {
return this.findToken(test, start, middle);
} else if (match === 0) {
return middle;
}
}
/** /**
* Count all the newlines between two tokens. * Count all the newlines between two tokens.
*/ */
@ -89,4 +77,20 @@ export default class Whitespace {
return lines; return lines;
} }
/**
* Find a token between start and end.
*/
_findToken(test, start, end) {
const middle = (start + end) >>> 1;
const match = test(this.tokens[middle]);
if (match < 0 && end > middle) {
return this._findToken(test, middle + 1, end);
} else if (match > 0 && start < middle) {
return this._findToken(test, start, middle);
} else if (match === 0) {
return middle;
}
}
} }