view basic/Attribute.d @ 126:c3b24e7e8cf8

Carius changes to the parser. Parsing attributes, lexing many keywords(not all yet).
author Anders Johnsen <skabet@gmail.com>
date Tue, 27 May 2008 10:32:31 +0200
parents
children 2be29b296081
line wrap: on
line source

module basic.Attribute;

enum Protection : uint
{
    Private   = 1<<0,
    Public    = 1<<1,
    Package   = 1<<2,
    Protected = 1<<3,
    Export    = 1<<4,
}

struct Attribute
{

    void setProtection(Protection p)
    {
        att &= 0xFFFFFFE0;
        att |= ~p;
    }

    void setStatic()    { att &= ~Static; }
    void setFinal()     { att &= ~Final; }
    void setConst()     { att &= ~Const; }
    void setAbstract()  { att &= ~Abstract; }
    void setOverride()  { att &= ~Override; }
    void setDepracted() { att &= ~Depracted; }
    void setAuto()      { att &= ~Auto; }

private:
    uint att;


    static const uint Static        = 1<<5;
    static const uint Final         = 1<<6;
    static const uint Const         = 1<<7;
    static const uint Abstract      = 1<<8;
    static const uint Override      = 1<<9;
    static const uint Depracted     = 1<<10;
    static const uint Auto          = 1<<11;
}