Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-gax / build / src / pathTemplateParser.js
diff --git a/legacy-libs/google-gax/build/src/pathTemplateParser.js b/legacy-libs/google-gax/build/src/pathTemplateParser.js
new file mode 100644 (file)
index 0000000..c799b2d
--- /dev/null
@@ -0,0 +1,657 @@
+module.exports = (() => {
+  /*
+   * Generated by PEG.js 0.9.0.
+   *
+   * http://pegjs.org/
+   */
+
+  function peg$subclass(child, parent) {
+    function ctor() {
+      this.constructor = child;
+    }
+    ctor.prototype = parent.prototype;
+    child.prototype = new ctor();
+  }
+
+  function peg$SyntaxError(message, expected, found, location) {
+    this.message = message;
+    this.expected = expected;
+    this.found = found;
+    this.location = location;
+    this.name = 'SyntaxError';
+
+    if (typeof Error.captureStackTrace === 'function') {
+      Error.captureStackTrace(this, peg$SyntaxError);
+    }
+  }
+
+  peg$subclass(peg$SyntaxError, Error);
+
+  function peg$parse(input) {
+    const options = arguments.length > 1 ? arguments[1] : {};
+    const parser = this;
+    const peg$FAILED = {};
+    const peg$startRuleFunctions = {template: peg$parsetemplate};
+    let peg$startRuleFunction = peg$parsetemplate;
+    const peg$c0 = '/';
+    const peg$c1 = {type: 'literal', value: '/', description: '"/"'};
+    const peg$c2 = segments => {
+      return segments;
+    };
+    const peg$c3 = (s, segments) => {
+      return s.concat(segments);
+    };
+    const peg$c4 = s => {
+      return s;
+    };
+    const peg$c5 = '{';
+    const peg$c6 = {type: 'literal', value: '{', description: '"{"'};
+    const peg$c7 = '=';
+    const peg$c8 = {type: 'literal', value: '=', description: '"="'};
+    const peg$c9 = '}';
+    const peg$c10 = {type: 'literal', value: '}', description: '"}"'};
+    const peg$c11 = (l, segments) => {
+      return [
+        {kind: extras.BINDING, literal: l},
+        segments,
+        {kind: extras.END_BINDING, literal: ''},
+      ].reduce((a, b) => a.concat(b), []);
+    };
+    const peg$c12 = l => {
+      return [
+        {kind: extras.BINDING, literal: l},
+        {kind: extras.TERMINAL, literal: '*'},
+        {kind: extras.END_BINDING, literal: ''},
+      ];
+    };
+    const peg$c13 = (t, segments) => {
+      return t.concat(segments);
+    };
+    const peg$c14 = t => {
+      if (t[0].literal === '*' || t[0].literal === '**') {
+        return [
+          {
+            kind: extras.BINDING,
+          },
+          t[0],
+          {kind: extras.END_BINDING, literal: ''},
+        ];
+      } else {
+        return t;
+      }
+    };
+    const peg$c15 = '**';
+    const peg$c16 = {type: 'literal', value: '**', description: '"**"'};
+    const peg$c17 = '*';
+    const peg$c18 = {type: 'literal', value: '*', description: '"*"'};
+    const peg$c19 = l => {
+      return [{kind: extras.TERMINAL, literal: l}];
+    };
+    const peg$c20 = /^[^*=}{\/]/;
+    const peg$c21 = {type: 'class', value: '[^*=}{/]', description: '[^*=}{/]'};
+    const peg$c22 = cs => {
+      return cs.join('');
+    };
+    let peg$currPos = 0;
+    let peg$savedPos = 0;
+    const peg$posDetailsCache = [{line: 1, column: 1, seenCR: false}];
+    let peg$maxFailPos = 0;
+    let peg$maxFailExpected = [];
+    const peg$silentFails = 0;
+    let peg$result;
+
+    if ('startRule' in options) {
+      if (!(options.startRule in peg$startRuleFunctions)) {
+        throw new Error(
+          'Can\'t start parsing from rule "' + options.startRule + '".'
+        );
+      }
+
+      peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
+    }
+
+    function text() {
+      return input.substring(peg$savedPos, peg$currPos);
+    }
+
+    function location() {
+      return peg$computeLocation(peg$savedPos, peg$currPos);
+    }
+
+    function expected(description) {
+      throw peg$buildException(
+        null,
+        [{type: 'other', description}],
+        input.substring(peg$savedPos, peg$currPos),
+        peg$computeLocation(peg$savedPos, peg$currPos)
+      );
+    }
+
+    function error(message) {
+      throw peg$buildException(
+        message,
+        null,
+        input.substring(peg$savedPos, peg$currPos),
+        peg$computeLocation(peg$savedPos, peg$currPos)
+      );
+    }
+
+    function peg$computePosDetails(pos) {
+      let details = peg$posDetailsCache[pos],
+        p,
+        ch;
+
+      if (details) {
+        return details;
+      } else {
+        p = pos - 1;
+        while (!peg$posDetailsCache[p]) {
+          p--;
+        }
+
+        details = peg$posDetailsCache[p];
+        details = {
+          line: details.line,
+          column: details.column,
+          seenCR: details.seenCR,
+        };
+
+        while (p < pos) {
+          ch = input.charAt(p);
+          if (ch === '\n') {
+            if (!details.seenCR) {
+              details.line++;
+            }
+            details.column = 1;
+            details.seenCR = false;
+          } else if (ch === '\r' || ch === '\u2028' || ch === '\u2029') {
+            details.line++;
+            details.column = 1;
+            details.seenCR = true;
+          } else {
+            details.column++;
+            details.seenCR = false;
+          }
+
+          p++;
+        }
+
+        peg$posDetailsCache[pos] = details;
+        return details;
+      }
+    }
+
+    function peg$computeLocation(startPos, endPos) {
+      const startPosDetails = peg$computePosDetails(startPos),
+        endPosDetails = peg$computePosDetails(endPos);
+
+      return {
+        start: {
+          offset: startPos,
+          line: startPosDetails.line,
+          column: startPosDetails.column,
+        },
+        end: {
+          offset: endPos,
+          line: endPosDetails.line,
+          column: endPosDetails.column,
+        },
+      };
+    }
+
+    function peg$fail(expected) {
+      if (peg$currPos < peg$maxFailPos) {
+        return;
+      }
+
+      if (peg$currPos > peg$maxFailPos) {
+        peg$maxFailPos = peg$currPos;
+        peg$maxFailExpected = [];
+      }
+
+      peg$maxFailExpected.push(expected);
+    }
+
+    function peg$buildException(message, expected, found, location) {
+      function cleanupExpected(expected) {
+        let i = 1;
+
+        expected.sort((a, b) => {
+          if (a.description < b.description) {
+            return -1;
+          } else if (a.description > b.description) {
+            return 1;
+          } else {
+            return 0;
+          }
+        });
+
+        while (i < expected.length) {
+          if (expected[i - 1] === expected[i]) {
+            expected.splice(i, 1);
+          } else {
+            i++;
+          }
+        }
+      }
+
+      function buildMessage(expected, found) {
+        function stringEscape(s) {
+          function hex(ch) {
+            return ch
+              .charCodeAt(0)
+              .toString(16)
+              .toUpperCase();
+          }
+
+          return s
+            .replace(/\\/g, '\\\\')
+            .replace(/"/g, '\\"')
+            .replace(/\x08/g, '\\b')
+            .replace(/\t/g, '\\t')
+            .replace(/\n/g, '\\n')
+            .replace(/\f/g, '\\f')
+            .replace(/\r/g, '\\r')
+            .replace(/[\x00-\x07\x0B\x0E\x0F]/g, ch => {
+              return '\\x0' + hex(ch);
+            })
+            .replace(/[\x10-\x1F\x80-\xFF]/g, ch => {
+              return '\\x' + hex(ch);
+            })
+            .replace(/[\u0100-\u0FFF]/g, ch => {
+              return '\\u0' + hex(ch);
+            })
+            .replace(/[\u1000-\uFFFF]/g, ch => {
+              return '\\u' + hex(ch);
+            });
+        }
+
+        const expectedDescs = new Array(expected.length);
+        let expectedDesc, foundDesc, i;
+
+        for (i = 0; i < expected.length; i++) {
+          expectedDescs[i] = expected[i].description;
+        }
+
+        expectedDesc =
+          expected.length > 1
+            ? expectedDescs.slice(0, -1).join(', ') +
+              ' or ' +
+              expectedDescs[expected.length - 1]
+            : expectedDescs[0];
+
+        foundDesc = found ? '"' + stringEscape(found) + '"' : 'end of input';
+
+        return 'Expected ' + expectedDesc + ' but ' + foundDesc + ' found.';
+      }
+
+      if (expected !== null) {
+        cleanupExpected(expected);
+      }
+
+      return new peg$SyntaxError(
+        message !== null ? message : buildMessage(expected, found),
+        expected,
+        found,
+        location
+      );
+    }
+
+    function peg$parsetemplate() {
+      let s0, s1, s2;
+
+      s0 = peg$currPos;
+      if (input.charCodeAt(peg$currPos) === 47) {
+        s1 = peg$c0;
+        peg$currPos++;
+      } else {
+        s1 = peg$FAILED;
+        if (peg$silentFails === 0) {
+          peg$fail(peg$c1);
+        }
+      }
+      if (s1 !== peg$FAILED) {
+        s2 = peg$parsebound_segments();
+        if (s2 !== peg$FAILED) {
+          peg$savedPos = s0;
+          s1 = peg$c2(s2);
+          s0 = s1;
+        } else {
+          peg$currPos = s0;
+          s0 = peg$FAILED;
+        }
+      } else {
+        peg$currPos = s0;
+        s0 = peg$FAILED;
+      }
+      if (s0 === peg$FAILED) {
+        s0 = peg$currPos;
+        s1 = peg$parsebound_segments();
+        if (s1 !== peg$FAILED) {
+          peg$savedPos = s0;
+          s1 = peg$c2(s1);
+        }
+        s0 = s1;
+      }
+
+      return s0;
+    }
+
+    function peg$parsebound_segments() {
+      let s0, s1, s2, s3;
+
+      s0 = peg$currPos;
+      s1 = peg$parsebound_segment();
+      if (s1 !== peg$FAILED) {
+        if (input.charCodeAt(peg$currPos) === 47) {
+          s2 = peg$c0;
+          peg$currPos++;
+        } else {
+          s2 = peg$FAILED;
+          if (peg$silentFails === 0) {
+            peg$fail(peg$c1);
+          }
+        }
+        if (s2 !== peg$FAILED) {
+          s3 = peg$parsebound_segments();
+          if (s3 !== peg$FAILED) {
+            peg$savedPos = s0;
+            s1 = peg$c3(s1, s3);
+            s0 = s1;
+          } else {
+            peg$currPos = s0;
+            s0 = peg$FAILED;
+          }
+        } else {
+          peg$currPos = s0;
+          s0 = peg$FAILED;
+        }
+      } else {
+        peg$currPos = s0;
+        s0 = peg$FAILED;
+      }
+      if (s0 === peg$FAILED) {
+        s0 = peg$parsebound_segment();
+      }
+
+      return s0;
+    }
+
+    function peg$parsebound_segment() {
+      let s0, s1;
+
+      s0 = peg$currPos;
+      s1 = peg$parsebound_terminal();
+      if (s1 === peg$FAILED) {
+        s1 = peg$parsevariable();
+      }
+      if (s1 !== peg$FAILED) {
+        peg$savedPos = s0;
+        s1 = peg$c4(s1);
+      }
+      s0 = s1;
+
+      return s0;
+    }
+
+    function peg$parsevariable() {
+      let s0, s1, s2, s3, s4, s5;
+
+      s0 = peg$currPos;
+      if (input.charCodeAt(peg$currPos) === 123) {
+        s1 = peg$c5;
+        peg$currPos++;
+      } else {
+        s1 = peg$FAILED;
+        if (peg$silentFails === 0) {
+          peg$fail(peg$c6);
+        }
+      }
+      if (s1 !== peg$FAILED) {
+        s2 = peg$parseliteral();
+        if (s2 !== peg$FAILED) {
+          if (input.charCodeAt(peg$currPos) === 61) {
+            s3 = peg$c7;
+            peg$currPos++;
+          } else {
+            s3 = peg$FAILED;
+            if (peg$silentFails === 0) {
+              peg$fail(peg$c8);
+            }
+          }
+          if (s3 !== peg$FAILED) {
+            s4 = peg$parseunbound_segments();
+            if (s4 !== peg$FAILED) {
+              if (input.charCodeAt(peg$currPos) === 125) {
+                s5 = peg$c9;
+                peg$currPos++;
+              } else {
+                s5 = peg$FAILED;
+                if (peg$silentFails === 0) {
+                  peg$fail(peg$c10);
+                }
+              }
+              if (s5 !== peg$FAILED) {
+                peg$savedPos = s0;
+                s1 = peg$c11(s2, s4);
+                s0 = s1;
+              } else {
+                peg$currPos = s0;
+                s0 = peg$FAILED;
+              }
+            } else {
+              peg$currPos = s0;
+              s0 = peg$FAILED;
+            }
+          } else {
+            peg$currPos = s0;
+            s0 = peg$FAILED;
+          }
+        } else {
+          peg$currPos = s0;
+          s0 = peg$FAILED;
+        }
+      } else {
+        peg$currPos = s0;
+        s0 = peg$FAILED;
+      }
+      if (s0 === peg$FAILED) {
+        s0 = peg$currPos;
+        if (input.charCodeAt(peg$currPos) === 123) {
+          s1 = peg$c5;
+          peg$currPos++;
+        } else {
+          s1 = peg$FAILED;
+          if (peg$silentFails === 0) {
+            peg$fail(peg$c6);
+          }
+        }
+        if (s1 !== peg$FAILED) {
+          s2 = peg$parseliteral();
+          if (s2 !== peg$FAILED) {
+            if (input.charCodeAt(peg$currPos) === 125) {
+              s3 = peg$c9;
+              peg$currPos++;
+            } else {
+              s3 = peg$FAILED;
+              if (peg$silentFails === 0) {
+                peg$fail(peg$c10);
+              }
+            }
+            if (s3 !== peg$FAILED) {
+              peg$savedPos = s0;
+              s1 = peg$c12(s2);
+              s0 = s1;
+            } else {
+              peg$currPos = s0;
+              s0 = peg$FAILED;
+            }
+          } else {
+            peg$currPos = s0;
+            s0 = peg$FAILED;
+          }
+        } else {
+          peg$currPos = s0;
+          s0 = peg$FAILED;
+        }
+      }
+
+      return s0;
+    }
+
+    function peg$parseunbound_segments() {
+      let s0, s1, s2, s3;
+
+      s0 = peg$currPos;
+      s1 = peg$parseunbound_terminal();
+      if (s1 !== peg$FAILED) {
+        if (input.charCodeAt(peg$currPos) === 47) {
+          s2 = peg$c0;
+          peg$currPos++;
+        } else {
+          s2 = peg$FAILED;
+          if (peg$silentFails === 0) {
+            peg$fail(peg$c1);
+          }
+        }
+        if (s2 !== peg$FAILED) {
+          s3 = peg$parseunbound_segments();
+          if (s3 !== peg$FAILED) {
+            peg$savedPos = s0;
+            s1 = peg$c13(s1, s3);
+            s0 = s1;
+          } else {
+            peg$currPos = s0;
+            s0 = peg$FAILED;
+          }
+        } else {
+          peg$currPos = s0;
+          s0 = peg$FAILED;
+        }
+      } else {
+        peg$currPos = s0;
+        s0 = peg$FAILED;
+      }
+      if (s0 === peg$FAILED) {
+        s0 = peg$parseunbound_terminal();
+      }
+
+      return s0;
+    }
+
+    function peg$parsebound_terminal() {
+      let s0, s1;
+
+      s0 = peg$currPos;
+      s1 = peg$parseunbound_terminal();
+      if (s1 !== peg$FAILED) {
+        peg$savedPos = s0;
+        s1 = peg$c14(s1);
+      }
+      s0 = s1;
+
+      return s0;
+    }
+
+    function peg$parseunbound_terminal() {
+      let s0, s1;
+
+      s0 = peg$currPos;
+      if (input.substr(peg$currPos, 2) === peg$c15) {
+        s1 = peg$c15;
+        peg$currPos += 2;
+      } else {
+        s1 = peg$FAILED;
+        if (peg$silentFails === 0) {
+          peg$fail(peg$c16);
+        }
+      }
+      if (s1 === peg$FAILED) {
+        if (input.charCodeAt(peg$currPos) === 42) {
+          s1 = peg$c17;
+          peg$currPos++;
+        } else {
+          s1 = peg$FAILED;
+          if (peg$silentFails === 0) {
+            peg$fail(peg$c18);
+          }
+        }
+        if (s1 === peg$FAILED) {
+          s1 = peg$parseliteral();
+        }
+      }
+      if (s1 !== peg$FAILED) {
+        peg$savedPos = s0;
+        s1 = peg$c19(s1);
+      }
+      s0 = s1;
+
+      return s0;
+    }
+
+    function peg$parseliteral() {
+      let s0, s1, s2;
+
+      s0 = peg$currPos;
+      s1 = [];
+      if (peg$c20.test(input.charAt(peg$currPos))) {
+        s2 = input.charAt(peg$currPos);
+        peg$currPos++;
+      } else {
+        s2 = peg$FAILED;
+        if (peg$silentFails === 0) {
+          peg$fail(peg$c21);
+        }
+      }
+      if (s2 !== peg$FAILED) {
+        while (s2 !== peg$FAILED) {
+          s1.push(s2);
+          if (peg$c20.test(input.charAt(peg$currPos))) {
+            s2 = input.charAt(peg$currPos);
+            peg$currPos++;
+          } else {
+            s2 = peg$FAILED;
+            if (peg$silentFails === 0) {
+              peg$fail(peg$c21);
+            }
+          }
+        }
+      } else {
+        s1 = peg$FAILED;
+      }
+      if (s1 !== peg$FAILED) {
+        peg$savedPos = s0;
+        s1 = peg$c22(s1);
+      }
+      s0 = s1;
+
+      return s0;
+    }
+
+    const extras = require('./parserExtras');
+
+    peg$result = peg$startRuleFunction();
+
+    if (peg$result !== peg$FAILED && peg$currPos === input.length) {
+      return peg$result;
+    } else {
+      if (peg$result !== peg$FAILED && peg$currPos < input.length) {
+        peg$fail({type: 'end', description: 'end of input'});
+      }
+
+      throw peg$buildException(
+        null,
+        peg$maxFailExpected,
+        peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
+        peg$maxFailPos < input.length
+          ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
+          : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
+      );
+    }
+  }
+
+  return {
+    SyntaxError: peg$SyntaxError,
+    parse: peg$parse,
+  };
+})();