X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Frfc8288-web-linking.js;h=b2b66bd74225359c9088808e3a008d5a9f9bba23;hb=refs%2Fheads%2Fmaster;hp=5da4bab5343d6f3987041a5cb7821be41a1cd682;hpb=a6ebd40f50b4f1277c92e335638d8cfc96ee9cfa;p=squeep-web-linking diff --git a/lib/rfc8288-web-linking.js b/lib/rfc8288-web-linking.js index 5da4bab..e3b988f 100644 --- a/lib/rfc8288-web-linking.js +++ b/lib/rfc8288-web-linking.js @@ -1,19 +1,25 @@ -// Generated by Peggy 2.0.1. +// @generated by Peggy 4.0.2. // // https://peggyjs.org/ "use strict"; + /* Generated code is not pretty, ignore a lot of this horrorstyle. */ -/* eslint-disable quotes */ -/* eslint-disable vars-on-top */ /* eslint-disable no-control-regex */ +/* eslint-disable no-empty */ /* eslint-disable security/detect-object-injection */ -/* eslint-disable vars-on-top */ /* eslint-disable brace-style */ /* eslint-disable comma-dangle */ +/* eslint-disable vars-on-top */ /* eslint-disable no-unused-vars */ +/* eslint-disable camelcase */ +/* eslint-disable indent */ +/* eslint-disable semi */ +/* eslint-disable jsdoc/require-jsdoc */ +/* eslint-disable sonarjs/cognitive-complexity */ +/* eslint-disable sonarjs/no-identical-functions */ function makeString(o) { return o.join(''); @@ -69,16 +75,19 @@ peg$SyntaxError.prototype.format = function(sources) { } } var s = this.location.start; - var loc = this.location.source + ":" + s.line + ":" + s.column; + var offset_s = (this.location.source && (typeof this.location.source.offset === "function")) + ? this.location.source.offset(s) + : s; + var loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column; if (src) { var e = this.location.end; - var filler = peg$padEnd("", s.line.toString().length, ' '); + var filler = peg$padEnd("", offset_s.line.toString().length, ' '); var line = src[s.line - 1]; var last = s.line === e.line ? e.column : line.length + 1; var hatLen = (last - s.column) || 1; str += "\n --> " + loc + "\n" + filler + " |\n" - + s.line + " | " + line + "\n" + + offset_s.line + " | " + line + "\n" + filler + " | " + peg$padEnd("", s.column - 1, ' ') + peg$padEnd("", hatLen, "^"); } else { @@ -308,16 +317,16 @@ function peg$parse(input, options) { value: makeString(value), }; }; - var peg$currPos = 0; - var peg$savedPos = 0; + var peg$currPos = options.peg$currPos | 0; + var peg$savedPos = peg$currPos; var peg$posDetailsCache = [{ line: 1, column: 1 }]; - var peg$maxFailPos = 0; - var peg$maxFailExpected = []; - var peg$silentFails = 0; + var peg$maxFailPos = peg$currPos; + var peg$maxFailExpected = options.peg$maxFailExpected || []; + var peg$silentFails = options.peg$silentFails | 0; var peg$result; - if ("startRule" in options) { + if (options.startRule) { if (!(options.startRule in peg$startRuleFunctions)) { throw new Error("Can't start parsing from rule \"" + options.startRule + "\"."); } @@ -392,9 +401,11 @@ function peg$parse(input, options) { if (details) { return details; } else { - p = pos - 1; - while (!peg$posDetailsCache[p]) { - p--; + if (pos >= peg$posDetailsCache.length) { + p = peg$posDetailsCache.length - 1; + } else { + p = pos; + while (!peg$posDetailsCache[--p]) {} } details = peg$posDetailsCache[p]; @@ -420,11 +431,11 @@ function peg$parse(input, options) { } } - function peg$computeLocation(startPos, endPos) { + function peg$computeLocation(startPos, endPos, offset) { var startPosDetails = peg$computePosDetails(startPos); var endPosDetails = peg$computePosDetails(endPos); - return { + var res = { source: peg$source, start: { offset: startPos, @@ -437,6 +448,11 @@ function peg$parse(input, options) { column: endPosDetails.column } }; + if (offset && peg$source && (typeof peg$source.offset === "function")) { + res.start = peg$source.offset(res.start); + res.end = peg$source.offset(res.end); + } + return res; } function peg$fail(expected) { @@ -596,8 +612,8 @@ function peg$parse(input, options) { peg$silentFails++; s0 = peg$currPos; s1 = []; - if (peg$r0.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r0.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -606,8 +622,8 @@ function peg$parse(input, options) { if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); - if (peg$r0.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r0.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -742,8 +758,8 @@ function peg$parse(input, options) { peg$silentFails++; s0 = peg$currPos; s1 = []; - if (peg$r1.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r1.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -752,8 +768,8 @@ function peg$parse(input, options) { if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); - if (peg$r1.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r1.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -794,8 +810,8 @@ function peg$parse(input, options) { peg$silentFails++; s0 = peg$currPos; - if (peg$r2.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); + s1 = input.charAt(peg$currPos); + if (peg$r2.test(s1)) { peg$currPos++; } else { s1 = peg$FAILED; @@ -803,8 +819,8 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { s2 = []; - if (peg$r3.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); + s3 = input.charAt(peg$currPos); + if (peg$r3.test(s3)) { peg$currPos++; } else { s3 = peg$FAILED; @@ -813,8 +829,8 @@ function peg$parse(input, options) { if (s3 !== peg$FAILED) { while (s3 !== peg$FAILED) { s2.push(s3); - if (peg$r3.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); + s3 = input.charAt(peg$currPos); + if (peg$r3.test(s3)) { peg$currPos++; } else { s3 = peg$FAILED; @@ -825,8 +841,8 @@ function peg$parse(input, options) { s2 = peg$FAILED; } if (s2 !== peg$FAILED) { - if (peg$r2.test(input.charAt(peg$currPos))) { - s3 = input.charAt(peg$currPos); + s3 = input.charAt(peg$currPos); + if (peg$r2.test(s3)) { peg$currPos++; } else { s3 = peg$FAILED; @@ -850,8 +866,8 @@ function peg$parse(input, options) { if (s0 === peg$FAILED) { s0 = peg$currPos; s1 = []; - if (peg$r4.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r4.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -860,8 +876,8 @@ function peg$parse(input, options) { if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { s1.push(s2); - if (peg$r4.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r4.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -891,8 +907,8 @@ function peg$parse(input, options) { peg$silentFails++; s0 = []; - if (peg$r5.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); + s1 = input.charAt(peg$currPos); + if (peg$r5.test(s1)) { peg$currPos++; } else { s1 = peg$FAILED; @@ -900,8 +916,8 @@ function peg$parse(input, options) { } while (s1 !== peg$FAILED) { s0.push(s1); - if (peg$r5.test(input.charAt(peg$currPos))) { - s1 = input.charAt(peg$currPos); + s1 = input.charAt(peg$currPos); + if (peg$r5.test(s1)) { peg$currPos++; } else { s1 = peg$FAILED; @@ -933,8 +949,8 @@ function peg$parse(input, options) { peg$silentFails++; s0 = peg$currPos; s1 = []; - if (peg$r6.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r6.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -942,16 +958,16 @@ function peg$parse(input, options) { } while (s2 !== peg$FAILED) { s1.push(s2); - if (peg$r6.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r6.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e23); } } } - if (peg$r7.test(input.charAt(peg$currPos))) { - s2 = input.charAt(peg$currPos); + s2 = input.charAt(peg$currPos); + if (peg$r7.test(s2)) { peg$currPos++; } else { s2 = peg$FAILED; @@ -959,8 +975,8 @@ function peg$parse(input, options) { } if (s2 !== peg$FAILED) { s3 = []; - if (peg$r6.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); + s4 = input.charAt(peg$currPos); + if (peg$r6.test(s4)) { peg$currPos++; } else { s4 = peg$FAILED; @@ -968,16 +984,16 @@ function peg$parse(input, options) { } while (s4 !== peg$FAILED) { s3.push(s4); - if (peg$r6.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); + s4 = input.charAt(peg$currPos); + if (peg$r6.test(s4)) { peg$currPos++; } else { s4 = peg$FAILED; if (peg$silentFails === 0) { peg$fail(peg$e23); } } } - if (peg$r7.test(input.charAt(peg$currPos))) { - s4 = input.charAt(peg$currPos); + s4 = input.charAt(peg$currPos); + if (peg$r7.test(s4)) { peg$currPos++; } else { s4 = peg$FAILED; @@ -1051,6 +1067,15 @@ let seenAttributes = []; peg$result = peg$startRuleFunction(); + if (options.peg$library) { + return /** @type {any} */ ({ + peg$result, + peg$currPos, + peg$FAILED, + peg$maxFailExpected, + peg$maxFailPos + }); + } if (peg$result !== peg$FAILED && peg$currPos === input.length) { return peg$result; } else { @@ -1069,6 +1094,7 @@ let seenAttributes = []; } module.exports = { + StartRules: ["links", "extendedValue"], SyntaxError: peg$SyntaxError, parse: peg$parse };