grammar.ts (9497B)
1 // Generated automatically by nearley, version 2.20.1 2 // http://github.com/Hardmath123/nearley 3 // Bypasses TS6133. Allow declared but unused functions. 4 // @ts-ignore 5 function id(d: any[]): any { 6 return d[0]; 7 } 8 declare var newline: any; 9 declare var metaMessages: any; 10 declare var ws: any; 11 declare var number: any; 12 declare var misc: any; 13 declare var internalMetaMessage: any; 14 declare var string: any; 15 declare var keyword: any; 16 declare var count: any; 17 declare var path: any; 18 declare var url_with_error: any; 19 20 import {default as moo} from 'moo'; 21 const {compile, keywords, error} = moo; 22 const appendItem = function (a: number, b: number) { 23 return function (d: any) { 24 return d[a].concat(d[b]); 25 }; 26 }; 27 const empty = function (d: any) { 28 return []; 29 }; 30 31 const lexer = compile({ 32 count: /(?:0|[1-9][0-9]*)\./, 33 ws: /[ \t]+/, 34 keyword: ['Error:', 'Broken link in', 'to'], 35 number: /[0-9]+/, 36 internalMetaMessage: ['> Successfully checked'], 37 metaMessages: [ 38 'pages (', 39 'orphan),', 40 'sections', 41 '-> Site content:', 42 'Checking site...', 43 'Checking all internal links with anchors.', 44 'internal link(s) with anchors.', 45 'Checking', 46 'external link(s).', 47 'Skipping', 48 '> Checked', 49 'external link(s):', 50 'error(s) found.', 51 'Done in' 52 ], 53 misc: [':', 'ms.'], 54 path: /(?:(?:.\/|\/)[.a-zA-Z0-9_-]+)+/, 55 url_with_error: /\w*?:\/\/.*?(?=: )/, 56 string: /(?!\s*$).+/, 57 lexerError: error, 58 newline: {match: '\n', lineBreaks: true} 59 }); 60 61 interface NearleyToken { 62 value: any; 63 [key: string]: any; 64 } 65 66 interface NearleyLexer { 67 reset: (chunk: string, info: any) => void; 68 next: () => NearleyToken | undefined; 69 save: () => any; 70 formatError: (token: never) => string; 71 has: (tokenType: string) => boolean; 72 } 73 74 interface NearleyRule { 75 name: string; 76 symbols: NearleySymbol[]; 77 postprocess?: (d: any[], loc?: number, reject?: {}) => any; 78 } 79 80 type NearleySymbol = string | {literal: any} | {test: (token: any) => boolean}; 81 82 interface Grammar { 83 Lexer: NearleyLexer | undefined; 84 ParserRules: NearleyRule[]; 85 ParserStart: string; 86 } 87 88 const grammar: Grammar = { 89 Lexer: lexer, 90 ParserRules: [ 91 {name: 'stdOutInput', symbols: ['stdOutRow'], postprocess: id}, 92 { 93 name: 'stdOutInput', 94 symbols: [ 95 'stdOutInput', 96 lexer.has('newline') ? {type: 'newline'} : newline, 97 'stdOutRow' 98 ], 99 postprocess: appendItem(0, 2) 100 }, 101 {name: 'stdOutInput', symbols: ['input'], postprocess: id}, 102 {name: 'stdOutRow', symbols: ['metaMessage'], postprocess: empty}, 103 { 104 name: 'stdOutRow', 105 symbols: ['successReport'], 106 postprocess: function (data) { 107 return { 108 successReport: data[0] 109 }; 110 } 111 }, 112 { 113 name: 'stdOutRow', 114 symbols: ['internalLinkMessage'], 115 postprocess: function (data) { 116 return { 117 internal_links: data[0] 118 }; 119 } 120 }, 121 { 122 name: 'stdOutRow', 123 symbols: ['externalLinkCheckingWithSkippedLinkMessage'], 124 postprocess: function (data) { 125 return { 126 external_links_planed_checking: data[0] 127 }; 128 } 129 }, 130 { 131 name: 'stdOutRow', 132 symbols: ['externalLinkCheckingMessage'], 133 postprocess: function (data) { 134 return { 135 external_links_planed_checking: data[0] 136 }; 137 } 138 }, 139 { 140 name: 'stdOutRow', 141 symbols: ['externalLinkCheckingLinkMessage'], 142 postprocess: function (data) { 143 return { 144 external_links_checked: data[0] 145 }; 146 } 147 }, 148 {name: 'stdOutRow', symbols: [], postprocess: empty}, 149 { 150 name: 'metaMessage', 151 symbols: [ 152 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages 153 ] 154 }, 155 { 156 name: 'metaMessage', 157 symbols: [ 158 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 159 lexer.has('ws') ? {type: 'ws'} : ws, 160 lexer.has('number') ? {type: 'number'} : number, 161 lexer.has('misc') ? {type: 'misc'} : misc 162 ] 163 }, 164 { 165 name: 'successReport', 166 symbols: [ 167 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 168 lexer.has('ws') ? {type: 'ws'} : ws, 169 lexer.has('number') ? {type: 'number'} : number, 170 lexer.has('ws') ? {type: 'ws'} : ws, 171 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 172 lexer.has('number') ? {type: 'number'} : number, 173 lexer.has('ws') ? {type: 'ws'} : ws, 174 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 175 lexer.has('ws') ? {type: 'ws'} : ws, 176 lexer.has('number') ? {type: 'number'} : number, 177 lexer.has('ws') ? {type: 'ws'} : ws, 178 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages 179 ], 180 postprocess: function (data) { 181 return { 182 pages: data[2]['value'], 183 orphans: data[5]['value'], 184 sections: data[9]['value'] 185 }; 186 } 187 }, 188 { 189 name: 'internalLinkMessage', 190 symbols: [ 191 lexer.has('internalMetaMessage') 192 ? {type: 'internalMetaMessage'} 193 : internalMetaMessage, 194 lexer.has('ws') ? {type: 'ws'} : ws, 195 lexer.has('number') ? {type: 'number'} : number, 196 lexer.has('ws') ? {type: 'ws'} : ws, 197 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages 198 ], 199 postprocess: function (data) { 200 return { 201 total: data[2]['value'] 202 }; 203 } 204 }, 205 { 206 name: 'externalLinkCheckingWithSkippedLinkMessage', 207 symbols: [ 208 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 209 lexer.has('ws') ? {type: 'ws'} : ws, 210 lexer.has('number') ? {type: 'number'} : number, 211 lexer.has('ws') ? {type: 'ws'} : ws, 212 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 213 lexer.has('ws') ? {type: 'ws'} : ws, 214 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 215 lexer.has('ws') ? {type: 'ws'} : ws, 216 lexer.has('number') ? {type: 'number'} : number, 217 lexer.has('ws') ? {type: 'ws'} : ws, 218 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages 219 ], 220 postprocess: function (data) { 221 return { 222 total: data[2]['value'], 223 skipped: data[8]['value'] 224 }; 225 } 226 }, 227 { 228 name: 'externalLinkCheckingMessage', 229 symbols: [ 230 {literal: 'Checking'}, 231 lexer.has('ws') ? {type: 'ws'} : ws, 232 lexer.has('number') ? {type: 'number'} : number, 233 lexer.has('ws') ? {type: 'ws'} : ws, 234 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages 235 ], 236 postprocess: function (data) { 237 return { 238 total: data[2]['value'] 239 }; 240 } 241 }, 242 { 243 name: 'externalLinkCheckingLinkMessage', 244 symbols: [ 245 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 246 lexer.has('ws') ? {type: 'ws'} : ws, 247 lexer.has('number') ? {type: 'number'} : number, 248 lexer.has('ws') ? {type: 'ws'} : ws, 249 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages, 250 lexer.has('ws') ? {type: 'ws'} : ws, 251 lexer.has('number') ? {type: 'number'} : number, 252 lexer.has('ws') ? {type: 'ws'} : ws, 253 lexer.has('metaMessages') ? {type: 'metaMessages'} : metaMessages 254 ], 255 postprocess: function (data) { 256 return { 257 total: data[2]['value'], 258 errors: data[6]['value'] 259 }; 260 } 261 }, 262 {name: 'input', symbols: ['row'], postprocess: id}, 263 { 264 name: 'input', 265 symbols: [ 266 'input', 267 lexer.has('newline') ? {type: 'newline'} : newline, 268 'row' 269 ], 270 postprocess: appendItem(0, 2) 271 }, 272 {name: 'row', symbols: ['broke_link_message']}, 273 {name: 'row', symbols: ['error']}, 274 {name: 'row', symbols: [], postprocess: empty}, 275 { 276 name: 'error_message', 277 symbols: [lexer.has('string') ? {type: 'string'} : string], 278 postprocess: function (data) { 279 return data[0]['value']; 280 } 281 }, 282 { 283 name: 'error', 284 symbols: [ 285 lexer.has('keyword') ? {type: 'keyword'} : keyword, 286 lexer.has('ws') ? {type: 'ws'} : ws, 287 'error_message' 288 ], 289 postprocess: function (data) { 290 return {error_message: data[2]}; 291 } 292 }, 293 {name: 'prefix', symbols: []}, 294 {name: 'prefix', symbols: [lexer.has('ws') ? {type: 'ws'} : ws]}, 295 { 296 name: 'broke_link_message', 297 symbols: [ 298 'prefix', 299 lexer.has('count') ? {type: 'count'} : count, 300 lexer.has('ws') ? {type: 'ws'} : ws, 301 lexer.has('keyword') ? {type: 'keyword'} : keyword, 302 lexer.has('ws') ? {type: 'ws'} : ws, 303 lexer.has('path') ? {type: 'path'} : path, 304 lexer.has('ws') ? {type: 'ws'} : ws, 305 lexer.has('keyword') ? {type: 'keyword'} : keyword, 306 lexer.has('ws') ? {type: 'ws'} : ws, 307 lexer.has('url_with_error') ? {type: 'url_with_error'} : url_with_error, 308 lexer.has('misc') ? {type: 'misc'} : misc, 309 lexer.has('ws') ? {type: 'ws'} : ws, 310 lexer.has('string') ? {type: 'string'} : string 311 ], 312 postprocess: function (data) { 313 return { 314 file: data[5]['value'], 315 url: data[9]['value'], 316 error_message: data[12]['value'] 317 }; 318 } 319 } 320 ], 321 ParserStart: 'stdOutInput' 322 }; 323 324 export default grammar;