Mercurial > projects > dil
view trunk/src/dil/ast/NodesEnum.d @ 640:05645f5613c1
Added an error message.
Improved parseTryStatement().
Fixed getShortClassName().
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Mon, 14 Jan 2008 02:36:14 +0100 |
parents | b2fc028d8b55 |
children | 68953760d569 |
line wrap: on
line source
/++ Author: Aziz Köksal License: GPL3 +/ module dil.ast.NodesEnum; enum NodeCategory : ushort { Declaration, Statement, Expression, Type, Other } /// Array of class names that inherit from Node. static const char[][] classNames = [ // Declarations: "Declarations", "EmptyDeclaration", "IllegalDeclaration", "ModuleDeclaration", "ImportDeclaration", "AliasDeclaration", "TypedefDeclaration", "EnumDeclaration", "ClassDeclaration", "InterfaceDeclaration", "StructDeclaration", "UnionDeclaration", "ConstructorDeclaration", "StaticConstructorDeclaration", "DestructorDeclaration", "StaticDestructorDeclaration", "FunctionDeclaration", "VariableDeclaration", "InvariantDeclaration", "UnittestDeclaration", "DebugDeclaration", "VersionDeclaration", "StaticIfDeclaration", "StaticAssertDeclaration", "TemplateDeclaration", "NewDeclaration", "DeleteDeclaration", "AttributeDeclaration", "ProtectionDeclaration", "StorageClassDeclaration", "LinkageDeclaration", "AlignDeclaration", "PragmaDeclaration", "MixinDeclaration", // Statements: "Statements", "IllegalStatement", "EmptyStatement", "ScopeStatement", "LabeledStatement", "ExpressionStatement", "DeclarationStatement", "IfStatement", "WhileStatement", "DoWhileStatement", "ForStatement", "ForeachStatement", "ForeachRangeStatement", // D2.0 "SwitchStatement", "CaseStatement", "DefaultStatement", "ContinueStatement", "BreakStatement", "ReturnStatement", "GotoStatement", "WithStatement", "SynchronizedStatement", "TryStatement", "CatchBody", "FinallyBody", "ScopeGuardStatement", "ThrowStatement", "VolatileStatement", "AsmStatement", "AsmInstruction", "AsmAlignStatement", "IllegalAsmInstruction", "PragmaStatement", "MixinStatement", "StaticIfStatement", "StaticAssertStatement", "DebugStatement", "VersionStatement", // Expressions: "EmptyExpression", "BinaryExpression", "CondExpression", "CommaExpression", "OrOrExpression", "AndAndExpression", "OrExpression", "XorExpression", "AndExpression", "CmpExpression", "EqualExpression", "IdentityExpression", "RelExpression", "InExpression", "LShiftExpression", "RShiftExpression", "URShiftExpression", "PlusExpression", "MinusExpression", "CatExpression", "MulExpression", "DivExpression", "ModExpression", "AssignExpression", "LShiftAssignExpression", "RShiftAssignExpression", "URShiftAssignExpression", "OrAssignExpression", "AndAssignExpression", "PlusAssignExpression", "MinusAssignExpression", "DivAssignExpression", "MulAssignExpression", "ModAssignExpression", "XorAssignExpression", "CatAssignExpression", "UnaryExpression", "AddressExpression", "PreIncrExpression", "PreDecrExpression", "PostIncrExpression", "PostDecrExpression", "DerefExpression", "SignExpression", "NotExpression", "CompExpression", "CallExpression", "NewExpression", "NewAnonClassExpression", "DeleteExpression", "CastExpression", "IndexExpression", "SliceExpression", "ModuleScopeExpression", "IdentifierExpression", "SpecialTokenExpression", "DotExpression", "TemplateInstanceExpression", "ThisExpression", "SuperExpression", "NullExpression", "DollarExpression", "BoolExpression", "IntExpression", "RealExpression", "ComplexExpression", "CharExpression", "StringExpression", "ArrayLiteralExpression", "AArrayLiteralExpression", "AssertExpression", "MixinExpression", "ImportExpression", "TypeofExpression", "TypeDotIdExpression", "TypeidExpression", "IsExpression", "FunctionLiteralExpression", "TraitsExpression", // D2.0 "VoidInitializer", "ArrayInitializer", "StructInitializer", "AsmTypeExpression", "AsmOffsetExpression", "AsmSegExpression", "AsmPostBracketExpression", "AsmBracketExpression", "AsmLocalSizeExpression", "AsmRegisterExpression", // Types: "UndefinedType", "IntegralType", "QualifiedType", "ModuleScopeType", "IdentifierType", "TypeofType", "TemplateInstanceType", "PointerType", "ArrayType", "FunctionType", "DelegateType", "CFuncPointerType", "ConstType", // D2.0 "InvariantType", // D2.0 // Other: "FunctionBody", "Parameter", "Parameters", "BaseClass", "TemplateAliasParameter", "TemplateTypeParameter", "TemplateThisParameter", // D2.0 "TemplateValueParameter", "TemplateTupleParameter", "TemplateParameters", "TemplateArguments", "EnumMember", ]; char[] generateNodeKindMembers() { char[] text; foreach (className; classNames) text ~= className ~ ","; return text; } // pragma(msg, generateNodeKindMembers()); // enum NodeKind; mixin( "enum NodeKind : ushort" "{" ~ generateNodeKindMembers ~ "}" );