{"name":"REBOL","scopeName":"source.rebol","patterns":[{"include":"#comments"},{"include":"#type-literal"},{"include":"#strings"},{"include":"#values"},{"include":"#words"}],"repository":{"binary-base-sixteen":{"name":"binary.base16.rebol","begin":"(16)?#\\{","end":"\\}","patterns":[{"name":"string.binary.base16.rebol","match":"[0-9a-fA-F]{2,2}"},{"name":"invalid.illegal.rebol","match":"."}],"beginCaptures":{"0":{"name":"string.binary.prefix"}},"endCaptures":{"0":{"name":"string.binary.prefix"}}},"binary-base-sixtyfour":{"name":"binary.base64.rebol","begin":"64#\\{","end":"\\}","patterns":[{"name":"string.binary.base64.rebol","match":"[0-9a-zA-Z+/=\\s]*"},{"name":"invalid.illegal.rebol","match":"."}],"beginCaptures":{"0":{"name":"string.binary.prefix"}},"endCaptures":{"0":{"name":"string.binary.prefix"}}},"binary-base-two":{"name":"binary.base2.rebol","begin":"2#\\{","end":"\\}","patterns":[{"name":"string.binary.base2.rebol","match":"([01]\\s*){8}"},{"name":"invalid.illegal.rebol","match":"."}],"beginCaptures":{"0":{"name":"string.binary.prefix"}},"endCaptures":{"0":{"name":"string.binary.prefix"}}},"character":{"name":"string.character.rebol","match":"#\"(\\^(\\(([0-9a-fA-F]+|del)\\)|.)|[^\\^\\\"])\""},"character-html":{"name":"constant.character.entity.html","match":"(\u0026)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)","captures":{"0":{"name":"punctuation.definition.entity.html"},"2":{"name":"punctuation.definition.entity.html"}}},"character-inline":{"name":"string.escaped.rebol","match":"\\^(\\(([0-9a-fA-F]+|del)\\)|.)"},"comment-docline":{"name":"comment.docline.rebol","match":";-.*?(?=\\%\u003e|$)"},"comment-line":{"name":"comment.line.rebol","match":";.*?(?=\\%\u003e|$)"},"comment-multiline-block":{"name":"comment.multiline.rebol","begin":"comment\\s*\\[","end":"\\]","patterns":[{"include":"#comment-multiline-block-string"},{"include":"#comment-multiline-string-nested"},{"include":"#comment-multiline-block-nested"}]},"comment-multiline-block-nested":{"name":"comment.multiline.rebol","begin":"\\[","end":"\\]","patterns":[{"include":"#comment-multiline-block-string"},{"include":"#comment-multiline-string-nested"},{"include":"#comment-multiline-block-nested"}]},"comment-multiline-block-string":{"name":"comment.multiline.rebol","begin":"\"","end":"\"","patterns":[{"match":"\\^."}]},"comment-multiline-string":{"name":"comment.multiline.rebol","begin":"comment\\s*\\{","end":"\\}","patterns":[{"match":"\\^."},{"include":"#comment-multiline-string-nested"}]},"comment-multiline-string-nested":{"name":"comment.multiline.rebol","begin":"\\{","end":"\\}","patterns":[{"match":"\\^."},{"include":"#comment-multiline-string-nested"}]},"comment-todo":{"name":"comment.todo.rebol","match":";@@.*?(?=\\%\u003e|$)"},"comments":{"patterns":[{"include":"#comment-docline"},{"include":"#comment-todo"},{"include":"#comment-line"},{"include":"#comment-multiline-string"},{"include":"#comment-multiline-block"}]},"doublequotedString":{"name":"string.quoted.double.xml","begin":"\"","end":"\""},"function-definition":{"name":"function.definition","begin":"([A-Za-z=\\!\\?\\*_\\+][A-Za-z0-9=_\\-\\!\\?\\*\\+\\.]*):\\s+(?i)(function|func|funct|routine|has)\\s*(\\[)","end":"]","patterns":[{"include":"#function-definition-block"},{"include":"#comments"},{"include":"#strings"},{"include":"#word-setword"},{"include":"#word-datatype"},{"include":"#word-refinement"}],"beginCaptures":{"1":{"name":"support.variable.function.rebol"},"2":{"name":"keyword.function"},"3":{"name":"support.strong"}},"endCaptures":{"0":{"name":"support.strong"}}},"function-definition-block":{"name":"function.definition.block","begin":"\\[","end":"]","patterns":[{"include":"#comments"},{"include":"#word-datatype"}]},"function-definition-does":{"name":"function.definition.does","match":"([A-Za-z=\\!\\?\\*_\\+][A-Za-z0-9=_\\-\\!\\?\\*\\+\\.]*):\\s+(?i)(does|context)(?=\\s*|\\[)","captures":{"1":{"name":"support.variable.function.rebol"},"2":{"name":"keyword.function"}}},"parens":{"name":"keyword.operator.comparison","match":"(\\[|\\]|\\(|\\))"},"rsp-tag":{"name":"source.rebol","begin":"\u003c%=","end":"%\u003e","patterns":[{"include":"source.rebol"}]},"singlequotedString":{"name":"string.quoted.single.xml","begin":"'","end":"'"},"string-email":{"name":"string.email.rebol","match":"[^\\s\\n:/\\[\\]\\(\\)]+@[^\\s\\n:/\\[\\]\\(\\)]+"},"string-file":{"name":"string.file.rebol","match":"%[^\\s\\n\\[\\]\\(\\)]+"},"string-file-quoted":{"name":"string.file.quoted.rebol","begin":"%\"","end":"\"","patterns":[{"name":"string.escape.ssraw","match":"%[A-Fa-f0-9]{2}"}],"beginCaptures":{"0":{"name":"string.file.quoted.rebol"}},"endCaptures":{"0":{"name":"string.file.quoted.rebol"}}},"string-issue":{"name":"string.issue.rebol","match":"#[^\\s\\n\\[\\]\\(\\)\\/]*"},"string-multiline":{"name":"string.multiline.rebol","begin":"\\{","end":"\\}","patterns":[{"include":"#rsp-tag"},{"include":"#character-inline"},{"include":"#character-html"},{"include":"#string-nested-multiline"}]},"string-nested-multiline":{"name":"string.multiline.rebol","begin":"\\{","end":"\\}","patterns":[{"include":"#string-nested-multiline"}]},"string-quoted":{"name":"string.rebol","begin":"\"","end":"\"","patterns":[{"include":"#rsp-tag"},{"include":"#character-inline"},{"include":"#character-html"}]},"string-tag":{"name":"entity.tag.rebol","begin":"\u003c(?:\\/|%\\=?\\ )?(?:([-_a-zA-Z0-9]+):)?([-_a-zA-Z0-9:]+)","end":"(?:\\s/|\\ %)?\u003e","patterns":[{"match":" (?:([-_a-zA-Z0-9]+):)?([_a-zA-Z-]+)","captures":{"0":{"name":"entity.other.namespace.xml"},"1":{"name":"entity.other.attribute-name.xml"}}},{"include":"#singlequotedString"},{"include":"#doublequotedString"}],"beginCaptures":{"0":{"name":"entity.other.namespace.xml"},"1":{"name":"entity.name.tag.xml"}}},"string-url":{"name":"string.url.rebol","match":"[A-Za-z][\\w]{1,9}:(/{0,3}[^\\s\\n\\[\\]\\(\\)]+|//)"},"strings":{"patterns":[{"include":"#character"},{"include":"#string-quoted"},{"include":"#string-multiline"},{"include":"#string-tag"},{"include":"#string-file-quoted"},{"include":"#string-file"},{"include":"#string-url"},{"include":"#string-email"},{"include":"#binary-base-two"},{"include":"#binary-base-sixtyfour"},{"include":"#binary-base-sixteen"},{"include":"#string-issue"}]},"type-literal":{"name":"series.literal.rebol","begin":"#\\[(?:(\\w+!)|(true|false|none))","end":"]","patterns":[{"include":"$self"}],"beginCaptures":{"0":{"name":"native.datatype.rebol"},"1":{"name":"logic.rebol"}}},"value-date":{"name":"date.rebol","match":"\\d{1,2}\\-([A-Za-z]{3}|January|Febuary|March|April|May|June|July|August|September|October|November|December)\\-\\d{4}(/\\d{1,2}[:]\\d{1,2}([:]\\d{1,2}(\\.\\d{1,5})?)?([+-]\\d{1,2}[:]\\d{1,2})?)?","captures":{"1":{"name":"time.rebol"}}},"value-money":{"name":"number.money.rebol","match":"(?\u003c!\\w)-?[a-zA-Z]*\\$\\d+(\\.\\d*)?"},"value-number":{"name":"constant.numeric.rebol","match":"(?\u003c!\\w|\\.)([-+]?((\\d+\\.?\\d*)|(\\.\\d+))((e|E)(\\+|-)?\\d+)?)(?=\\W)"},"value-number-hex":{"name":"number.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()([0-9A-F]+)h(?=\\s|\\)|\\]|/|;|\\\"|{\\[|\\()","captures":{"1":{"name":"constant.numeric.rebol"}}},"value-pair":{"name":"constant.pair.rebol","match":"(?\u003c!\\w)[-+]?[[:digit:]]+[x][[:digit:]]+"},"value-time":{"name":"time.rebol","match":"([-+]?[:]\\d{1,2}([aApP][mM])?)|([-+]?[:]\\d{1,2}[.]\\d{0,9})|([-+]?\\d{1,2}[:]\\d{1,2}([aApP][mM])?)|([-+]?\\d{1,2}[:]\\d{1,2}[.]\\d{0,9})|([-+]?\\d{1,2}[:]\\d{1,2}[:]\\d{1,2}([.]\\d{0,9})?([aApP][mM])?)(?!\\w)"},"value-tuple":{"name":"tuple.rebol","match":"([[:digit:]]{0,3}[.][[:digit:]]{0,3}[.][[:digit:]]{0,3}([.][[:digit:]]{0,3}){0,7})"},"values":{"patterns":[{"include":"#value-tuple"},{"include":"#value-number"},{"include":"#value-pair"},{"include":"#value-money"},{"include":"#value-number-hex"},{"include":"#value-date"},{"include":"#value-time"}]},"word":{"name":"word.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()[A-Za-z_\\*\\?=_-]+[A-Za-z_0-9=_\\-\\!\\?\\*\\+\\.~:']*(?=\\s|\\)|\\]|/|;|\\\"|{)"},"word-datatype":{"name":"support.type.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()([A-Za-z_0-9=_\\-\\?\\*\\+\\.~:']+\\!|as|to)(?=\\s|\\)|\\])"},"word-getword":{"name":"support.variable.getword.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\():[A-Za-z_0-9=_\\-\\!\\?\\*\\+\\.~:']+(?=\\s|\\)|\\])"},"word-group1":{"name":"support.function.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()(?i)(native|alias|all|any|as-string|as-binary|bind|bound\\?|case|catch|checksum|comment|debase|dehex|exclude|difference|disarm|enbase|form|free|get|get-env|in|intersect|minimum-of|maximum-of|mold|new-line|new-line\\?|not|now|prin|print|reduce|compose|construct|reverse|save|script\\?|set|shift|throw|to-hex|trace|try|type\\?|union|charset|unique|unprotect|unset|use|value\\?|compress|decompress|secure|open|close|read|read-io|write-io|write|update|query|wait|input\\?|exp|log-10|log-2|log-e|square-root|cosine|sine|tangent|arccosine|arcsine|arctangent|protect|lowercase|uppercase|entab|detab|connected\\?|browse|launch|stats|get-modes|set-modes|to-local-file|to-rebol-file|encloak|decloak|create-link|do-browser|bind\\?|hide|draw|show|size-text|textinfo|offset-to-caret|caret-to-offset|local-request-file|rgb-to-hsv|hsv-to-rgb|crypt-strength\\?|dh-make-key|dh-generate-key|dh-compute-key|dsa-make-key|dsa-generate-key|dsa-make-signature|dsa-verify-signature|rsa-make-key|rsa-generate-key|rsa-encrypt)(?=\\s|\\(|\\[|/|;|\\\"|{)"},"word-group2":{"name":"support.function.group2.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()(?i)(if|either|unless|else|for|foreach|forall|remove-each|until|while|case|loop|repeat|switch)(?=\\s|\\(|\\[|/|;|\\\"|{)"},"word-group3":{"name":"keyword.series.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()(?i)(at|insert|append|tail|head|back|repend|next)(?=\\s|\\(|\\[|\\)|\\]|/|;|\\\"|{)"},"word-group4":{"name":"logic.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()(?i)(off|false|none|on|true|yes|no|null)(?=\\s|\\(|\\[|\\)|\\]|;|\\\"|{)"},"word-group5":{"name":"keyword.breaks.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()(?i)(halt|quit|exit|return|break|quit)(?=\\s|\\(|\\[|/|;|\\\"|{)"},"word-litword":{"name":"keyword.litword.rebol","match":"(?\u003c=^|\\s|\\[|\\]|\\)|\\()'[A-Za-z_0-9=_\\-\\!\\?\\*\\+\\.~:']+(?=\\s|\\)|\\])"},"word-operator":{"name":"keyword.operator.comparison","match":"(==|!=|\u003c=|\u003e=|\u003c\u003e|\u003c|\u003e|\u003e\u003e|\u003e\u003e\u003e|\u003c\u003c|\\+|-|=|\\*|%|/|\\b(and|or|xor))(?=\\s|\\(|\\[|\\)|\\]|/|;|\\\"|{)"},"word-refinement":{"name":"keyword.refinement.rebol","match":"/[^\\s\\n\\[\\]\\(\\)]*"},"word-setword":{"name":"support.variable.setword.rebol","match":"[^:\\s\\n\\[\\]\\(\\)]*:"},"words":{"name":"word.rebol","patterns":[{"include":"#function-definition"},{"include":"#function-definition-does"},{"include":"#word-refinement"},{"include":"#word-operator"},{"include":"#word-getword"},{"include":"#word-setword"},{"include":"#word-refinement"},{"include":"#word-datatype"},{"include":"#word-group4"},{"include":"#word-group1"},{"include":"#word-group2"},{"include":"#word-group3"},{"include":"#word-group5"},{"include":"#word"}]}}}