factor/misc/Factor.tmbundle/Syntaxes/Factor.tmLanguage

335 lines
7.9 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>factor</string>
<string>facts</string>
</array>
<key>foldingStartMarker</key>
<string>^\s*(M|C)?:|#(V|H|C)\{</string>
<key>foldingStopMarker</key>
<string>^\s*$</string>
<key>keyEquivalent</key>
<string>^~F</string>
<key>name</key>
<string>Factor</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.colon.factor</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.function.factor</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>comment.stack-effect.factor</string>
</dict>
</dict>
<key>match</key>
<string>(^|(?&lt;=\s))(:)\s+([^\s]+)\s</string>
<key>name</key>
<string>definition.word.factor</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.colon.factor</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.method.factor</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>comment.stack-effect.factor</string>
</dict>
</dict>
<key>match</key>
<string>(^|(?&lt;=\s))(C:)\s+([^\s]+)\s</string>
<key>name</key>
<string>definition.word.class.factor</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.colon.factor</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.class.factor</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>entity.name.method.factor</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>comment.stack-effect.factor</string>
</dict>
</dict>
<key>match</key>
<string>(^|(?&lt;=\s))(M:)\s+([^\s]+)\s+([^\s]+)\s</string>
<key>name</key>
<string>definition.word.method.factor</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.colon.factor</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>entity.name.generic.factor</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>comment.stack-effect.factor</string>
</dict>
</dict>
<key>match</key>
<string>(^|(?&lt;=\s))(G(ENERIC)?:)\s+([^\s]+)\s</string>
<key>name</key>
<string>definition.word.generic.factor</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>storage.type.factor</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.class.factor</string>
</dict>
</dict>
<key>match</key>
<string>(^|(?&lt;=\s))(TUPLE:)\s+([^\s]+)\s+(([^\s]+)+)</string>
<key>name</key>
<string>meta.class.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))(drop|2drop|3drop|keep|2keep|3keep|nip|2nip|dup|2dup|3dup|dupd|over|pick|tuck|swap|rot|-rot|roll|-roll|slip|2swap|swapd|&gt;r|r&gt;)(\s|$)</string>
<key>name</key>
<string>keyword.control.stack.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))(get|set)(\s|$)</string>
<key>name</key>
<string>keyword.control.variable.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))(if|when|unless|if*|unless*|when*)\*?(\s|$)</string>
<key>name</key>
<string>keyword.control.flow.factor</string>
</dict>
<dict>
<key>begin</key>
<string>(^|(?&lt;=\s))(USING:)</string>
<key>end</key>
<string>(?&lt;=\s);(\s|$)</string>
<key>name</key>
<string>keyword.control.using.factor</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))[^\s]+(\s|$)</string>
<key>name</key>
<string>constant.namespace.factor</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(^|(?&lt;=\s))(REQUIRES:)</string>
<key>end</key>
<string>(?&lt;=\s);(\s|$)</string>
<key>name</key>
<string>keyword.control.requires.factor</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))[^\s]+(\s|$)</string>
<key>name</key>
<string>constant.namespace.factor</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))(f|t)(\s|$)</string>
<key>name</key>
<string>constant.language.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))CHAR:\s+[^\s]+(\s|$)</string>
<key>name</key>
<string>constant.character.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))((BIN:|OCT:)\s+)?-?\d+(\s|$)</string>
<key>name</key>
<string>constant.numeric.integer.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))HEX:\s+-?[\dA-Fa-f]+(\s|$)</string>
<key>name</key>
<string>constant.numeric.hexadecimal.integer.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))-?+\d+\.\d+(E(\+|-)\d+)?(\s|$)</string>
<key>name</key>
<string>constant.numeric.float.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))-?\d+/-?\d+(\s|$)</string>
<key>name</key>
<string>constant.numeric.rational.factor</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>end</key>
<string>"</string>
<key>name</key>
<string>string.quoted.double.factor</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_characters</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>&lt;"</string>
<key>end</key>
<string>"&gt;</string>
<key>name</key>
<string>string.quoted.double.multiline.factor</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_characters</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(^|(?&lt;=\s))(STRING:)\s+(\S+)</string>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.colon.factor</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.heredoc.factor</string>
</dict>
</dict>
<key>contentName</key>
<string>string.unquoted.heredoc.factor</string>
<key>end</key>
<string>^;$</string>
<key>name</key>
<string>definition.word.heredoc.factor</string>
</dict>
<dict>
<key>match</key>
<string>inline|foldable</string>
<key>name</key>
<string>storage.modifier.factor</string>
</dict>
<dict>
<key>match</key>
<string>(^|(?&lt;=\s))#?!(\s.*)?$</string>
<key>name</key>
<string>comment.line.factor</string>
</dict>
<dict>
<key>begin</key>
<string>\((?=\s)</string>
<key>end</key>
<string>(^|(?&lt;=\s))\)</string>
<key>name</key>
<string>comment.parens.factor</string>
</dict>
<dict>
<key>match</key>
<string>\b[^\s]+:\s+[^\s]+(\s|$)</string>
<key>name</key>
<string>keyword.control.postpone.factor</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>escaped_characters</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\(\\|[enrts'"?]|[0-3]\d{,2}|[4-7]\d?|u[a-fA-F0-9]{,2})</string>
<key>name</key>
<string>constant.character.escape.factor</string>
</dict>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>invalid.illegal.unknown-escape.factor</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.factor</string>
<key>uuid</key>
<string>3C9C9C2A-314A-475B-A4E4-A68BAAF3F36E</string>
</dict>
</plist>