<?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>mly</string>
	</array>
	<key>foldingStartMarker</key>
	<string>%{|%%</string>
	<key>foldingStopMarker</key>
	<string>%}|%%</string>
	<key>keyEquivalent</key>
	<string>^~O</string>
	<key>name</key>
	<string>OCamlyacc</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>begin</key>
			<string>(%{)\s*$</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.section.header.begin.ocamlyacc</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(%})</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.section.header.end.ocamlyacc</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.header.ocamlyacc</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ocaml</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(?&lt;=%})\s*$</string>
			<key>end</key>
			<string>(?:^)(?=%%)</string>
			<key>name</key>
			<string>meta.declarations.ocamlyacc</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#comments</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#declaration-matches</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(%%)\s*$</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.section.rules.begin.ocamlyacc</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(%%)</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.section.rules.end.ocamlyacc</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.rules.ocamlyacc</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#comments</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#rules</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>include</key>
			<string>source.ocaml</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#comments</string>
		</dict>
		<dict>
			<key>match</key>
			<string>(’|‘|“|”)</string>
			<key>name</key>
			<string>invalid.illegal.unrecognized-character.ocaml</string>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>comments</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>/\*</string>
					<key>end</key>
					<string>\*/</string>
					<key>name</key>
					<string>comment.block.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#comments</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>(?=[^\\])(")</string>
					<key>end</key>
					<string>"</string>
					<key>name</key>
					<string>comment.block.string.quoted.double.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])</string>
							<key>name</key>
							<string>comment.block.string.constant.character.escape.ocamlyacc</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>declaration-matches</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>(%)(token)</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.decorator.token.ocamlyacc</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.other.token.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^\s*($|(^\s*(?=%)))</string>
					<key>name</key>
					<string>meta.token.declaration.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#symbol-types</string>
						</dict>
						<dict>
							<key>match</key>
							<string>[A-Z][A-Za-z0-9_]*</string>
							<key>name</key>
							<string>entity.name.type.token.ocamlyacc</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#comments</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>(%)(left|right|nonassoc)</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.decorator.token.associativity.ocamlyacc</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.other.token.associativity.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(^\s*$)|(^\s*(?=%))</string>
					<key>name</key>
					<string>meta.token.associativity.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>[A-Z][A-Za-z0-9_]*</string>
							<key>name</key>
							<string>entity.name.type.token.ocamlyacc</string>
						</dict>
						<dict>
							<key>match</key>
							<string>[a-z][A-Za-z0-9_]*</string>
							<key>name</key>
							<string>entity.name.function.non-terminal.reference.ocamlyacc</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#comments</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>(%)(start)</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.decorator.start-symbol.ocamlyacc</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.other.start-symbol.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(^\s*$)|(^\s*(?=%))</string>
					<key>name</key>
					<string>meta.start-symbol.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>[a-z][A-Za-z0-9_]*</string>
							<key>name</key>
							<string>entity.name.function.non-terminal.reference.ocamlyacc</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#comments</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>(%)(type)</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.decorator.symbol-type.ocamlyacc</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.other.symbol-type.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>$\s*(?!%)</string>
					<key>name</key>
					<string>meta.symbol-type.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#symbol-types</string>
						</dict>
						<dict>
							<key>match</key>
							<string>[A-Z][A-Za-z0-9_]*</string>
							<key>name</key>
							<string>entity.name.type.token.reference.ocamlyacc</string>
						</dict>
						<dict>
							<key>match</key>
							<string>[a-z][A-Za-z0-9_]*</string>
							<key>name</key>
							<string>entity.name.function.non-terminal.reference.ocamlyacc</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#comments</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>precs</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.other.decorator.precedence.ocamlyacc</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.other.precedence.ocamlyacc</string>
						</dict>
						<key>4</key>
						<dict>
							<key>name</key>
							<string>entity.name.function.non-terminal.reference.ocamlyacc</string>
						</dict>
						<key>5</key>
						<dict>
							<key>name</key>
							<string>entity.name.type.token.reference.ocamlyacc</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(%)(prec)\s+(([a-z][a-zA-Z0-9_]*)|(([A-Z][a-zA-Z0-9_]*)))</string>
					<key>name</key>
					<string>meta.precidence.declaration</string>
				</dict>
			</array>
		</dict>
		<key>references</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>[a-z][a-zA-Z0-9_]*</string>
					<key>name</key>
					<string>entity.name.function.non-terminal.reference.ocamlyacc</string>
				</dict>
				<dict>
					<key>match</key>
					<string>[A-Z][a-zA-Z0-9_]*</string>
					<key>name</key>
					<string>entity.name.type.token.reference.ocamlyacc</string>
				</dict>
			</array>
		</dict>
		<key>rule-patterns</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>((?&lt;!\||:)(\||:)(?!\||:))</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.separator.rule.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\s*(?=\||;)</string>
					<key>name</key>
					<string>meta.rule-match.ocaml</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#precs</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#semantic-actions</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#references</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#comments</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>rules</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>[a-z][a-zA-Z_]*</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>entity.name.function.non-terminal.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>;</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.separator.rule.ocamlyacc</string>
						</dict>
					</dict>
					<key>name</key>
					<string>meta.non-terminal.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#rule-patterns</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>semantic-actions</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>[^\']({)</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.action.semantic.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(})</string>
					<key>endCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.action.semantic.ocamlyacc</string>
						</dict>
					</dict>
					<key>name</key>
					<string>meta.action.semantic.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>source.ocaml</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>symbol-types</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>&lt;</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.type-declaration.begin.ocamlyacc</string>
						</dict>
					</dict>
					<key>end</key>
					<string>&gt;</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.type-declaration.end.ocamlyacc</string>
						</dict>
					</dict>
					<key>name</key>
					<string>meta.token.type-declaration.ocamlyacc</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>source.ocaml</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>source.ocamlyacc</string>
	<key>uuid</key>
	<string>1B59327E-9B82-4B78-9411-BC02067DBDF9</string>
</dict>
</plist>
