0cfff9f1f470753dd6030b6c71c0ac9a4570dd5401bb362f49830246b0800ad4.json 12 KB

1
  1. {"ast":null,"code":"/*\nLanguage: LLVM IR\nAuthor: Michael Rodler <contact@f0rki.at>\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 }, {\n begin: /[-+]?\\d+(?:[.]\\d+)?(?:[eE][-+]?\\d+(?:[.]\\d+)?)?/\n }],\n relevance: 0\n };\n const LABEL = {\n className: 'symbol',\n variants: [{\n begin: /^\\s*[a-z]+:/\n } // labels\n ],\n relevance: 0\n };\n const VARIABLE = {\n className: 'variable',\n variants: [{\n begin: regex.concat(/%/, IDENT_RE)\n }, {\n begin: /%\\d+/\n }, {\n begin: /#\\d+/\n }]\n };\n const FUNCTION = {\n className: 'title',\n variants: [{\n begin: regex.concat(/@/, IDENT_RE)\n }, {\n begin: /@\\d+/\n }, {\n begin: regex.concat(/!/, IDENT_RE)\n }, {\n begin: regex.concat(/!\\d+/, IDENT_RE)\n },\n // https://llvm.org/docs/LangRef.html#namedmetadatastructure\n // obviously a single digit can also be used in this fashion\n {\n begin: /!\\d+/\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 ' + 'constant private linker_private internal ' + 'available_externally linkonce linkonce_odr weak ' + 'weak_odr appending dllimport dllexport common ' + 'default hidden protected extern_weak external ' + 'thread_local zeroinitializer undef null to tail ' + 'target triple datalayout volatile nuw nsw nnan ' + 'ninf nsz arcp fast exact inbounds align ' + 'addrspace section alias module asm sideeffect ' + 'gc dbg linker_private_weak attributes blockaddress ' + 'initialexec localdynamic localexec prefix unnamed_addr ' + 'ccc fastcc coldcc x86_stdcallcc x86_fastcallcc ' + 'arm_apcscc arm_aapcscc arm_aapcs_vfpcc ptx_device ' + 'ptx_kernel intel_ocl_bicc msp430_intrcc spir_func ' + 'spir_kernel x86_64_sysvcc x86_64_win64cc x86_thiscallcc ' + 'cc c signext zeroext inreg sret nounwind ' + 'noreturn noalias nocapture byval nest readnone ' + 'readonly inlinehint noinline alwaysinline optsize ssp ' + 'sspreq noredzone noimplicitfloat naked builtin cold ' + 'nobuiltin noduplicate nonlazybind optnone returns_twice ' + 'sanitize_address sanitize_memory sanitize_thread sspstrong ' + 'uwtable returned type opaque eq ne slt sgt ' + 'sle sge ult ugt ule uge oeq one olt ogt ' + 'ole oge ord uno ueq une x acq_rel acquire ' + 'alignstack atomic catch cleanup filter inteldialect ' + 'max min monotonic nand personality release seq_cst ' + 'singlethread umax umin unordered xchg add fadd ' + 'sub fsub mul fmul udiv sdiv fdiv urem srem ' + 'frem shl lshr ashr and or xor icmp fcmp ' + 'phi call trunc zext sext fptrunc fpext uitofp ' + 'sitofp fptoui fptosi inttoptr ptrtoint bitcast ' + 'addrspacecast select va_arg ret br switch invoke ' + 'unwind unreachable indirectbr landingpad resume ' + 'malloc alloca free load store getelementptr ' + 'extractelement insertelement shufflevector getresult ' + 'extractvalue insertvalue atomicrmw cmpxchg fence ' + 'argmemonly',\n type: 'void half bfloat float double fp128 x86_fp80 ppc_fp128 ' + 'x86_amx x86_mmx ptr label token metadata opaque'\n },\n contains: [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, {\n relevance: 0\n }), hljs.COMMENT(/;/, /$/), {\n className: 'string',\n begin: /\"/,\n end: /\"/,\n contains: [{\n className: 'char.escape',\n match: /\\\\\\d\\d/\n }]\n }, FUNCTION, PUNCTUATION, OPERATOR, VARIABLE, LABEL, NUMBER]\n };\n}\nmodule.exports = llvm;","map":{"version":3,"names":["llvm","hljs","regex","IDENT_RE","TYPE","className","begin","OPERATOR","relevance","PUNCTUATION","NUMBER","variants","LABEL","VARIABLE","concat","FUNCTION","name","keywords","keyword","type","contains","COMMENT","end","match","module","exports"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/highlight.js/lib/languages/llvm.js"],"sourcesContent":["/*\nLanguage: LLVM IR\nAuthor: Michael Rodler <contact@f0rki.at>\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"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"script","externalDependencies":[]}