{"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","HERE_DOC","starts","END_SAME_AS_BEGIN","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":"+EAoGAA,EAAOC,QA3FP,SAAcC,GACZ,IAAIC,EAAM,GACNC,EAAa,CACfC,MAAO,OACPC,IAAK,KACLC,SAAU,CAAC,OAAQ,CACjBF,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,EAAW,CACbT,MAAO,iBACPU,OAAQ,CACNR,SAAU,CAACL,EAAKc,kBAAkB,CAChCX,MAAO,QACPC,IAAK,QACLI,UAAW,cAIbO,EAAe,CACjBP,UAAW,SACXL,MAAO,IACPC,IAAK,IACLC,SAAU,CAACL,EAAKW,iBAAkBV,EAAKS,IAEzCA,EAAML,SAASW,KAAKD,GACpB,IASIE,EAAa,CACfd,MAAO,SACPC,IAAK,OACLC,SAAU,CAAC,CACTF,MAAO,gBACPK,UAAW,UACVR,EAAKkB,YAAajB,IAGnBkB,EAAgBnB,EAAKoB,QAAQ,CAC/BC,OAAQ,IAAIC,OAFO,CAAC,OAAQ,OAAQ,MAAO,KAAM,MAAO,MAAO,OAAQ,OAAQ,QAE7CC,KAAK,KAAM,KAC7CC,UAAW,KAETC,EAAW,CACbjB,UAAW,WACXL,MAAO,4BACPuB,aAAa,EACbrB,SAAU,CAACL,EAAK2B,QAAQ3B,EAAK4B,WAAY,CACvCzB,MAAO,gBAETqB,UAAW,GAEb,MAAO,CACLK,KAAM,OACNC,QAAS,CAAC,KAAM,OAChBC,SAAU,CACRC,SAAU,gBACVC,QAAS,+DACTC,QAAS,aACTC,SAEA,6uBAKF9B,SAAU,CAACc,EACXnB,EAAKoB,UACLK,EAAUR,EAAYjB,EAAKoC,kBAAmBxB,EAAUG,EA/CtC,CAClBP,UAAW,GACXL,MAAO,OAES,CAChBK,UAAW,SACXL,MAAO,IACPC,IAAK,KAwC6FH","file":"react-syntax-highlighter_languages_highlight_bash-87a6c1c1d1133cc136d0.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: [\"self\", {\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 HERE_DOC = {\n    begin: /<<-?\\s*(?=\\w+)/,\n    starts: {\n      contains: [hljs.END_SAME_AS_BEGIN({\n        begin: /(\\w+)/,\n        end: /(\\w+)/,\n        className: 'string'\n      })]\n    }\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    },\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, HERE_DOC, QUOTE_STRING, ESCAPED_QUOTE, APOS_STRING, VAR]\n  };\n}\n\nmodule.exports = bash;"],"sourceRoot":""}