{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/bash.js"],"names":["module","exports","hljs","VAR","BRACED_VAR","begin","end","contains","Object","assign","className","variants","SUBST","BACKSLASH_ESCAPE","QUOTE_STRING","push","ARITHMETIC","NUMBER_MODE","KNOWN_SHEBANG","SHEBANG","binary","concat","join","relevance","FUNCTION","returnBegin","inherit","TITLE_MODE","name","aliases","keywords","$pattern","keyword","literal","built_in","_","HASH_COMMENT_MODE"],"mappings":"+EA4FAA,EAAOC,QAnFP,SAAcC,GACZ,IAAIC,EAAM,GACNC,EAAa,CACfC,MAAO,OACPC,IAAK,KACLC,SAAU,CAAC,CACTF,MAAO,KACPE,SAAU,CAACJ,MAIfK,OAAOC,OAAON,EAAK,CACjBO,UAAW,WACXC,SAAU,CAAC,CACTN,MAAO,sBACND,KAEL,IAAIQ,EAAQ,CACVF,UAAW,QACXL,MAAO,OACPC,IAAK,KACLC,SAAU,CAACL,EAAKW,mBAEdC,EAAe,CACjBJ,UAAW,SACXL,MAAO,IACPC,IAAK,IACLC,SAAU,CAACL,EAAKW,iBAAkBV,EAAKS,IAEzCA,EAAML,SAASQ,KAAKD,GACpB,IASIE,EAAa,CACfX,MAAO,SACPC,IAAK,OACLC,SAAU,CAAC,CACTF,MAAO,gBACPK,UAAW,UACVR,EAAKe,YAAad,IAGnBe,EAAgBhB,EAAKiB,QAAQ,CAC/BC,OAAQ,IAAIC,OAFO,CAAC,OAAQ,OAAQ,MAAO,KAAM,MAAO,MAAO,OAAQ,OAAQ,QAE7CC,KAAK,KAAM,KAC7CC,UAAW,KAETC,EAAW,CACbd,UAAW,WACXL,MAAO,4BACPoB,aAAa,EACblB,SAAU,CAACL,EAAKwB,QAAQxB,EAAKyB,WAAY,CACvCtB,MAAO,gBAETkB,UAAW,GAEb,MAAO,CACLK,KAAM,OACNC,QAAS,CAAC,KAAM,OAChBC,SAAU,CACRC,SAAU,mBACVC,QAAS,+DACTC,QAAS,aACTC,SAEA,4uBAIAC,EAAG,qCAGL5B,SAAU,CAACW,EACXhB,EAAKiB,UACLK,EAAUR,EAAYd,EAAKkC,kBAAmBtB,EAjD5B,CAClBJ,UAAW,GACXL,MAAO,OAES,CAChBK,UAAW,SACXL,MAAO,IACPC,IAAK,KA0CmFH","file":"react-syntax-highlighter_languages_highlight_bash-bd19ca1ab77b2e5fd45d.js","sourcesContent":["/*\nLanguage: Bash\nAuthor: vah <vahtenberg@gmail.com>\nContributrors: Benjamin Pannell <contact@sierrasoftworks.com>\nWebsite: https://www.gnu.org/software/bash/\nCategory: common\n*/\n\n/** @type LanguageFn */\nfunction bash(hljs) {\n  var VAR = {};\n  var BRACED_VAR = {\n    begin: /\\$\\{/,\n    end: /\\}/,\n    contains: [{\n      begin: /:-/,\n      contains: [VAR]\n    } // default values\n    ]\n  };\n  Object.assign(VAR, {\n    className: 'variable',\n    variants: [{\n      begin: /\\$[\\w\\d#@][\\w\\d_]*/\n    }, BRACED_VAR]\n  });\n  var SUBST = {\n    className: 'subst',\n    begin: /\\$\\(/,\n    end: /\\)/,\n    contains: [hljs.BACKSLASH_ESCAPE]\n  };\n  var QUOTE_STRING = {\n    className: 'string',\n    begin: /\"/,\n    end: /\"/,\n    contains: [hljs.BACKSLASH_ESCAPE, VAR, SUBST]\n  };\n  SUBST.contains.push(QUOTE_STRING);\n  var ESCAPED_QUOTE = {\n    className: '',\n    begin: /\\\\\"/\n  };\n  var APOS_STRING = {\n    className: 'string',\n    begin: /'/,\n    end: /'/\n  };\n  var ARITHMETIC = {\n    begin: /\\$\\(\\(/,\n    end: /\\)\\)/,\n    contains: [{\n      begin: /\\d+#[0-9a-f]+/,\n      className: \"number\"\n    }, hljs.NUMBER_MODE, VAR]\n  };\n  var SH_LIKE_SHELLS = [\"fish\", \"bash\", \"zsh\", \"sh\", \"csh\", \"ksh\", \"tcsh\", \"dash\", \"scsh\"];\n  var KNOWN_SHEBANG = hljs.SHEBANG({\n    binary: \"(\".concat(SH_LIKE_SHELLS.join(\"|\"), \")\"),\n    relevance: 10\n  });\n  var FUNCTION = {\n    className: 'function',\n    begin: /\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,\n    returnBegin: true,\n    contains: [hljs.inherit(hljs.TITLE_MODE, {\n      begin: /\\w[\\w\\d_]*/\n    })],\n    relevance: 0\n  };\n  return {\n    name: 'Bash',\n    aliases: ['sh', 'zsh'],\n    keywords: {\n      $pattern: /\\b-?[a-z\\._-]+\\b/,\n      keyword: 'if then else elif fi for while in do done case esac function',\n      literal: 'true false',\n      built_in: // Shell built-ins\n      // http://www.gnu.org/software/bash/manual/html_node/Shell-Builtin-Commands.html\n      'break cd continue eval exec exit export getopts hash pwd readonly return shift test times ' + 'trap umask unset ' + // Bash built-ins\n      'alias bind builtin caller command declare echo enable help let local logout mapfile printf ' + 'read readarray source type typeset ulimit unalias ' + // Shell modifiers\n      'set shopt ' + // Zsh built-ins\n      'autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles ' + 'compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate ' + 'fc fg float functions getcap getln history integer jobs kill limit log noglob popd print ' + 'pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit ' + 'unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof ' + 'zpty zregexparse zsocket zstyle ztcp',\n      _: '-ne -eq -lt -gt -f -d -e -s -l -a' // relevance booster\n\n    },\n    contains: [KNOWN_SHEBANG, // to catch known shells and boost relevancy\n    hljs.SHEBANG(), // to catch unknown shells but still highlight the shebang\n    FUNCTION, ARITHMETIC, hljs.HASH_COMMENT_MODE, QUOTE_STRING, ESCAPED_QUOTE, APOS_STRING, VAR]\n  };\n}\n\nmodule.exports = bash;"],"sourceRoot":""}