summaryrefslogtreecommitdiff
path: root/pygments/lexers/sql.py
diff options
context:
space:
mode:
authorJharrod LaFon <jharrod.lafon@gmail.com>2014-04-14 15:08:28 -0400
committerJharrod LaFon <jharrod.lafon@gmail.com>2014-04-14 15:08:28 -0400
commit05edda0d201d6ebac5c946bd9fb6b5c1ed38a310 (patch)
tree9403b56026bec4c34e87790cf0540896df416b0c /pygments/lexers/sql.py
parent37b95de7fd1e562051d2ef4be04a9a39449b20ce (diff)
downloadpygments-05edda0d201d6ebac5c946bd9fb6b5c1ed38a310.tar.gz
Refactor RQL into the existing SQL lexer file.
Diffstat (limited to 'pygments/lexers/sql.py')
-rw-r--r--pygments/lexers/sql.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/pygments/lexers/sql.py b/pygments/lexers/sql.py
index 73180772..9a3dcb8d 100644
--- a/pygments/lexers/sql.py
+++ b/pygments/lexers/sql.py
@@ -51,7 +51,7 @@ from pygments.lexers._postgres_builtins import KEYWORDS, DATATYPES, \
__all__ = ['PostgresLexer', 'PlPgsqlLexer', 'PostgresConsoleLexer',
- 'SqlLexer', 'MySqlLexer', 'SqliteConsoleLexer']
+ 'SqlLexer', 'MySqlLexer', 'SqliteConsoleLexer', 'RqlLexer']
line_re = re.compile('.*?\n')
@@ -559,3 +559,34 @@ class SqliteConsoleLexer(Lexer):
for item in do_insertions(insertions,
sql.get_tokens_unprocessed(curcode)):
yield item
+
+
+class RqlLexer(RegexLexer):
+ """
+ Lexer for Relation Query Language.
+
+ `RQL <http://www.logilab.org/project/rql>`_
+
+ .. versionadded:: 2.0
+ """
+ name = 'RQL'
+ aliases = ['rql']
+ filenames = ['*.rql']
+ mimetypes = ['text/x-rql']
+
+ flags = re.IGNORECASE
+ tokens = {
+ 'root': [
+ (r'\s+', Text),
+ (r'(DELETE|SET|INSERT|UNION|DISTINCT|WITH|WHERE|BEING|OR'
+ r'|AND|NOT|GROUPBY|HAVING|ORDERBY|ASC|DESC|LIMIT|OFFSET'
+ r'|TODAY|NOW|TRUE|FALSE|NULL|EXISTS)\b', Keyword),
+ (r'[+*/<>=%-]', Operator),
+ (r'(Any|is|instance_of|CWEType|CWRelation)\b', Name.Builtin),
+ (r'[0-9]+', Number.Integer),
+ (r'[A-Z_][A-Z0-9_]*\??', Name),
+ (r"'(''|[^'])*'", String.Single),
+ (r'"(""|[^"])*"', String.Single),
+ (r'[;:()\[\],\.]', Punctuation)
+ ],
+ }