<?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>Perl mop</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>source.perl</string>
</dict>
<dict>
<key>applyEndPatternLast</key>
<integer>1</integer>
<key>begin</key>
<string>^\s*(class|role)\s+([^;\s]+)</string>
<key>end</key>
<string>^\s*\}$\n?</string>
<key>name</key>
<string>meta.class.mop</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>source.mop</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.mop</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.class.mop</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#subclass</string>
</dict>
<dict>
<key>include</key>
<string>#is</string>
</dict>
<dict>
<key>include</key>
<string>#method</string>
</dict>
<dict>
<key>include</key>
<string>#attribute</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.perl</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#attribute</string>
</dict>
<dict>
<key>include</key>
<string>source.perl</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.perl</string>
</dict>
</dict>
<key>end</key>
<string>`</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.perl</string>
</dict>
</dict>
<key>name</key>
<string>string.interpolated.perl</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#attribute</string>
</dict>
<dict>
<key>include</key>
<string>source.perl</string>
</dict>
</array>
</dict>
<dict>
<key>match</key>
<string>\b(has)\b</string>
<key>name</key>
<string>storage.modifier.mop</string>
</dict>
<dict>
<key>include</key>
<string>source.perl</string>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>escaped_char</key>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>constant.character.escape.perl</string>
</dict>
<key>attribute</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>([\$\%\@\*]*\$)(!)[A-Za-z_][A-Za-z0-9_]*\b</string>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.mop</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>([\$\%\@\*]\{\s*\$)(!)[A-Za-z_][A-Za-z0-9_]*(\s*\})\b</string>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.operator.mop</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.perl</string>
</dict>
</dict>
</dict>
</array>
</dict>
<key>subclass</key>
<dict>
<key>match</key>
<string>\b(extends|with|meta)\s+([^;\s]+)</string>
<key>name</key>
<string>keyword.control.mop</string>
<key>captures</key>
<dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.type.class.mop</string>
</dict>
</dict>
</dict>
<key>is</key>
<dict>
<key>match</key>
<string>\s(is)\s+([^;\(\s]+)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.mop</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.mop</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\((.*)\)</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>text.perl.embedded.mop</string>
</dict>
</dict>
</dict>
<dict>
<key>include</key>
<string>source.perl</string>
</dict>
</array>
</dict>
<key>method</key>
<dict>
<key>match</key>
<string>(method)\s+([^;\(\s]+)</string>
<key>name</key>
<string>meta.function.mop</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.sub.mop</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.mop</string>
</dict>
</dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\((.*)\)</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.perl</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>text.perl.embedded.mop</string>
</dict>
</dict>
</dict>
<dict>
<key>include</key>
<string>source.perl</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.mop</string>
<key>uuid</key>
<string>EDBFE125-6B1C-11D9-9189-000D93589AF7</string>
</dict>
</plist>