<?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>mll</string>
	</array>
	<key>foldingStartMarker</key>
	<string>{</string>
	<key>foldingStopMarker</key>
	<string>}</string>
	<key>keyEquivalent</key>
	<string>^~O</string>
	<key>name</key>
	<string>OCamllex</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.embedded.ocaml.begin.ocamllex</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^\s*(})</string>
			<key>endCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.section.embedded.ocaml.end.ocamllex</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.embedded.ocaml</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>source.ocaml</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>\b(let)\s+([a-z][a-zA-Z0-9'_]*)\s+=</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.pattern-definition.ocamllex</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.type.pattern.stupid-goddamn-hack.ocamllex</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^(?:\s*let)|(?:\s*(rule|$))</string>
			<key>name</key>
			<string>meta.pattern-definition.ocaml</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#match-patterns</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>begin</key>
			<string>(rule|and)\s+([a-z][a-zA-Z0-9_]*)\s+(=)\s+(parse)(?=\s*$)|((?&lt;!\|)(\|)(?!\|))</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>keyword.other.ocamllex</string>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>entity.name.function.entrypoint.ocamllex</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>keyword.operator.ocamllex</string>
				</dict>
				<key>4</key>
				<dict>
					<key>name</key>
					<string>keyword.other.ocamllex</string>
				</dict>
				<key>5</key>
				<dict>
					<key>name</key>
					<string>punctuation.separator.match-pattern.ocamllex</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?:^\s*((and)\b|(?=\|)|$))</string>
			<key>endCaptures</key>
			<dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>keyword.other.entry-definition.ocamllex</string>
				</dict>
			</dict>
			<key>name</key>
			<string>meta.pattern-match.ocaml</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>#match-patterns</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#actions</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>include</key>
			<string>#strings</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#comments</string>
		</dict>
		<dict>
			<key>match</key>
			<string>=</string>
			<key>name</key>
			<string>keyword.operator.symbol.ocamllex</string>
		</dict>
		<dict>
			<key>begin</key>
			<string>\(</string>
			<key>end</key>
			<string>\)</string>
			<key>name</key>
			<string>meta.paren-group.ocamllex</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>include</key>
					<string>$self</string>
				</dict>
			</array>
		</dict>
		<dict>
			<key>match</key>
			<string>(’|‘|“|”)</string>
			<key>name</key>
			<string>invalid.illegal.unrecognized-character.ocamllex</string>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>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.begin.ocamllex</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(})</string>
					<key>endCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.action.end.ocamllex</string>
						</dict>
					</dict>
					<key>name</key>
					<string>meta.action.ocamllex</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>source.ocaml</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>chars</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.char.begin.ocamllex</string>
						</dict>
						<key>4</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.char.end.ocamllex</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(')([^\\]|\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\]))(')</string>
					<key>name</key>
					<string>constant.character.ocamllex</string>
				</dict>
			</array>
		</dict>
		<key>comments</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>comment.block.empty.ocaml</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>comment.block.empty.ocaml</string>
						</dict>
					</dict>
					<key>match</key>
					<string>\(\*(?:(\*)| ( )\*)\)</string>
					<key>name</key>
					<string>comment.block.ocaml</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>\(\*</string>
					<key>end</key>
					<string>\*\)</string>
					<key>name</key>
					<string>comment.block.ocaml</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.ocaml</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.ocaml</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>match-patterns</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.sub-pattern.begin.ocamllex</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(\))</string>
					<key>endCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.sub-pattern.end.ocamllex</string>
						</dict>
					</dict>
					<key>name</key>
					<string>meta.pattern.sub-pattern.ocamllex</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#match-patterns</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>match</key>
					<string>[a-z][a-zA-Z0-9'_]</string>
					<key>name</key>
					<string>entity.name.type.pattern.reference.stupid-goddamn-hack.ocamllex</string>
				</dict>
				<dict>
					<key>match</key>
					<string>\bas\b</string>
					<key>name</key>
					<string>keyword.other.pattern.ocamllex</string>
				</dict>
				<dict>
					<key>match</key>
					<string>eof</string>
					<key>name</key>
					<string>constant.language.eof.ocamllex</string>
				</dict>
				<dict>
					<key>match</key>
					<string>_</string>
					<key>name</key>
					<string>constant.language.universal-match.ocamllex</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>(\[)(\^?)</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.character-class.begin.ocamllex</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.character-class.negation.ocamllex</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(])(?!\')</string>
					<key>endCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.character-class.end.ocamllex</string>
						</dict>
					</dict>
					<key>name</key>
					<string>meta.pattern.character-class.ocamllex</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>-</string>
							<key>name</key>
							<string>punctuation.separator.character-class.range.ocamllex</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#chars</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>match</key>
					<string>\*|\+|\?</string>
					<key>name</key>
					<string>keyword.operator.pattern.modifier.ocamllex</string>
				</dict>
				<dict>
					<key>match</key>
					<string>\|</string>
					<key>name</key>
					<string>keyword.operator.pattern.alternation.ocamllex</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#chars</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#strings</string>
				</dict>
			</array>
		</dict>
		<key>strings</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.string.begin.ocaml</string>
						</dict>
					</dict>
					<key>end</key>
					<string>(")</string>
					<key>endCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.end.ocaml</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.quoted.double.ocamllex</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>\\$[ \t]*</string>
							<key>name</key>
							<string>punctuation.separator.string.ignore-eol.ocaml</string>
						</dict>
						<dict>
							<key>match</key>
							<string>\\(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\])</string>
							<key>name</key>
							<string>constant.character.string.escape.ocaml</string>
						</dict>
						<dict>
							<key>match</key>
							<string>\\[\|\(\)1-9$^.*+?\[\]]</string>
							<key>name</key>
							<string>constant.character.regexp.escape.ocaml</string>
						</dict>
						<dict>
							<key>match</key>
							<string>\\(?!(x[a-fA-F0-9][a-fA-F0-9]|[0-2]\d\d|[bnrt'"\\]|[\|\(\)1-9$^.*+?\[\]]|$[ \t]*))(?:.)</string>
							<key>name</key>
							<string>invalid.illegal.character.string.escape</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>source.ocamllex</string>
	<key>uuid</key>
	<string>007E5263-8E0D-4BEF-B0E1-F01AE32590E8</string>
</dict>
</plist>
