{"name":"Modula-2","scopeName":"source.modula2","patterns":[{"match":"\\b(PROCEDURE|DEFINITION MODULE|IMPLEMENTATION MODULE|MODULE)\\b\\s+(\\w+(\\.\\w+)?)","captures":{"1":{"name":"storage.type.function.modula2"},"2":{"name":"entity.name.function.modula2"}}},{"match":"\\b(END)\\b\\s+(\\w+(\\.\\w+)?)","captures":{"1":{"name":"keyword.control.modula2"},"2":{"name":"entity.name.function.end.modula2"}}},{"name":"meta.function.modula2","match":"\\b(ABS|ADDRES|ADR|BITSET|BOOLEAN|BYTE|CAP|CARDINAL|CHAR|CHR|DEC|DISPOSE|EXCL|FALSE|FLOAT|HALT|HIGH|INC|INCL|INTEGER|LONGCARD|LONGINT|LONGREAL|LONGWORD|NEW|NULLPROC|ODD|ORD|PROC|REAL|SHORTADDR|SHORTCARD|SHORTINT|SIZE|TRUE|TRUNC|VAL|VSIZE|WORD)\\b","captures":{"1":{"name":"storage.type.function.modula2"},"2":{"name":"entity.name.function.modula2"}}},{"name":"keyword.control.modula2","match":"\\b(AND|ARRAY|BEGIN|BY|CASE|CONST|DIV|DO|ELSE|ELSIF|END|EXIT|EXPORT|FOR|FORWARD|FROM|GOTO|IF|IMPORT|IN|LABEL|LOOP|MOD|NOT|OF|OR|POINTER|QUALIFIED|RECORD|REPEAT|RETURN|SET|THEN|TO|DOWNTO|TYPE|UNTIL|VAR|WHILE|WITH|NIL)\\b"},{"include":"#block_comment"},{"name":"string.quoted.double.modula2","begin":"\"","end":"\"","patterns":[{"name":"constant.character.escape.modula2","match":"\\."}],"beginCaptures":{"0":{"name":"punctuation.definition.string.begin.modula2"}},"endCaptures":{"0":{"name":"punctuation.definition.string.end.modula2"}}},{"name":"constant.numeric.modula2","match":"\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b"},{"name":"variable.parameter.function.modula2","match":"(\\(|\\)|\\+|-|\\*|/|:|;|\\.|\\^|=|:=|\u003c|\u003e|#)"}],"repository":{"block_comment":{"name":"comment.block.modula2.one","begin":"\\(\\*","end":"\\*\\)","patterns":[{"include":"#block_comment"}],"captures":{"0":{"name":"punctuation.definition.comment.modula2"}},"applyEndPatternLast":true}}}
