modula2.tmLanguage.json 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. {
  2. "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
  3. "name": "ADW Modula-2",
  4. "patterns": [
  5. {
  6. "name": "comment.block.modula2",
  7. "begin": "\\(\\*",
  8. "end": "\\*\\)"
  9. },
  10. {
  11. "name": "string.quoted.single.modula2",
  12. "begin": "'",
  13. "end": "'"
  14. },
  15. {
  16. "name": "string.quoted.double.modula2",
  17. "begin": "\"",
  18. "end": "\"(A|U)?"
  19. },
  20. {
  21. "name": "keyword.control.modula2",
  22. "match": "\\b(AND|ARRAY|BEGIN|BY|CASE|CONST|DEFINITION|DIV|DO|ELSE|ELSIF|END|EXCEPT|EXIT|EXPORT|FINALLY|FOR|FORWARD|FROM|IF|IMPLEMENTATION|IMPORT|IN|LOOP|MOD|MODULE|NOT|OF|OR|PACKEDSET|POINTER|PROCEDURE|QUALIFIED|RECORD|REPEAT|REM|RETRY|RETURN|SET|THEN|TO|TYPE|UNTIL|VAR|WHILE|WITH|GENERIC)\\b"
  23. },
  24. {
  25. "name": "keyword.other.oo.modula2",
  26. "match": "\\b(AS|ABSTRACT|CLASS|GUARD|INHERIT|OVERRIDE|READONLY|REVEAL|TRACED|UNSAFEGUARDED)\\b"
  27. },
  28. {
  29. "name": "keyword.operator.extended.modula2",
  30. "match": "\\b(BAND|BOR|BXOR|BNOT|SHL|SHR|SAR|ROL|ROR|BREAK|CONTINUE|ASM|ASSEMBLER|PUREASM|EXPORTS|MACRO|INOUT|OUT|VALUE|NOHIGH|NEAR|FAR)\\b"
  31. },
  32. {
  33. "name": "support.type.modula2",
  34. "match": "\\b(INTEGER|CARDINAL|REAL|LONGREAL|COMPLEX|LONGCOMPLEX|BOOLEAN|CHAR|BITSET|SHORTINT|INTEGER8|SHORTCARD|CARDINAL8|INTEGER16|CARDINAL16|INTEGER32|CARDINAL32|LONGINT|INTEGER64|LONGCARD|CARDINAL64|ACHAR|UCHAR|BYTEBOOL|BOOL8|WORDBOOL|BOOL16|DWORDBOOL|BOOL32|BITSET16|BITSET32|LOC|BYTE|WORD|DWORD|MACHINEWORD|ADDRESS|ADRCARD|ADRINT)\\b"
  35. },
  36. {
  37. "name": "keyword.control.directive.modula2",
  38. "match": "(%IF|%THEN|%ELSIF|%ELSE|%END|%AND|%OR|%NOT)"
  39. },
  40. {
  41. "name": "constant.numeric.hex.modula2",
  42. "match": "\\b[0-9][0-9A-Fa-f]*H\\b"
  43. },
  44. {
  45. "name": "constant.numeric.octal.modula2",
  46. "match": "\\b[0-7]+(B|C)\\b"
  47. },
  48. {
  49. "name": "constant.numeric.float.modula2",
  50. "match": "\\b[0-9]+\\.[0-9]*(E[+-]?[0-9]+)?\\b"
  51. },
  52. {
  53. "name": "constant.numeric.decimal.modula2",
  54. "match": "\\b[0-9]+\\b"
  55. }
  56. ],
  57. "scopeName": "source.modula2"
  58. }