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