{"name":"COOL","scopeName":"source.cool","patterns":[{"name":"comment.line.double-dash","match":"--(.*)\\n"},{"name":"comment.block.documentation","begin":"\\(\\*","end":"\\*\\)","patterns":[{"include":"#comment.block.documentation"}]},{"name":"support.class","match":"(Int|String|Bool|Object|IO)"},{"name":"support.function","match":"(abort\\(\\)|type_name\\(\\)|copy\\(\\))"},{"name":"keyword.control","match":"\\b(if|fi|else|then|loop|pool|while|case|esac)\\b"},{"name":"keyword.operator","match":"\\b(in|inherits|isvoid|let|new|of|new|not)\\b"},{"name":"constant.language","match":"\\b(true|false)\\b"},{"name":"constant.numeric","match":"(?x)\\b((?i:( [0-9]+ ( ' [0-9]+ )* )))"},{"name":"entity.name.type","match":"\\b([A-Z]([A-Z]|[a-z]|[0-9]|_)*|SELF_TYPE)\\b"},{"name":"storage.modifier","match":"\\b(class)\\b"},{"name":"variable.language","match":"\\b(self)\\b"},{"name":"variable.parameter","match":"\\b[a-z]([A-z]|[a-z]|[0-9]|_)*\\b"},{"name":"entity.name.function","match":"\\b[a-z]*\\(.*\\)\\b"},{"name":"string.quoted.double","begin":"\"","end":"\"","patterns":[{"include":"#string_placeholder"}],"beginCaptures":{"0":{}},"endCaptures":{"0":{}}}],"repository":{"formal_param":{"patterns":[{"match":"\\s#variable.parameter : entity.name.type\\s"}]},"formals":{"patterns":[{"match":"\\s(#formal_param, #formals|#formal_param|)\\s"}]}}}
