view dmd/identifier.h @ 284:70c370e97944 trunk

[svn r305] Started support for custom class allocators/deallocators. Allocators with more than one argument still need to be fixed. Removed the LLVM stacktrace code from mars.c. Moved the LLVM based default target detection code from mars.c to llvmhelpers.cpp.
author lindquist
date Sat, 21 Jun 2008 02:48:53 +0200
parents c53b6e3fe49a
children 6aee82889553
line wrap: on
line source


// Compiler implementation of the D programming language
// Copyright (c) 1999-2006 by Digital Mars
// All Rights Reserved
// written by Walter Bright
// http://www.digitalmars.com
// License for redistribution is by either the Artistic License
// in artistic.txt, or the GNU General Public License in gnu.txt.
// See the included readme.txt for details.

#ifndef DMD_IDENTIFIER_H
#define DMD_IDENTIFIER_H

#ifdef __DMC__
#pragma once
#endif /* __DMC__ */

#include "root.h"

namespace llvm
{
    class Value;
}

struct Identifier : Object
{
    int value;
    const char *string;
    unsigned len;

    Identifier(const char *string, int value);
    int equals(Object *o);
    hash_t hashCode();
    int compare(Object *o);
    void print();
    char *toChars();
#ifdef _DH
    char *toHChars();
#endif
    char *toHChars2();
    int dyncast();

    static Identifier *generateId(char *prefix);
};

#endif /* DMD_IDENTIFIER_H */