<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>fileTypes</key>
	<array>
		<string>sublime-build</string>
	</array>
	<key>name</key>
	<string>Sublime Text Build System</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>begin</key>
			<string>(\{)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.options.start.sublimebuild</string>
				</dict>
			</dict>
			<key>contentName</key>
			<string>meta.options.sublimebuild</string>
			<key>end</key>
			<string>(\})</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.options.end.sublimebuild</string>
				</dict>
			</dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#cmd</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#env</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#simpleOptions</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#errorRegex</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#encoding</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#path</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#shell</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#variant</string>
				</dict>
				<dict>
					<key>include</key>
					<string>source.jsongenericobject</string>
				</dict>
				<dict>
					<key>match</key>
					<string>(?&lt;!\}|"|\]),</string>
					<key>name</key>
					<string>invalid.illegal.separator.sublimebuild</string>
				</dict>
				<dict>
					<key>match</key>
					<string>,{2,}</string>
					<key>name</key>
					<string>invalid.illegal.character.sublimebuild</string>
				</dict>
				<dict>
					<key>match</key>
					<string>[^,\t\s]</string>
					<key>name</key>
					<string>invalid.illegal.character.sublimebuild</string>
				</dict>
				<dict>
					<key>comment</key>
					<string>XXX</string>
					<key>match</key>
					<string>,(?&gt;$\s+\])</string>
					<key>name</key>
					<string>invalid.illegal.separator.sublimebuild</string>
				</dict>
			</array>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>cmd</key>
		<dict>
			<key>begin</key>
			<string>"(cmd)"\s*:</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.sublimebuild</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;=\])</string>
			<key>name</key>
			<string>meta.definition.command.sublimebuild</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.jsongenericarray</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>support.function.array.generic.key.sublimebuild</string>
						</dict>
					</dict>
					<key>match</key>
					<string>"([a-zA-Z0-9_]+)"\s*:</string>
				</dict>
			</array>
		</dict>
		<key>encoding</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.encoding.sublimebuild</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>string.sublimebuild</string>
				</dict>
			</dict>
			<key>comment</key>
			<string>No exhaustive list of encodings for Python exist, so we cannot restrict this.</string>
			<key>match</key>
			<string>"(encoding)":\s*"(.*?)"</string>
		</dict>
		<key>env</key>
		<dict>
			<key>begin</key>
			<string>"(env)"\s*:</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.sublimebuild</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;=\})</string>
			<key>name</key>
			<string>meta.definition.environment.block.sublimebuild</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>string.variable.name.sublimebuild</string>
						</dict>
					</dict>
					<key>match</key>
					<string>"([a-zA-Z0-9_]+)"\s*:</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#envVarString</string>
				</dict>
				<dict>
					<key>match</key>
					<string>\{</string>
				</dict>
			</array>
		</dict>
		<key>envVarString</key>
		<dict>
			<key>begin</key>
			<string>"</string>
			<key>end</key>
			<string>"</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>constant.character.escape.sublimebuild</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(\\(?:"|t|n|r))</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>support.function.sublimebuild</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>entity.other.attribute-name.sublimebuild</string>
						</dict>
						<key>3</key>
						<dict>
							<key>name</key>
							<string>support.function.sublimebuild</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(%)(.*?)(%)</string>
					<key>name</key>
					<string>meta.environment.variable.sublimebuild</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>support.function.sublimebuild</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>entity.other.attribute-name.sublimebuild</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(\$)([A-Z]+)</string>
					<key>name</key>
					<string>meta.environment.variable.sublimebuild</string>
				</dict>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>support.function.sublimebuild</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>entity.other.attribute-name.sublimebuild</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(\$){(.*?)}</string>
					<key>name</key>
					<string>meta.environment.variable.sublimebuild</string>
				</dict>
				<dict>
					<key>match</key>
					<string>;|:(?!\\)</string>
					<key>name</key>
					<string>keyword.other.path.separator.sublimebuild</string>
				</dict>
				<dict>
					<key>match</key>
					<string>.</string>
					<key>name</key>
					<string>string.sublimebuild</string>
				</dict>
			</array>
		</dict>
		<key>errorRegex</key>
		<dict>
			<key>begin</key>
			<string>"(file_regex|line_regex)"\s*:\s*(")</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.error.regex.sublimebuild</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.regex.start.sublimebuild</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;!\\)"</string>
			<key>name</key>
			<string>meta.definition.error.data.sublimebuild</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.escapedregexp</string>
				</dict>
				<dict>
					<key>match</key>
					<string>"</string>
					<key>name</key>
					<string>punctuation.definition.regex.end.sublimebuild</string>
				</dict>
			</array>
		</dict>
		<key>name</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.sublimebuild</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>string.quoted.double.sublimebuild</string>
				</dict>
			</dict>
			<key>match</key>
			<string>"(name)"\s*:\s*"(.+?)"</string>
		</dict>
		<key>path</key>
		<dict>
			<key>begin</key>
			<string>"(path)"\s*:</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.path.sublimebuild</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.path.start.sublimebuild</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;=")</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.definition.path.end.untitled</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.definition.path.variable.sublimebuild</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#envVarString</string>
				</dict>
			</array>
		</dict>
		<key>shell</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.shell.sublimebuild</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>constant.numeric.boolean.sublimebuild</string>
				</dict>
			</dict>
			<key>match</key>
			<string>"(shell)":\s*(true|false)</string>
		</dict>
		<key>simpleOptions</key>
		<dict>
			<key>captures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.sublimebuild</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>string.sublimebuild</string>
				</dict>
			</dict>
			<key>comment</key>
			<string>Maybe make this a begin-end: paths must contain characters; cling to that.</string>
			<key>match</key>
			<string>"(working_dir|selector|target)":\s*"(.*?)"</string>
		</dict>
		<key>variant</key>
		<dict>
			<key>begin</key>
			<string>"(variant)"\s*:</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.sublimebuild</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?&lt;=\})</string>
			<key>name</key>
			<string>meta.definition.variant.sublimebuild</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#cmd</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#env</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#path</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#name</string>
				</dict>
				<dict>
					<key>match</key>
					<string>{</string>
				</dict>
				<dict>
					<key>include</key>
					<string>source.jsongenericobject</string>
				</dict>
				<dict>
					<key>match</key>
					<string>}</string>
				</dict>
			</array>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>source.sublimebuild</string>
	<key>uuid</key>
	<string>855d82a3-8501-467f-ba88-4bf91e02ea6d</string>
</dict>
</plist>
