{"version":3,"sources":["webpack:///./node_modules/react-syntax-highlighter/node_modules/highlight.js/lib/languages/makefile.js"],"names":["module","exports","hljs","VARIABLE","className","variants","begin","UNDERSCORE_IDENT_RE","contains","BACKSLASH_ESCAPE","QUOTE_STRING","end","FUNC","keywords","built_in","ASSIGNMENT","TARGET","name","aliases","$pattern","keyword","HASH_COMMENT_MODE"],"mappings":"8EAwEAA,EAAOC,QAjEP,SAAkBC,GAEhB,IAAIC,EAAW,CACbC,UAAW,WACXC,SAAU,CAAC,CACTC,MAAO,SAAWJ,EAAKK,oBAAsB,MAC7CC,SAAU,CAACN,EAAKO,mBACf,CACDH,MAAO,oBAKPI,EAAe,CACjBN,UAAW,SACXE,MAAO,IACPK,IAAK,IACLH,SAAU,CAACN,EAAKO,iBAAkBN,IAIhCS,EAAO,CACTR,UAAW,WACXE,MAAO,eACPK,IAAK,KACLE,SAAU,CACRC,SAAU,kPAEZN,SAAU,CAACL,IAITY,EAAa,CACfT,MAAO,IAAMJ,EAAKK,oBAAsB,mBAetCS,EAAS,CACXZ,UAAW,UACXE,MAAO,WACPK,IAAK,IACLH,SAAU,CAACL,IAEb,MAAO,CACLc,KAAM,WACNC,QAAS,CAAC,KAAM,OAChBL,SAAU,CACRM,SAAU,SACVC,QAAS,6HAEXZ,SAAU,CAACN,EAAKmB,kBAAmBlB,EAAUO,EAAcE,EAAMG,EAxBxD,CACTX,UAAW,OACXE,MAAO,YACPK,IAAK,IACLE,SAAU,CACRM,SAAU,UACV,eAAgB,WAkBiEH","file":"react-syntax-highlighter_languages_highlight_makefile-3693f995d9c7d2623030.js","sourcesContent":["/*\nLanguage: Makefile\nAuthor: Ivan Sagalaev <maniac@softwaremaniacs.org>\nContributors: Joël Porquet <joel@porquet.org>\nWebsite: https://www.gnu.org/software/make/manual/html_node/Introduction.html\nCategory: common\n*/\nfunction makefile(hljs) {\n  /* Variables: simple (eg $(var)) and special (eg $@) */\n  var VARIABLE = {\n    className: 'variable',\n    variants: [{\n      begin: '\\\\$\\\\(' + hljs.UNDERSCORE_IDENT_RE + '\\\\)',\n      contains: [hljs.BACKSLASH_ESCAPE]\n    }, {\n      begin: /\\$[@%<?\\^\\+\\*]/\n    }]\n  };\n  /* Quoted string with variables inside */\n\n  var QUOTE_STRING = {\n    className: 'string',\n    begin: /\"/,\n    end: /\"/,\n    contains: [hljs.BACKSLASH_ESCAPE, VARIABLE]\n  };\n  /* Function: $(func arg,...) */\n\n  var FUNC = {\n    className: 'variable',\n    begin: /\\$\\([\\w-]+\\s/,\n    end: /\\)/,\n    keywords: {\n      built_in: 'subst patsubst strip findstring filter filter-out sort ' + 'word wordlist firstword lastword dir notdir suffix basename ' + 'addsuffix addprefix join wildcard realpath abspath error warning ' + 'shell origin flavor foreach if or and call eval file value'\n    },\n    contains: [VARIABLE]\n  };\n  /* Variable assignment */\n\n  var ASSIGNMENT = {\n    begin: '^' + hljs.UNDERSCORE_IDENT_RE + '\\\\s*(?=[:+?]?=)'\n  };\n  /* Meta targets (.PHONY) */\n\n  var META = {\n    className: 'meta',\n    begin: /^\\.PHONY:/,\n    end: /$/,\n    keywords: {\n      $pattern: /[\\.\\w]+/,\n      'meta-keyword': '.PHONY'\n    }\n  };\n  /* Targets */\n\n  var TARGET = {\n    className: 'section',\n    begin: /^[^\\s]+:/,\n    end: /$/,\n    contains: [VARIABLE]\n  };\n  return {\n    name: 'Makefile',\n    aliases: ['mk', 'mak'],\n    keywords: {\n      $pattern: /[\\w-]+/,\n      keyword: 'define endef undefine ifdef ifndef ifeq ifneq else endif ' + 'include -include sinclude override export unexport private vpath'\n    },\n    contains: [hljs.HASH_COMMENT_MODE, VARIABLE, QUOTE_STRING, FUNC, ASSIGNMENT, META, TARGET]\n  };\n}\n\nmodule.exports = makefile;"],"sourceRoot":""}