/* * This file is part of the Cforall project * * $Id: SynTree.h,v 1.22 2005/08/29 20:59:26 rcbilson Exp $ * * Forward declarations for syntax tree classes, so that they can be mutually * interdependent */ #ifndef SYNTREE_H #define SYNTREE_H #include #include #include #include class Declaration; class DeclarationWithType; class ObjectDecl; class FunctionDecl; class AggregateDecl; class StructDecl; class UnionDecl; class EnumDecl; class ContextDecl; class NamedTypeDecl; class TypeDecl; class FtypeDecl; class DtypeDecl; class TypedefDecl; class Statement; class CompoundStmt; class ExprStmt; class IfStmt; class WhileStmt; class ForStmt; class SwitchStmt; class ChooseStmt; class FallthruStmt; class CaseStmt; class BranchStmt; class ReturnStmt; class TryStmt; class CatchStmt; class FinallyStmt; class NullStmt; class DeclStmt; class NullStmt; class Expression; class ApplicationExpr; class UntypedExpr; class NameExpr; class AddressExpr; class LabelAddressExpr; class CastExpr; class MemberExpr; class UntypedMemberExpr; class VariableExpr; class ConstantExpr; class SizeofExpr; class AttrExpr; class LogicalExpr; class ConditionalExpr; class CommaExpr; class TupleExpr; class SolvedTupleExpr; class TypeExpr; class UntypedValofExpr; class Type; class VoidType; class BasicType; class PointerType; class ArrayType; class FunctionType; class ReferenceToType; class StructInstType; class UnionInstType; class EnumInstType; class ContextInstType; class TypeInstType; class TupleType; class TypeofType; class AttrType; class Initializer; class MemberInit; class ElementInit; class SingleInit; class ListInit; class Subrange; //template // emulate a union with templates? class Constant; typedef std::string Label; typedef unsigned int UniqueId; class TypeSubstitution; #endif /* #ifndef SYNTREE_H */