modula2.json 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. {
  2. "Module": {
  3. "prefix": [
  4. "module",
  5. "MODULE"
  6. ],
  7. "body": [
  8. "MODULE ${1:ModuleName};",
  9. "",
  10. "FROM ${2:Module} IMPORT ${3:Item};",
  11. "",
  12. "VAR",
  13. " ${4:variable} : ${5:INTEGER};",
  14. "",
  15. "BEGIN",
  16. " ${0}",
  17. "END ${1:ModuleName}."
  18. ],
  19. "description": "Create a complete Modula-2 module"
  20. },
  21. "Definition Module": {
  22. "prefix": [
  23. "definition",
  24. "defmodule",
  25. "DEFINITION"
  26. ],
  27. "body": [
  28. "DEFINITION MODULE ${1:ModuleName};",
  29. "",
  30. "EXPORTS",
  31. " ${0}",
  32. "",
  33. "END ${1:ModuleName}."
  34. ],
  35. "description": "Create a definition module"
  36. },
  37. "Implementation Module": {
  38. "prefix": [
  39. "implementation",
  40. "implmodule",
  41. "IMPLEMENTATION"
  42. ],
  43. "body": [
  44. "IMPLEMENTATION MODULE ${1:ModuleName};",
  45. "",
  46. "FROM ${2:Module} IMPORT ${3:Item};",
  47. "",
  48. "BEGIN",
  49. " ${0}",
  50. "END ${1:ModuleName}."
  51. ],
  52. "description": "Create an implementation module"
  53. },
  54. "Procedure": {
  55. "prefix": [
  56. "proc",
  57. "procedure",
  58. "PROCEDURE"
  59. ],
  60. "body": [
  61. "PROCEDURE ${1:ProcedureName}(${2:parameters}) : ${3:RETURN_TYPE};",
  62. "BEGIN",
  63. " ${0}",
  64. "END ${1:ProcedureName};"
  65. ],
  66. "description": "Create a procedure"
  67. },
  68. "If": {
  69. "prefix": [
  70. "if",
  71. "IF"
  72. ],
  73. "body": [
  74. "IF ${1:condition} THEN",
  75. " ${0}",
  76. "END;"
  77. ],
  78. "description": "Create an IF statement"
  79. },
  80. "If Else": {
  81. "prefix": [
  82. "ifelse",
  83. "IFELSE"
  84. ],
  85. "body": [
  86. "IF ${1:condition} THEN",
  87. " ${2}",
  88. "ELSE",
  89. " ${0}",
  90. "END;"
  91. ],
  92. "description": "Create an IF/ELSE statement"
  93. },
  94. "For": {
  95. "prefix": [
  96. "for",
  97. "FOR"
  98. ],
  99. "body": [
  100. "FOR ${1:i} := ${2:1} TO ${3:10} DO",
  101. " ${0}",
  102. "END;"
  103. ],
  104. "description": "Create a FOR loop"
  105. },
  106. "While": {
  107. "prefix": [
  108. "while",
  109. "WHILE"
  110. ],
  111. "body": [
  112. "WHILE ${1:condition} DO",
  113. " ${0}",
  114. "END;"
  115. ],
  116. "description": "Create a WHILE loop"
  117. },
  118. "Repeat": {
  119. "prefix": [
  120. "repeat",
  121. "REPEAT"
  122. ],
  123. "body": [
  124. "REPEAT",
  125. " ${0}",
  126. "UNTIL ${1:condition};"
  127. ],
  128. "description": "Create a REPEAT/UNTIL loop"
  129. },
  130. "Loop": {
  131. "prefix": [
  132. "loop",
  133. "LOOP"
  134. ],
  135. "body": [
  136. "LOOP",
  137. " ${0}",
  138. "END;"
  139. ],
  140. "description": "Create an unconditional LOOP"
  141. },
  142. "Case": {
  143. "prefix": [
  144. "case",
  145. "CASE"
  146. ],
  147. "body": [
  148. "CASE ${1:expression} OF",
  149. " ${2:value}: ${3}",
  150. "ELSE",
  151. " ${0}",
  152. "END;"
  153. ],
  154. "description": "Create a CASE statement"
  155. },
  156. "Record": {
  157. "prefix": [
  158. "record",
  159. "RECORD"
  160. ],
  161. "body": [
  162. "${1:RecordName} = RECORD",
  163. " ${2:field} : ${3:INTEGER};",
  164. " ${0}",
  165. "END;"
  166. ],
  167. "description": "Create a RECORD type"
  168. },
  169. "Type": {
  170. "prefix": [
  171. "type",
  172. "TYPE"
  173. ],
  174. "body": [
  175. "TYPE",
  176. " ${1:TypeName} = ${0};"
  177. ],
  178. "description": "Create a TYPE declaration"
  179. },
  180. "Variable": {
  181. "prefix": [
  182. "var",
  183. "variable",
  184. "VAR"
  185. ],
  186. "body": [
  187. "VAR",
  188. " ${1:name} : ${2:INTEGER};"
  189. ],
  190. "description": "Create a VAR declaration"
  191. },
  192. "Constant": {
  193. "prefix": [
  194. "const",
  195. "constant",
  196. "CONST"
  197. ],
  198. "body": [
  199. "CONST",
  200. " ${1:Name} = ${0};"
  201. ],
  202. "description": "Create a CONST declaration"
  203. },
  204. "From Import": {
  205. "prefix": [
  206. "from",
  207. "import",
  208. "fromimport",
  209. "FROM"
  210. ],
  211. "body": [
  212. "FROM ${1:Module} IMPORT ${0};"
  213. ],
  214. "description": "Create a FROM/IMPORT statement"
  215. },
  216. "Import": {
  217. "prefix": [
  218. "import",
  219. "IMPORT"
  220. ],
  221. "body": [
  222. "IMPORT ${0};"
  223. ],
  224. "description": "Create an IMPORT statement"
  225. },
  226. "Pointer Type": {
  227. "prefix": [
  228. "pointer",
  229. "ptr",
  230. "POINTER"
  231. ],
  232. "body": [
  233. "TYPE",
  234. " ${1:TypeName} = POINTER TO ${0};"
  235. ],
  236. "description": "Create a pointer type"
  237. },
  238. "Set Type": {
  239. "prefix": [
  240. "set",
  241. "settype",
  242. "SET"
  243. ],
  244. "body": [
  245. "TYPE",
  246. " ${1:SetName} = SET OF ${0};"
  247. ],
  248. "description": "Create a SET type"
  249. }
  250. }