-// Generated by Peggy 1.2.0.
+// Generated by Peggy 2.0.1.
//
// https://peggyjs.org/
];
-
function peg$subclass(child, parent) {
function C() { this.constructor = child; }
C.prototype = parent.prototype;
function peg$SyntaxError(message, expected, found, location) {
var self = Error.call(this, message);
+ // istanbul ignore next Check is a necessary evil to support older environments
if (Object.setPrototypeOf) {
Object.setPrototypeOf(self, peg$SyntaxError.prototype);
}
var loc = this.location.source + ":" + s.line + ":" + s.column;
if (src) {
var e = this.location.end;
- var filler = peg$padEnd("", s.line.toString().length);
+ var filler = peg$padEnd("", 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"
- + filler + " | " + peg$padEnd("", s.column - 1)
- + peg$padEnd("", last - s.column, "^");
+ + filler + " | " + peg$padEnd("", s.column - 1, ' ')
+ + peg$padEnd("", hatLen, "^");
} else {
str += "\n at " + loc;
}
: classEscape(part);
});
- return "[" + (expectation.inverted ? "^" : "") + escapedParts + "]";
+ return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]";
},
any: function() {
var peg$e25 = peg$anyExpectation();
var peg$f0 = function(links) {
- return links;
- };
+ return links;
+ };
var peg$f1 = function(uriReference, attributes) {
- seenAttributes = [];
- return {
- target: uriReference,
- attributes,
- };
+ seenAttributes = [];
+ return {
+ target: uriReference,
+ attributes,
};
+ };
var peg$f2 = function(uri) {
- return uri;
- };
+ return uri;
+ };
var peg$f3 = function(uri) {
- return makeString(uri);
- };
+ return makeString(uri);
+ };
var peg$f4 = function(attrs) {
- return attrs.filter((a) => a);
- };
+ return attrs.filter((a) => a);
+ };
var peg$f5 = function(name, value) {
- if (onlyFirstAttributes.includes(name.name)) {
- if (seenAttributes.includes(name.name)) {
- // Repeat of singleton attribute, ignore it.
- return;
- }
- seenAttributes.push(name.name);
+ if (onlyFirstAttributes.includes(name.name)) {
+ if (seenAttributes.includes(name.name)) {
+ // Repeat of singleton attribute, ignore it.
+ return;
}
- return {
- ...name,
- ...value,
- };
+ seenAttributes.push(name.name);
+ }
+ return {
+ ...name,
+ ...value,
};
+ };
var peg$f6 = function(name) {
- return {
- ...name,
- value: null,
- }
- };
+ return {
+ ...name,
+ value: null,
+ }
+ };
var peg$f7 = function(name, extended) {
- return {
- name: makeString(name.concat(extended)).toLowerCase(),
- extended: !!extended,
- };
+ return {
+ name: makeString(name.concat(extended)).toLowerCase(),
+ extended: !!extended,
};
+ };
var peg$f8 = function(value) {
- return {
- value: makeString(value),
- };
+ return {
+ value: makeString(value),
};
- var peg$f9 = function(encoding, language, value) {
- return {
- encoding: encoding.length ? makeString(encoding) : 'UTF-8',
- language: language.length ? makeString(language) : null,
- value: decodeURIComponent(makeString(value)),
- };
+ };
+ var peg$f9 = function(value) {
+ return {
+ value: makeString(value),
};
- var peg$f10 = function(value) {
- return {
- encoding: null,
- language: null,
- value: makeString(value),
- };
+ };
+ var peg$f10 = function(encoding, language, value) {
+ return {
+ encoding: encoding.length ? makeString(encoding) : 'UTF-8',
+ language: language.length ? makeString(language) : null,
+ value: decodeURIComponent(makeString(value)),
};
-
+ };
+ var peg$f11 = function(value) {
+ return {
+ encoding: null,
+ language: null,
+ value: makeString(value),
+ };
+ };
var peg$currPos = 0;
var peg$savedPos = 0;
var peg$posDetailsCache = [{ line: 1, column: 1 }];
}
if (s1 !== peg$FAILED) {
peg$savedPos = s0;
- s1 = peg$f8(s1);
+ s1 = peg$f9(s1);
}
s0 = s1;
}
}
}
peg$savedPos = s0;
- s0 = peg$f9(s1, s3, s5);
+ s0 = peg$f10(s1, s3, s5);
} else {
peg$currPos = s0;
s0 = peg$FAILED;
}
}
peg$savedPos = s0;
- s1 = peg$f10(s1);
+ s1 = peg$f11(s1);
s0 = s1;
}
peg$silentFails--;
}
- // Per-parsing tracking of attributes which should be ignored after first occurrence.
- let seenAttributes = [];
-
+// Per-parsing tracking of attributes which should be ignored after first occurrence.
+let seenAttributes = [];
peg$result = peg$startRuleFunction();