{ "name": "Modula-2", "scopeName": "source.modula2", "patterns": [ {"include": "#comments"}, {"include": "#strings"}, {"include": "#numbers"}, {"include": "#keywords"}, {"include": "#types"}, {"include": "#operators"} ], "repository": { "comments": {"patterns": [ {"name": "comment.block.modula2", "begin": "\\(\\*", "end": "\\*\\)"} ]}, "strings": {"patterns": [ {"name": "string.quoted.double.modula2", "begin": "\"", "end": "\"", "patterns": [{"name": "constant.character.escape.modula2", "match": "\\\\."}]} ]}, "numbers": {"patterns": [ {"name": "constant.numeric.modula2", "match": "\\b(?:[0-9]+|[0-9A-Fa-f]+H)\\b"} ]}, "keywords": {"patterns": [ {"name": "keyword.control.modula2", "match": "\\b(?:AND|ARRAY|BEGIN|BY|CASE|CONST|DEFINITION|DIV|DO|ELSE|ELSIF|END|EXIT|EXPORT|FOR|FROM|IF|IMPLEMENTATION|IMPORT|IN|LOOP|MOD|MODULE|NOT|OF|OR|POINTER|PROCEDURE|QUALIFIED|RECORD|REPEAT|RETURN|SET|THEN|TO|TYPE|UNTIL|VAR|WHILE|WITH)\\b"} ]}, "types": {"patterns": [ {"name": "storage.type.modula2", "match": "\\b(?:INTEGER|CARDINAL|REAL|LONGREAL|CHAR|BOOLEAN|BITSET|ADDRESS)\\b"} ]}, "operators": {"patterns": [ {"name": "keyword.operator.modula2", "match": ":=|<=|>=|<>|=|<|>|\\+|-|\\*|/|\\.\\."} ]} } }