pla.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  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/pla/pla",[],()=>{
  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/pla/pla.ts
  17. var pla_exports = {};
  18. __export(pla_exports, {
  19. conf: () => conf,
  20. language: () => language
  21. });
  22. var conf = {
  23. comments: {
  24. lineComment: "#"
  25. },
  26. brackets: [
  27. ["[", "]"],
  28. ["<", ">"],
  29. ["(", ")"]
  30. ],
  31. autoClosingPairs: [
  32. { open: "[", close: "]" },
  33. { open: "<", close: ">" },
  34. { open: "(", close: ")" }
  35. ],
  36. surroundingPairs: [
  37. { open: "[", close: "]" },
  38. { open: "<", close: ">" },
  39. { open: "(", close: ")" }
  40. ]
  41. };
  42. var language = {
  43. defaultToken: "",
  44. tokenPostfix: ".pla",
  45. brackets: [
  46. { open: "[", close: "]", token: "delimiter.square" },
  47. { open: "<", close: ">", token: "delimiter.angle" },
  48. { open: "(", close: ")", token: "delimiter.parenthesis" }
  49. ],
  50. keywords: [
  51. ".i",
  52. ".o",
  53. ".mv",
  54. ".ilb",
  55. ".ob",
  56. ".label",
  57. ".type",
  58. ".phase",
  59. ".pair",
  60. ".symbolic",
  61. ".symbolic-output",
  62. ".kiss",
  63. ".p",
  64. ".e",
  65. ".end"
  66. ],
  67. comment: /#.*$/,
  68. identifier: /[a-zA-Z]+[a-zA-Z0-9_\-]*/,
  69. plaContent: /[01\-~\|]+/,
  70. tokenizer: {
  71. root: [
  72. { include: "@whitespace" },
  73. [/@comment/, "comment"],
  74. [
  75. /\.([a-zA-Z_\-]+)/,
  76. {
  77. cases: {
  78. "@eos": { token: "keyword.$1" },
  79. "@keywords": {
  80. cases: {
  81. ".type": { token: "keyword.$1", next: "@type" },
  82. "@default": { token: "keyword.$1", next: "@keywordArg" }
  83. }
  84. },
  85. "@default": { token: "keyword.$1" }
  86. }
  87. }
  88. ],
  89. [/@identifier/, "identifier"],
  90. [/@plaContent/, "string"]
  91. ],
  92. whitespace: [[/[ \t\r\n]+/, ""]],
  93. type: [{ include: "@whitespace" }, [/\w+/, { token: "type", next: "@pop" }]],
  94. keywordArg: [
  95. [
  96. /[ \t\r\n]+/,
  97. {
  98. cases: {
  99. "@eos": { token: "", next: "@pop" },
  100. "@default": ""
  101. }
  102. }
  103. ],
  104. [/@comment/, "comment", "@pop"],
  105. [
  106. /[<>()\[\]]/,
  107. {
  108. cases: {
  109. "@eos": { token: "@brackets", next: "@pop" },
  110. "@default": "@brackets"
  111. }
  112. }
  113. ],
  114. [
  115. /\-?\d+/,
  116. {
  117. cases: {
  118. "@eos": { token: "number", next: "@pop" },
  119. "@default": "number"
  120. }
  121. }
  122. ],
  123. [
  124. /@identifier/,
  125. {
  126. cases: {
  127. "@eos": { token: "identifier", next: "@pop" },
  128. "@default": "identifier"
  129. }
  130. }
  131. ],
  132. [
  133. /[;=]/,
  134. {
  135. cases: {
  136. "@eos": { token: "delimiter", next: "@pop" },
  137. "@default": "delimiter"
  138. }
  139. }
  140. ]
  141. ]
  142. }
  143. };
  144. return pla_exports;
  145. })();
  146. return moduleExports;
  147. });