{"name":"Ioke","scopeName":"source.ioke","patterns":[{"name":"comment.line.ioke","begin":";","end":"$\\n?"},{"name":"comment.line.ioke","begin":"#!","end":"$\\n?"},{"name":"string.documentation.ioke","begin":"((?\u003c=fn\\()|(?\u003c=fnx\\()|(?\u003c=method\\()|(?\u003c=macro\\()|(?\u003c=lecro\\()|(?\u003c=syntax\\()|(?\u003c=dmacro\\()|(?\u003c=dlecro\\()|(?\u003c=dlecrox\\()|(?\u003c=dsyntax\\())[[:space]]*\"","end":"\"","patterns":[{"include":"#text_literal_escapes"},{"include":"#embedded_source"}]},{"name":"string.literal.keyword-argument.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))[[:alnum:]!?_]+:\\s"},{"name":"variable.assignment.ioke","match":"[[:alnum:]_:][[:alnum:]!?_:]*(?=[[:space:]]*[+*/-]?=[^=].*($|\\.))"},{"include":"#assignments"},{"include":"#kinds"},{"name":"constant.object.mimic.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))[[:alnum:]!?_:]+(?=[[:space:]]*=.*mimic[[:space]])"},{"name":"constant.numeric.ioke","match":"(?\u003c![[:alnum:]])[+-]?[[:digit:]][[:digit:]]*(\\.[[:digit:]])?[[:digit:]]*([eE][+-]?[[:digit:]]+)?(?![[:alnum:]!?_:])"},{"name":"constant.numeric.hexadecimal.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))0[xX][[:xdigit:]]+\\b"},{"name":"string.literal.symbol.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!)):[[:alnum:]!?_:-]+"},{"name":"string.regexp.ioke","begin":"#/","end":"/[oxpniums]*","patterns":[{"include":"#text_literal_escapes"},{"include":"#embedded_source"}]},{"name":"string.regexp.ioke","begin":"#r\\[","end":"\\][oxpniums]*","patterns":[{"include":"#text_literal_escapes"},{"include":"#embedded_source"}]},{"name":"string.literal.symbol.ioke","begin":":\"","end":"\"","patterns":[{"include":"#text_literal_escapes"},{"include":"#embedded_source"}]},{"name":"string.quoted.double.ioke","begin":"\"","end":"\"","patterns":[{"include":"#text_literal_escapes"},{"include":"#embedded_source"}]},{"name":"string.quoted.double.ioke","begin":"#\\[","end":"\\]","patterns":[{"include":"#text_literal_escapes"},{"include":"#embedded_source"}]},{"name":"entity.standout-names.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))it(?![[:alnum:]!?_:])"},{"name":"punctuation.set-literal-start.ioke","match":"#{"},{"include":"#keywords"},{"name":"punctuation.ioke","match":"(\\`\\`|\\`|''|'|\\.|\\,|@|@@|\\[|\\]|\\(|\\))"},{"name":"source.identifier.ioke","match":"[[:alnum:]_][[:alnum:]!?_:$]*[[:alnum:]!?_:]"}],"repository":{"assignments":{"patterns":[{"name":"variable.assignment.function.ioke","match":"(?\u003c=[[:space:]])[^[:space:].]+=[[:space:]]*=[[:space:]](fn|fnx|method|macro|lecro|syntax|dmacro|dlecro|dlecrox|dsyntax)"}]},"embedded_source":{"patterns":[{"name":"source.embedded.ioke","match":"#\\{(\\})","captures":{"0":{"name":"punctuation.section.embedded.ioke"},"1":{"name":"source.embedded.empty.ioke"}}},{"name":"source.embedded.ioke","begin":"#\\{","end":"\\}","patterns":[{"include":"#nest_curly_and_self"},{"include":"$self"}],"captures":{"0":{"name":"punctuation.section.embedded.ioke"}}}]},"keywords":{"patterns":[{"name":"keyword.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))(mimic|self|use|true|false|nil)(?![[:alnum:]!?_:])"},{"name":"keyword.control.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))(return|break|continue|unless|true|false|nil)(?![[:alnum:]!?_:])"},{"name":"keyword.operator.ioke","match":"(\u0026\u0026\u003e\u003e|\\|\\|\u003e\u003e|\\*\\*\u003e\u003e|\\.\\.\\.|===|\\*\\*\u003e|\\*\\*=|\u0026\u0026\u003e|\u0026\u0026=|\\|\\|\u003e|\\|\\|=|\\-\u003e\u003e|\\+\u003e\u003e|!\u003e\u003e|\u003c\u003e\u003e\u003e|\u003c\u003e\u003e|\u0026\u003e\u003e|%\u003e\u003e|#\u003e\u003e|@\u003e\u003e|/\u003e\u003e|\\*\u003e\u003e|\\?\u003e\u003e|\\|\u003e\u003e|\\^\u003e\u003e|~\u003e\u003e|\\$\u003e\u003e|=\u003e\u003e|\u003c\u003c=|\u003e\u003e=|\u003c=\u003e|\u003c\\-\u003e|=~|!~|=\u003e|\\+\\+|\\-\\-|\u003c=|\u003e=|==|!=|\u0026\u0026|\\.\\.|\\+=|\\-=|\\*=|\\/=|%=|\u0026=|\\^=|\\|=|\u003c\\-|\\+\u003e|!\u003e|\u003c\u003e|\u0026\u003e|%\u003e|#\u003e|\\@\u003e|\\/\u003e|\\*\u003e|\\?\u003e|\\|\u003e|\\^\u003e|~\u003e|\\$\u003e|\u003c\\-\u003e|\\-\u003e|\u003c\u003c|\u003e\u003e|\\*\\*|\\?\\||\\?\u0026|\\|\\||\u003e|\u003c|\\*|\\/|%|\\+|\\-|\u0026|\\^|\\||=|\\$|!|~|\\?|#)"},{"name":"keyword.operator.boolean.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))(nand|and|nor|xor|or)(?![[:alnum:]!?_:])"},{"name":"keyword.prototype-names.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))(Base|Call|Condition|DateTime|DefaultBehavior|DefaultMacro|DefaultMethod|DefaultSyntax|Dict|FileSystem|Ground|Handler|IO|JavaMethod|LexicalBlock|LexicalMacro|List|Message|Method|Mixins|Number|Number Decimal|Number Integer|Number Rational|Number Real|Origin|Pair|Range|Regexp|Rescue|Restart|Runtime|Set|Symbol|System|Text)(?![[:alnum:]!?_:])"},{"name":"keyword.function.ioke","match":"((^)|(?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))(fn|fnx|method|macro|lecro|syntax|dmacro|dlecro|dlecrox|dsyntax)(?![[:alnum:]!?_:])"},{"name":"keyword.cell-names.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))(print|println|cell\\?|cell|keyword|documentation|if|unless|while|until|loop|for|for:set|for:dict|bind|rescue|handle|restart|asText|inspect|notice|do|call|list|dict|set|with|kind)(?![[:alnum:]!?_:])"}]},"kinds":{"patterns":[{"name":"constant.kind.ioke","match":"((?\u003c![[:alnum:]!?_:])|(?\u003c![[:alnum:]!?_:]!))[A-Z][[:alnum:]!?_:-]*(?![[:alnum:]!?_:])"}]},"meta_parens":{"patterns":[{"name":"meta.parens.ioke","begin":"\\(","end":"\\)","include":"#meta_parens"}]},"nest_curly_and_self":{"patterns":[{"begin":"\\{","end":"\\}","patterns":[{"include":"#nest_curly_and_self"}],"captures":{"0":{"name":"punctuation.section.scope.ioke"}}},{"include":"$self"}]},"text_literal_escapes":{"patterns":[{"name":"constant.character.escape.ioke","match":"(\\\\b|\\\\e|\\\\t|\\\\n|\\\\f|\\\\r|\\\\\"|\\\\\\\\|\\\\#|\\\\\\Z|\\\\u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]|\\\\[0-3]?[0-7]?[0-7],[[:space:]]+\\\\[0-3]?[0-7]?[0-7],[[:space:]]+\\\\[0-3]?[0-7]?[0-7]|\\\\[0-3]?[0-7]?[0-7],[[:space:]]+\\\\[0-3]?[0-7]?[0-7]|\\\\[0-3]?[0-7]?[0-7])"}]}}}