1{"version":3,"sources":["../../node_modules/codemirror/mode/gas/gas.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","_config","parserConfig","custom","lineCommentStartSymbol","directives",".abort",".align",".altmacro",".ascii",".asciz",".balign",".balignw",".balignl",".bundle_align_mode",".bundle_lock",".bundle_unlock",".byte",".cfi_startproc",".comm",".data",".def",".desc",".dim",".double",".eject",".else",".elseif",".end",".endef",".endfunc",".endif",".equ",".equiv",".eqv",".err",".error",".exitm",".extern",".fail",".file",".fill",".float",".func",".global",".gnu_attribute",".hidden",".hword",".ident",".if",".incbin",".include",".int",".internal",".irp",".irpc",".lcomm",".lflags",".line",".linkonce",".list",".ln",".loc",".loc_mark_labels",".local",".long",".macro",".mri",".noaltmacro",".nolist",".octa",".offset",".org",".p2align",".popsection",".previous",".print",".protected",".psize",".purgem",".pushsection",".quad",".reloc",".rept",".sbttl",".scl",".section",".set",".short",".single",".size",".skip",".sleb128",".space",".stab",".string",".struct",".subsection",".symver",".tag",".text",".title",".type",".uleb128",".val",".version",".vtable_entry",".vtable_inherit",".warning",".weak",".weakref",".word","registers","x86","_parserConfig","ax","eax","rax","bx","ebx","rbx","cx","ecx","rcx","dx","edx","rdx","si","esi","rsi","di","edi","rdi","sp","esp","rsp","bp","ebp","rbp","ip","eip","rip","cs","ds","ss","es","fs","gs","armv6","syntax","r0","r1","r2","r3","r4","r5","r6","r7","r8","r9","r10","r11","r12","lr","pc","r13","r14","r15","push","ch","stream","eatWhile","arch","architecture","toLowerCase","nextUntilUnescaped","end","escaped","next","clikeComment","state","maybeEnd","tokenize","startState","token","eatSpace","style","cur","eat","skipToEnd","current","test","i","length","lineComment","blockCommentStart","blockCommentEnd"],"mappings":"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","file":"gas.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"gas\", function(_config, parserConfig) {\n 'use strict';\n\n // If an architecture is specified, its initialization function may\n // populate this array with custom parsing functions which will be\n // tried in the event that the standard functions do not find a match.\n var custom = [];\n\n // The symbol used to start a line comment changes based on the target\n // architecture.\n // If no architecture is pased in \"parserConfig\" then only multiline\n // comments will have syntax support.\n var lineCommentStartSymbol = \"\";\n\n // These directives are architecture independent.\n // Machine specific directives should go in their respective\n // architecture initialization function.\n // Reference:\n // http://sourceware.org/binutils/docs/as/Pseudo-Ops.html#Pseudo-Ops\n var directives = {\n \".abort\" : \"builtin\",\n \".align\" : \"builtin\",\n \".altmacro\" : \"builtin\",\n \".ascii\" : \"builtin\",\n \".asciz\" : \"builtin\",\n \".balign\" : \"builtin\",\n \".balignw\" : \"builtin\",\n \".balignl\" : \"builtin\",\n \".bundle_align_mode\" : \"builtin\",\n \".bundle_lock\" : \"builtin\",\n \".bundle_unlock\" : \"builtin\",\n \".byte\" : \"builtin\",\n \".cfi_startproc\" : \"builtin\",\n \".comm\" : \"builtin\",\n \".data\" : \"builtin\",\n \".def\" : \"builtin\",\n \".desc\" : \"builtin\",\n \".dim\" : \"builtin\",\n \".double\" : \"builtin\",\n \".eject\" : \"builtin\",\n \".else\" : \"builtin\",\n \".elseif\" : \"builtin\",\n \".end\" : \"builtin\",\n \".endef\" : \"builtin\",\n \".endfunc\" : \"builtin\",\n \".endif\" : \"builtin\",\n \".equ\" : \"builtin\",\n \".equiv\" : \"builtin\",\n \".eqv\" : \"builtin\",\n \".err\" : \"builtin\",\n \".error\" : \"builtin\",\n \".exitm\" : \"builtin\",\n \".extern\" : \"builtin\",\n \".fail\" : \"builtin\",\n \".file\" : \"builtin\",\n \".fill\" : \"builtin\",\n \".float\" : \"builtin\",\n \".func\" : \"builtin\",\n \".global\" : \"builtin\",\n \".gnu_attribute\" : \"builtin\",\n \".hidden\" : \"builtin\",\n \".hword\" : \"builtin\",\n \".ident\" : \"builtin\",\n \".if\" : \"builtin\",\n \".incbin\" : \"builtin\",\n \".include\" : \"builtin\",\n \".int\" : \"builtin\",\n \".internal\" : \"builtin\",\n \".irp\" : \"builtin\",\n \".irpc\" : \"builtin\",\n \".lcomm\" : \"builtin\",\n \".lflags\" : \"builtin\",\n \".line\" : \"builtin\",\n \".linkonce\" : \"builtin\",\n \".list\" : \"builtin\",\n \".ln\" : \"builtin\",\n \".loc\" : \"builtin\",\n \".loc_mark_labels\" : \"builtin\",\n \".local\" : \"builtin\",\n \".long\" : \"builtin\",\n \".macro\" : \"builtin\",\n \".mri\" : \"builtin\",\n \".noaltmacro\" : \"builtin\",\n \".nolist\" : \"builtin\",\n \".octa\" : \"builtin\",\n \".offset\" : \"builtin\",\n \".org\" : \"builtin\",\n \".p2align\" : \"builtin\",\n \".popsection\" : \"builtin\",\n \".previous\" : \"builtin\",\n \".print\" : \"builtin\",\n \".protected\" : \"builtin\",\n \".psize\" : \"builtin\",\n \".purgem\" : \"builtin\",\n \".pushsection\" : \"builtin\",\n \".quad\" : \"builtin\",\n \".reloc\" : \"builtin\",\n \".rept\" : \"builtin\",\n \".sbttl\" : \"builtin\",\n \".scl\" : \"builtin\",\n \".section\" : \"builtin\",\n \".set\" : \"builtin\",\n \".short\" : \"builtin\",\n \".single\" : \"builtin\",\n \".size\" : \"builtin\",\n \".skip\" : \"builtin\",\n \".sleb128\" : \"builtin\",\n \".space\" : \"builtin\",\n \".stab\" : \"builtin\",\n \".string\" : \"builtin\",\n \".struct\" : \"builtin\",\n \".subsection\" : \"builtin\",\n \".symver\" : \"builtin\",\n \".tag\" : \"builtin\",\n \".text\" : \"builtin\",\n \".title\" : \"builtin\",\n \".type\" : \"builtin\",\n \".uleb128\" : \"builtin\",\n \".val\" : \"builtin\",\n \".version\" : \"builtin\",\n \".vtable_entry\" : \"builtin\",\n \".vtable_inherit\" : \"builtin\",\n \".warning\" : \"builtin\",\n \".weak\" : \"builtin\",\n \".weakref\" : \"builtin\",\n \".word\" : \"builtin\"\n };\n\n var registers = {};\n\n function x86(_parserConfig) {\n lineCommentStartSymbol = \"#\";\n\n registers.ax = \"variable\";\n registers.eax = \"variable-2\";\n registers.rax = \"variable-3\";\n\n registers.bx = \"variable\";\n registers.ebx = \"variable-2\";\n registers.rbx = \"variable-3\";\n\n registers.cx = \"variable\";\n registers.ecx = \"variable-2\";\n registers.rcx = \"variable-3\";\n\n registers.dx = \"variable\";\n registers.edx = \"variable-2\";\n registers.rdx = \"variable-3\";\n\n registers.si = \"variable\";\n registers.esi = \"variable-2\";\n registers.rsi = \"variable-3\";\n\n registers.di = \"variable\";\n registers.edi = \"variable-2\";\n registers.rdi = \"variable-3\";\n\n registers.sp = \"variable\";\n registers.esp = \"variable-2\";\n registers.rsp = \"variable-3\";\n\n registers.bp = \"variable\";\n registers.ebp = \"variable-2\";\n registers.rbp = \"variable-3\";\n\n registers.ip = \"variable\";\n registers.eip = \"variable-2\";\n registers.rip = \"variable-3\";\n\n registers.cs = \"keyword\";\n registers.ds = \"keyword\";\n registers.ss = \"keyword\";\n registers.es = \"keyword\";\n registers.fs = \"keyword\";\n registers.gs = \"keyword\";\n }\n\n function armv6(_parserConfig) {\n // Reference:\n // http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf\n // http://infocenter.arm.com/help/topic/com.arm.doc.ddi0301h/DDI0301H_arm1176jzfs_r0p7_trm.pdf\n lineCommentStartSymbol = \"@\";\n directives.syntax = \"builtin\";\n\n registers.r0 = \"variable\";\n registers.r1 = \"variable\";\n registers.r2 = \"variable\";\n registers.r3 = \"variable\";\n registers.r4 = \"variable\";\n registers.r5 = \"variable\";\n registers.r6 = \"variable\";\n registers.r7 = \"variable\";\n registers.r8 = \"variable\";\n registers.r9 = \"variable\";\n registers.r10 = \"variable\";\n registers.r11 = \"variable\";\n registers.r12 = \"variable\";\n\n registers.sp = \"variable-2\";\n registers.lr = \"variable-2\";\n registers.pc = \"variable-2\";\n registers.r13 = registers.sp;\n registers.r14 = registers.lr;\n registers.r15 = registers.pc;\n\n custom.push(function(ch, stream) {\n if (ch === '#') {\n stream.eatWhile(/\\w/);\n return \"number\";\n }\n });\n }\n\n var arch = (parserConfig.architecture || \"x86\").toLowerCase();\n if (arch === \"x86\") {\n x86(parserConfig);\n } else if (arch === \"arm\" || arch === \"armv6\") {\n armv6(parserConfig);\n }\n\n function nextUntilUnescaped(stream, end) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (next === end && !escaped) {\n return false;\n }\n escaped = !escaped && next === \"\\\\\";\n }\n return escaped;\n }\n\n function clikeComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch === \"/\" && maybeEnd) {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch === \"*\");\n }\n return \"comment\";\n }\n\n return {\n startState: function() {\n return {\n tokenize: null\n };\n },\n\n token: function(stream, state) {\n if (state.tokenize) {\n return state.tokenize(stream, state);\n }\n\n if (stream.eatSpace()) {\n return null;\n }\n\n var style, cur, ch = stream.next();\n\n if (ch === \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = clikeComment;\n return clikeComment(stream, state);\n }\n }\n\n if (ch === lineCommentStartSymbol) {\n stream.skipToEnd();\n return \"comment\";\n }\n\n if (ch === '\"') {\n nextUntilUnescaped(stream, '\"');\n return \"string\";\n }\n\n if (ch === '.') {\n stream.eatWhile(/\\w/);\n cur = stream.current().toLowerCase();\n style = directives[cur];\n return style || null;\n }\n\n if (ch === '=') {\n stream.eatWhile(/\\w/);\n return \"tag\";\n }\n\n if (ch === '{') {\n return \"braket\";\n }\n\n if (ch === '}') {\n return \"braket\";\n }\n\n if (/\\d/.test(ch)) {\n if (ch === \"0\" && stream.eat(\"x\")) {\n stream.eatWhile(/[0-9a-fA-F]/);\n return \"number\";\n }\n stream.eatWhile(/\\d/);\n return \"number\";\n }\n\n if (/\\w/.test(ch)) {\n stream.eatWhile(/\\w/);\n if (stream.eat(\":\")) {\n return 'tag';\n }\n cur = stream.current().toLowerCase();\n style = registers[cur];\n return style || null;\n }\n\n for (var i = 0; i < custom.length; i++) {\n style = custom[i](ch, stream, state);\n if (style) {\n return style;\n }\n }\n },\n\n lineComment: lineCommentStartSymbol,\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\"\n };\n});\n\n});\n"]}