GiPSy — Generic Programming Language Tokens

programtoken.py

"""
Provides generic programming language token classes for the GiPSy scanner.

Library Version 1.1

Copyright 2013 Paul Griffiths
Email: mail@paulgriffiths.net

Distributed under the terms of the GNU General Public License.
http://www.gnu.org/licenses/
"""


from gipsy.token import Token


class DelimiterToken(Token):

    """
    Generic delimiter token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        Token.__init__(self, value)
        self._token_type_string = "Delimiter"


class SeparatorToken(Token):

    """
    Generic separator token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        Token.__init__(self, value)
        self._token_type_string = "Separator"


class OperatorToken(Token):

    """
    Generic operator token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        Token.__init__(self, value)
        self._token_type_string = "Operator"


class NumberToken(Token):

    """
    Generic number token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        Token.__init__(self, value)
        self._token_type_string = "Number"


class IntegerToken(NumberToken):

    """
    Generic integer number token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        NumberToken.__init__(self, value)
        self._token_type_string = "Integer"


class FloatToken(NumberToken):

    """
    Generic floating-point number token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        NumberToken.__init__(self, value)
        self._token_type_string = "Float"


class StringToken(Token):

    """
    Generic string token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        Token.__init__(self, value)
        self._token_type_string = "String"


class CommentToken(Token):

    """
    Generic comment token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        Token.__init__(self, value)
        self._token_type_string = "Comment"


class IdentifierToken(Token):

    """
    Generic identifier token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        Token.__init__(self, value)
        self._token_type_string = "Identifier"


class KeywordToken(IdentifierToken):

    """
    Generic keyword token class.
    """

    def __init__(self, value):

        """
        Class initializer.

        Arguments:
        value -- the string to be tokenized.
        """

        IdentifierToken.__init__(self, value)
        self._token_type_string = "Keyword"