mips.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. "use strict";
  2. /*!-----------------------------------------------------------------------------
  3. * Copyright (c) Microsoft Corporation. All rights reserved.
  4. * Version: 0.38.0(0e330ae453813de4e6cf272460fb79c7117073d0)
  5. * Released under the MIT license
  6. * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
  7. *-----------------------------------------------------------------------------*/
  8. define("vs/basic-languages/mips/mips", ["require"],(require)=>{
  9. var moduleExports = (() => {
  10. var __defProp = Object.defineProperty;
  11. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  12. var __getOwnPropNames = Object.getOwnPropertyNames;
  13. var __hasOwnProp = Object.prototype.hasOwnProperty;
  14. var __export = (target, all) => {
  15. for (var name in all)
  16. __defProp(target, name, { get: all[name], enumerable: true });
  17. };
  18. var __copyProps = (to, from, except, desc) => {
  19. if (from && typeof from === "object" || typeof from === "function") {
  20. for (let key of __getOwnPropNames(from))
  21. if (!__hasOwnProp.call(to, key) && key !== except)
  22. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  23. }
  24. return to;
  25. };
  26. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  27. // src/basic-languages/mips/mips.ts
  28. var mips_exports = {};
  29. __export(mips_exports, {
  30. conf: () => conf,
  31. language: () => language
  32. });
  33. var conf = {
  34. wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
  35. comments: {
  36. blockComment: ["###", "###"],
  37. lineComment: "#"
  38. },
  39. folding: {
  40. markers: {
  41. start: new RegExp("^\\s*#region\\b"),
  42. end: new RegExp("^\\s*#endregion\\b")
  43. }
  44. }
  45. };
  46. var language = {
  47. defaultToken: "",
  48. ignoreCase: false,
  49. tokenPostfix: ".mips",
  50. regEx: /\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,
  51. keywords: [
  52. ".data",
  53. ".text",
  54. "syscall",
  55. "trap",
  56. "add",
  57. "addu",
  58. "addi",
  59. "addiu",
  60. "and",
  61. "andi",
  62. "div",
  63. "divu",
  64. "mult",
  65. "multu",
  66. "nor",
  67. "or",
  68. "ori",
  69. "sll",
  70. "slv",
  71. "sra",
  72. "srav",
  73. "srl",
  74. "srlv",
  75. "sub",
  76. "subu",
  77. "xor",
  78. "xori",
  79. "lhi",
  80. "lho",
  81. "lhi",
  82. "llo",
  83. "slt",
  84. "slti",
  85. "sltu",
  86. "sltiu",
  87. "beq",
  88. "bgtz",
  89. "blez",
  90. "bne",
  91. "j",
  92. "jal",
  93. "jalr",
  94. "jr",
  95. "lb",
  96. "lbu",
  97. "lh",
  98. "lhu",
  99. "lw",
  100. "li",
  101. "la",
  102. "sb",
  103. "sh",
  104. "sw",
  105. "mfhi",
  106. "mflo",
  107. "mthi",
  108. "mtlo",
  109. "move"
  110. ],
  111. symbols: /[\.,\:]+/,
  112. escapes: /\\(?:[abfnrtv\\"'$]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
  113. tokenizer: {
  114. root: [
  115. [/\$[a-zA-Z_]\w*/, "variable.predefined"],
  116. [
  117. /[.a-zA-Z_]\w*/,
  118. {
  119. cases: {
  120. this: "variable.predefined",
  121. "@keywords": { token: "keyword.$0" },
  122. "@default": ""
  123. }
  124. }
  125. ],
  126. [/[ \t\r\n]+/, ""],
  127. [/#.*$/, "comment"],
  128. ["///", { token: "regexp", next: "@hereregexp" }],
  129. [/^(\s*)(@regEx)/, ["", "regexp"]],
  130. [/(\,)(\s*)(@regEx)/, ["delimiter", "", "regexp"]],
  131. [/(\:)(\s*)(@regEx)/, ["delimiter", "", "regexp"]],
  132. [/@symbols/, "delimiter"],
  133. [/\d+[eE]([\-+]?\d+)?/, "number.float"],
  134. [/\d+\.\d+([eE][\-+]?\d+)?/, "number.float"],
  135. [/0[xX][0-9a-fA-F]+/, "number.hex"],
  136. [/0[0-7]+(?!\d)/, "number.octal"],
  137. [/\d+/, "number"],
  138. [/[,.]/, "delimiter"],
  139. [/"""/, "string", '@herestring."""'],
  140. [/'''/, "string", "@herestring.'''"],
  141. [
  142. /"/,
  143. {
  144. cases: {
  145. "@eos": "string",
  146. "@default": { token: "string", next: '@string."' }
  147. }
  148. }
  149. ],
  150. [
  151. /'/,
  152. {
  153. cases: {
  154. "@eos": "string",
  155. "@default": { token: "string", next: "@string.'" }
  156. }
  157. }
  158. ]
  159. ],
  160. string: [
  161. [/[^"'\#\\]+/, "string"],
  162. [/@escapes/, "string.escape"],
  163. [/\./, "string.escape.invalid"],
  164. [/\./, "string.escape.invalid"],
  165. [
  166. /#{/,
  167. {
  168. cases: {
  169. '$S2=="': {
  170. token: "string",
  171. next: "root.interpolatedstring"
  172. },
  173. "@default": "string"
  174. }
  175. }
  176. ],
  177. [
  178. /["']/,
  179. {
  180. cases: {
  181. "$#==$S2": { token: "string", next: "@pop" },
  182. "@default": "string"
  183. }
  184. }
  185. ],
  186. [/#/, "string"]
  187. ],
  188. herestring: [
  189. [
  190. /("""|''')/,
  191. {
  192. cases: {
  193. "$1==$S2": { token: "string", next: "@pop" },
  194. "@default": "string"
  195. }
  196. }
  197. ],
  198. [/[^#\\'"]+/, "string"],
  199. [/['"]+/, "string"],
  200. [/@escapes/, "string.escape"],
  201. [/\./, "string.escape.invalid"],
  202. [/#{/, { token: "string.quote", next: "root.interpolatedstring" }],
  203. [/#/, "string"]
  204. ],
  205. comment: [
  206. [/[^#]+/, "comment"],
  207. [/#/, "comment"]
  208. ],
  209. hereregexp: [
  210. [/[^\\\/#]+/, "regexp"],
  211. [/\\./, "regexp"],
  212. [/#.*$/, "comment"],
  213. ["///[igm]*", { token: "regexp", next: "@pop" }],
  214. [/\//, "regexp"]
  215. ]
  216. }
  217. };
  218. return __toCommonJS(mips_exports);
  219. })();
  220. return moduleExports;
  221. });