Spaces:
Runtime error
Runtime error
File size: 1,570 Bytes
7d73cf2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.isComma = exports.TokenStore = void 0;
class TokenStore {
constructor(tokens) {
this.tokens = tokens;
}
add(token) {
this.tokens.push(token);
}
findIndexByOffset(offset) {
return this.tokens.findIndex((token) => token.range[0] <= offset && offset < token.range[1]);
}
findTokenByOffset(offset) {
return this.tokens[this.findIndexByOffset(offset)];
}
getFirstToken(nodeOrToken) {
return this.findTokenByOffset(nodeOrToken.range[0]);
}
getLastToken(nodeOrToken) {
return this.findTokenByOffset(nodeOrToken.range[1] - 1);
}
getTokenBefore(nodeOrToken, filter) {
const tokenIndex = this.findIndexByOffset(nodeOrToken.range[0]);
for (let index = tokenIndex - 1; index >= 0; index--) {
const token = this.tokens[index];
if (!filter || filter(token)) {
return token;
}
}
return null;
}
getTokenAfter(nodeOrToken, filter) {
const tokenIndex = this.findIndexByOffset(nodeOrToken.range[0]);
for (let index = tokenIndex + 1; index < this.tokens.length; index++) {
const token = this.tokens[index];
if (!filter || filter(token)) {
return token;
}
}
return null;
}
}
exports.TokenStore = TokenStore;
function isComma(token) {
return token.type === "Punctuator" && token.value === ",";
}
exports.isComma = isComma;
|