github-users-parser
Version:
Antlr4 generated GITHUB_USERS parser
39 lines (38 loc) • 1.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultVisitor = void 0;
const tree_1 = require("antlr4ts/tree");
class DefaultVisitor extends tree_1.AbstractParseTreeVisitor {
constructor(emailAddresses) {
super();
this.emailAddresses = new Set(emailAddresses);
this.owners = new Set();
this.lookup = new Map();
console.log(`emailAddresses: ${emailAddresses}`);
}
defaultResult() { }
visitFile(ctx) {
super.visitChildren(ctx);
}
hasEmailAddressCaseInsensitive(email) {
for (const emailAddress of this.emailAddresses) {
if (emailAddress.toLowerCase() === email.toLowerCase()) {
return true;
}
}
return false;
}
visitEntry(ctx) {
const email = ctx.EMAIL().text;
const handle = ctx.GITHUB_HANDLE().text;
if (this.hasEmailAddressCaseInsensitive(email)) {
console.log(`email: ${email}, handle: ${handle}`);
this.owners.add(handle);
}
this.lookup.set(email.toLowerCase(), handle);
}
getOwners() {
return Array.from(this.owners);
}
}
exports.DefaultVisitor = DefaultVisitor;