{ "name": "Oberon", "scopeName": "source.oberon", "patterns": [ { "include": "#comments" }, { "include": "#strings" }, { "include": "#numbers" }, { "include": "#keywords" }, { "include": "#types" }, { "include": "#operators" } ], "repository": { "comments": { "patterns": [ { "name": "comment.block.oberon", "begin": "\\(\\*", "end": "\\*\\)", "patterns": [ { "include": "#comments" } ] } ] }, "strings": { "patterns": [ { "name": "string.quoted.double.oberon", "begin": "\"", "end": "\"" }, { "name": "string.quoted.single.oberon", "begin": "'", "end": "'", "patterns": [ { "name": "constant.character.escape.oberon", "match": "''" } ] } ] }, "numbers": { "patterns": [ { "name": "constant.numeric.oberon", "match": "\\b(?:[0-9A-Fa-f]+H|[0-9A-Fa-f]+X|\\d+\\.\\d+(?:[ED][+-]?\\d+)?|\\d+)(?!\\w)" } ] }, "keywords": { "patterns": [ { "name": "keyword.control.oberon", "match": "(?i)\\b(?:AND|ARRAY|BEGIN|BY|CASE|CONST|DEFINITION|DIV|DO|ELSE|ELSIF|END|EXIT|FOR|IF|IMPORT|IN|IS|LOOP|MOD|MODULE|NIL|NOT|OF|OR|POINTER|PROCEDURE|RECORD|REPEAT|RETURN|THEN|TO|TYPE|UNTIL|VAR|WHILE|WITH)\\b" } ] }, "types": { "patterns": [ { "name": "storage.type.oberon", "match": "(?i)\\b(?:INTEGER|SHORTINT|LONGINT|REAL|LONGREAL|CHAR|BOOLEAN|SET)\\b" } ] }, "operators": { "patterns": [ { "name": "keyword.operator.oberon", "match": ":=|<=|>=|<>|=|<|>|#|\\+|-|\\*|/|\\.\\.|&|~|\\^" } ] } } }