Skip to content

Instantly share code, notes, and snippets.

@PWBENNETT
Created November 21, 2015 20:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save PWBENNETT/0e860d907fc59554f1ce to your computer and use it in GitHub Desktop.
Save PWBENNETT/0e860d907fc59554f1ce to your computer and use it in GitHub Desktop.
Updated Marpa Highlighter for TextMate / SublimeText
<?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>scopeName</key>
<string>source.marpa</string>
<key>fileTypes</key>
<array>
<string>marpa</string>
<string>mr2</string>
<string>ebnf</string>
<string>bnf</string>
<string>slif</string>
</array>
<key>name</key>
<string>Marpa Scanless</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(lexeme\s+default)\s+(=)\s+</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.language.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal_alternate</string>
</dict>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\S+)\s+(\S+)\s+(=)\s+(\S+)\s+\S+</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.language.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>string.quoted.single.marpa</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>constant.language.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal_alternate</string>
</dict>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^([^: ]?&lt;.+?&gt;)\s+(::=)</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal_alternate</string>
</dict>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^([^: ]?&lt;.+?&gt;)\s+(~)</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal_alternate</string>
</dict>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^([^: ]\S*)\s+(::=)</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
<dict>
<key>include</key>
<string>#semantics_exclude</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal_alternate</string>
</dict>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^([^: ]\S*)\s+(~)</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
<dict>
<key>include</key>
<string>#semantics_exclude</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal_alternate</string>
</dict>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^(:\S+)\s+(::=)</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.language.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#semantics_exclude</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^(:\S+)\s+(~)</string>
<key>end</key>
<string>^(?!\s)</string>
<key>name</key>
<string>punctuation.section.scope.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.language.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>source.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
<dict>
<key>include</key>
<string>#semantics_exclude</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>nonterminal_alternate</key>
<dict>
<key>match</key>
<string>([|]+)</string>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
</dict>
<key>escaped_char</key>
<dict>
<key>match</key>
<string>(\\\D)</string>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
<key>numeric_escape</key>
<dict>
<key>match</key>
<string>(\\\d+)</string>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
<key>regexp_brackets</key>
<dict>
<key>begin</key>
<string>[^\\](\[)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
<key>end</key>
<string>(?:(?![^\\])|(?!^\s))(\])</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
<key>contentName</key>
<string>string.regexp.compile.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regexp_unicode_symbol</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_posix_class</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#numeric_escape</string>
</dict>
</array>
</dict>
<key>regexp_posix_class</key>
<dict>
<key>begin</key>
<string>(\[):</string>
<key>end</key>
<string>:(\])</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>constant.character.escape.marpa</string>
</dict>
<key>regexp_parens</key>
<dict>
<key>begin</key>
<string>[^\\](\()</string>
<key>end</key>
<string>(?:(?![^\\])|(?!^\s))(\))</string>
<key>name</key>
<string>source.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>string.regexp.compile.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#regexp_content</string>
</dict>
</array>
</dict>
<key>semantics_exclude</key>
<dict>
<key>begin</key>
<string>[^\\](\()</string>
<key>end</key>
<string>(?:(?![^\\])|(?!^\s))(\))</string>
<key>name</key>
<string>source.marpa</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.comment.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.comment.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>string.comment.marpa</string>
</dict>
<key>quoted_literal</key>
<dict>
<key>begin</key>
<string>\s(['])</string>
<key>end</key>
<string>[']</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.marpa</string>
</dict>
</dict>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>string.quoted.single.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#numeric_escape</string>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
</array>
</dict>
<key>regexp_unicode_symbol</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\\[Ppx]\{</string>
<key>end</key>
<string>\}</string>
<key>name</key>
<string>source.marpa</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>support.function.marpa</string>
</dict>
</array>
</dict>
<key>quantifier</key>
<dict>
<key>match</key>
<string>([?*+]+)</string>
<key>name</key>
<string>source.marpa</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
</dict>
<key>regexp_content</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#run_length</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_parens</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_unicode_symbol</string>
</dict>
<dict>
<key>match</key>
<string>(\\\d+)</string>
<key>name</key>
<string>source.marpa</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
</dict>
</dict>
<dict>
<key>include</key>
<string>#escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#numeric_escape</string>
</dict>
</array>
</dict>
<key>run_length</key>
<dict>
<key>begin</key>
<string>(\{)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
</dict>
<key>end</key>
<string>(\})</string>
<key>endCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.character.escape.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>support.function.marpa</string>
</dict>
<key>nonterminal</key>
<dict>
<key>begin</key>
<string>([(]+)</string>
<key>end</key>
<string>([)]+)</string>
<key>name</key>
<string>source.marpa</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
<key>contentName</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>match</key>
<string>([|])</string>
<key>name</key>
<string>string.regexp.compile.marpa</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.regexp.compile.marpa</string>
</dict>
</dict>
</dict>
<dict>
<key>include</key>
<string>#quantifier</string>
</dict>
<dict>
<key>include</key>
<string>#regexp_brackets</string>
</dict>
<dict>
<key>include</key>
<string>#nonterminal</string>
</dict>
</array>
</dict>
<key>adverb</key>
<dict>
<key>begin</key>
<string>(\S+)\s+(=&gt;)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.other.key.marpa</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.marpa</string>
</dict>
</dict>
<key>end</key>
<string>(?!.)</string>
<key>name</key>
<string>source.marpa</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(::\S+)</string>
<key>name</key>
<string>constant.language.marpa</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.language.marpa</string>
</dict>
</dict>
</dict>
<dict>
<key>include</key>
<string>#quoted_literal</string>
</dict>
<dict>
<key>include</key>
<string>#adverb</string>
</dict>
</array>
</dict>
</dict>
<key>uuid</key>
<string>DEADBEEF-6B1C-11D9-8CC2-000D93589AF6</string>
</dict>
</plist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment