Viewing file: tokens.py (1.62 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# -*- coding: utf-8 -*- # # Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com # # This module is part of python-sqlparse and is released under # the BSD License: https://opensource.org/licenses/BSD-3-Clause # # The Token implementation is based on pygment's token system written # by Georg Brandl. # http://pygments.org/
"""Tokens"""
class _TokenType(tuple): parent = None
def __contains__(self, item): return item is not None and (self is item or item[:len(self)] == self)
def __getattr__(self, name): new = _TokenType(self + (name,)) setattr(self, name, new) new.parent = self return new
def __repr__(self): # self can be False only if its the `root` ie. Token itself return 'Token' + ('.' if self else '') + '.'.join(self)
Token = _TokenType()
# Special token types Text = Token.Text Whitespace = Text.Whitespace Newline = Whitespace.Newline Error = Token.Error # Text that doesn't belong to this lexer (e.g. HTML in PHP) Other = Token.Other
# Common token types for source code Keyword = Token.Keyword Name = Token.Name Literal = Token.Literal String = Literal.String Number = Literal.Number Punctuation = Token.Punctuation Operator = Token.Operator Comparison = Operator.Comparison Wildcard = Token.Wildcard Comment = Token.Comment Assignment = Token.Assignment
# Generic types for non-source code Generic = Token.Generic
# String and some others are not direct childs of Token. # alias them: Token.Token = Token Token.String = String Token.Number = Number
# SQL specific tokens DML = Keyword.DML DDL = Keyword.DDL CTE = Keyword.CTE Command = Keyword.Command
|