github-users-parser
Advanced tools
| 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; | ||
| } | ||
+1
| 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); |
+5
-4
| { | ||
| "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", |
+2
-2
@@ -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; | ||
| } | ||
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
115348
93.53%53
194.44%2397
87.85%1
Infinity%