source: src/AST/Fwd.hpp @ e542b02

Last change on this file since e542b02 was af746cc, checked in by JiadaL <j82liang@…>, 7 months ago

Reimplement the resolution of Enum instance type

  • Property mode set to 100644
File size: 3.3 KB
Line 
1//
2// Cforall Version 1.0.0 Copyright (C) 2015 University of Waterloo
3//
4// The contents of this file are covered under the licence agreement in the
5// file "LICENCE" distributed with Cforall.
6//
7// Fwd.hpp -- Forward declarations of AST Types.
8//
9// Author           : Andrew Beach
10// Created On       : Wed May  8 16:05:00 2019
11// Last Modified By : Peter A. Buhr
12// Last Modified On : Tue Feb  1 09:08:33 2022
13// Update Count     : 5
14//
15
16#pragma once
17
18template<typename> struct bitfield;
19
20#include "AST/Node.hpp"
21
22namespace ast {
23
24class ParseNode;
25
26class Decl;
27class DeclWithType;
28class ObjectDecl;
29class FunctionDecl;
30class AggregateDecl;
31class StructDecl;
32class UnionDecl;
33class EnumDecl;
34class TraitDecl;
35class NamedTypeDecl;
36class TypeDecl;
37class TypedefDecl;
38class AsmDecl;
39class DirectiveDecl;
40class StaticAssertDecl;
41class InlineMemberDecl;
42
43class Stmt;
44class CompoundStmt;
45class ExprStmt;
46class AsmStmt;
47class DirectiveStmt;
48class IfStmt;
49class WhileDoStmt;
50class ForStmt;
51class SwitchStmt;
52class CaseClause;
53class BranchStmt;
54class ReturnStmt;
55class ThrowStmt;
56class TryStmt;
57class CatchClause;
58class FinallyClause;
59class SuspendStmt;
60class WhenClause;
61class WaitForStmt;
62class WaitForClause;
63class WaitUntilStmt;
64class WithStmt;
65class DeclStmt;
66class NullStmt;
67class ImplicitCtorDtorStmt;
68class MutexStmt;
69class CorunStmt;
70class CoforStmt;
71
72class Expr;
73class ApplicationExpr;
74class UntypedExpr;
75class NameExpr;
76class QualifiedNameExpr;
77class AddressExpr;
78class LabelAddressExpr;
79class CastExpr;
80class KeywordCastExpr;
81class VirtualCastExpr;
82class MemberExpr;
83class UntypedMemberExpr;
84class VariableExpr;
85class ConstantExpr;
86class SizeofExpr;
87class AlignofExpr;
88class UntypedOffsetofExpr;
89class OffsetofExpr;
90class OffsetPackExpr;
91class LogicalExpr;
92class ConditionalExpr;
93class CommaExpr;
94class TypeExpr;
95class DimensionExpr;
96class AsmExpr;
97class ImplicitCopyCtorExpr;
98class ConstructorExpr;
99class CompoundLiteralExpr;
100class RangeExpr;
101class UntypedTupleExpr;
102class TupleExpr;
103class TupleIndexExpr;
104class TupleAssignExpr;
105class StmtExpr;
106class UniqueExpr;
107class UntypedInitExpr;
108class InitExpr;
109class DeletedExpr;
110class DefaultArgExpr;
111class GenericExpr;
112
113class Type;
114class VoidType;
115class BasicType;
116class PointerType;
117class ArrayType;
118class ReferenceType;
119class QualifiedType;
120class FunctionType;
121class BaseInstType;
122template<typename decl_t> class SueInstType;
123using StructInstType = SueInstType<StructDecl>;
124using UnionInstType = SueInstType<UnionDecl>;
125using EnumInstType = SueInstType<EnumDecl>;
126class TraitInstType;
127class TypeInstType;
128class TupleType;
129class TypeofType;
130class VTableType;
131class VarArgsType;
132class ZeroType;
133class OneType;
134class GlobalScopeType;
135class EnumAttrType;
136
137class Designation;
138class Init;
139class SingleInit;
140class ListInit;
141class ConstructorInit;
142
143class Label;
144
145class Attribute;
146
147class SymbolTable;
148class TypeEnvironment;
149class TypeSubstitution;
150
151typedef unsigned int UniqueId;
152
153class TranslationUnit;
154class TranslationGlobal;
155
156// For the following types, only use the using type.
157namespace CV {
158        struct qualifier_flags;
159        using Qualifiers = bitfield<qualifier_flags>;
160}
161namespace Function {
162        struct spec_flags;
163        using Specs = bitfield<spec_flags>;
164}
165namespace Storage {
166        struct class_flags;
167        using Classes = bitfield<class_flags>;
168}
169namespace Linkage {
170        struct spec_flags;
171        using Spec = bitfield<spec_flags>;
172}
173
174}
Note: See TracBrowser for help on using the repository browser.