# -*- coding: utf-8 -*-
"""
    OrientDB SQL lexer
    ~~~~~~~~~~~
    Pygments lexer for OrientDB SQL.
"""

from pygments.lexers.sql import SqlLexer
from pygments.token import Name, Keyword

__all__ = ['OrientDBLexer']

class OrientDBLexer(SqlLexer):
    name = 'OrientDB'
    aliases = ['orientdb']
    filenames = ['*.sql'] # just to have one if you whant to use

    EXTRA_KEYWORDS = ['property', 'extends', 'link', 'mandatory', 'edge',
        'to', 'traverse', 'unwind', 'inE']

    def get_tokens_unprocessed(self, text):
        for index, token, value in SqlLexer.get_tokens_unprocessed(self, text):
            if token is Name and value in self.EXTRA_KEYWORDS:
                yield index, Keyword, value
            else:
                yield index, token, value
