Mercurial > projects > dil
view trunk/src/dil/CompilerInfo.d @ 495:b60450804b6e
Attributes are evaluated during the parsing phase now.
Renamed parseDeclarationDefinitionsBlock to parseDeclarationDefinitionsBody.
Renamed parseDeclaration to parseVariableOrFunction.
Removed class Linkage, renamed parseLinkage to parseLinkageType and modified
it so that it returns a value from enum LinkageType.
Fix in parseStorageAttribute(): class invariants are recognized now.
Modified parseAlignAttribute() so that returns an uint - the alignment size.
Removed classes AttributeStatement and ExternStatement. Using Declarations
instead in parseAttributeStatement().
Added LinkageType to module Enums. Added StorageClassDeclaration and renamed
ExternDeclaration to LinkageDeclaration.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Sat, 08 Dec 2007 22:20:34 +0100 |
parents | e0d24e05a9ee |
children | 6160ab7b1816 |
line wrap: on
line source
/++ Author: Aziz Köksal License: GPL3 +/ module dil.CompilerInfo; import std.metastrings : FormatT = Format, ToString; template Pad(char[] str, uint amount) { static if (str.length >= amount) const char[] Pad = str; else const char[] Pad = "0" ~ Pad!(str, amount-1); } template Pad(int num, uint amount) { const char[] Pad = Pad!(ToString!(num), amount); } version(D2) { const VERSION_MAJOR = 2; const VERSION_MINOR = 0; } else { const VERSION_MAJOR = 1; const VERSION_MINOR = 0; } const VERSION = FormatT!("%s.%s", VERSION_MAJOR, Pad!(VERSION_MINOR, 3)); const VENDOR = "dil"; /// Used in main help message. const COMPILED_WITH = __VENDOR__; /// ditto const COMPILED_VERSION = FormatT!("%s.%s", __VERSION__/1000, Pad!(__VERSION__%1000, 3)); /// ditto const COMPILED_DATE = __TIMESTAMP__; const DEFAULT_ALIGN_SIZE = 1; /// The global, default alignment size for struct fields.