{"version":3,"file":"llvm-Cc3ej5yt.chunk.mjs","sources":["../node_modules/highlight.js/lib/languages/llvm.js"],"sourcesContent":["/*\nLanguage: LLVM IR\nAuthor: Michael Rodler \nDescription: language used as intermediate representation in the LLVM compiler framework\nWebsite: https://llvm.org/docs/LangRef.html\nCategory: assembler\nAudit: 2020\n*/\n\n/** @type LanguageFn */\nfunction llvm(hljs) {\n const regex = hljs.regex;\n const IDENT_RE = /([-a-zA-Z$._][\\w$.-]*)/;\n const TYPE = {\n className: 'type',\n begin: /\\bi\\d+(?=\\s|\\b)/\n };\n const OPERATOR = {\n className: 'operator',\n relevance: 0,\n begin: /=/\n };\n const PUNCTUATION = {\n className: 'punctuation',\n relevance: 0,\n begin: /,/\n };\n const NUMBER = {\n className: 'number',\n variants: [\n { begin: /[su]?0[xX][KMLHR]?[a-fA-F0-9]+/ },\n { begin: /[-+]?\\d+(?:[.]\\d+)?(?:[eE][-+]?\\d+(?:[.]\\d+)?)?/ }\n ],\n relevance: 0\n };\n const LABEL = {\n className: 'symbol',\n variants: [ { begin: /^\\s*[a-z]+:/ }, // labels\n ],\n relevance: 0\n };\n const VARIABLE = {\n className: 'variable',\n variants: [\n { begin: regex.concat(/%/, IDENT_RE) },\n { begin: /%\\d+/ },\n { begin: /#\\d+/ },\n ]\n };\n const FUNCTION = {\n className: 'title',\n variants: [\n { begin: regex.concat(/@/, IDENT_RE) },\n { begin: /@\\d+/ },\n { begin: regex.concat(/!/, IDENT_RE) },\n { begin: regex.concat(/!\\d+/, IDENT_RE) },\n // https://llvm.org/docs/LangRef.html#namedmetadatastructure\n // obviously a single digit can also be used in this fashion\n { begin: /!\\d+/ }\n ]\n };\n\n return {\n name: 'LLVM IR',\n // TODO: split into different categories of keywords\n keywords: {\n keyword: 'begin end true false declare define global '\n + 'constant private linker_private internal '\n + 'available_externally linkonce linkonce_odr weak '\n + 'weak_odr appending dllimport dllexport common '\n + 'default hidden protected extern_weak external '\n + 'thread_local zeroinitializer undef null to tail '\n + 'target triple datalayout volatile nuw nsw nnan '\n + 'ninf nsz arcp fast exact inbounds align '\n + 'addrspace section alias module asm sideeffect '\n + 'gc dbg linker_private_weak attributes blockaddress '\n + 'initialexec localdynamic localexec prefix unnamed_addr '\n + 'ccc fastcc coldcc x86_stdcallcc x86_fastcallcc '\n + 'arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device '\n + 'ptx_kernel intel_ocl_bicc msp430_intrcc spir_func '\n + 'spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc '\n + 'cc c signext zeroext inreg sret nounwind '\n + 'noreturn noalias nocapture byval nest readnone '\n + 'readonly inlinehint noinline alwaysinline optsize ssp '\n + 'sspreq noredzone noimplicitfloat naked builtin cold '\n + 'nobuiltin noduplicate nonlazybind optnone returns_twice '\n + 'sanitize_address sanitize_memory sanitize_thread sspstrong '\n + 'uwtable returned type opaque eq ne slt sgt '\n + 'sle sge ult ugt ule uge oeq one olt ogt '\n + 'ole oge ord uno ueq une x acq_rel acquire '\n + 'alignstack atomic catch cleanup filter inteldialect '\n + 'max min monotonic nand personality release seq_cst '\n + 'singlethread umax umin unordered xchg add fadd '\n + 'sub fsub mul fmul udiv sdiv fdiv urem srem '\n + 'frem shl lshr ashr and or xor icmp fcmp '\n + 'phi call trunc zext sext fptrunc fpext uitofp '\n + 'sitofp fptoui fptosi inttoptr ptrtoint bitcast '\n + 'addrspacecast select va_arg ret br switch invoke '\n + 'unwind unreachable indirectbr landingpad resume '\n + 'malloc alloca free load store getelementptr '\n + 'extractelement insertelement shufflevector getresult '\n + 'extractvalue insertvalue atomicrmw cmpxchg fence '\n + 'argmemonly',\n type: 'void half bfloat float double fp128 x86_fp80 ppc_fp128 '\n + 'x86_amx x86_mmx ptr label token metadata opaque'\n },\n contains: [\n TYPE,\n // this matches \"empty comments\"...\n // ...because it's far more likely this is a statement terminator in\n // another language than an actual comment\n hljs.COMMENT(/;\\s*$/, null, { relevance: 0 }),\n hljs.COMMENT(/;/, /$/),\n {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [\n {\n className: 'char.escape',\n match: /\\\\\\d\\d/\n }\n ]\n },\n FUNCTION,\n PUNCTUATION,\n OPERATOR,\n VARIABLE,\n LABEL,\n NUMBER\n ]\n };\n}\n\nmodule.exports = llvm;\n"],"names":["llvm","hljs","regex","IDENT_RE","TYPE","OPERATOR","PUNCTUATION","NUMBER","LABEL","VARIABLE","FUNCTION","llvm_1"],"mappings":"4YAUA,SAASA,EAAKC,EAAM,CAClB,MAAMC,EAAQD,EAAK,MACbE,EAAW,yBACXC,EAAO,CACX,UAAW,OACX,MAAO,iBACX,EACQC,EAAW,CACf,UAAW,WACX,UAAW,EACX,MAAO,GACX,EACQC,EAAc,CAClB,UAAW,cACX,UAAW,EACX,MAAO,GACX,EACQC,EAAS,CACb,UAAW,SACX,SAAU,CACR,CAAE,MAAO,gCAAkC,EAC3C,CAAE,MAAO,iDAAmD,CAC7D,EACD,UAAW,CACf,EACQC,EAAQ,CACZ,UAAW,SACX,SAAU,CAAE,CAAE,MAAO,aAAe,CACnC,EACD,UAAW,CACf,EACQC,EAAW,CACf,UAAW,WACX,SAAU,CACR,CAAE,MAAOP,EAAM,OAAO,IAAKC,CAAQ,CAAG,EACtC,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAO,MAAQ,CAClB,CACL,EACQO,EAAW,CACf,UAAW,QACX,SAAU,CACR,CAAE,MAAOR,EAAM,OAAO,IAAKC,CAAQ,CAAG,EACtC,CAAE,MAAO,MAAQ,EACjB,CAAE,MAAOD,EAAM,OAAO,IAAKC,CAAQ,CAAG,EACtC,CAAE,MAAOD,EAAM,OAAO,OAAQC,CAAQ,CAAG,EAGzC,CAAE,MAAO,MAAQ,CAClB,CACL,EAEE,MAAO,CACL,KAAM,UAEN,SAAU,CACR,QAAS,ksDAqCT,KAAM,wGAEP,EACD,SAAU,CACRC,EAIAH,EAAK,QAAQ,QAAS,KAAM,CAAE,UAAW,EAAG,EAC5CA,EAAK,QAAQ,IAAK,GAAG,EACrB,CACE,UAAW,SACX,MAAO,IACP,IAAK,IACL,SAAU,CACR,CACE,UAAW,cACX,MAAO,QACR,CACF,CACF,EACDS,EACAJ,EACAD,EACAI,EACAD,EACAD,CACD,CACL,CACA,CAEA,IAAAI,EAAiBX","x_google_ignoreList":[0]}