#<p>
# This file consists of classes that represent the core token classes
#   of Unicon.  Only those tokens needed in the production of documentation from
#   Unicon source are provided here.
#</p>
#<p>
# <b>Author:</b> Steve Wampler (<i>sbw@tapestry.tucson.az.us</i>)
#</p>
#<p>
#  This file is in the <i>public domain</i>.
#</p>

package UniDoc

import lang

# <p>
# Base class for all tokens.
# </p>
class Token : Object (value)

    # <p>
    # Set the token value.
    # </p>
    method set(newValue)
        value := newValue
    end
    # <p>
    # Produce the token value.
    # </p>
    method get()
        return value
    end

    initially
        /value := ""
end

# <p>
# Comment
# </p>
class Comment : Token ()
end

# <p>
# Blank line (used to end comment blocks!)
# </p>
class BlankLine : Token()
end

# <p>
# Keyword
# </p>
class Keyword : Token ()
end

# <p>
# Name
# </p>
class Name : Token ()
end

# <p>
# Left paren
# </p>
class LParen : Token ()
end

# <p>
# Right paren
# </p>
class RParen : Token ()
end

# <p>
# Colon
# </p>
class Colon : Token ()
end

# <p>
# Comma
# </p>
class Comma : Token ()
end

# <p>
# String
# </p>
class String : Token()
end

# <p>
# A token for everything else
# </p>
class Noise : Token ()
end
