github-codeowners-parser
Advanced tools
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.AddLineVisitor = void 0; | ||
| const tree_1 = require("antlr4ts/tree"); | ||
| const substring_1 = require("../substring"); | ||
| // TODO: make configurable | ||
| const OWNER_COLUMN = 56; | ||
| const SPACE_SEPARATOR = /\s+/; | ||
| const alignOwners = (line) => { | ||
| const parts = line.split(SPACE_SEPARATOR); | ||
| const path = parts[0]; | ||
| const owners = parts.slice(1).join(' '); | ||
| const numberOfSpaces = OWNER_COLUMN - path.length; | ||
| return `${path}${' '.repeat(numberOfSpaces)}${owners}`; | ||
| }; | ||
| class AddLineVisitor extends tree_1.AbstractParseTreeVisitor { | ||
| constructor(input, newLine) { | ||
| super(); | ||
| this.newLine = newLine; | ||
| this.content = input; | ||
| this.lines = input.split('\n'); | ||
| } | ||
| defaultResult() { | ||
| return ''; | ||
| } | ||
| visitFile(ctx) { | ||
| let insertIndex = this.getInsertIndex(); | ||
| if (insertIndex >= 0) { | ||
| this.insertNewLine(insertIndex); | ||
| } | ||
| return this.content; | ||
| } | ||
| getPathFromLine(line) { | ||
| return line.split(SPACE_SEPARATOR)[0]; | ||
| } | ||
| getInsertIndex() { | ||
| let maxLCS = 0; | ||
| let insertIndex = -1; | ||
| const newPath = this.getPathFromLine(this.newLine); | ||
| for (let i = 0; i < this.lines.length; i++) { | ||
| const line = this.lines[i]; | ||
| const path = this.getPathFromLine(line); | ||
| const lcs = (0, substring_1.metriclcs)(path, newPath); | ||
| if (lcs > maxLCS) { | ||
| maxLCS = lcs; | ||
| insertIndex = i; | ||
| } | ||
| } | ||
| return insertIndex; | ||
| } | ||
| insertNewLine(index) { | ||
| this.lines.splice(index + 1, 0, alignOwners(this.newLine)); | ||
| this.content = this.lines.join('\n'); | ||
| } | ||
| } | ||
| exports.AddLineVisitor = AddLineVisitor; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.addLineToContent = void 0; | ||
| const antlr4ts_1 = require("antlr4ts"); | ||
| const AddLineVisitor_1 = require("./AddLineVisitor"); | ||
| const CODEOWNERSLexer_1 = require("./parser/CODEOWNERSLexer"); | ||
| const CODEOWNERSParser_1 = require("./parser/CODEOWNERSParser"); | ||
| const addLineToContent = (input, newLine) => { | ||
| const chars = antlr4ts_1.CharStreams.fromString(input); | ||
| const lexer = new CODEOWNERSLexer_1.CODEOWNERSLexer(chars); | ||
| const tokens = new antlr4ts_1.CommonTokenStream(lexer); | ||
| const parser = new CODEOWNERSParser_1.CODEOWNERSParser(tokens); | ||
| const tree = parser.file(); | ||
| const visitor = new AddLineVisitor_1.AddLineVisitor(input, newLine); | ||
| return visitor.visit(tree); | ||
| }; | ||
| exports.addLineToContent = addLineToContent; |
| "use strict"; | ||
| // Generated from CODEOWNERSLexer.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.CODEOWNERSLexer = 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 CODEOWNERSLexer extends Lexer_1.Lexer { | ||
| // @Override | ||
| // @NotNull | ||
| get vocabulary() { | ||
| return CODEOWNERSLexer.VOCABULARY; | ||
| } | ||
| // tslint:enable:no-trailing-whitespace | ||
| constructor(input) { | ||
| super(input); | ||
| this._interp = new LexerATNSimulator_1.LexerATNSimulator(CODEOWNERSLexer._ATN, this); | ||
| } | ||
| // @Override | ||
| get grammarFileName() { return "CODEOWNERSLexer.g4"; } | ||
| // @Override | ||
| get ruleNames() { return CODEOWNERSLexer.ruleNames; } | ||
| // @Override | ||
| get serializedATN() { return CODEOWNERSLexer._serializedATN; } | ||
| // @Override | ||
| get channelNames() { return CODEOWNERSLexer.channelNames; } | ||
| // @Override | ||
| get modeNames() { return CODEOWNERSLexer.modeNames; } | ||
| static get _ATN() { | ||
| if (!CODEOWNERSLexer.__ATN) { | ||
| CODEOWNERSLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(CODEOWNERSLexer._serializedATN)); | ||
| } | ||
| return CODEOWNERSLexer.__ATN; | ||
| } | ||
| } | ||
| exports.CODEOWNERSLexer = CODEOWNERSLexer; | ||
| CODEOWNERSLexer.PATH = 1; | ||
| CODEOWNERSLexer.EXTENSION = 2; | ||
| CODEOWNERSLexer.CODEOWNERS = 3; | ||
| CODEOWNERSLexer.LEAVERS = 4; | ||
| CODEOWNERSLexer.USER = 5; | ||
| CODEOWNERSLexer.NEWLINE = 6; | ||
| CODEOWNERSLexer.WHITESPACE = 7; | ||
| CODEOWNERSLexer.FILETYPE = 8; | ||
| CODEOWNERSLexer.ASTERIX = 9; | ||
| CODEOWNERSLexer.HASH = 10; | ||
| CODEOWNERSLexer.NAME_PART = 11; | ||
| CODEOWNERSLexer.COMMENT = 12; | ||
| CODEOWNERSLexer.COMMENTS_CHANNEL = 2; | ||
| // tslint:disable:no-trailing-whitespace | ||
| CODEOWNERSLexer.channelNames = [ | ||
| "DEFAULT_TOKEN_CHANNEL", "HIDDEN", "COMMENTS_CHANNEL", | ||
| ]; | ||
| // tslint:disable:no-trailing-whitespace | ||
| CODEOWNERSLexer.modeNames = [ | ||
| "DEFAULT_MODE", | ||
| ]; | ||
| CODEOWNERSLexer.ruleNames = [ | ||
| "PATH", "EXTENSION", "CODEOWNERS", "LEAVERS", "USER", "NEWLINE", "WHITESPACE", | ||
| "FILETYPE", "ASTERIX", "HASH", "NAME_PART", "COMMENT", "CHAR", | ||
| ]; | ||
| CODEOWNERSLexer._LITERAL_NAMES = [ | ||
| undefined, undefined, undefined, "'CODEOWNERS'", "'LEAVERS'", undefined, | ||
| undefined, undefined, undefined, "'*'", "'#'", | ||
| ]; | ||
| CODEOWNERSLexer._SYMBOLIC_NAMES = [ | ||
| undefined, "PATH", "EXTENSION", "CODEOWNERS", "LEAVERS", "USER", "NEWLINE", | ||
| "WHITESPACE", "FILETYPE", "ASTERIX", "HASH", "NAME_PART", "COMMENT", | ||
| ]; | ||
| CODEOWNERSLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(CODEOWNERSLexer._LITERAL_NAMES, CODEOWNERSLexer._SYMBOLIC_NAMES, []); | ||
| CODEOWNERSLexer._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x0Em\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\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r" + | ||
| "\x04\x0E\t\x0E\x03\x02\x03\x02\x03\x02\x03\x02\x06\x02\"\n\x02\r\x02\x0E" + | ||
| "\x02#\x03\x02\x03\x02\x03\x02\x03\x02\x06\x02*\n\x02\r\x02\x0E\x02+\x03" + | ||
| "\x02\x05\x02/\n\x02\x03\x03\x03\x03\x03\x03\x05\x034\n\x03\x03\x04\x03" + | ||
| "\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03" + | ||
| "\x04\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03" + | ||
| "\x06\x03\x06\x03\x06\x03\x07\x05\x07M\n\x07\x03\x07\x03\x07\x03\b\x03" + | ||
| "\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\v\x03\v\x03" + | ||
| "\f\x06\f_\n\f\r\f\x0E\f`\x03\r\x03\r\x07\re\n\r\f\r\x0E\rh\v\r\x03\r\x03" + | ||
| "\r\x03\x0E\x03\x0E\x02\x02\x02\x0F\x03\x02\x03\x05\x02\x04\x07\x02\x05" + | ||
| "\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02\v\x15\x02\f\x17" + | ||
| "\x02\r\x19\x02\x0E\x1B\x02\x02\x03\x02\x05\x05\x02\v\v\"\"..\x04\x02\f" + | ||
| "\f\x0F\x0F\x07\x02,,/;C\\aac|\x02u\x02\x03\x03\x02\x02\x02\x02\x05\x03" + | ||
| "\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02\x02\x02\x02\v\x03\x02" + | ||
| "\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02\x02\x02\x11\x03\x02" + | ||
| "\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02\x02\x02\x17\x03\x02" + | ||
| "\x02\x02\x02\x19\x03\x02\x02\x02\x03.\x03\x02\x02\x02\x053\x03\x02\x02" + | ||
| "\x02\x075\x03\x02\x02\x02\t@\x03\x02\x02\x02\vH\x03\x02\x02\x02\rL\x03" + | ||
| "\x02\x02\x02\x0FP\x03\x02\x02\x02\x11T\x03\x02\x02\x02\x13Y\x03\x02\x02" + | ||
| "\x02\x15[\x03\x02\x02\x02\x17^\x03\x02\x02\x02\x19b\x03\x02\x02\x02\x1B" + | ||
| "k\x03\x02\x02\x02\x1D!\x071\x02\x02\x1E\x1F\x05\x17\f\x02\x1F \x071\x02" + | ||
| "\x02 \"\x03\x02\x02\x02!\x1E\x03\x02\x02\x02\"#\x03\x02\x02\x02#!\x03" + | ||
| "\x02\x02\x02#$\x03\x02\x02\x02$)\x03\x02\x02\x02%&\x07,\x02\x02&*\x07" + | ||
| ",\x02\x02\'*\x05\x17\f\x02(*\x071\x02\x02)%\x03\x02\x02\x02)\'\x03\x02" + | ||
| "\x02\x02)(\x03\x02\x02\x02*+\x03\x02\x02\x02+)\x03\x02\x02\x02+,\x03\x02" + | ||
| "\x02\x02,/\x03\x02\x02\x02-/\x05\x13\n\x02.\x1D\x03\x02\x02\x02.-\x03" + | ||
| "\x02\x02\x02/\x04\x03\x02\x02\x0204\x05\x11\t\x0214\x05\x07\x04\x0224" + | ||
| "\x05\t\x05\x0230\x03\x02\x02\x0231\x03\x02\x02\x0232\x03\x02\x02\x024" + | ||
| "\x06\x03\x02\x02\x0256\x07E\x02\x0267\x07Q\x02\x0278\x07F\x02\x0289\x07" + | ||
| "G\x02\x029:\x07Q\x02\x02:;\x07Y\x02\x02;<\x07P\x02\x02<=\x07G\x02\x02" + | ||
| "=>\x07T\x02\x02>?\x07U\x02\x02?\b\x03\x02\x02\x02@A\x07N\x02\x02AB\x07" + | ||
| "G\x02\x02BC\x07C\x02\x02CD\x07X\x02\x02DE\x07G\x02\x02EF\x07T\x02\x02" + | ||
| "FG\x07U\x02\x02G\n\x03\x02\x02\x02HI\x07B\x02\x02IJ\x05\x17\f\x02J\f\x03" + | ||
| "\x02\x02\x02KM\x07\x0F\x02\x02LK\x03\x02\x02\x02LM\x03\x02\x02\x02MN\x03" + | ||
| "\x02\x02\x02NO\x07\f\x02\x02O\x0E\x03\x02\x02\x02PQ\t\x02\x02\x02QR\x03" + | ||
| "\x02\x02\x02RS\b\b\x02\x02S\x10\x03\x02\x02\x02TU\x07,\x02\x02UV\x070" + | ||
| "\x02\x02VW\x03\x02\x02\x02WX\x05\x17\f\x02X\x12\x03\x02\x02\x02YZ\x07" + | ||
| ",\x02\x02Z\x14\x03\x02\x02\x02[\\\x07%\x02\x02\\\x16\x03\x02\x02\x02]" + | ||
| "_\x05\x1B\x0E\x02^]\x03\x02\x02\x02_`\x03\x02\x02\x02`^\x03\x02\x02\x02" + | ||
| "`a\x03\x02\x02\x02a\x18\x03\x02\x02\x02bf\x07%\x02\x02ce\n\x03\x02\x02" + | ||
| "dc\x03\x02\x02\x02eh\x03\x02\x02\x02fd\x03\x02\x02\x02fg\x03\x02\x02\x02" + | ||
| "gi\x03\x02\x02\x02hf\x03\x02\x02\x02ij\b\r\x03\x02j\x1A\x03\x02\x02\x02" + | ||
| "kl\t\x04\x02\x02l\x1C\x03\x02\x02\x02\v\x02#)+.3L`f\x04\b\x02\x02\x02" + | ||
| "\x04\x02"; |
| "use strict"; | ||
| // Generated from CODEOWNERSParser.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.BlankLineContext = exports.UserContext = exports.User_listContext = exports.CommentEntryContext = exports.ExtensionEntryContext = exports.PathEntryContext = exports.EntryContext = exports.FileContext = exports.CODEOWNERSParser = void 0; | ||
| const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer"); | ||
| const FailedPredicateException_1 = require("antlr4ts/FailedPredicateException"); | ||
| const NoViableAltException_1 = require("antlr4ts/NoViableAltException"); | ||
| 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 CODEOWNERSParser extends Parser_1.Parser { | ||
| // @Override | ||
| // @NotNull | ||
| get vocabulary() { | ||
| return CODEOWNERSParser.VOCABULARY; | ||
| } | ||
| // tslint:enable:no-trailing-whitespace | ||
| // @Override | ||
| get grammarFileName() { return "CODEOWNERSParser.g4"; } | ||
| // @Override | ||
| get ruleNames() { return CODEOWNERSParser.ruleNames; } | ||
| // @Override | ||
| get serializedATN() { return CODEOWNERSParser._serializedATN; } | ||
| createFailedPredicateException(predicate, message) { | ||
| return new FailedPredicateException_1.FailedPredicateException(this, predicate, message); | ||
| } | ||
| constructor(input) { | ||
| super(input); | ||
| this._interp = new ParserATNSimulator_1.ParserATNSimulator(CODEOWNERSParser._ATN, this); | ||
| } | ||
| // @RuleVersion(0) | ||
| file() { | ||
| let _localctx = new FileContext(this._ctx, this.state); | ||
| this.enterRule(_localctx, 0, CODEOWNERSParser.RULE_file); | ||
| let _la; | ||
| try { | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 20; | ||
| this._errHandler.sync(this); | ||
| _la = this._input.LA(1); | ||
| do { | ||
| { | ||
| { | ||
| this.state = 16; | ||
| this.entry(); | ||
| this.state = 18; | ||
| this._errHandler.sync(this); | ||
| switch (this.interpreter.adaptivePredict(this._input, 0, this._ctx)) { | ||
| case 1: | ||
| { | ||
| this.state = 17; | ||
| this.match(CODEOWNERSParser.NEWLINE); | ||
| } | ||
| break; | ||
| } | ||
| } | ||
| } | ||
| this.state = 22; | ||
| this._errHandler.sync(this); | ||
| _la = this._input.LA(1); | ||
| } while ((((_la) & ~0x1F) === 0 && ((1 << _la) & ((1 << CODEOWNERSParser.PATH) | (1 << CODEOWNERSParser.EXTENSION) | (1 << CODEOWNERSParser.NEWLINE) | (1 << CODEOWNERSParser.COMMENT))) !== 0)); | ||
| this.state = 24; | ||
| this.match(CODEOWNERSParser.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, CODEOWNERSParser.RULE_entry); | ||
| try { | ||
| this.state = 30; | ||
| this._errHandler.sync(this); | ||
| switch (this._input.LA(1)) { | ||
| case CODEOWNERSParser.PATH: | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 26; | ||
| this.pathEntry(); | ||
| } | ||
| break; | ||
| case CODEOWNERSParser.EXTENSION: | ||
| this.enterOuterAlt(_localctx, 2); | ||
| { | ||
| this.state = 27; | ||
| this.extensionEntry(); | ||
| } | ||
| break; | ||
| case CODEOWNERSParser.COMMENT: | ||
| this.enterOuterAlt(_localctx, 3); | ||
| { | ||
| this.state = 28; | ||
| this.commentEntry(); | ||
| } | ||
| break; | ||
| case CODEOWNERSParser.NEWLINE: | ||
| this.enterOuterAlt(_localctx, 4); | ||
| { | ||
| this.state = 29; | ||
| this.blankLine(); | ||
| } | ||
| break; | ||
| default: | ||
| throw new NoViableAltException_1.NoViableAltException(this); | ||
| } | ||
| } | ||
| 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) | ||
| pathEntry() { | ||
| let _localctx = new PathEntryContext(this._ctx, this.state); | ||
| this.enterRule(_localctx, 4, CODEOWNERSParser.RULE_pathEntry); | ||
| try { | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 32; | ||
| this.match(CODEOWNERSParser.PATH); | ||
| this.state = 33; | ||
| this.user_list(); | ||
| } | ||
| } | ||
| 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) | ||
| extensionEntry() { | ||
| let _localctx = new ExtensionEntryContext(this._ctx, this.state); | ||
| this.enterRule(_localctx, 6, CODEOWNERSParser.RULE_extensionEntry); | ||
| try { | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 35; | ||
| this.match(CODEOWNERSParser.EXTENSION); | ||
| this.state = 36; | ||
| this.user_list(); | ||
| } | ||
| } | ||
| 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) | ||
| commentEntry() { | ||
| let _localctx = new CommentEntryContext(this._ctx, this.state); | ||
| this.enterRule(_localctx, 8, CODEOWNERSParser.RULE_commentEntry); | ||
| try { | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 38; | ||
| this.match(CODEOWNERSParser.COMMENT); | ||
| } | ||
| } | ||
| 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) | ||
| user_list() { | ||
| let _localctx = new User_listContext(this._ctx, this.state); | ||
| this.enterRule(_localctx, 10, CODEOWNERSParser.RULE_user_list); | ||
| let _la; | ||
| try { | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 41; | ||
| this._errHandler.sync(this); | ||
| _la = this._input.LA(1); | ||
| do { | ||
| { | ||
| { | ||
| this.state = 40; | ||
| this.user(); | ||
| } | ||
| } | ||
| this.state = 43; | ||
| this._errHandler.sync(this); | ||
| _la = this._input.LA(1); | ||
| } while (_la === CODEOWNERSParser.USER); | ||
| } | ||
| } | ||
| 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) | ||
| user() { | ||
| let _localctx = new UserContext(this._ctx, this.state); | ||
| this.enterRule(_localctx, 12, CODEOWNERSParser.RULE_user); | ||
| try { | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 45; | ||
| this.match(CODEOWNERSParser.USER); | ||
| } | ||
| } | ||
| 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) | ||
| blankLine() { | ||
| let _localctx = new BlankLineContext(this._ctx, this.state); | ||
| this.enterRule(_localctx, 14, CODEOWNERSParser.RULE_blankLine); | ||
| try { | ||
| this.enterOuterAlt(_localctx, 1); | ||
| { | ||
| this.state = 47; | ||
| this.match(CODEOWNERSParser.NEWLINE); | ||
| } | ||
| } | ||
| 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 (!CODEOWNERSParser.__ATN) { | ||
| CODEOWNERSParser.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(CODEOWNERSParser._serializedATN)); | ||
| } | ||
| return CODEOWNERSParser.__ATN; | ||
| } | ||
| } | ||
| exports.CODEOWNERSParser = CODEOWNERSParser; | ||
| CODEOWNERSParser.PATH = 1; | ||
| CODEOWNERSParser.EXTENSION = 2; | ||
| CODEOWNERSParser.CODEOWNERS = 3; | ||
| CODEOWNERSParser.LEAVERS = 4; | ||
| CODEOWNERSParser.USER = 5; | ||
| CODEOWNERSParser.NEWLINE = 6; | ||
| CODEOWNERSParser.WHITESPACE = 7; | ||
| CODEOWNERSParser.FILETYPE = 8; | ||
| CODEOWNERSParser.ASTERIX = 9; | ||
| CODEOWNERSParser.HASH = 10; | ||
| CODEOWNERSParser.NAME_PART = 11; | ||
| CODEOWNERSParser.COMMENT = 12; | ||
| CODEOWNERSParser.RULE_file = 0; | ||
| CODEOWNERSParser.RULE_entry = 1; | ||
| CODEOWNERSParser.RULE_pathEntry = 2; | ||
| CODEOWNERSParser.RULE_extensionEntry = 3; | ||
| CODEOWNERSParser.RULE_commentEntry = 4; | ||
| CODEOWNERSParser.RULE_user_list = 5; | ||
| CODEOWNERSParser.RULE_user = 6; | ||
| CODEOWNERSParser.RULE_blankLine = 7; | ||
| // tslint:disable:no-trailing-whitespace | ||
| CODEOWNERSParser.ruleNames = [ | ||
| "file", "entry", "pathEntry", "extensionEntry", "commentEntry", "user_list", | ||
| "user", "blankLine", | ||
| ]; | ||
| CODEOWNERSParser._LITERAL_NAMES = [ | ||
| undefined, undefined, undefined, "'CODEOWNERS'", "'LEAVERS'", undefined, | ||
| undefined, undefined, undefined, "'*'", "'#'", | ||
| ]; | ||
| CODEOWNERSParser._SYMBOLIC_NAMES = [ | ||
| undefined, "PATH", "EXTENSION", "CODEOWNERS", "LEAVERS", "USER", "NEWLINE", | ||
| "WHITESPACE", "FILETYPE", "ASTERIX", "HASH", "NAME_PART", "COMMENT", | ||
| ]; | ||
| CODEOWNERSParser.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(CODEOWNERSParser._LITERAL_NAMES, CODEOWNERSParser._SYMBOLIC_NAMES, []); | ||
| CODEOWNERSParser._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03\x0E4\x04\x02" + | ||
| "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" + | ||
| "\t\x07\x04\b\t\b\x04\t\t\t\x03\x02\x03\x02\x05\x02\x15\n\x02\x06\x02\x17" + | ||
| "\n\x02\r\x02\x0E\x02\x18\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03" + | ||
| "\x05\x03!\n\x03\x03\x04\x03\x04\x03\x04\x03\x05\x03\x05\x03\x05\x03\x06" + | ||
| "\x03\x06\x03\x07\x06\x07,\n\x07\r\x07\x0E\x07-\x03\b\x03\b\x03\t\x03\t" + | ||
| "\x03\t\x02\x02\x02\n\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02" + | ||
| "\x10\x02\x02\x02\x021\x02\x16\x03\x02\x02\x02\x04 \x03\x02\x02\x02\x06" + | ||
| "\"\x03\x02\x02\x02\b%\x03\x02\x02\x02\n(\x03\x02\x02\x02\f+\x03\x02\x02" + | ||
| "\x02\x0E/\x03\x02\x02\x02\x101\x03\x02\x02\x02\x12\x14\x05\x04\x03\x02" + | ||
| "\x13\x15\x07\b\x02\x02\x14\x13\x03\x02\x02\x02\x14\x15\x03\x02\x02\x02" + | ||
| "\x15\x17\x03\x02\x02\x02\x16\x12\x03\x02\x02\x02\x17\x18\x03\x02\x02\x02" + | ||
| "\x18\x16\x03\x02\x02\x02\x18\x19\x03\x02\x02\x02\x19\x1A\x03\x02\x02\x02" + | ||
| "\x1A\x1B\x07\x02\x02\x03\x1B\x03\x03\x02\x02\x02\x1C!\x05\x06\x04\x02" + | ||
| "\x1D!\x05\b\x05\x02\x1E!\x05\n\x06\x02\x1F!\x05\x10\t\x02 \x1C\x03\x02" + | ||
| "\x02\x02 \x1D\x03\x02\x02\x02 \x1E\x03\x02\x02\x02 \x1F\x03\x02\x02\x02" + | ||
| "!\x05\x03\x02\x02\x02\"#\x07\x03\x02\x02#$\x05\f\x07\x02$\x07\x03\x02" + | ||
| "\x02\x02%&\x07\x04\x02\x02&\'\x05\f\x07\x02\'\t\x03\x02\x02\x02()\x07" + | ||
| "\x0E\x02\x02)\v\x03\x02\x02\x02*,\x05\x0E\b\x02+*\x03\x02\x02\x02,-\x03" + | ||
| "\x02\x02\x02-+\x03\x02\x02\x02-.\x03\x02\x02\x02.\r\x03\x02\x02\x02/0" + | ||
| "\x07\x07\x02\x020\x0F\x03\x02\x02\x0212\x07\b\x02\x022\x11\x03\x02\x02" + | ||
| "\x02\x06\x14\x18 -"; | ||
| class FileContext extends ParserRuleContext_1.ParserRuleContext { | ||
| EOF() { return this.getToken(CODEOWNERSParser.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(CODEOWNERSParser.NEWLINE); | ||
| } | ||
| else { | ||
| return this.getToken(CODEOWNERSParser.NEWLINE, i); | ||
| } | ||
| } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.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 { | ||
| pathEntry() { | ||
| return this.tryGetRuleContext(0, PathEntryContext); | ||
| } | ||
| extensionEntry() { | ||
| return this.tryGetRuleContext(0, ExtensionEntryContext); | ||
| } | ||
| commentEntry() { | ||
| return this.tryGetRuleContext(0, CommentEntryContext); | ||
| } | ||
| blankLine() { | ||
| return this.tryGetRuleContext(0, BlankLineContext); | ||
| } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.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; | ||
| class PathEntryContext extends ParserRuleContext_1.ParserRuleContext { | ||
| PATH() { return this.getToken(CODEOWNERSParser.PATH, 0); } | ||
| user_list() { | ||
| return this.getRuleContext(0, User_listContext); | ||
| } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.RULE_pathEntry; } | ||
| // @Override | ||
| enterRule(listener) { | ||
| if (listener.enterPathEntry) { | ||
| listener.enterPathEntry(this); | ||
| } | ||
| } | ||
| // @Override | ||
| exitRule(listener) { | ||
| if (listener.exitPathEntry) { | ||
| listener.exitPathEntry(this); | ||
| } | ||
| } | ||
| // @Override | ||
| accept(visitor) { | ||
| if (visitor.visitPathEntry) { | ||
| return visitor.visitPathEntry(this); | ||
| } | ||
| else { | ||
| return visitor.visitChildren(this); | ||
| } | ||
| } | ||
| } | ||
| exports.PathEntryContext = PathEntryContext; | ||
| class ExtensionEntryContext extends ParserRuleContext_1.ParserRuleContext { | ||
| EXTENSION() { return this.getToken(CODEOWNERSParser.EXTENSION, 0); } | ||
| user_list() { | ||
| return this.getRuleContext(0, User_listContext); | ||
| } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.RULE_extensionEntry; } | ||
| // @Override | ||
| enterRule(listener) { | ||
| if (listener.enterExtensionEntry) { | ||
| listener.enterExtensionEntry(this); | ||
| } | ||
| } | ||
| // @Override | ||
| exitRule(listener) { | ||
| if (listener.exitExtensionEntry) { | ||
| listener.exitExtensionEntry(this); | ||
| } | ||
| } | ||
| // @Override | ||
| accept(visitor) { | ||
| if (visitor.visitExtensionEntry) { | ||
| return visitor.visitExtensionEntry(this); | ||
| } | ||
| else { | ||
| return visitor.visitChildren(this); | ||
| } | ||
| } | ||
| } | ||
| exports.ExtensionEntryContext = ExtensionEntryContext; | ||
| class CommentEntryContext extends ParserRuleContext_1.ParserRuleContext { | ||
| COMMENT() { return this.getToken(CODEOWNERSParser.COMMENT, 0); } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.RULE_commentEntry; } | ||
| // @Override | ||
| enterRule(listener) { | ||
| if (listener.enterCommentEntry) { | ||
| listener.enterCommentEntry(this); | ||
| } | ||
| } | ||
| // @Override | ||
| exitRule(listener) { | ||
| if (listener.exitCommentEntry) { | ||
| listener.exitCommentEntry(this); | ||
| } | ||
| } | ||
| // @Override | ||
| accept(visitor) { | ||
| if (visitor.visitCommentEntry) { | ||
| return visitor.visitCommentEntry(this); | ||
| } | ||
| else { | ||
| return visitor.visitChildren(this); | ||
| } | ||
| } | ||
| } | ||
| exports.CommentEntryContext = CommentEntryContext; | ||
| class User_listContext extends ParserRuleContext_1.ParserRuleContext { | ||
| user(i) { | ||
| if (i === undefined) { | ||
| return this.getRuleContexts(UserContext); | ||
| } | ||
| else { | ||
| return this.getRuleContext(i, UserContext); | ||
| } | ||
| } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.RULE_user_list; } | ||
| // @Override | ||
| enterRule(listener) { | ||
| if (listener.enterUser_list) { | ||
| listener.enterUser_list(this); | ||
| } | ||
| } | ||
| // @Override | ||
| exitRule(listener) { | ||
| if (listener.exitUser_list) { | ||
| listener.exitUser_list(this); | ||
| } | ||
| } | ||
| // @Override | ||
| accept(visitor) { | ||
| if (visitor.visitUser_list) { | ||
| return visitor.visitUser_list(this); | ||
| } | ||
| else { | ||
| return visitor.visitChildren(this); | ||
| } | ||
| } | ||
| } | ||
| exports.User_listContext = User_listContext; | ||
| class UserContext extends ParserRuleContext_1.ParserRuleContext { | ||
| USER() { return this.getToken(CODEOWNERSParser.USER, 0); } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.RULE_user; } | ||
| // @Override | ||
| enterRule(listener) { | ||
| if (listener.enterUser) { | ||
| listener.enterUser(this); | ||
| } | ||
| } | ||
| // @Override | ||
| exitRule(listener) { | ||
| if (listener.exitUser) { | ||
| listener.exitUser(this); | ||
| } | ||
| } | ||
| // @Override | ||
| accept(visitor) { | ||
| if (visitor.visitUser) { | ||
| return visitor.visitUser(this); | ||
| } | ||
| else { | ||
| return visitor.visitChildren(this); | ||
| } | ||
| } | ||
| } | ||
| exports.UserContext = UserContext; | ||
| class BlankLineContext extends ParserRuleContext_1.ParserRuleContext { | ||
| NEWLINE() { return this.getToken(CODEOWNERSParser.NEWLINE, 0); } | ||
| constructor(parent, invokingState) { | ||
| super(parent, invokingState); | ||
| } | ||
| // @Override | ||
| get ruleIndex() { return CODEOWNERSParser.RULE_blankLine; } | ||
| // @Override | ||
| enterRule(listener) { | ||
| if (listener.enterBlankLine) { | ||
| listener.enterBlankLine(this); | ||
| } | ||
| } | ||
| // @Override | ||
| exitRule(listener) { | ||
| if (listener.exitBlankLine) { | ||
| listener.exitBlankLine(this); | ||
| } | ||
| } | ||
| // @Override | ||
| accept(visitor) { | ||
| if (visitor.visitBlankLine) { | ||
| return visitor.visitBlankLine(this); | ||
| } | ||
| else { | ||
| return visitor.visitChildren(this); | ||
| } | ||
| } | ||
| } | ||
| exports.BlankLineContext = BlankLineContext; |
| "use strict"; | ||
| // Generated from CODEOWNERSParser.g4 by ANTLR 4.9.0-SNAPSHOT | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| // Generated from CODEOWNERSParser.g4 by ANTLR 4.9.0-SNAPSHOT | ||
| Object.defineProperty(exports, "__esModule", { value: true }); |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.metriclcs = exports.lcsLength = void 0; | ||
| const lcsLength = (s1, s2) => { | ||
| const s1Length = s1.length; | ||
| const s2Length = s2.length; | ||
| const c = Array.from({ length: 2 }, () => Array(s2Length + 1).fill(0)); | ||
| for (let i = 1; i <= s1Length; i++) { | ||
| for (let j = 1; j <= s2Length; j++) { | ||
| c[i % 2][j] = | ||
| s1[i - 1] === s2[j - 1] | ||
| ? c[(i - 1) % 2][j - 1] + 1 | ||
| : Math.max(c[i % 2][j - 1], c[(i - 1) % 2][j]); | ||
| } | ||
| } | ||
| return c[s1Length % 2][s2Length]; | ||
| }; | ||
| exports.lcsLength = lcsLength; | ||
| const metriclcs = (s1, s2) => { | ||
| if (typeof s1 !== 'string' || typeof s2 !== 'string') | ||
| return NaN; | ||
| if (s1 === s2) | ||
| return 1; | ||
| const mlen = Math.max(s1.length, s2.length); | ||
| if (mlen === 0) | ||
| return 1; | ||
| return (0, exports.lcsLength)(s1, s2) / mlen; | ||
| }; | ||
| exports.metriclcs = metriclcs; |
+1
-1
| { | ||
| "name": "github-codeowners-parser", | ||
| "version": "1.0.0", | ||
| "version": "1.0.1", | ||
| "description": "Antlr4 generated CODEOWNERS parser", | ||
@@ -5,0 +5,0 @@ "main": "dist/index.js", |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
103910
53.94%19
58.33%2600
55.5%83
8200%2
100%