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"]}