pascaligo.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. /*!-----------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
  4. * Released under the MIT license
  5. * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
  6. *-----------------------------------------------------------------------------*/
  7. define("vs/basic-languages/pascaligo/pascaligo",[],()=>{
  8. var moduleExports = (() => {
  9. var __defProp = Object.defineProperty;
  10. var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
  11. var __export = (target, all) => {
  12. __markAsModule(target);
  13. for (var name in all)
  14. __defProp(target, name, { get: all[name], enumerable: true });
  15. };
  16. // src/basic-languages/pascaligo/pascaligo.ts
  17. var pascaligo_exports = {};
  18. __export(pascaligo_exports, {
  19. conf: () => conf,
  20. language: () => language
  21. });
  22. var conf = {
  23. comments: {
  24. lineComment: "//",
  25. blockComment: ["(*", "*)"]
  26. },
  27. brackets: [
  28. ["{", "}"],
  29. ["[", "]"],
  30. ["(", ")"],
  31. ["<", ">"]
  32. ],
  33. autoClosingPairs: [
  34. { open: "{", close: "}" },
  35. { open: "[", close: "]" },
  36. { open: "(", close: ")" },
  37. { open: "<", close: ">" },
  38. { open: "'", close: "'" }
  39. ],
  40. surroundingPairs: [
  41. { open: "{", close: "}" },
  42. { open: "[", close: "]" },
  43. { open: "(", close: ")" },
  44. { open: "<", close: ">" },
  45. { open: "'", close: "'" }
  46. ]
  47. };
  48. var language = {
  49. defaultToken: "",
  50. tokenPostfix: ".pascaligo",
  51. ignoreCase: true,
  52. brackets: [
  53. { open: "{", close: "}", token: "delimiter.curly" },
  54. { open: "[", close: "]", token: "delimiter.square" },
  55. { open: "(", close: ")", token: "delimiter.parenthesis" },
  56. { open: "<", close: ">", token: "delimiter.angle" }
  57. ],
  58. keywords: [
  59. "begin",
  60. "block",
  61. "case",
  62. "const",
  63. "else",
  64. "end",
  65. "fail",
  66. "for",
  67. "from",
  68. "function",
  69. "if",
  70. "is",
  71. "nil",
  72. "of",
  73. "remove",
  74. "return",
  75. "skip",
  76. "then",
  77. "type",
  78. "var",
  79. "while",
  80. "with",
  81. "option",
  82. "None",
  83. "transaction"
  84. ],
  85. typeKeywords: [
  86. "bool",
  87. "int",
  88. "list",
  89. "map",
  90. "nat",
  91. "record",
  92. "string",
  93. "unit",
  94. "address",
  95. "map",
  96. "mtz",
  97. "xtz"
  98. ],
  99. operators: [
  100. "=",
  101. ">",
  102. "<",
  103. "<=",
  104. ">=",
  105. "<>",
  106. ":",
  107. ":=",
  108. "and",
  109. "mod",
  110. "or",
  111. "+",
  112. "-",
  113. "*",
  114. "/",
  115. "@",
  116. "&",
  117. "^",
  118. "%"
  119. ],
  120. symbols: /[=><:@\^&|+\-*\/\^%]+/,
  121. tokenizer: {
  122. root: [
  123. [
  124. /[a-zA-Z_][\w]*/,
  125. {
  126. cases: {
  127. "@keywords": { token: "keyword.$0" },
  128. "@default": "identifier"
  129. }
  130. }
  131. ],
  132. { include: "@whitespace" },
  133. [/[{}()\[\]]/, "@brackets"],
  134. [/[<>](?!@symbols)/, "@brackets"],
  135. [
  136. /@symbols/,
  137. {
  138. cases: {
  139. "@operators": "delimiter",
  140. "@default": ""
  141. }
  142. }
  143. ],
  144. [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
  145. [/\$[0-9a-fA-F]{1,16}/, "number.hex"],
  146. [/\d+/, "number"],
  147. [/[;,.]/, "delimiter"],
  148. [/'([^'\\]|\\.)*$/, "string.invalid"],
  149. [/'/, "string", "@string"],
  150. [/'[^\\']'/, "string"],
  151. [/'/, "string.invalid"],
  152. [/\#\d+/, "string"]
  153. ],
  154. comment: [
  155. [/[^\(\*]+/, "comment"],
  156. [/\*\)/, "comment", "@pop"],
  157. [/\(\*/, "comment"]
  158. ],
  159. string: [
  160. [/[^\\']+/, "string"],
  161. [/\\./, "string.escape.invalid"],
  162. [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }]
  163. ],
  164. whitespace: [
  165. [/[ \t\r\n]+/, "white"],
  166. [/\(\*/, "comment", "@comment"],
  167. [/\/\/.*$/, "comment"]
  168. ]
  169. }
  170. };
  171. return pascaligo_exports;
  172. })();
  173. return moduleExports;
  174. });