<?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>c</string>
		<string>h</string>
	</array>
	<key>firstLineMatch</key>
	<string>-[*]-( Mode:)? C -[*]-</string>
	<key>keyEquivalent</key>
	<string>^~C</string>
	<key>name</key>
	<string>C</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>include</key>
			<string>#preprocessor-rule-enabled</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#preprocessor-rule-disabled</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#preprocessor-rule-other</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#comments</string>
		</dict>
		<dict>
			<key>include</key>
			<string>source.c.platform</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\b</string>
			<key>name</key>
			<string>keyword.control.c</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\b</string>
			<key>name</key>
			<string>storage.type.c</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(const|extern|register|restrict|static|volatile|inline)\b</string>
			<key>name</key>
			<string>storage.modifier.c</string>
		</dict>
		<dict>
			<key>comment</key>
			<string>common C constant naming idiom -- kConstantVariable</string>
			<key>match</key>
			<string>\bk[A-Z]\w*\b</string>
			<key>name</key>
			<string>constant.other.variable.mac-classic.c</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\bg[A-Z]\w*\b</string>
			<key>name</key>
			<string>variable.other.readwrite.global.mac-classic.c</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\bs[A-Z]\w*\b</string>
			<key>name</key>
			<string>variable.other.readwrite.static.mac-classic.c</string>
		</dict>
		<dict>
			<key>match</key>
			<string>\b(NULL|true|false|TRUE|FALSE)\b</string>
			<key>name</key>
			<string>constant.language.c</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#sizeof</string>
		</dict>
		<dict>
			<key>captures</key>
			<dict>
				<key>inc</key>
				<dict>
					<key>name</key>
					<string>invalid.illegal.digit-separator-should-not-be-last.c++</string>
				</dict>
			</dict>
			<key>match</key>
			<string>(?x)\b
			(  (?i:
			      0x ( \h+    ( ' \h+    )* )?  # Hexadecimal
			   |  0b ( [0-1]+ ( ' [0-1]+ )* )?  # Binary
			   |  0  ( [0-7]+ ( ' [0-7]+ )* )   # Octal
			   |     ( [0-9]+ ( ' [0-9]+ )* )   # Decimal
			   )
			   ( ([uUfF] | u?ll? | U?LL?)\b | (?&lt;inc&gt;') | \b )
			|  ( [0-9]+ ( ' [0-9]+ )* )?
			   (?i:
			      \. ( [0-9]+ ( ' [0-9]+ )* ) E(\+|-)? ( [0-9]+ ( ' [0-9]+ )* )
			   |  \. ( [0-9]+ ( ' [0-9]+ )* )
			   |  E(\+|-)? ( [0-9]+ ( ' [0-9]+ )* )
			   )
			   ( (?&lt;inc&gt;') | \b )
			)</string>
			<key>name</key>
			<string>constant.numeric.c</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>"</string>
			<key>beginCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.begin.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>"</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.end.c</string>
				</dict>
			</dict>
			<key>name</key>
			<string>string.quoted.double.c</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#string_escaped_char</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#string_placeholder</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>'</string>
			<key>beginCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.begin.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>'</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.string.end.c</string>
				</dict>
			</dict>
			<key>name</key>
			<string>string.quoted.single.c</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#string_escaped_char</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?x)
        		^\s*\#\s*(define)\s+             # define
        		((?&lt;id&gt;[a-zA-Z_][a-zA-Z0-9_]*))  # macro name
        		(?:                              # and optionally:
        		    (\()                         # an open parenthesis
        		        (
        		            \s* \g&lt;id&gt; \s*       # first argument
        		            ((,) \s* \g&lt;id&gt; \s*)*  # additional arguments
        		            (?:\.\.\.)?          # varargs ellipsis?
        		        )
        		    (\))                         # a close parenthesis
        		)?
        	</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.define.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.preprocessor.c</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.parameters.begin.c</string>
				</dict>
				<key>5</key>
				<dict>
					<key>name</key>
					<string>variable.parameter.preprocessor.c</string>
				</dict>
				<key>7</key>
				<dict>
					<key>name</key>
					<string>punctuation.separator.parameters.c</string>
				</dict>
				<key>8</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.parameters.end.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?=(?://|/\*))|$</string>
			<key>name</key>
			<string>meta.preprocessor.macro.c</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>(?&gt;\\\s*\n)</string>
					<key>name</key>
					<string>punctuation.separator.continuation.c</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$base</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>^\s*#\s*(error|warning)\b</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.error.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>$</string>
			<key>name</key>
			<string>meta.preprocessor.diagnostic.c</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>(?&gt;\\\s*\n)</string>
					<key>name</key>
					<string>punctuation.separator.continuation.c</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>^\s*#\s*(include|import)\b</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.include.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?=(?://|/\*))|$</string>
			<key>name</key>
			<string>meta.preprocessor.c.include</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>(?&gt;\\\s*\n)</string>
					<key>name</key>
					<string>punctuation.separator.continuation.c</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>"</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.c</string>
						</dict>
					</dict>
					<key>end</key>
					<string>"</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.c</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.double.include.c</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>&lt;</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.begin.c</string>
						</dict>
					</dict>
					<key>end</key>
					<string>&gt;</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.c</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.other.lt-gt.include.c</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>include</key>
			<string>#pragma-mark</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>^\s*#\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef)\b</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?=(?://|/\*))|$</string>
			<key>name</key>
			<string>meta.preprocessor.c</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>(?&gt;\\\s*\n)</string>
					<key>name</key>
					<string>punctuation.separator.continuation.c</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>comment</key>
			<string>Reserved POSIX types</string>
			<key>match</key>
			<string>\b([a-z0-9_]+_t)\b</string>
			<key>name</key>
			<string>support.type.posix-reserved.c</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#block</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?x)
    		(?:  ^                                 # begin-of-line
    		  |
    		     (?: (?= \s )           (?&lt;!else|new|return) (?&lt;=\w)      #  or word + space before name
    		       | (?= \s*[A-Za-z_] ) (?&lt;!&amp;&amp;)       (?&lt;=[*&amp;&gt;])   #  or type modifier before name
    		     )
    		)
    		(\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate)\s*\()
    		(
    			(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ |                  # actual name
    			(?: (?&lt;=operator) (?: [-*&amp;&lt;&gt;=+!]+ | \(\) | \[\] ) )  # if it is a C++ operator
    		)
    		 \s*(?=\()</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.whitespace.function.leading.c</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.c</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.parameters.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;=\})|(?=#)|(;)</string>
			<key>name</key>
			<string>meta.function.c</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#comments</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#parens</string>
				</dict>
				<dict>
					<key>match</key>
					<string>\b(const|final|override)\b</string>
					<key>name</key>
					<string>storage.modifier.$1.c++</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#block</string>
				</dict>
			</array>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>access</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.separator.variable-access.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>variable.other.dot-access.c</string>
				</dict>
			</dict>
			<key>match</key>
			<string>(\.)([a-zA-Z_][a-zA-Z_0-9]*)\b(?!\s*\()</string>
		</dict>
		<key>block</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>\{</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.section.block.begin.c</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\}</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.section.block.end.c</string>
						</dict>
					</dict>
					<key>name</key>
					<string>meta.block.c</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#block_innards</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>block_innards</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#preprocessor-rule-enabled-block</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#preprocessor-rule-disabled-block</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#preprocessor-rule-other-block</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#sizeof</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#access</string>
				</dict>
				<dict>
					<key>include</key>
					<string>source.c.platform#functions</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#c_function_call</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>variable.other.c</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.parameters.c</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(?x)
			        (?x)
			(?:
			     (?: (?= \s )           (?&lt;!else|new|return) (?&lt;=\w)\s+      #  or word + space before name
			     )
			)
			(
				(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++    |              # actual name
				(?: (?&lt;=operator) (?: [-*&amp;&lt;&gt;=+!]+ | \(\) | \[\] ) )?  # if it is a C++ operator
			)
			 \s*(\()</string>
					<key>name</key>
					<string>meta.initialization.c</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#block</string>
				</dict>
				<dict>
					<key>include</key>
					<string>$base</string>
				</dict>
			</array>
		</dict>
		<key>c_function_call</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.whitespace.function-call.leading.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>support.function.any-method.c</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.parameters.c</string>
				</dict>
			</dict>
			<key>match</key>
			<string>(?x) (?: (?= \s )  (?:(?&lt;=else|new|return) | (?&lt;!\w)) (\s+))?
			(\b
				(?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate)\s*\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\b | :: )++                  # actual name
			)
			 \s*(\()</string>
			<key>name</key>
			<string>meta.function-call.c</string>
		</dict>
		<key>comments</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>meta.toc-list.banner.block.c</string>
						</dict>
					</dict>
					<key>match</key>
					<string>^/\* =(\s*.*?)\s*= \*/$\n?</string>
					<key>name</key>
					<string>comment.block.c</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>/\*</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.begin.c</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\*/</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.end.c</string>
						</dict>
					</dict>
					<key>name</key>
					<string>comment.block.c</string>
				</dict>
				<dict>
					<key>match</key>
					<string>\*/.*\n</string>
					<key>name</key>
					<string>invalid.illegal.stray-comment-end.c</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>meta.toc-list.banner.line.c</string>
						</dict>
					</dict>
					<key>match</key>
					<string>^// =(\s*.*?)\s*=\s*$\n?</string>
					<key>name</key>
					<string>comment.line.banner.c++</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>(^[ \t]+)?(?=//)</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.whitespace.comment.leading.c++</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?!\G)</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>begin</key>
							<string>//</string>
							<key>beginCaptures</key>
							<dict>
								<key>0</key>
								<dict>
									<key>name</key>
									<string>punctuation.definition.comment.c++</string>
								</dict>
							</dict>
							<key>end</key>
							<string>\n</string>
							<key>name</key>
							<string>comment.line.double-slash.c++</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>match</key>
									<string>(?&gt;\\\s*\n)</string>
									<key>name</key>
									<string>punctuation.separator.continuation.c++</string>
								</dict>
							</array>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>disabled</key>
		<dict>
			<key>begin</key>
			<string>^\s*#\s*if(n?def)?\b.*$</string>
			<key>comment</key>
			<string>eat nested preprocessor if(def)s</string>
			<key>end</key>
			<string>^\s*#\s*endif\b</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#disabled</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#pragma-mark</string>
				</dict>
			</array>
		</dict>
		<key>parens</key>
		<dict>
			<key>begin</key>
			<string>\(</string>
			<key>beginCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.section.parens.begin.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>\)</string>
			<key>endCaptures</key>
			<dict>
				<key>0</key>
				<dict>
					<key>name</key>
					<string>punctuation.section.parens.end.c</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.parens.c</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$base</string>
				</dict>
			</array>
		</dict>
		<key>pragma-mark</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.preprocessor.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.pragma.c</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>meta.toc-list.pragma-mark.c</string>
				</dict>
			</dict>
			<key>match</key>
			<string>^\s*(#\s*(pragma\s+mark)\s+(.*))</string>
			<key>name</key>
			<string>meta.section</string>
		</dict>
		<key>preprocessor-rule-disabled</key>
		<dict>
			<key>begin</key>
			<string>^\s*(#(if)\s+(0)\b).*</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.preprocessor.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.if.c</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>constant.numeric.preprocessor.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(#\s*(endif)\b)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>^\s*(#\s*(else)\b)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>meta.preprocessor.c</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.control.import.else.c</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?=^\s*#\s*endif\b)</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>$base</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string></string>
					<key>end</key>
					<string>(?=^\s*#\s*(else|endif)\b)</string>
					<key>name</key>
					<string>comment.block.preprocessor.if-branch</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#disabled</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#pragma-mark</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>preprocessor-rule-disabled-block</key>
		<dict>
			<key>begin</key>
			<string>^\s*(#(if)\s+(0)\b).*</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.preprocessor.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.if.c</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>constant.numeric.preprocessor.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(#\s*(endif)\b)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>^\s*(#\s*(else)\b)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>meta.preprocessor.c</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.control.import.else.c</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(?=^\s*#\s*endif\b)</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#block_innards</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string></string>
					<key>end</key>
					<string>(?=^\s*#\s*(else|endif)\b)</string>
					<key>name</key>
					<string>comment.block.preprocessor.if-branch.in-block</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#disabled</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#pragma-mark</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>preprocessor-rule-enabled</key>
		<dict>
			<key>begin</key>
			<string>^\s*(#(if)\s+(0*1)\b)</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.preprocessor.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.if.c</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>constant.numeric.preprocessor.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(#\s*(endif)\b)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>^\s*(#\s*(else)\b).*</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>meta.preprocessor.c</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.control.import.else.c</string>
						</dict>
					</dict>
					<key>contentName</key>
					<string>comment.block.preprocessor.else-branch</string>
					<key>end</key>
					<string>(?=^\s*#\s*endif\b)</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#disabled</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#pragma-mark</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string></string>
					<key>end</key>
					<string>(?=^\s*#\s*(else|endif)\b)</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>$base</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>preprocessor-rule-enabled-block</key>
		<dict>
			<key>begin</key>
			<string>^\s*(#(if)\s+(0*1)\b)</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.preprocessor.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.if.c</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>constant.numeric.preprocessor.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(#\s*(endif)\b)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>^\s*(#\s*(else)\b).*</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>meta.preprocessor.c</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.control.import.else.c</string>
						</dict>
					</dict>
					<key>contentName</key>
					<string>comment.block.preprocessor.else-branch.in-block</string>
					<key>end</key>
					<string>(?=^\s*#\s*endif\b)</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#disabled</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#pragma-mark</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string></string>
					<key>end</key>
					<string>(?=^\s*#\s*(else|endif)\b)</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#block_innards</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>preprocessor-rule-other</key>
		<dict>
			<key>begin</key>
			<string>^\s*(#\s*(if(n?def)?)\b.*?(?:(?=(?://|/\*))|$))</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.preprocessor.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(#\s*(endif)\b)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$base</string>
				</dict>
			</array>
		</dict>
		<key>preprocessor-rule-other-block</key>
		<dict>
			<key>begin</key>
			<string>^\s*(#\s*(if(n?def)?)\b.*?(?:(?=(?://|/\*))|$))</string>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>meta.preprocessor.c</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>keyword.control.import.c</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(#\s*(endif)\b)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#block_innards</string>
				</dict>
			</array>
		</dict>
		<key>sizeof</key>
		<dict>
			<key>match</key>
			<string>\b(sizeof)\b</string>
			<key>name</key>
			<string>keyword.operator.sizeof.c</string>
		</dict>
		<key>string_escaped_char</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>\\(\\|[abefnprtv'"?]|[0-3]\d{0,2}|[4-7]\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})</string>
					<key>name</key>
					<string>constant.character.escape.c</string>
				</dict>
				<dict>
					<key>match</key>
					<string>\\.</string>
					<key>name</key>
					<string>invalid.illegal.unknown-escape.c</string>
				</dict>
			</array>
		</dict>
		<key>string_placeholder</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>(?x)%
    						(\d+\$)?                             # field (argument #)
    						[#0\- +']*                           # flags
    						[,;:_]?                              # separator character (AltiVec)
    						((-?\d+)|\*(-?\d+\$)?)?              # minimum field width
    						(\.((-?\d+)|\*(-?\d+\$)?)?)?         # precision
    						(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier
    						[diouxXDOUeEfFgGaACcSspn%]           # conversion type
    					</string>
					<key>name</key>
					<string>constant.other.placeholder.c</string>
				</dict>
				<dict>
					<key>match</key>
					<string>%</string>
					<key>name</key>
					<string>invalid.illegal.placeholder.c</string>
				</dict>
			</array>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>source.c</string>
	<key>uuid</key>
	<string>25066DC2-6B1D-11D9-9D5B-000D93589AF6</string>
</dict>
</plist>