pascal.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262
  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/pascal/pascal",[],()=>{
  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/pascal/pascal.ts
  17. var pascal_exports = {};
  18. __export(pascal_exports, {
  19. conf: () => conf,
  20. language: () => language
  21. });
  22. var conf = {
  23. wordPattern: /(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,
  24. comments: {
  25. lineComment: "//",
  26. blockComment: ["{", "}"]
  27. },
  28. brackets: [
  29. ["{", "}"],
  30. ["[", "]"],
  31. ["(", ")"],
  32. ["<", ">"]
  33. ],
  34. autoClosingPairs: [
  35. { open: "{", close: "}" },
  36. { open: "[", close: "]" },
  37. { open: "(", close: ")" },
  38. { open: "<", close: ">" },
  39. { open: "'", close: "'" }
  40. ],
  41. surroundingPairs: [
  42. { open: "{", close: "}" },
  43. { open: "[", close: "]" },
  44. { open: "(", close: ")" },
  45. { open: "<", close: ">" },
  46. { open: "'", close: "'" }
  47. ],
  48. folding: {
  49. markers: {
  50. start: new RegExp("^\\s*\\{\\$REGION(\\s\\'.*\\')?\\}"),
  51. end: new RegExp("^\\s*\\{\\$ENDREGION\\}")
  52. }
  53. }
  54. };
  55. var language = {
  56. defaultToken: "",
  57. tokenPostfix: ".pascal",
  58. ignoreCase: true,
  59. brackets: [
  60. { open: "{", close: "}", token: "delimiter.curly" },
  61. { open: "[", close: "]", token: "delimiter.square" },
  62. { open: "(", close: ")", token: "delimiter.parenthesis" },
  63. { open: "<", close: ">", token: "delimiter.angle" }
  64. ],
  65. keywords: [
  66. "absolute",
  67. "abstract",
  68. "all",
  69. "and_then",
  70. "array",
  71. "as",
  72. "asm",
  73. "attribute",
  74. "begin",
  75. "bindable",
  76. "case",
  77. "class",
  78. "const",
  79. "contains",
  80. "default",
  81. "div",
  82. "else",
  83. "end",
  84. "except",
  85. "exports",
  86. "external",
  87. "far",
  88. "file",
  89. "finalization",
  90. "finally",
  91. "forward",
  92. "generic",
  93. "goto",
  94. "if",
  95. "implements",
  96. "import",
  97. "in",
  98. "index",
  99. "inherited",
  100. "initialization",
  101. "interrupt",
  102. "is",
  103. "label",
  104. "library",
  105. "mod",
  106. "module",
  107. "name",
  108. "near",
  109. "not",
  110. "object",
  111. "of",
  112. "on",
  113. "only",
  114. "operator",
  115. "or_else",
  116. "otherwise",
  117. "override",
  118. "package",
  119. "packed",
  120. "pow",
  121. "private",
  122. "program",
  123. "protected",
  124. "public",
  125. "published",
  126. "interface",
  127. "implementation",
  128. "qualified",
  129. "read",
  130. "record",
  131. "resident",
  132. "requires",
  133. "resourcestring",
  134. "restricted",
  135. "segment",
  136. "set",
  137. "shl",
  138. "shr",
  139. "specialize",
  140. "stored",
  141. "strict",
  142. "then",
  143. "threadvar",
  144. "to",
  145. "try",
  146. "type",
  147. "unit",
  148. "uses",
  149. "var",
  150. "view",
  151. "virtual",
  152. "dynamic",
  153. "overload",
  154. "reintroduce",
  155. "with",
  156. "write",
  157. "xor",
  158. "true",
  159. "false",
  160. "procedure",
  161. "function",
  162. "constructor",
  163. "destructor",
  164. "property",
  165. "break",
  166. "continue",
  167. "exit",
  168. "abort",
  169. "while",
  170. "do",
  171. "for",
  172. "raise",
  173. "repeat",
  174. "until"
  175. ],
  176. typeKeywords: [
  177. "boolean",
  178. "double",
  179. "byte",
  180. "integer",
  181. "shortint",
  182. "char",
  183. "longint",
  184. "float",
  185. "string"
  186. ],
  187. operators: [
  188. "=",
  189. ">",
  190. "<",
  191. "<=",
  192. ">=",
  193. "<>",
  194. ":",
  195. ":=",
  196. "and",
  197. "or",
  198. "+",
  199. "-",
  200. "*",
  201. "/",
  202. "@",
  203. "&",
  204. "^",
  205. "%"
  206. ],
  207. symbols: /[=><:@\^&|+\-*\/\^%]+/,
  208. tokenizer: {
  209. root: [
  210. [
  211. /[a-zA-Z_][\w]*/,
  212. {
  213. cases: {
  214. "@keywords": { token: "keyword.$0" },
  215. "@default": "identifier"
  216. }
  217. }
  218. ],
  219. { include: "@whitespace" },
  220. [/[{}()\[\]]/, "@brackets"],
  221. [/[<>](?!@symbols)/, "@brackets"],
  222. [
  223. /@symbols/,
  224. {
  225. cases: {
  226. "@operators": "delimiter",
  227. "@default": ""
  228. }
  229. }
  230. ],
  231. [/\d*\.\d+([eE][\-+]?\d+)?/, "number.float"],
  232. [/\$[0-9a-fA-F]{1,16}/, "number.hex"],
  233. [/\d+/, "number"],
  234. [/[;,.]/, "delimiter"],
  235. [/'([^'\\]|\\.)*$/, "string.invalid"],
  236. [/'/, "string", "@string"],
  237. [/'[^\\']'/, "string"],
  238. [/'/, "string.invalid"],
  239. [/\#\d+/, "string"]
  240. ],
  241. comment: [
  242. [/[^\*\}]+/, "comment"],
  243. [/\}/, "comment", "@pop"],
  244. [/[\{]/, "comment"]
  245. ],
  246. string: [
  247. [/[^\\']+/, "string"],
  248. [/\\./, "string.escape.invalid"],
  249. [/'/, { token: "string.quote", bracket: "@close", next: "@pop" }]
  250. ],
  251. whitespace: [
  252. [/[ \t\r\n]+/, "white"],
  253. [/\{/, "comment", "@comment"],
  254. [/\/\/.*$/, "comment"]
  255. ]
  256. }
  257. };
  258. return pascal_exports;
  259. })();
  260. return moduleExports;
  261. });