From 53dd39433c741fe64bbf85a26e673bce7453c1dd Mon Sep 17 00:00:00 2001 From: Aaron Gallagher Date: Sun, 28 Jul 2013 17:07:57 -0700 Subject: [PATCH] Add a Parsley TextMate/Sublime grammar. --- contrib/Parsley.tmLanguage | 279 +++++++++++++++++++++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 contrib/Parsley.tmLanguage diff --git a/contrib/Parsley.tmLanguage b/contrib/Parsley.tmLanguage new file mode 100644 index 0000000..8392647 --- /dev/null +++ b/contrib/Parsley.tmLanguage @@ -0,0 +1,279 @@ + + + + + fileTypes + + parsley + + name + Parsley Grammar + patterns + + + captures + + 1 + + name + punctuation.definition.comment.parsley + + + match + (#).*$\n? + name + comment.line.parsley + + + match + \b(?i:(0x\h*)) + name + constant.numeric.integer.hexadecimal.parsley + + + match + \b([0-9]+) + name + constant.numeric.integer.decimal.parsley + + + begin + (->) + beginCaptures + + 1 + + name + keyword.operator.rule.value.parsley + + + end + (\))|$ + endCaptures + + 1 + + name + keyword.operator.rule.value.parsley + + + patterns + + + include + source.python + + + + + begin + ([?!]\() + beginCaptures + + 1 + + name + keyword.operator.rule.parsley + + + end + (\)) + endCaptures + + 1 + + name + keyword.operator.rule.parsley + + + patterns + + + include + source.python + + + + + begin + (\^\s*\() + beginCaptures + + 1 + + name + punctuation.definition.string.begin.parsley + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.string.end.parsley + + + name + string.quoted.label.parsley + + + begin + ^([a-zA-Z_][a-zA-Z_0-9]*) + beginCaptures + + 1 + + name + entity.name.function.parsley + + + end + (=) + endCaptures + + 1 + + name + keyword.operator.rule-assignment.parsley + + + patterns + + + match + [:@][a-zA-Z_][a-zA-Z_0-9]* + name + variable.parameter.parsley + + + + + match + :[a-zA-Z_][a-zA-Z_0-9]* + name + variable.other.rule.parsley + + + match + [*+?~|,()<>{}] + name + keyword.operator.parsley + + + include + #string_quoted_single + + + repository + + escaped_char + + captures + + 1 + + name + constant.character.escape.hex.parsley + + 10 + + name + constant.character.escape.tab.parsley + + 11 + + name + constant.character.escape.vertical-tab.parsley + + 2 + + name + constant.character.escape.newline.parsley + + 3 + + name + constant.character.escape.backlash.parsley + + 4 + + name + constant.character.escape.double-quote.parsley + + 5 + + name + constant.character.escape.single-quote.parsley + + 6 + + name + constant.character.escape.backspace.parsley + + 7 + + name + constant.character.escape.formfeed.parsley + + 8 + + name + constant.character.escape.linefeed.parsley + + 9 + + name + constant.character.escape.return.parsley + + + match + (\\x[0-9A-F]{2})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\b)|(\\f)|(\\n)|(\\r)|(\\t) + + string_quoted_single + + begin + (') + beginCaptures + + 1 + + name + punctuation.definition.string.begin.parsley + + + comment + single quoted string + end + (')|(\n) + endCaptures + + 1 + + name + punctuation.definition.string.end.parsley + + 2 + + name + invalid.illegal.unclosed-string.parsley + + + name + string.quoted.single.parsley + patterns + + + include + #escaped_char + + + + + scopeName + source.parsley + uuid + 79608D40-9373-48F9-A200-BF7395C59567 + +