New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

github-users-parser

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github-users-parser - npm Package Compare versions

Comparing version
1.0.0
to
1.0.3
+15
dist/githubusers/DefaultVisitor.d.ts
import { AbstractParseTreeVisitor } from 'antlr4ts/tree';
import { FileContext, EntryContext } from './parsers/GITHUBUSERSParser';
import { GITHUBUSERSParserVisitor } from './parsers/GITHUBUSERSParserVisitor';
export declare class DefaultVisitor extends AbstractParseTreeVisitor<void> implements GITHUBUSERSParserVisitor<void> {
private emailAddresses;
private lookup;
private owners;
constructor(emailAddresses: string[]);
protected defaultResult(): void;
visitFile(ctx: FileContext): void;
private hasEmailAddressCaseInsensitive;
visitEntry(ctx: EntryContext): void;
getOwners(): string[];
}
//# sourceMappingURL=DefaultVisitor.d.ts.map
{"version":3,"file":"DefaultVisitor.d.ts","sourceRoot":"","sources":["../../githubusers/DefaultVisitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAE9E,qBAAa,cAAe,SAAQ,wBAAwB,CAAC,IAAI,CAAE,YAAW,wBAAwB,CAAC,IAAI,CAAC;IACxG,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAc;gBAEhB,cAAc,EAAE,MAAM,EAAE;IASpC,SAAS,CAAC,aAAa,IAAI,IAAI;IAE/B,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAIjC,OAAO,CAAC,8BAA8B;IAUtC,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAYnC,SAAS,IAAI,MAAM,EAAE;CAGxB"}
"use strict";
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;
import { AbstractParseTreeVisitor } from 'antlr4ts/tree';
import { GITHUBUSERSParserVisitor } from './GITHUBUSERSParserVisitor';
import { EntryContext, FileContext } from './GITHUBUSERSParser';
export declare class DefaultVisitor extends AbstractParseTreeVisitor<void> implements GITHUBUSERSParserVisitor<void> {
private emailAddresses;
private lookup;
private owners;
constructor(emailAddresses: string[]);
protected defaultResult(): void;
visitFile(ctx: FileContext): void;
private hasEmailAddressCaseInsensitive;
visitEntry(ctx: EntryContext): void;
getOwners(): string[];
}
//# sourceMappingURL=githubusers_visitor.d.ts.map
{"version":3,"file":"githubusers_visitor.d.ts","sourceRoot":"","sources":["../../githubusers/githubusers_visitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEhE,qBAAa,cAAe,SAAQ,wBAAwB,CAAC,IAAI,CAAE,YAAW,wBAAwB,CAAC,IAAI,CAAC;IACxG,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,MAAM,CAAc;gBAEhB,cAAc,EAAE,MAAM,EAAE;IASpC,SAAS,CAAC,aAAa,IAAI,IAAI;IAE/B,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAIjC,OAAO,CAAC,8BAA8B;IAUtC,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;IAYnC,SAAS,IAAI,MAAM,EAAE;CAGxB"}
"use strict";
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;
import { ATN } from "antlr4ts/atn/ATN";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { Vocabulary } from "antlr4ts/Vocabulary";
export declare class GITHUBUSERSLexer extends Lexer {
static readonly WHITESPACE = 1;
static readonly NEWLINE = 2;
static readonly GITHUB_HANDLE = 3;
static readonly EMAIL = 4;
static readonly channelNames: string[];
static readonly modeNames: string[];
static readonly ruleNames: string[];
private static readonly _LITERAL_NAMES;
private static readonly _SYMBOLIC_NAMES;
static readonly VOCABULARY: Vocabulary;
get vocabulary(): Vocabulary;
constructor(input: CharStream);
get grammarFileName(): string;
get ruleNames(): string[];
get serializedATN(): string;
get channelNames(): string[];
get modeNames(): string[];
static readonly _serializedATN: string;
static __ATN: ATN;
static get _ATN(): ATN;
}
//# sourceMappingURL=GITHUBUSERSLexer.d.ts.map
{"version":3,"file":"GITHUBUSERSLexer.d.ts","sourceRoot":"","sources":["../../githubusers/GITHUBUSERSLexer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,qBAAa,gBAAiB,SAAQ,KAAK;IAC1C,gBAAuB,UAAU,KAAK;IACtC,gBAAuB,OAAO,KAAK;IACnC,gBAAuB,aAAa,KAAK;IACzC,gBAAuB,KAAK,KAAK;IAGjC,gBAAuB,YAAY,EAAE,MAAM,EAAE,CAE3C;IAGF,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAExC;IAEF,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAExC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CACpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAErC;IACF,gBAAuB,UAAU,EAAE,UAAU,CAA6F;IAI1I,IAAW,UAAU,IAAI,UAAU,CAElC;gBAIW,KAAK,EAAE,UAAU;IAM7B,IAAW,eAAe,IAAI,MAAM,CAAkC;IAGtE,IAAW,SAAS,IAAI,MAAM,EAAE,CAAuC;IAGvE,IAAW,aAAa,IAAI,MAAM,CAA4C;IAG9E,IAAW,YAAY,IAAI,MAAM,EAAE,CAA0C;IAG7E,IAAW,SAAS,IAAI,MAAM,EAAE,CAAuC;IAEvE,gBAAuB,cAAc,EAAE,MAAM,CA4BA;IAC7C,OAAc,KAAK,EAAE,GAAG,CAAC;IACzB,WAAkB,IAAI,IAAI,GAAG,CAM5B;CAED"}
"use strict";
// Generated from GITHUBUSERSLexer.g4 by ANTLR 4.9.0-SNAPSHOT
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GITHUBUSERSLexer = void 0;
const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
const Lexer_1 = require("antlr4ts/Lexer");
const LexerATNSimulator_1 = require("antlr4ts/atn/LexerATNSimulator");
const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl");
const Utils = __importStar(require("antlr4ts/misc/Utils"));
class GITHUBUSERSLexer extends Lexer_1.Lexer {
// @Override
// @NotNull
get vocabulary() {
return GITHUBUSERSLexer.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
constructor(input) {
super(input);
this._interp = new LexerATNSimulator_1.LexerATNSimulator(GITHUBUSERSLexer._ATN, this);
}
// @Override
get grammarFileName() { return "GITHUBUSERSLexer.g4"; }
// @Override
get ruleNames() { return GITHUBUSERSLexer.ruleNames; }
// @Override
get serializedATN() { return GITHUBUSERSLexer._serializedATN; }
// @Override
get channelNames() { return GITHUBUSERSLexer.channelNames; }
// @Override
get modeNames() { return GITHUBUSERSLexer.modeNames; }
static get _ATN() {
if (!GITHUBUSERSLexer.__ATN) {
GITHUBUSERSLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSLexer._serializedATN));
}
return GITHUBUSERSLexer.__ATN;
}
}
exports.GITHUBUSERSLexer = GITHUBUSERSLexer;
GITHUBUSERSLexer.WHITESPACE = 1;
GITHUBUSERSLexer.NEWLINE = 2;
GITHUBUSERSLexer.GITHUB_HANDLE = 3;
GITHUBUSERSLexer.EMAIL = 4;
// tslint:disable:no-trailing-whitespace
GITHUBUSERSLexer.channelNames = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
];
// tslint:disable:no-trailing-whitespace
GITHUBUSERSLexer.modeNames = [
"DEFAULT_MODE",
];
GITHUBUSERSLexer.ruleNames = [
"WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL", "LOCAL_PART", "DOMAIN",
];
GITHUBUSERSLexer._LITERAL_NAMES = [];
GITHUBUSERSLexer._SYMBOLIC_NAMES = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
GITHUBUSERSLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(GITHUBUSERSLexer._LITERAL_NAMES, GITHUBUSERSLexer._SYMBOLIC_NAMES, []);
GITHUBUSERSLexer._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x06;\b\x01\x04" +
"\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
"\x07\t\x07\x03\x02\x06\x02\x11\n\x02\r\x02\x0E\x02\x12\x03\x02\x03\x02" +
"\x03\x03\x06\x03\x18\n\x03\r\x03\x0E\x03\x19\x03\x03\x03\x03\x03\x04\x03" +
"\x04\x06\x04 \n\x04\r\x04\x0E\x04!\x03\x05\x03\x05\x03\x05\x03\x05\x03" +
"\x06\x06\x06)\n\x06\r\x06\x0E\x06*\x03\x07\x06\x07.\n\x07\r\x07\x0E\x07" +
"/\x03\x07\x03\x07\x06\x074\n\x07\r\x07\x0E\x075\x06\x078\n\x07\r\x07\x0E" +
"\x079\x02\x02\x02\b\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02" +
"\x02\r\x02\x02\x03\x02\x07\x04\x02\v\v\"\"\x04\x02\f\f\x0F\x0F\x07\x02" +
"//2;C\\aac|\b\x02--/02;C\\aac|\x06\x02//2;C\\c|\x02?\x02\x03\x03\x02\x02" +
"\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02" +
"\x02\x03\x10\x03\x02\x02\x02\x05\x17\x03\x02\x02\x02\x07\x1D\x03\x02\x02" +
"\x02\t#\x03\x02\x02\x02\v(\x03\x02\x02\x02\r-\x03\x02\x02\x02\x0F\x11" +
"\t\x02\x02\x02\x10\x0F\x03\x02\x02\x02\x11\x12\x03\x02\x02\x02\x12\x10" +
"\x03\x02\x02\x02\x12\x13\x03\x02\x02\x02\x13\x14\x03\x02\x02\x02\x14\x15" +
"\b\x02\x02\x02\x15\x04\x03\x02\x02\x02\x16\x18\t\x03\x02\x02\x17\x16\x03" +
"\x02\x02\x02\x18\x19\x03\x02\x02\x02\x19\x17\x03\x02\x02\x02\x19\x1A\x03" +
"\x02\x02\x02\x1A\x1B\x03\x02\x02\x02\x1B\x1C\b\x03\x02\x02\x1C\x06\x03" +
"\x02\x02\x02\x1D\x1F\x07B\x02\x02\x1E \t\x04\x02\x02\x1F\x1E\x03\x02\x02" +
"\x02 !\x03\x02\x02\x02!\x1F\x03\x02\x02\x02!\"\x03\x02\x02\x02\"\b\x03" +
"\x02\x02\x02#$\x05\v\x06\x02$%\x07B\x02\x02%&\x05\r\x07\x02&\n\x03\x02" +
"\x02\x02\')\t\x05\x02\x02(\'\x03\x02\x02\x02)*\x03\x02\x02\x02*(\x03\x02" +
"\x02\x02*+\x03\x02\x02\x02+\f\x03\x02\x02\x02,.\t\x06\x02\x02-,\x03\x02" +
"\x02\x02./\x03\x02\x02\x02/-\x03\x02\x02\x02/0\x03\x02\x02\x0207\x03\x02" +
"\x02\x0213\x070\x02\x0224\t\x06\x02\x0232\x03\x02\x02\x0245\x03\x02\x02" +
"\x0253\x03\x02\x02\x0256\x03\x02\x02\x0268\x03\x02\x02\x0271\x03\x02\x02" +
"\x0289\x03\x02\x02\x0297\x03\x02\x02\x029:\x03\x02\x02\x02:\x0E\x03\x02" +
"\x02\x02\n\x02\x12\x19!*/59\x03\b\x02\x02";
import { ATN } from "antlr4ts/atn/ATN";
import { FailedPredicateException } from "antlr4ts/FailedPredicateException";
import { Parser } from "antlr4ts/Parser";
import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
import { TerminalNode } from "antlr4ts/tree/TerminalNode";
import { TokenStream } from "antlr4ts/TokenStream";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { GITHUBUSERSParserListener } from "./GITHUBUSERSParserListener";
import { GITHUBUSERSParserVisitor } from "./GITHUBUSERSParserVisitor";
export declare class GITHUBUSERSParser extends Parser {
static readonly WHITESPACE = 1;
static readonly NEWLINE = 2;
static readonly GITHUB_HANDLE = 3;
static readonly EMAIL = 4;
static readonly RULE_file = 0;
static readonly RULE_entry = 1;
static readonly ruleNames: string[];
private static readonly _LITERAL_NAMES;
private static readonly _SYMBOLIC_NAMES;
static readonly VOCABULARY: Vocabulary;
get vocabulary(): Vocabulary;
get grammarFileName(): string;
get ruleNames(): string[];
get serializedATN(): string;
protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException;
constructor(input: TokenStream);
file(): FileContext;
entry(): EntryContext;
static readonly _serializedATN: string;
static __ATN: ATN;
static get _ATN(): ATN;
}
export declare class FileContext extends ParserRuleContext {
EOF(): TerminalNode;
entry(): EntryContext[];
entry(i: number): EntryContext;
NEWLINE(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;
enterRule(listener: GITHUBUSERSParserListener): void;
exitRule(listener: GITHUBUSERSParserListener): void;
accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result;
}
export declare class EntryContext extends ParserRuleContext {
GITHUB_HANDLE(): TerminalNode;
EMAIL(): TerminalNode;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;
enterRule(listener: GITHUBUSERSParserListener): void;
exitRule(listener: GITHUBUSERSParserListener): void;
accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result;
}
//# sourceMappingURL=GITHUBUSERSParser.d.ts.map
{"version":3,"file":"GITHUBUSERSParser.d.ts","sourceRoot":"","sources":["../../githubusers/GITHUBUSERSParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAO/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,qBAAa,iBAAkB,SAAQ,MAAM;IAC5C,gBAAuB,UAAU,KAAK;IACtC,gBAAuB,OAAO,KAAK;IACnC,gBAAuB,aAAa,KAAK;IACzC,gBAAuB,KAAK,KAAK;IACjC,gBAAuB,SAAS,KAAK;IACrC,gBAAuB,UAAU,KAAK;IAEtC,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAExC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CACpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAErC;IACF,gBAAuB,UAAU,EAAE,UAAU,CAA+F;IAI5I,IAAW,UAAU,IAAI,UAAU,CAElC;IAID,IAAW,eAAe,IAAI,MAAM,CAAmC;IAGvE,IAAW,SAAS,IAAI,MAAM,EAAE,CAAwC;IAGxE,IAAW,aAAa,IAAI,MAAM,CAA6C;IAE/E,SAAS,CAAC,8BAA8B,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,wBAAwB;gBAI5F,KAAK,EAAE,WAAW;IAKvB,IAAI,IAAI,WAAW;IAkDnB,KAAK,IAAI,YAAY;IA2B5B,gBAAuB,cAAc,EAAE,MAAM,CAUvC;IACN,OAAc,KAAK,EAAE,GAAG,CAAC;IACzB,WAAkB,IAAI,IAAI,GAAG,CAM5B;CAED;AAED,qBAAa,WAAY,SAAQ,iBAAiB;IAC1C,GAAG,IAAI,YAAY;IACnB,KAAK,IAAI,YAAY,EAAE;IACvB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY;IAQ9B,OAAO,IAAI,YAAY,EAAE;IACzB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY;gBAQ3B,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM;IAIxE,IAAW,SAAS,IAAI,MAAM,CAAwC;IAE/D,SAAS,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMpD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMnD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM;CAOxE;AAGD,qBAAa,YAAa,SAAQ,iBAAiB;IAC3C,aAAa,IAAI,YAAY;IAC7B,KAAK,IAAI,YAAY;gBAChB,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM;IAIxE,IAAW,SAAS,IAAI,MAAM,CAAyC;IAEhE,SAAS,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMpD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMnD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM;CAOxE"}
"use strict";
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntryContext = exports.FileContext = exports.GITHUBUSERSParser = void 0;
const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
const FailedPredicateException_1 = require("antlr4ts/FailedPredicateException");
const Parser_1 = require("antlr4ts/Parser");
const ParserRuleContext_1 = require("antlr4ts/ParserRuleContext");
const ParserATNSimulator_1 = require("antlr4ts/atn/ParserATNSimulator");
const RecognitionException_1 = require("antlr4ts/RecognitionException");
const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl");
const Utils = __importStar(require("antlr4ts/misc/Utils"));
class GITHUBUSERSParser extends Parser_1.Parser {
// @Override
// @NotNull
get vocabulary() {
return GITHUBUSERSParser.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
// @Override
get grammarFileName() { return "GITHUBUSERSParser.g4"; }
// @Override
get ruleNames() { return GITHUBUSERSParser.ruleNames; }
// @Override
get serializedATN() { return GITHUBUSERSParser._serializedATN; }
createFailedPredicateException(predicate, message) {
return new FailedPredicateException_1.FailedPredicateException(this, predicate, message);
}
constructor(input) {
super(input);
this._interp = new ParserATNSimulator_1.ParserATNSimulator(GITHUBUSERSParser._ATN, this);
}
// @RuleVersion(0)
file() {
let _localctx = new FileContext(this._ctx, this.state);
this.enterRule(_localctx, 0, GITHUBUSERSParser.RULE_file);
let _la;
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 8;
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
{
{
this.state = 4;
this.entry();
this.state = 6;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === GITHUBUSERSParser.NEWLINE) {
{
this.state = 5;
this.match(GITHUBUSERSParser.NEWLINE);
}
}
}
}
this.state = 10;
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 12;
this.match(GITHUBUSERSParser.EOF);
}
}
catch (re) {
if (re instanceof RecognitionException_1.RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
}
else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
// @RuleVersion(0)
entry() {
let _localctx = new EntryContext(this._ctx, this.state);
this.enterRule(_localctx, 2, GITHUBUSERSParser.RULE_entry);
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 14;
this.match(GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 15;
this.match(GITHUBUSERSParser.EMAIL);
}
}
catch (re) {
if (re instanceof RecognitionException_1.RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
}
else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
static get _ATN() {
if (!GITHUBUSERSParser.__ATN) {
GITHUBUSERSParser.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSParser._serializedATN));
}
return GITHUBUSERSParser.__ATN;
}
}
exports.GITHUBUSERSParser = GITHUBUSERSParser;
GITHUBUSERSParser.WHITESPACE = 1;
GITHUBUSERSParser.NEWLINE = 2;
GITHUBUSERSParser.GITHUB_HANDLE = 3;
GITHUBUSERSParser.EMAIL = 4;
GITHUBUSERSParser.RULE_file = 0;
GITHUBUSERSParser.RULE_entry = 1;
// tslint:disable:no-trailing-whitespace
GITHUBUSERSParser.ruleNames = [
"file", "entry",
];
GITHUBUSERSParser._LITERAL_NAMES = [];
GITHUBUSERSParser._SYMBOLIC_NAMES = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
GITHUBUSERSParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(GITHUBUSERSParser._LITERAL_NAMES, GITHUBUSERSParser._SYMBOLIC_NAMES, []);
GITHUBUSERSParser._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x06\x14\x04\x02" +
"\t\x02\x04\x03\t\x03\x03\x02\x03\x02\x05\x02\t\n\x02\x06\x02\v\n\x02\r" +
"\x02\x0E\x02\f\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02" +
"\x02\x04\x02\x02\x04\x02\x02\x02\x02\x13\x02\n\x03\x02\x02\x02\x04\x10" +
"\x03\x02\x02\x02\x06\b\x05\x04\x03\x02\x07\t\x07\x04\x02\x02\b\x07\x03" +
"\x02\x02\x02\b\t\x03\x02\x02\x02\t\v\x03\x02\x02\x02\n\x06\x03\x02\x02" +
"\x02\v\f\x03\x02\x02\x02\f\n\x03\x02\x02\x02\f\r\x03\x02\x02\x02\r\x0E" +
"\x03\x02\x02\x02\x0E\x0F\x07\x02\x02\x03\x0F\x03\x03\x02\x02\x02\x10\x11" +
"\x07\x05\x02\x02\x11\x12\x07\x06\x02\x02\x12\x05\x03\x02\x02\x02\x04\b" +
"\f";
class FileContext extends ParserRuleContext_1.ParserRuleContext {
EOF() { return this.getToken(GITHUBUSERSParser.EOF, 0); }
entry(i) {
if (i === undefined) {
return this.getRuleContexts(EntryContext);
}
else {
return this.getRuleContext(i, EntryContext);
}
}
NEWLINE(i) {
if (i === undefined) {
return this.getTokens(GITHUBUSERSParser.NEWLINE);
}
else {
return this.getToken(GITHUBUSERSParser.NEWLINE, i);
}
}
constructor(parent, invokingState) {
super(parent, invokingState);
}
// @Override
get ruleIndex() { return GITHUBUSERSParser.RULE_file; }
// @Override
enterRule(listener) {
if (listener.enterFile) {
listener.enterFile(this);
}
}
// @Override
exitRule(listener) {
if (listener.exitFile) {
listener.exitFile(this);
}
}
// @Override
accept(visitor) {
if (visitor.visitFile) {
return visitor.visitFile(this);
}
else {
return visitor.visitChildren(this);
}
}
}
exports.FileContext = FileContext;
class EntryContext extends ParserRuleContext_1.ParserRuleContext {
GITHUB_HANDLE() { return this.getToken(GITHUBUSERSParser.GITHUB_HANDLE, 0); }
EMAIL() { return this.getToken(GITHUBUSERSParser.EMAIL, 0); }
constructor(parent, invokingState) {
super(parent, invokingState);
}
// @Override
get ruleIndex() { return GITHUBUSERSParser.RULE_entry; }
// @Override
enterRule(listener) {
if (listener.enterEntry) {
listener.enterEntry(this);
}
}
// @Override
exitRule(listener) {
if (listener.exitEntry) {
listener.exitEntry(this);
}
}
// @Override
accept(visitor) {
if (visitor.visitEntry) {
return visitor.visitEntry(this);
}
else {
return visitor.visitChildren(this);
}
}
}
exports.EntryContext = EntryContext;
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete listener for a parse tree produced by
* `GITHUBUSERSParser`.
*/
export interface GITHUBUSERSParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
enterFile?: (ctx: FileContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
exitFile?: (ctx: FileContext) => void;
/**
* Enter a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
enterEntry?: (ctx: EntryContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
exitEntry?: (ctx: EntryContext) => void;
}
//# sourceMappingURL=GITHUBUSERSParserListener.d.ts.map
{"version":3,"file":"GITHUBUSERSParserListener.d.ts","sourceRoot":"","sources":["../../githubusers/GITHUBUSERSParserListener.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IACnE;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC"}
"use strict";
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
Object.defineProperty(exports, "__esModule", { value: true });
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete generic visitor for a parse tree produced
* by `GITHUBUSERSParser`.
*
* @param <Result> The return type of the visit operation. Use `void` for
* operations with no return type.
*/
export interface GITHUBUSERSParserVisitor<Result> extends ParseTreeVisitor<Result> {
/**
* Visit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFile?: (ctx: FileContext) => Result;
/**
* Visit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
* @return the visitor result
*/
visitEntry?: (ctx: EntryContext) => Result;
}
//# sourceMappingURL=GITHUBUSERSParserVisitor.d.ts.map
{"version":3,"file":"GITHUBUSERSParserVisitor.d.ts","sourceRoot":"","sources":["../../githubusers/GITHUBUSERSParserVisitor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB,CAAC,MAAM,CAAE,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IACjF;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;IAEzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC;CAC3C"}
"use strict";
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
Object.defineProperty(exports, "__esModule", { value: true });
export * from './parsers/GITHUBUSERSLexer';
export * from './parsers/GITHUBUSERSParser';
export * from './parsers/GITHUBUSERSParserListener';
export * from './parsers/GITHUBUSERSParserVisitor';
export * from './DefaultVisitor';
export declare const GetGitHubHandlesByEmail: (input: string, emailAddresses: string[]) => string[];
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../githubusers/index.ts"],"names":[],"mappings":"AAKA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kBAAkB,CAAC;AAEjC,eAAO,MAAM,uBAAuB,UAAW,MAAM,kBAAkB,MAAM,EAAE,KAAG,MAAM,EA6BvF,CAAA"}
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetGitHubHandlesByEmail = void 0;
const antlr4ts_1 = require("antlr4ts");
const DefaultVisitor_1 = require("./DefaultVisitor");
const GITHUBUSERSLexer_1 = require("./parsers/GITHUBUSERSLexer");
const GITHUBUSERSParser_1 = require("./parsers/GITHUBUSERSParser");
__exportStar(require("./parsers/GITHUBUSERSLexer"), exports);
__exportStar(require("./parsers/GITHUBUSERSParser"), exports);
__exportStar(require("./parsers/GITHUBUSERSParserListener"), exports);
__exportStar(require("./parsers/GITHUBUSERSParserVisitor"), exports);
__exportStar(require("./DefaultVisitor"), exports);
const GetGitHubHandlesByEmail = (input, emailAddresses) => {
const chars = antlr4ts_1.CharStreams.fromString(input);
const lexer = new GITHUBUSERSLexer_1.GITHUBUSERSLexer(chars);
const tokens = new antlr4ts_1.CommonTokenStream(lexer);
const parser = new GITHUBUSERSParser_1.GITHUBUSERSParser(tokens);
let tree = null;
try {
tree = parser.file();
}
catch (error) {
console.error(`Error parsing file: ${error}`);
}
if (!tree) {
console.error(`No tree`);
return [];
}
const visitor = new DefaultVisitor_1.DefaultVisitor(emailAddresses);
try {
visitor.visit(tree);
}
catch (error) {
console.error(`Error visiting tree: ${error}`);
}
const owners = visitor.getOwners();
return owners;
};
exports.GetGitHubHandlesByEmail = GetGitHubHandlesByEmail;
import { ATN } from "antlr4ts/atn/ATN";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { Vocabulary } from "antlr4ts/Vocabulary";
export declare class GITHUBUSERSLexer extends Lexer {
static readonly WHITESPACE = 1;
static readonly NEWLINE = 2;
static readonly GITHUB_HANDLE = 3;
static readonly EMAIL = 4;
static readonly channelNames: string[];
static readonly modeNames: string[];
static readonly ruleNames: string[];
private static readonly _LITERAL_NAMES;
private static readonly _SYMBOLIC_NAMES;
static readonly VOCABULARY: Vocabulary;
get vocabulary(): Vocabulary;
constructor(input: CharStream);
get grammarFileName(): string;
get ruleNames(): string[];
get serializedATN(): string;
get channelNames(): string[];
get modeNames(): string[];
static readonly _serializedATN: string;
static __ATN: ATN;
static get _ATN(): ATN;
}
//# sourceMappingURL=GITHUBUSERSLexer.d.ts.map
{"version":3,"file":"GITHUBUSERSLexer.d.ts","sourceRoot":"","sources":["../../../githubusers/parsers/GITHUBUSERSLexer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMjD,qBAAa,gBAAiB,SAAQ,KAAK;IAC1C,gBAAuB,UAAU,KAAK;IACtC,gBAAuB,OAAO,KAAK;IACnC,gBAAuB,aAAa,KAAK;IACzC,gBAAuB,KAAK,KAAK;IAGjC,gBAAuB,YAAY,EAAE,MAAM,EAAE,CAE3C;IAGF,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAExC;IAEF,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAExC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CACpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAErC;IACF,gBAAuB,UAAU,EAAE,UAAU,CAA6F;IAI1I,IAAW,UAAU,IAAI,UAAU,CAElC;gBAIW,KAAK,EAAE,UAAU;IAM7B,IAAW,eAAe,IAAI,MAAM,CAAkC;IAGtE,IAAW,SAAS,IAAI,MAAM,EAAE,CAAuC;IAGvE,IAAW,aAAa,IAAI,MAAM,CAA4C;IAG9E,IAAW,YAAY,IAAI,MAAM,EAAE,CAA0C;IAG7E,IAAW,SAAS,IAAI,MAAM,EAAE,CAAuC;IAEvE,gBAAuB,cAAc,EAAE,MAAM,CA4BA;IAC7C,OAAc,KAAK,EAAE,GAAG,CAAC;IACzB,WAAkB,IAAI,IAAI,GAAG,CAM5B;CAED"}
"use strict";
// Generated from GITHUBUSERSLexer.g4 by ANTLR 4.9.0-SNAPSHOT
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GITHUBUSERSLexer = void 0;
const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
const Lexer_1 = require("antlr4ts/Lexer");
const LexerATNSimulator_1 = require("antlr4ts/atn/LexerATNSimulator");
const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl");
const Utils = __importStar(require("antlr4ts/misc/Utils"));
class GITHUBUSERSLexer extends Lexer_1.Lexer {
// @Override
// @NotNull
get vocabulary() {
return GITHUBUSERSLexer.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
constructor(input) {
super(input);
this._interp = new LexerATNSimulator_1.LexerATNSimulator(GITHUBUSERSLexer._ATN, this);
}
// @Override
get grammarFileName() { return "GITHUBUSERSLexer.g4"; }
// @Override
get ruleNames() { return GITHUBUSERSLexer.ruleNames; }
// @Override
get serializedATN() { return GITHUBUSERSLexer._serializedATN; }
// @Override
get channelNames() { return GITHUBUSERSLexer.channelNames; }
// @Override
get modeNames() { return GITHUBUSERSLexer.modeNames; }
static get _ATN() {
if (!GITHUBUSERSLexer.__ATN) {
GITHUBUSERSLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSLexer._serializedATN));
}
return GITHUBUSERSLexer.__ATN;
}
}
exports.GITHUBUSERSLexer = GITHUBUSERSLexer;
GITHUBUSERSLexer.WHITESPACE = 1;
GITHUBUSERSLexer.NEWLINE = 2;
GITHUBUSERSLexer.GITHUB_HANDLE = 3;
GITHUBUSERSLexer.EMAIL = 4;
// tslint:disable:no-trailing-whitespace
GITHUBUSERSLexer.channelNames = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
];
// tslint:disable:no-trailing-whitespace
GITHUBUSERSLexer.modeNames = [
"DEFAULT_MODE",
];
GITHUBUSERSLexer.ruleNames = [
"WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL", "LOCAL_PART", "DOMAIN",
];
GITHUBUSERSLexer._LITERAL_NAMES = [];
GITHUBUSERSLexer._SYMBOLIC_NAMES = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
GITHUBUSERSLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(GITHUBUSERSLexer._LITERAL_NAMES, GITHUBUSERSLexer._SYMBOLIC_NAMES, []);
GITHUBUSERSLexer._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x06;\b\x01\x04" +
"\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
"\x07\t\x07\x03\x02\x06\x02\x11\n\x02\r\x02\x0E\x02\x12\x03\x02\x03\x02" +
"\x03\x03\x06\x03\x18\n\x03\r\x03\x0E\x03\x19\x03\x03\x03\x03\x03\x04\x03" +
"\x04\x06\x04 \n\x04\r\x04\x0E\x04!\x03\x05\x03\x05\x03\x05\x03\x05\x03" +
"\x06\x06\x06)\n\x06\r\x06\x0E\x06*\x03\x07\x06\x07.\n\x07\r\x07\x0E\x07" +
"/\x03\x07\x03\x07\x06\x074\n\x07\r\x07\x0E\x075\x06\x078\n\x07\r\x07\x0E" +
"\x079\x02\x02\x02\b\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02" +
"\x02\r\x02\x02\x03\x02\x07\x04\x02\v\v\"\"\x04\x02\f\f\x0F\x0F\x07\x02" +
"//2;C\\aac|\b\x02--/02;C\\aac|\x06\x02//2;C\\c|\x02?\x02\x03\x03\x02\x02" +
"\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02" +
"\x02\x03\x10\x03\x02\x02\x02\x05\x17\x03\x02\x02\x02\x07\x1D\x03\x02\x02" +
"\x02\t#\x03\x02\x02\x02\v(\x03\x02\x02\x02\r-\x03\x02\x02\x02\x0F\x11" +
"\t\x02\x02\x02\x10\x0F\x03\x02\x02\x02\x11\x12\x03\x02\x02\x02\x12\x10" +
"\x03\x02\x02\x02\x12\x13\x03\x02\x02\x02\x13\x14\x03\x02\x02\x02\x14\x15" +
"\b\x02\x02\x02\x15\x04\x03\x02\x02\x02\x16\x18\t\x03\x02\x02\x17\x16\x03" +
"\x02\x02\x02\x18\x19\x03\x02\x02\x02\x19\x17\x03\x02\x02\x02\x19\x1A\x03" +
"\x02\x02\x02\x1A\x1B\x03\x02\x02\x02\x1B\x1C\b\x03\x02\x02\x1C\x06\x03" +
"\x02\x02\x02\x1D\x1F\x07B\x02\x02\x1E \t\x04\x02\x02\x1F\x1E\x03\x02\x02" +
"\x02 !\x03\x02\x02\x02!\x1F\x03\x02\x02\x02!\"\x03\x02\x02\x02\"\b\x03" +
"\x02\x02\x02#$\x05\v\x06\x02$%\x07B\x02\x02%&\x05\r\x07\x02&\n\x03\x02" +
"\x02\x02\')\t\x05\x02\x02(\'\x03\x02\x02\x02)*\x03\x02\x02\x02*(\x03\x02" +
"\x02\x02*+\x03\x02\x02\x02+\f\x03\x02\x02\x02,.\t\x06\x02\x02-,\x03\x02" +
"\x02\x02./\x03\x02\x02\x02/-\x03\x02\x02\x02/0\x03\x02\x02\x0207\x03\x02" +
"\x02\x0213\x070\x02\x0224\t\x06\x02\x0232\x03\x02\x02\x0245\x03\x02\x02" +
"\x0253\x03\x02\x02\x0256\x03\x02\x02\x0268\x03\x02\x02\x0271\x03\x02\x02" +
"\x0289\x03\x02\x02\x0297\x03\x02\x02\x029:\x03\x02\x02\x02:\x0E\x03\x02" +
"\x02\x02\n\x02\x12\x19!*/59\x03\b\x02\x02";
import { ATN } from "antlr4ts/atn/ATN";
import { FailedPredicateException } from "antlr4ts/FailedPredicateException";
import { Parser } from "antlr4ts/Parser";
import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
import { TerminalNode } from "antlr4ts/tree/TerminalNode";
import { TokenStream } from "antlr4ts/TokenStream";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { GITHUBUSERSParserListener } from "./GITHUBUSERSParserListener";
import { GITHUBUSERSParserVisitor } from "./GITHUBUSERSParserVisitor";
export declare class GITHUBUSERSParser extends Parser {
static readonly WHITESPACE = 1;
static readonly NEWLINE = 2;
static readonly GITHUB_HANDLE = 3;
static readonly EMAIL = 4;
static readonly RULE_file = 0;
static readonly RULE_entry = 1;
static readonly ruleNames: string[];
private static readonly _LITERAL_NAMES;
private static readonly _SYMBOLIC_NAMES;
static readonly VOCABULARY: Vocabulary;
get vocabulary(): Vocabulary;
get grammarFileName(): string;
get ruleNames(): string[];
get serializedATN(): string;
protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException;
constructor(input: TokenStream);
file(): FileContext;
entry(): EntryContext;
static readonly _serializedATN: string;
static __ATN: ATN;
static get _ATN(): ATN;
}
export declare class FileContext extends ParserRuleContext {
EOF(): TerminalNode;
entry(): EntryContext[];
entry(i: number): EntryContext;
NEWLINE(): TerminalNode[];
NEWLINE(i: number): TerminalNode;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;
enterRule(listener: GITHUBUSERSParserListener): void;
exitRule(listener: GITHUBUSERSParserListener): void;
accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result;
}
export declare class EntryContext extends ParserRuleContext {
GITHUB_HANDLE(): TerminalNode;
EMAIL(): TerminalNode;
constructor(parent: ParserRuleContext | undefined, invokingState: number);
get ruleIndex(): number;
enterRule(listener: GITHUBUSERSParserListener): void;
exitRule(listener: GITHUBUSERSParserListener): void;
accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result;
}
//# sourceMappingURL=GITHUBUSERSParser.d.ts.map
{"version":3,"file":"GITHUBUSERSParser.d.ts","sourceRoot":"","sources":["../../../githubusers/parsers/GITHUBUSERSParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAO/D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAKjD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,qBAAa,iBAAkB,SAAQ,MAAM;IAC5C,gBAAuB,UAAU,KAAK;IACtC,gBAAuB,OAAO,KAAK;IACnC,gBAAuB,aAAa,KAAK;IACzC,gBAAuB,KAAK,KAAK;IACjC,gBAAuB,SAAS,KAAK;IACrC,gBAAuB,UAAU,KAAK;IAEtC,gBAAuB,SAAS,EAAE,MAAM,EAAE,CAExC;IAEF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CACpC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAErC;IACF,gBAAuB,UAAU,EAAE,UAAU,CAA+F;IAI5I,IAAW,UAAU,IAAI,UAAU,CAElC;IAID,IAAW,eAAe,IAAI,MAAM,CAAmC;IAGvE,IAAW,SAAS,IAAI,MAAM,EAAE,CAAwC;IAGxE,IAAW,aAAa,IAAI,MAAM,CAA6C;IAE/E,SAAS,CAAC,8BAA8B,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,wBAAwB;gBAI5F,KAAK,EAAE,WAAW;IAKvB,IAAI,IAAI,WAAW;IAkDnB,KAAK,IAAI,YAAY;IA2B5B,gBAAuB,cAAc,EAAE,MAAM,CAUvC;IACN,OAAc,KAAK,EAAE,GAAG,CAAC;IACzB,WAAkB,IAAI,IAAI,GAAG,CAM5B;CAED;AAED,qBAAa,WAAY,SAAQ,iBAAiB;IAC1C,GAAG,IAAI,YAAY;IACnB,KAAK,IAAI,YAAY,EAAE;IACvB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY;IAQ9B,OAAO,IAAI,YAAY,EAAE;IACzB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY;gBAQ3B,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM;IAIxE,IAAW,SAAS,IAAI,MAAM,CAAwC;IAE/D,SAAS,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMpD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMnD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM;CAOxE;AAGD,qBAAa,YAAa,SAAQ,iBAAiB;IAC3C,aAAa,IAAI,YAAY;IAC7B,KAAK,IAAI,YAAY;gBAChB,MAAM,EAAE,iBAAiB,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM;IAIxE,IAAW,SAAS,IAAI,MAAM,CAAyC;IAEhE,SAAS,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMpD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI;IAMnD,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM;CAOxE"}
"use strict";
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.EntryContext = exports.FileContext = exports.GITHUBUSERSParser = void 0;
const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
const FailedPredicateException_1 = require("antlr4ts/FailedPredicateException");
const Parser_1 = require("antlr4ts/Parser");
const ParserRuleContext_1 = require("antlr4ts/ParserRuleContext");
const ParserATNSimulator_1 = require("antlr4ts/atn/ParserATNSimulator");
const RecognitionException_1 = require("antlr4ts/RecognitionException");
const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl");
const Utils = __importStar(require("antlr4ts/misc/Utils"));
class GITHUBUSERSParser extends Parser_1.Parser {
// @Override
// @NotNull
get vocabulary() {
return GITHUBUSERSParser.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
// @Override
get grammarFileName() { return "GITHUBUSERSParser.g4"; }
// @Override
get ruleNames() { return GITHUBUSERSParser.ruleNames; }
// @Override
get serializedATN() { return GITHUBUSERSParser._serializedATN; }
createFailedPredicateException(predicate, message) {
return new FailedPredicateException_1.FailedPredicateException(this, predicate, message);
}
constructor(input) {
super(input);
this._interp = new ParserATNSimulator_1.ParserATNSimulator(GITHUBUSERSParser._ATN, this);
}
// @RuleVersion(0)
file() {
let _localctx = new FileContext(this._ctx, this.state);
this.enterRule(_localctx, 0, GITHUBUSERSParser.RULE_file);
let _la;
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 8;
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
{
{
this.state = 4;
this.entry();
this.state = 6;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === GITHUBUSERSParser.NEWLINE) {
{
this.state = 5;
this.match(GITHUBUSERSParser.NEWLINE);
}
}
}
}
this.state = 10;
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 12;
this.match(GITHUBUSERSParser.EOF);
}
}
catch (re) {
if (re instanceof RecognitionException_1.RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
}
else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
// @RuleVersion(0)
entry() {
let _localctx = new EntryContext(this._ctx, this.state);
this.enterRule(_localctx, 2, GITHUBUSERSParser.RULE_entry);
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 14;
this.match(GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 15;
this.match(GITHUBUSERSParser.EMAIL);
}
}
catch (re) {
if (re instanceof RecognitionException_1.RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
}
else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
static get _ATN() {
if (!GITHUBUSERSParser.__ATN) {
GITHUBUSERSParser.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSParser._serializedATN));
}
return GITHUBUSERSParser.__ATN;
}
}
exports.GITHUBUSERSParser = GITHUBUSERSParser;
GITHUBUSERSParser.WHITESPACE = 1;
GITHUBUSERSParser.NEWLINE = 2;
GITHUBUSERSParser.GITHUB_HANDLE = 3;
GITHUBUSERSParser.EMAIL = 4;
GITHUBUSERSParser.RULE_file = 0;
GITHUBUSERSParser.RULE_entry = 1;
// tslint:disable:no-trailing-whitespace
GITHUBUSERSParser.ruleNames = [
"file", "entry",
];
GITHUBUSERSParser._LITERAL_NAMES = [];
GITHUBUSERSParser._SYMBOLIC_NAMES = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
GITHUBUSERSParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(GITHUBUSERSParser._LITERAL_NAMES, GITHUBUSERSParser._SYMBOLIC_NAMES, []);
GITHUBUSERSParser._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x06\x14\x04\x02" +
"\t\x02\x04\x03\t\x03\x03\x02\x03\x02\x05\x02\t\n\x02\x06\x02\v\n\x02\r" +
"\x02\x0E\x02\f\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02" +
"\x02\x04\x02\x02\x04\x02\x02\x02\x02\x13\x02\n\x03\x02\x02\x02\x04\x10" +
"\x03\x02\x02\x02\x06\b\x05\x04\x03\x02\x07\t\x07\x04\x02\x02\b\x07\x03" +
"\x02\x02\x02\b\t\x03\x02\x02\x02\t\v\x03\x02\x02\x02\n\x06\x03\x02\x02" +
"\x02\v\f\x03\x02\x02\x02\f\n\x03\x02\x02\x02\f\r\x03\x02\x02\x02\r\x0E" +
"\x03\x02\x02\x02\x0E\x0F\x07\x02\x02\x03\x0F\x03\x03\x02\x02\x02\x10\x11" +
"\x07\x05\x02\x02\x11\x12\x07\x06\x02\x02\x12\x05\x03\x02\x02\x02\x04\b" +
"\f";
class FileContext extends ParserRuleContext_1.ParserRuleContext {
EOF() { return this.getToken(GITHUBUSERSParser.EOF, 0); }
entry(i) {
if (i === undefined) {
return this.getRuleContexts(EntryContext);
}
else {
return this.getRuleContext(i, EntryContext);
}
}
NEWLINE(i) {
if (i === undefined) {
return this.getTokens(GITHUBUSERSParser.NEWLINE);
}
else {
return this.getToken(GITHUBUSERSParser.NEWLINE, i);
}
}
constructor(parent, invokingState) {
super(parent, invokingState);
}
// @Override
get ruleIndex() { return GITHUBUSERSParser.RULE_file; }
// @Override
enterRule(listener) {
if (listener.enterFile) {
listener.enterFile(this);
}
}
// @Override
exitRule(listener) {
if (listener.exitFile) {
listener.exitFile(this);
}
}
// @Override
accept(visitor) {
if (visitor.visitFile) {
return visitor.visitFile(this);
}
else {
return visitor.visitChildren(this);
}
}
}
exports.FileContext = FileContext;
class EntryContext extends ParserRuleContext_1.ParserRuleContext {
GITHUB_HANDLE() { return this.getToken(GITHUBUSERSParser.GITHUB_HANDLE, 0); }
EMAIL() { return this.getToken(GITHUBUSERSParser.EMAIL, 0); }
constructor(parent, invokingState) {
super(parent, invokingState);
}
// @Override
get ruleIndex() { return GITHUBUSERSParser.RULE_entry; }
// @Override
enterRule(listener) {
if (listener.enterEntry) {
listener.enterEntry(this);
}
}
// @Override
exitRule(listener) {
if (listener.exitEntry) {
listener.exitEntry(this);
}
}
// @Override
accept(visitor) {
if (visitor.visitEntry) {
return visitor.visitEntry(this);
}
else {
return visitor.visitChildren(this);
}
}
}
exports.EntryContext = EntryContext;
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete listener for a parse tree produced by
* `GITHUBUSERSParser`.
*/
export interface GITHUBUSERSParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
enterFile?: (ctx: FileContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
exitFile?: (ctx: FileContext) => void;
/**
* Enter a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
enterEntry?: (ctx: EntryContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
exitEntry?: (ctx: EntryContext) => void;
}
//# sourceMappingURL=GITHUBUSERSParserListener.d.ts.map
{"version":3,"file":"GITHUBUSERSParserListener.d.ts","sourceRoot":"","sources":["../../../githubusers/parsers/GITHUBUSERSParserListener.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;GAGG;AACH,MAAM,WAAW,yBAA0B,SAAQ,iBAAiB;IACnE;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;IAEtC;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;IACzC;;;OAGG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC"}
"use strict";
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
Object.defineProperty(exports, "__esModule", { value: true });
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete generic visitor for a parse tree produced
* by `GITHUBUSERSParser`.
*
* @param <Result> The return type of the visit operation. Use `void` for
* operations with no return type.
*/
export interface GITHUBUSERSParserVisitor<Result> extends ParseTreeVisitor<Result> {
/**
* Visit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFile?: (ctx: FileContext) => Result;
/**
* Visit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
* @return the visitor result
*/
visitEntry?: (ctx: EntryContext) => Result;
}
//# sourceMappingURL=GITHUBUSERSParserVisitor.d.ts.map
{"version":3,"file":"GITHUBUSERSParserVisitor.d.ts","sourceRoot":"","sources":["../../../githubusers/parsers/GITHUBUSERSParserVisitor.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB,CAAC,MAAM,CAAE,SAAQ,gBAAgB,CAAC,MAAM,CAAC;IACjF;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,MAAM,CAAC;IAEzC;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC;CAC3C"}
"use strict";
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
Object.defineProperty(exports, "__esModule", { value: true });
export * from './githubusers';
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
import { AbstractParseTreeVisitor } from 'antlr4ts/tree';
import { FileContext, EntryContext } from './parsers/GITHUBUSERSParser';
import { GITHUBUSERSParserVisitor } from './parsers/GITHUBUSERSParserVisitor';
export class DefaultVisitor extends AbstractParseTreeVisitor<void> implements GITHUBUSERSParserVisitor<void> {
private emailAddresses: Set<string>;
private lookup: Map<string, string>;
private owners: Set<string>;
constructor(emailAddresses: string[]) {
super();
this.emailAddresses = new Set(emailAddresses);
this.owners = new Set();
this.lookup = new Map<string, string>();
console.log(`emailAddresses: ${emailAddresses}`);
}
protected defaultResult(): void {}
visitFile(ctx: FileContext): void {
super.visitChildren(ctx);
}
private hasEmailAddressCaseInsensitive(email: string): boolean {
for (const emailAddress of this.emailAddresses) {
if (emailAddress.toLowerCase() === email.toLowerCase()) {
return true;
}
}
return false;
}
visitEntry(ctx: EntryContext): void {
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(): string[] {
return Array.from(this.owners);
}
}
// Generated from GITHUBUSERSLexer.g4 by ANTLR 4.9.0-SNAPSHOT
import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator";
import { NotNull } from "antlr4ts/Decorators";
import { Override } from "antlr4ts/Decorators";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";
import * as Utils from "antlr4ts/misc/Utils";
export class GITHUBUSERSLexer extends Lexer {
public static readonly WHITESPACE = 1;
public static readonly NEWLINE = 2;
public static readonly GITHUB_HANDLE = 3;
public static readonly EMAIL = 4;
// tslint:disable:no-trailing-whitespace
public static readonly channelNames: string[] = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
];
// tslint:disable:no-trailing-whitespace
public static readonly modeNames: string[] = [
"DEFAULT_MODE",
];
public static readonly ruleNames: string[] = [
"WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL", "LOCAL_PART", "DOMAIN",
];
private static readonly _LITERAL_NAMES: Array<string | undefined> = [
];
private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(GITHUBUSERSLexer._LITERAL_NAMES, GITHUBUSERSLexer._SYMBOLIC_NAMES, []);
// @Override
// @NotNull
public get vocabulary(): Vocabulary {
return GITHUBUSERSLexer.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
constructor(input: CharStream) {
super(input);
this._interp = new LexerATNSimulator(GITHUBUSERSLexer._ATN, this);
}
// @Override
public get grammarFileName(): string { return "GITHUBUSERSLexer.g4"; }
// @Override
public get ruleNames(): string[] { return GITHUBUSERSLexer.ruleNames; }
// @Override
public get serializedATN(): string { return GITHUBUSERSLexer._serializedATN; }
// @Override
public get channelNames(): string[] { return GITHUBUSERSLexer.channelNames; }
// @Override
public get modeNames(): string[] { return GITHUBUSERSLexer.modeNames; }
public static readonly _serializedATN: string =
"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x06;\b\x01\x04" +
"\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
"\x07\t\x07\x03\x02\x06\x02\x11\n\x02\r\x02\x0E\x02\x12\x03\x02\x03\x02" +
"\x03\x03\x06\x03\x18\n\x03\r\x03\x0E\x03\x19\x03\x03\x03\x03\x03\x04\x03" +
"\x04\x06\x04 \n\x04\r\x04\x0E\x04!\x03\x05\x03\x05\x03\x05\x03\x05\x03" +
"\x06\x06\x06)\n\x06\r\x06\x0E\x06*\x03\x07\x06\x07.\n\x07\r\x07\x0E\x07" +
"/\x03\x07\x03\x07\x06\x074\n\x07\r\x07\x0E\x075\x06\x078\n\x07\r\x07\x0E" +
"\x079\x02\x02\x02\b\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02" +
"\x02\r\x02\x02\x03\x02\x07\x04\x02\v\v\"\"\x04\x02\f\f\x0F\x0F\x07\x02" +
"//2;C\\aac|\b\x02--/02;C\\aac|\x06\x02//2;C\\c|\x02?\x02\x03\x03\x02\x02" +
"\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02" +
"\x02\x03\x10\x03\x02\x02\x02\x05\x17\x03\x02\x02\x02\x07\x1D\x03\x02\x02" +
"\x02\t#\x03\x02\x02\x02\v(\x03\x02\x02\x02\r-\x03\x02\x02\x02\x0F\x11" +
"\t\x02\x02\x02\x10\x0F\x03\x02\x02\x02\x11\x12\x03\x02\x02\x02\x12\x10" +
"\x03\x02\x02\x02\x12\x13\x03\x02\x02\x02\x13\x14\x03\x02\x02\x02\x14\x15" +
"\b\x02\x02\x02\x15\x04\x03\x02\x02\x02\x16\x18\t\x03\x02\x02\x17\x16\x03" +
"\x02\x02\x02\x18\x19\x03\x02\x02\x02\x19\x17\x03\x02\x02\x02\x19\x1A\x03" +
"\x02\x02\x02\x1A\x1B\x03\x02\x02\x02\x1B\x1C\b\x03\x02\x02\x1C\x06\x03" +
"\x02\x02\x02\x1D\x1F\x07B\x02\x02\x1E \t\x04\x02\x02\x1F\x1E\x03\x02\x02" +
"\x02 !\x03\x02\x02\x02!\x1F\x03\x02\x02\x02!\"\x03\x02\x02\x02\"\b\x03" +
"\x02\x02\x02#$\x05\v\x06\x02$%\x07B\x02\x02%&\x05\r\x07\x02&\n\x03\x02" +
"\x02\x02\')\t\x05\x02\x02(\'\x03\x02\x02\x02)*\x03\x02\x02\x02*(\x03\x02" +
"\x02\x02*+\x03\x02\x02\x02+\f\x03\x02\x02\x02,.\t\x06\x02\x02-,\x03\x02" +
"\x02\x02./\x03\x02\x02\x02/-\x03\x02\x02\x02/0\x03\x02\x02\x0207\x03\x02" +
"\x02\x0213\x070\x02\x0224\t\x06\x02\x0232\x03\x02\x02\x0245\x03\x02\x02" +
"\x0253\x03\x02\x02\x0256\x03\x02\x02\x0268\x03\x02\x02\x0271\x03\x02\x02" +
"\x0289\x03\x02\x02\x0297\x03\x02\x02\x029:\x03\x02\x02\x02:\x0E\x03\x02" +
"\x02\x02\n\x02\x12\x19!*/59\x03\b\x02\x02";
public static __ATN: ATN;
public static get _ATN(): ATN {
if (!GITHUBUSERSLexer.__ATN) {
GITHUBUSERSLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSLexer._serializedATN));
}
return GITHUBUSERSLexer.__ATN;
}
}
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { FailedPredicateException } from "antlr4ts/FailedPredicateException";
import { NotNull } from "antlr4ts/Decorators";
import { NoViableAltException } from "antlr4ts/NoViableAltException";
import { Override } from "antlr4ts/Decorators";
import { Parser } from "antlr4ts/Parser";
import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
import { ParserATNSimulator } from "antlr4ts/atn/ParserATNSimulator";
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
import { RecognitionException } from "antlr4ts/RecognitionException";
import { RuleContext } from "antlr4ts/RuleContext";
//import { RuleVersion } from "antlr4ts/RuleVersion";
import { TerminalNode } from "antlr4ts/tree/TerminalNode";
import { Token } from "antlr4ts/Token";
import { TokenStream } from "antlr4ts/TokenStream";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";
import * as Utils from "antlr4ts/misc/Utils";
import { GITHUBUSERSParserListener } from "./GITHUBUSERSParserListener";
import { GITHUBUSERSParserVisitor } from "./GITHUBUSERSParserVisitor";
export class GITHUBUSERSParser extends Parser {
public static readonly WHITESPACE = 1;
public static readonly NEWLINE = 2;
public static readonly GITHUB_HANDLE = 3;
public static readonly EMAIL = 4;
public static readonly RULE_file = 0;
public static readonly RULE_entry = 1;
// tslint:disable:no-trailing-whitespace
public static readonly ruleNames: string[] = [
"file", "entry",
];
private static readonly _LITERAL_NAMES: Array<string | undefined> = [
];
private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(GITHUBUSERSParser._LITERAL_NAMES, GITHUBUSERSParser._SYMBOLIC_NAMES, []);
// @Override
// @NotNull
public get vocabulary(): Vocabulary {
return GITHUBUSERSParser.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
// @Override
public get grammarFileName(): string { return "GITHUBUSERSParser.g4"; }
// @Override
public get ruleNames(): string[] { return GITHUBUSERSParser.ruleNames; }
// @Override
public get serializedATN(): string { return GITHUBUSERSParser._serializedATN; }
protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException {
return new FailedPredicateException(this, predicate, message);
}
constructor(input: TokenStream) {
super(input);
this._interp = new ParserATNSimulator(GITHUBUSERSParser._ATN, this);
}
// @RuleVersion(0)
public file(): FileContext {
let _localctx: FileContext = new FileContext(this._ctx, this.state);
this.enterRule(_localctx, 0, GITHUBUSERSParser.RULE_file);
let _la: number;
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 8;
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
{
{
this.state = 4;
this.entry();
this.state = 6;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === GITHUBUSERSParser.NEWLINE) {
{
this.state = 5;
this.match(GITHUBUSERSParser.NEWLINE);
}
}
}
}
this.state = 10;
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 12;
this.match(GITHUBUSERSParser.EOF);
}
}
catch (re) {
if (re instanceof RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
// @RuleVersion(0)
public entry(): EntryContext {
let _localctx: EntryContext = new EntryContext(this._ctx, this.state);
this.enterRule(_localctx, 2, GITHUBUSERSParser.RULE_entry);
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 14;
this.match(GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 15;
this.match(GITHUBUSERSParser.EMAIL);
}
}
catch (re) {
if (re instanceof RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
public static readonly _serializedATN: string =
"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x06\x14\x04\x02" +
"\t\x02\x04\x03\t\x03\x03\x02\x03\x02\x05\x02\t\n\x02\x06\x02\v\n\x02\r" +
"\x02\x0E\x02\f\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02" +
"\x02\x04\x02\x02\x04\x02\x02\x02\x02\x13\x02\n\x03\x02\x02\x02\x04\x10" +
"\x03\x02\x02\x02\x06\b\x05\x04\x03\x02\x07\t\x07\x04\x02\x02\b\x07\x03" +
"\x02\x02\x02\b\t\x03\x02\x02\x02\t\v\x03\x02\x02\x02\n\x06\x03\x02\x02" +
"\x02\v\f\x03\x02\x02\x02\f\n\x03\x02\x02\x02\f\r\x03\x02\x02\x02\r\x0E" +
"\x03\x02\x02\x02\x0E\x0F\x07\x02\x02\x03\x0F\x03\x03\x02\x02\x02\x10\x11" +
"\x07\x05\x02\x02\x11\x12\x07\x06\x02\x02\x12\x05\x03\x02\x02\x02\x04\b" +
"\f";
public static __ATN: ATN;
public static get _ATN(): ATN {
if (!GITHUBUSERSParser.__ATN) {
GITHUBUSERSParser.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSParser._serializedATN));
}
return GITHUBUSERSParser.__ATN;
}
}
export class FileContext extends ParserRuleContext {
public EOF(): TerminalNode { return this.getToken(GITHUBUSERSParser.EOF, 0); }
public entry(): EntryContext[];
public entry(i: number): EntryContext;
public entry(i?: number): EntryContext | EntryContext[] {
if (i === undefined) {
return this.getRuleContexts(EntryContext);
} else {
return this.getRuleContext(i, EntryContext);
}
}
public NEWLINE(): TerminalNode[];
public NEWLINE(i: number): TerminalNode;
public NEWLINE(i?: number): TerminalNode | TerminalNode[] {
if (i === undefined) {
return this.getTokens(GITHUBUSERSParser.NEWLINE);
} else {
return this.getToken(GITHUBUSERSParser.NEWLINE, i);
}
}
constructor(parent: ParserRuleContext | undefined, invokingState: number) {
super(parent, invokingState);
}
// @Override
public get ruleIndex(): number { return GITHUBUSERSParser.RULE_file; }
// @Override
public enterRule(listener: GITHUBUSERSParserListener): void {
if (listener.enterFile) {
listener.enterFile(this);
}
}
// @Override
public exitRule(listener: GITHUBUSERSParserListener): void {
if (listener.exitFile) {
listener.exitFile(this);
}
}
// @Override
public accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result {
if (visitor.visitFile) {
return visitor.visitFile(this);
} else {
return visitor.visitChildren(this);
}
}
}
export class EntryContext extends ParserRuleContext {
public GITHUB_HANDLE(): TerminalNode { return this.getToken(GITHUBUSERSParser.GITHUB_HANDLE, 0); }
public EMAIL(): TerminalNode { return this.getToken(GITHUBUSERSParser.EMAIL, 0); }
constructor(parent: ParserRuleContext | undefined, invokingState: number) {
super(parent, invokingState);
}
// @Override
public get ruleIndex(): number { return GITHUBUSERSParser.RULE_entry; }
// @Override
public enterRule(listener: GITHUBUSERSParserListener): void {
if (listener.enterEntry) {
listener.enterEntry(this);
}
}
// @Override
public exitRule(listener: GITHUBUSERSParserListener): void {
if (listener.exitEntry) {
listener.exitEntry(this);
}
}
// @Override
public accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result {
if (visitor.visitEntry) {
return visitor.visitEntry(this);
} else {
return visitor.visitChildren(this);
}
}
}
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete listener for a parse tree produced by
* `GITHUBUSERSParser`.
*/
export interface GITHUBUSERSParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
enterFile?: (ctx: FileContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
exitFile?: (ctx: FileContext) => void;
/**
* Enter a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
enterEntry?: (ctx: EntryContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
exitEntry?: (ctx: EntryContext) => void;
}
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete generic visitor for a parse tree produced
* by `GITHUBUSERSParser`.
*
* @param <Result> The return type of the visit operation. Use `void` for
* operations with no return type.
*/
export interface GITHUBUSERSParserVisitor<Result> extends ParseTreeVisitor<Result> {
/**
* Visit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFile?: (ctx: FileContext) => Result;
/**
* Visit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
* @return the visitor result
*/
visitEntry?: (ctx: EntryContext) => Result;
}
export * from './githubusers';
+14
-31
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetGitHubHandlesByEmail = void 0;
const antlr4ts_1 = require("antlr4ts");
const GITHUBUSERSLexer_1 = require("./GITHUBUSERSLexer");
const GITHUBUSERSParser_1 = require("./GITHUBUSERSParser");
const githubusers_visitor_1 = require("./githubusers_visitor");
const GetGitHubHandlesByEmail = (input, emailAddresses) => {
const chars = antlr4ts_1.CharStreams.fromString(input);
const lexer = new GITHUBUSERSLexer_1.GITHUBUSERSLexer(chars);
const tokens = new antlr4ts_1.CommonTokenStream(lexer);
const parser = new GITHUBUSERSParser_1.GITHUBUSERSParser(tokens);
let tree = null;
try {
tree = parser.file();
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
catch (error) {
console.error(`Error parsing file: ${error}`);
}
if (!tree) {
console.error(`No tree`);
return [];
}
const visitor = new githubusers_visitor_1.DefaultVisitor(emailAddresses);
try {
visitor.visit(tree);
}
catch (error) {
console.error(`Error visiting tree: ${error}`);
}
const owners = visitor.getOwners();
return owners;
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
exports.GetGitHubHandlesByEmail = GetGitHubHandlesByEmail;
Object.defineProperty(exports, "__esModule", { value: true });
__exportStar(require("./githubusers"), exports);
import { CharStreams, CommonTokenStream } from "antlr4ts";
import { GITHUBUSERSLexer } from "./GITHUBUSERSLexer";
import { GITHUBUSERSParser, FileContext } from "./GITHUBUSERSParser";
import { DefaultVisitor } from "./githubusers_visitor";
import { DefaultVisitor } from "./DefaultVisitor";
import { GITHUBUSERSLexer } from "./parsers/GITHUBUSERSLexer";
import { GITHUBUSERSParser, FileContext } from "./parsers/GITHUBUSERSParser";
export * from './parsers/GITHUBUSERSLexer';
export * from './parsers/GITHUBUSERSParser';
export * from './parsers/GITHUBUSERSParserListener';
export * from './parsers/GITHUBUSERSParserVisitor';
export * from './DefaultVisitor';
export const GetGitHubHandlesByEmail = (input: string, emailAddresses: string[]): string[] => {

@@ -7,0 +13,0 @@ const chars = CharStreams.fromString(input);

{
"name": "github-users-parser",
"version": "1.0.0",
"version": "1.0.3",
"description": "Antlr4 generated GITHUB_USERS parser",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"test": "jest",
"co:antlr4ts": "antlr4ts -o githubusers -visitor GITHUBUSERSLexer.g4 GITHUBUSERSParser.g4",
"co:build": "tsc"
"gh:antlr4ts": "antlr4ts -o githubusers -visitor GITHUBUSERSLexer.g4 GITHUBUSERSParser.g4",
"gh:build": "tsc",
"gh:declarations": "npx tsc --declaration"
},
"types": "github-users-parser.d.ts",
"repository": {

@@ -13,0 +14,0 @@ "type": "git",

@@ -52,4 +52,4 @@ {

/* Emit */
// "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
// "declarationMap": true, /* Create sourcemaps for d.ts files. */
"declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */
"declarationMap": true, /* Create sourcemaps for d.ts files. */
// "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */

@@ -56,0 +56,0 @@ // "sourceMap": true, /* Create source map files for emitted JavaScript files. */

declare module 'github-users-parser' {
import { AbstractParseTreeVisitor } from 'antlr4ts/tree';
import { EntryContext, FileContext, GITHUBUSERSParserVisitor } from './GITHUBUSERSParser';
export declare class DefaultVisitor extends AbstractParseTreeVisitor<void> implements GITHUBUSERSParserVisitor<void> {
constructor(emailAddresses: string[]);
protected defaultResult(): void;
visitFile(ctx: FileContext): void;
visitEntry(ctx: EntryContext): void;
getOwners(): string[];
}
export declare const GetGitHubHandlesByEmail: (input: string, emailAddresses: string[]) => string[];
}
import { AbstractParseTreeVisitor } from 'antlr4ts/tree';
import { GITHUBUSERSParserVisitor } from './GITHUBUSERSParserVisitor';
import { EntryContext, FileContext } from './GITHUBUSERSParser';
export class DefaultVisitor extends AbstractParseTreeVisitor<void> implements GITHUBUSERSParserVisitor<void> {
private emailAddresses: Set<string>;
private lookup: Map<string, string>;
private owners: Set<string>;
constructor(emailAddresses: string[]) {
super();
this.emailAddresses = new Set(emailAddresses);
this.owners = new Set();
this.lookup = new Map<string, string>();
console.log(`emailAddresses: ${emailAddresses}`);
}
protected defaultResult(): void {}
visitFile(ctx: FileContext): void {
super.visitChildren(ctx);
}
private hasEmailAddressCaseInsensitive(email: string): boolean {
for (const emailAddress of this.emailAddresses) {
if (emailAddress.toLowerCase() === email.toLowerCase()) {
return true;
}
}
return false;
}
visitEntry(ctx: EntryContext): void {
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(): string[] {
return Array.from(this.owners);
}
}
// Generated from GITHUBUSERSLexer.g4 by ANTLR 4.9.0-SNAPSHOT
import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { CharStream } from "antlr4ts/CharStream";
import { Lexer } from "antlr4ts/Lexer";
import { LexerATNSimulator } from "antlr4ts/atn/LexerATNSimulator";
import { NotNull } from "antlr4ts/Decorators";
import { Override } from "antlr4ts/Decorators";
import { RuleContext } from "antlr4ts/RuleContext";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";
import * as Utils from "antlr4ts/misc/Utils";
export class GITHUBUSERSLexer extends Lexer {
public static readonly WHITESPACE = 1;
public static readonly NEWLINE = 2;
public static readonly GITHUB_HANDLE = 3;
public static readonly EMAIL = 4;
// tslint:disable:no-trailing-whitespace
public static readonly channelNames: string[] = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
];
// tslint:disable:no-trailing-whitespace
public static readonly modeNames: string[] = [
"DEFAULT_MODE",
];
public static readonly ruleNames: string[] = [
"WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL", "LOCAL_PART", "DOMAIN",
];
private static readonly _LITERAL_NAMES: Array<string | undefined> = [
];
private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(GITHUBUSERSLexer._LITERAL_NAMES, GITHUBUSERSLexer._SYMBOLIC_NAMES, []);
// @Override
// @NotNull
public get vocabulary(): Vocabulary {
return GITHUBUSERSLexer.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
constructor(input: CharStream) {
super(input);
this._interp = new LexerATNSimulator(GITHUBUSERSLexer._ATN, this);
}
// @Override
public get grammarFileName(): string { return "GITHUBUSERSLexer.g4"; }
// @Override
public get ruleNames(): string[] { return GITHUBUSERSLexer.ruleNames; }
// @Override
public get serializedATN(): string { return GITHUBUSERSLexer._serializedATN; }
// @Override
public get channelNames(): string[] { return GITHUBUSERSLexer.channelNames; }
// @Override
public get modeNames(): string[] { return GITHUBUSERSLexer.modeNames; }
public static readonly _serializedATN: string =
"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x06;\b\x01\x04" +
"\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04" +
"\x07\t\x07\x03\x02\x06\x02\x11\n\x02\r\x02\x0E\x02\x12\x03\x02\x03\x02" +
"\x03\x03\x06\x03\x18\n\x03\r\x03\x0E\x03\x19\x03\x03\x03\x03\x03\x04\x03" +
"\x04\x06\x04 \n\x04\r\x04\x0E\x04!\x03\x05\x03\x05\x03\x05\x03\x05\x03" +
"\x06\x06\x06)\n\x06\r\x06\x0E\x06*\x03\x07\x06\x07.\n\x07\r\x07\x0E\x07" +
"/\x03\x07\x03\x07\x06\x074\n\x07\r\x07\x0E\x075\x06\x078\n\x07\r\x07\x0E" +
"\x079\x02\x02\x02\b\x03\x02\x03\x05\x02\x04\x07\x02\x05\t\x02\x06\v\x02" +
"\x02\r\x02\x02\x03\x02\x07\x04\x02\v\v\"\"\x04\x02\f\f\x0F\x0F\x07\x02" +
"//2;C\\aac|\b\x02--/02;C\\aac|\x06\x02//2;C\\c|\x02?\x02\x03\x03\x02\x02" +
"\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02" +
"\x02\x03\x10\x03\x02\x02\x02\x05\x17\x03\x02\x02\x02\x07\x1D\x03\x02\x02" +
"\x02\t#\x03\x02\x02\x02\v(\x03\x02\x02\x02\r-\x03\x02\x02\x02\x0F\x11" +
"\t\x02\x02\x02\x10\x0F\x03\x02\x02\x02\x11\x12\x03\x02\x02\x02\x12\x10" +
"\x03\x02\x02\x02\x12\x13\x03\x02\x02\x02\x13\x14\x03\x02\x02\x02\x14\x15" +
"\b\x02\x02\x02\x15\x04\x03\x02\x02\x02\x16\x18\t\x03\x02\x02\x17\x16\x03" +
"\x02\x02\x02\x18\x19\x03\x02\x02\x02\x19\x17\x03\x02\x02\x02\x19\x1A\x03" +
"\x02\x02\x02\x1A\x1B\x03\x02\x02\x02\x1B\x1C\b\x03\x02\x02\x1C\x06\x03" +
"\x02\x02\x02\x1D\x1F\x07B\x02\x02\x1E \t\x04\x02\x02\x1F\x1E\x03\x02\x02" +
"\x02 !\x03\x02\x02\x02!\x1F\x03\x02\x02\x02!\"\x03\x02\x02\x02\"\b\x03" +
"\x02\x02\x02#$\x05\v\x06\x02$%\x07B\x02\x02%&\x05\r\x07\x02&\n\x03\x02" +
"\x02\x02\')\t\x05\x02\x02(\'\x03\x02\x02\x02)*\x03\x02\x02\x02*(\x03\x02" +
"\x02\x02*+\x03\x02\x02\x02+\f\x03\x02\x02\x02,.\t\x06\x02\x02-,\x03\x02" +
"\x02\x02./\x03\x02\x02\x02/-\x03\x02\x02\x02/0\x03\x02\x02\x0207\x03\x02" +
"\x02\x0213\x070\x02\x0224\t\x06\x02\x0232\x03\x02\x02\x0245\x03\x02\x02" +
"\x0253\x03\x02\x02\x0256\x03\x02\x02\x0268\x03\x02\x02\x0271\x03\x02\x02" +
"\x0289\x03\x02\x02\x0297\x03\x02\x02\x029:\x03\x02\x02\x02:\x0E\x03\x02" +
"\x02\x02\n\x02\x12\x19!*/59\x03\b\x02\x02";
public static __ATN: ATN;
public static get _ATN(): ATN {
if (!GITHUBUSERSLexer.__ATN) {
GITHUBUSERSLexer.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSLexer._serializedATN));
}
return GITHUBUSERSLexer.__ATN;
}
}
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
import { ATN } from "antlr4ts/atn/ATN";
import { ATNDeserializer } from "antlr4ts/atn/ATNDeserializer";
import { FailedPredicateException } from "antlr4ts/FailedPredicateException";
import { NotNull } from "antlr4ts/Decorators";
import { NoViableAltException } from "antlr4ts/NoViableAltException";
import { Override } from "antlr4ts/Decorators";
import { Parser } from "antlr4ts/Parser";
import { ParserRuleContext } from "antlr4ts/ParserRuleContext";
import { ParserATNSimulator } from "antlr4ts/atn/ParserATNSimulator";
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
import { RecognitionException } from "antlr4ts/RecognitionException";
import { RuleContext } from "antlr4ts/RuleContext";
//import { RuleVersion } from "antlr4ts/RuleVersion";
import { TerminalNode } from "antlr4ts/tree/TerminalNode";
import { Token } from "antlr4ts/Token";
import { TokenStream } from "antlr4ts/TokenStream";
import { Vocabulary } from "antlr4ts/Vocabulary";
import { VocabularyImpl } from "antlr4ts/VocabularyImpl";
import * as Utils from "antlr4ts/misc/Utils";
import { GITHUBUSERSParserListener } from "./GITHUBUSERSParserListener";
import { GITHUBUSERSParserVisitor } from "./GITHUBUSERSParserVisitor";
export class GITHUBUSERSParser extends Parser {
public static readonly WHITESPACE = 1;
public static readonly NEWLINE = 2;
public static readonly GITHUB_HANDLE = 3;
public static readonly EMAIL = 4;
public static readonly RULE_file = 0;
public static readonly RULE_entry = 1;
// tslint:disable:no-trailing-whitespace
public static readonly ruleNames: string[] = [
"file", "entry",
];
private static readonly _LITERAL_NAMES: Array<string | undefined> = [
];
private static readonly _SYMBOLIC_NAMES: Array<string | undefined> = [
undefined, "WHITESPACE", "NEWLINE", "GITHUB_HANDLE", "EMAIL",
];
public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(GITHUBUSERSParser._LITERAL_NAMES, GITHUBUSERSParser._SYMBOLIC_NAMES, []);
// @Override
// @NotNull
public get vocabulary(): Vocabulary {
return GITHUBUSERSParser.VOCABULARY;
}
// tslint:enable:no-trailing-whitespace
// @Override
public get grammarFileName(): string { return "GITHUBUSERSParser.g4"; }
// @Override
public get ruleNames(): string[] { return GITHUBUSERSParser.ruleNames; }
// @Override
public get serializedATN(): string { return GITHUBUSERSParser._serializedATN; }
protected createFailedPredicateException(predicate?: string, message?: string): FailedPredicateException {
return new FailedPredicateException(this, predicate, message);
}
constructor(input: TokenStream) {
super(input);
this._interp = new ParserATNSimulator(GITHUBUSERSParser._ATN, this);
}
// @RuleVersion(0)
public file(): FileContext {
let _localctx: FileContext = new FileContext(this._ctx, this.state);
this.enterRule(_localctx, 0, GITHUBUSERSParser.RULE_file);
let _la: number;
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 8;
this._errHandler.sync(this);
_la = this._input.LA(1);
do {
{
{
this.state = 4;
this.entry();
this.state = 6;
this._errHandler.sync(this);
_la = this._input.LA(1);
if (_la === GITHUBUSERSParser.NEWLINE) {
{
this.state = 5;
this.match(GITHUBUSERSParser.NEWLINE);
}
}
}
}
this.state = 10;
this._errHandler.sync(this);
_la = this._input.LA(1);
} while (_la === GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 12;
this.match(GITHUBUSERSParser.EOF);
}
}
catch (re) {
if (re instanceof RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
// @RuleVersion(0)
public entry(): EntryContext {
let _localctx: EntryContext = new EntryContext(this._ctx, this.state);
this.enterRule(_localctx, 2, GITHUBUSERSParser.RULE_entry);
try {
this.enterOuterAlt(_localctx, 1);
{
this.state = 14;
this.match(GITHUBUSERSParser.GITHUB_HANDLE);
this.state = 15;
this.match(GITHUBUSERSParser.EMAIL);
}
}
catch (re) {
if (re instanceof RecognitionException) {
_localctx.exception = re;
this._errHandler.reportError(this, re);
this._errHandler.recover(this, re);
} else {
throw re;
}
}
finally {
this.exitRule();
}
return _localctx;
}
public static readonly _serializedATN: string =
"\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x06\x14\x04\x02" +
"\t\x02\x04\x03\t\x03\x03\x02\x03\x02\x05\x02\t\n\x02\x06\x02\v\n\x02\r" +
"\x02\x0E\x02\f\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x02\x02" +
"\x02\x04\x02\x02\x04\x02\x02\x02\x02\x13\x02\n\x03\x02\x02\x02\x04\x10" +
"\x03\x02\x02\x02\x06\b\x05\x04\x03\x02\x07\t\x07\x04\x02\x02\b\x07\x03" +
"\x02\x02\x02\b\t\x03\x02\x02\x02\t\v\x03\x02\x02\x02\n\x06\x03\x02\x02" +
"\x02\v\f\x03\x02\x02\x02\f\n\x03\x02\x02\x02\f\r\x03\x02\x02\x02\r\x0E" +
"\x03\x02\x02\x02\x0E\x0F\x07\x02\x02\x03\x0F\x03\x03\x02\x02\x02\x10\x11" +
"\x07\x05\x02\x02\x11\x12\x07\x06\x02\x02\x12\x05\x03\x02\x02\x02\x04\b" +
"\f";
public static __ATN: ATN;
public static get _ATN(): ATN {
if (!GITHUBUSERSParser.__ATN) {
GITHUBUSERSParser.__ATN = new ATNDeserializer().deserialize(Utils.toCharArray(GITHUBUSERSParser._serializedATN));
}
return GITHUBUSERSParser.__ATN;
}
}
export class FileContext extends ParserRuleContext {
public EOF(): TerminalNode { return this.getToken(GITHUBUSERSParser.EOF, 0); }
public entry(): EntryContext[];
public entry(i: number): EntryContext;
public entry(i?: number): EntryContext | EntryContext[] {
if (i === undefined) {
return this.getRuleContexts(EntryContext);
} else {
return this.getRuleContext(i, EntryContext);
}
}
public NEWLINE(): TerminalNode[];
public NEWLINE(i: number): TerminalNode;
public NEWLINE(i?: number): TerminalNode | TerminalNode[] {
if (i === undefined) {
return this.getTokens(GITHUBUSERSParser.NEWLINE);
} else {
return this.getToken(GITHUBUSERSParser.NEWLINE, i);
}
}
constructor(parent: ParserRuleContext | undefined, invokingState: number) {
super(parent, invokingState);
}
// @Override
public get ruleIndex(): number { return GITHUBUSERSParser.RULE_file; }
// @Override
public enterRule(listener: GITHUBUSERSParserListener): void {
if (listener.enterFile) {
listener.enterFile(this);
}
}
// @Override
public exitRule(listener: GITHUBUSERSParserListener): void {
if (listener.exitFile) {
listener.exitFile(this);
}
}
// @Override
public accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result {
if (visitor.visitFile) {
return visitor.visitFile(this);
} else {
return visitor.visitChildren(this);
}
}
}
export class EntryContext extends ParserRuleContext {
public GITHUB_HANDLE(): TerminalNode { return this.getToken(GITHUBUSERSParser.GITHUB_HANDLE, 0); }
public EMAIL(): TerminalNode { return this.getToken(GITHUBUSERSParser.EMAIL, 0); }
constructor(parent: ParserRuleContext | undefined, invokingState: number) {
super(parent, invokingState);
}
// @Override
public get ruleIndex(): number { return GITHUBUSERSParser.RULE_entry; }
// @Override
public enterRule(listener: GITHUBUSERSParserListener): void {
if (listener.enterEntry) {
listener.enterEntry(this);
}
}
// @Override
public exitRule(listener: GITHUBUSERSParserListener): void {
if (listener.exitEntry) {
listener.exitEntry(this);
}
}
// @Override
public accept<Result>(visitor: GITHUBUSERSParserVisitor<Result>): Result {
if (visitor.visitEntry) {
return visitor.visitEntry(this);
} else {
return visitor.visitChildren(this);
}
}
}
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
import { ParseTreeListener } from "antlr4ts/tree/ParseTreeListener";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete listener for a parse tree produced by
* `GITHUBUSERSParser`.
*/
export interface GITHUBUSERSParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
enterFile?: (ctx: FileContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
*/
exitFile?: (ctx: FileContext) => void;
/**
* Enter a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
enterEntry?: (ctx: EntryContext) => void;
/**
* Exit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
*/
exitEntry?: (ctx: EntryContext) => void;
}
// Generated from GITHUBUSERSParser.g4 by ANTLR 4.9.0-SNAPSHOT
import { ParseTreeVisitor } from "antlr4ts/tree/ParseTreeVisitor";
import { FileContext } from "./GITHUBUSERSParser";
import { EntryContext } from "./GITHUBUSERSParser";
/**
* This interface defines a complete generic visitor for a parse tree produced
* by `GITHUBUSERSParser`.
*
* @param <Result> The return type of the visit operation. Use `void` for
* operations with no return type.
*/
export interface GITHUBUSERSParserVisitor<Result> extends ParseTreeVisitor<Result> {
/**
* Visit a parse tree produced by `GITHUBUSERSParser.file`.
* @param ctx the parse tree
* @return the visitor result
*/
visitFile?: (ctx: FileContext) => Result;
/**
* Visit a parse tree produced by `GITHUBUSERSParser.entry`.
* @param ctx the parse tree
* @return the visitor result
*/
visitEntry?: (ctx: EntryContext) => Result;
}