a.displayName = "docker";
a.aliases = ["dockerfile"];
function a(i) {
  (function(r) {
    var s = /\\[\r\n](?:\s|\\[\r\n]|#.*(?!.))*(?![\s#]|\\[\r\n])/.source, c = /(?:[ \t]+(?![ \t])(?:<SP_BS>)?|<SP_BS>)/.source.replace(
      /<SP_BS>/g,
      function() {
        return s;
      }
    ), n = /"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"|'(?:[^'\\\r\n]|\\(?:\r\n|[\s\S]))*'/.source, S = /--[\w-]+=(?:<STR>|(?!["'])(?:[^\s\\]|\\.)+)/.source.replace(
      /<STR>/g,
      function() {
        return n;
      }
    ), o = {
      pattern: RegExp(n),
      greedy: !0
    }, u = {
      pattern: /(^[ \t]*)#.*/m,
      lookbehind: !0,
      greedy: !0
    };
    function e(t, d) {
      return t = t.replace(/<OPT>/g, function() {
        return S;
      }).replace(/<SP>/g, function() {
        return c;
      }), RegExp(t, d);
    }
    r.languages.docker = {
      instruction: {
        pattern: /(^[ \t]*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)(?:\\.|[^\r\n\\])*(?:\\$(?:\s|#.*$)*(?![\s#])(?:\\.|[^\r\n\\])*)*/im,
        lookbehind: !0,
        greedy: !0,
        inside: {
          options: {
            pattern: e(
              /(^(?:ONBUILD<SP>)?\w+<SP>)<OPT>(?:<SP><OPT>)*/.source,
              "i"
            ),
            lookbehind: !0,
            greedy: !0,
            inside: {
              property: {
                pattern: /(^|\s)--[\w-]+/,
                lookbehind: !0
              },
              string: [
                o,
                {
                  pattern: /(=)(?!["'])(?:[^\s\\]|\\.)+/,
                  lookbehind: !0
                }
              ],
              operator: /\\$/m,
              punctuation: /=/
            }
          },
          keyword: [
            {
              // https://docs.docker.com/engine/reference/builder/#healthcheck
              pattern: e(
                /(^(?:ONBUILD<SP>)?HEALTHCHECK<SP>(?:<OPT><SP>)*)(?:CMD|NONE)\b/.source,
                "i"
              ),
              lookbehind: !0,
              greedy: !0
            },
            {
              // https://docs.docker.com/engine/reference/builder/#from
              pattern: e(
                /(^(?:ONBUILD<SP>)?FROM<SP>(?:<OPT><SP>)*(?!--)[^ \t\\]+<SP>)AS/.source,
                "i"
              ),
              lookbehind: !0,
              greedy: !0
            },
            {
              // https://docs.docker.com/engine/reference/builder/#onbuild
              pattern: e(/(^ONBUILD<SP>)\w+/.source, "i"),
              lookbehind: !0,
              greedy: !0
            },
            {
              pattern: /^\w+/,
              greedy: !0
            }
          ],
          comment: u,
          string: o,
          variable: /\$(?:\w+|\{[^{}"'\\]*\})/,
          operator: /\\$/m
        }
      },
      comment: u
    }, r.languages.dockerfile = r.languages.docker;
  })(i);
}
export {
  a as default
};
//# sourceMappingURL=docker.es.js.map
