<?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>name</key><string>SQF</string>
    <key>fileTypes</key><array><string>sqf</string><string>sqs</string><string>sqm</string><string>ext</string></array>
    <key>scopeName</key><string>source.sqf</string>
    <key>uuid</key><string>A36E13D0-57F2-3590-8ED7-F16B00AC67EC</string>
    <key>firstLineMatch</key>
    <string>//\s*(?i:SQF)</string>

    <key>foldingStartMarker</key><string>(\{\s*(#.*)?$)</string>
    <key>foldingStopMarker</key><string>^\s*(\})</string>

    <key>patterns</key>
    <array>
        <dict>
            <key>match</key><string>\#ifdef|\#ifndef|\#else|\#endif</string>
            <key>name</key><string>keyword.other.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\#include</string>
            <key>name</key><string>keyword.control.import.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>private|\#define|\#undef</string>
            <key>name</key><string>keyword.declaration.sqf</string>
        </dict>
                <dict>
            <key>match</key><string>\b(?i:_exception|_foreachindex|_this|_thisfsm|_thislist|_thisscript|_x)\b</string>
            <key>name</key><string>variable.language.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\b(?i:$$CONSTANT_KEYWORDS$$)\b|\:|\!|&amp;&amp;|\|\||&gt;&gt;</string>
            <key>name</key><string>constant.language.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\b(?i:$$CONTROL_KEYWORDS$$)\b|\:|\!|&amp;&amp;|\|\||&gt;&gt;</string>
            <key>name</key><string>keyword.control.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\b(?i:$$UNARY_KEYWORDS$$)\b</string>
            <key>name</key><string>support.function.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\b(?i:$$BINARY_KEYWORDS$$)\b</string>
            <key>name</key><string>support.function.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\b(?i:$$NULAR_KEYWORDS$$)\b</string>
            <key>name</key><string>support.function.sqf</string>
        </dict>
        <dict>
            <key>match</key>
            <string>\b0x[a-fA-F\d]+|\b\d+(\.\d+)?([eE]-?\d+)?|\.\d+([eE]-?\d+)?</string>
            <key>name</key>
            <string>constant.numeric.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>&lt;\=|&gt;\=|\=\=|&lt;|&gt;|\!\=</string>
            <key>name</key><string>keyword.operator.comparison.sqf</string>
        </dict>
        <dict>
            <key>begin</key><string>//</string>
            <key>beginCaptures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.comment.sqf</string></dict></dict>
            <key>end</key><string>$\n?</string>
            <key>name</key><string>comment.line.sqf</string>
        </dict>
        <dict>
            <key>begin</key><string>/\*</string>
            <key>captures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.comment.sqf</string></dict></dict>
            <key>end</key><string>\*/</string>
            <key>name</key><string>comment.block.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\+|\-|\*|\/|%|\^</string>
            <key>name</key><string>keyword.operator.arithmetic.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\=</string>
            <key>name</key><string>keyword.operator.assignment.sqf</string>
        </dict>
        <dict>
            <key>begin</key><string>"</string>
            <key>beginCaptures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.string.begin.sqf</string></dict></dict>
            <key>end</key><string>"</string>
            <key>endCaptures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.string.end.sqf</string></dict></dict>
            <key>name</key><string>string.quoted.double.sqf</string>
        </dict>
        <dict>
            <key>begin</key><string>'</string>
            <key>beginCaptures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.string.begin.sqf</string></dict></dict>
            <key>end</key><string>'</string>
            <key>endCaptures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.string.end.sqf</string></dict></dict>
            <key>name</key><string>string.quoted.sqf</string>
        </dict>
        <dict>
            <key>begin</key><string>@"</string>
            <key>beginCaptures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.string.begin.sqf</string></dict></dict>
            <key>end</key><string>"@</string>
            <key>endCaptures</key><dict><key>0</key><dict><key>name</key><string>punctuation.definition.string.end.sqf</string></dict></dict>
            <key>name</key><string>string.quoted.region.sqf</string>
        </dict>
        <dict>
            <key>match</key><string>\b_[a-zA-Z_][a-zA-Z0-9_]*</string>
            <key>name</key><string>variable.other.sqf</string>
        </dict>
	<dict>
            <key>match</key><string>[a-zA-Z]\w+_fnc_\w+</string>
            <key>name</key><string>variable.function.sqf</string>
        </dict>
        <dict>
			<key>block</key>
            <dict>
                <key>begin</key>
                <string>\{</string>
                <key>beginCaptures</key>
                <dict>
                    <key>0</key>
                    <dict>
                        <key>name</key>
                        <string>punctuation.section.block.begin.sqf</string>
                    </dict>
                </dict>
                <key>end</key>
                <string>\}</string>
                <key>endCaptures</key>
                <dict>
                    <key>0</key>
                    <dict>
                        <key>name</key>
                        <string>punctuation.section.block.end.sqf</string>
                    </dict>
                </dict>
            </dict>
		</dict>
        <dict>
            <key>match</key>
            <string>\b__[a-zA-Z_][a-zA-Z0-9_]*</string>
            <key>name</key>
            <string>constant.other.sqf</string>
        </dict>
    </array>

</dict>
</plist>
