Last change
on this file since 956b389 was
fca78f1,
checked in by Andrew Beach <ajbeach@…>, 3 months ago
|
Added ForeachStmt? (felt better than ForEachStmt?). This new node is a bit optimistic in that currently it is covering a very narrow case, but with improvements to it and RangeExpr?, it could handle many more kind of loops.
|
-
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 | |
---|
18 | template<typename> struct bitfield; |
---|
19 | |
---|
20 | #include "AST/Node.hpp" |
---|
21 | |
---|
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; |
---|
39 | class DirectiveDecl; |
---|
40 | class StaticAssertDecl; |
---|
41 | class InlineMemberDecl; |
---|
42 | |
---|
43 | class Stmt; |
---|
44 | class CompoundStmt; |
---|
45 | class ExprStmt; |
---|
46 | class AsmStmt; |
---|
47 | class DirectiveStmt; |
---|
48 | class IfStmt; |
---|
49 | class WhileDoStmt; |
---|
50 | class ForStmt; |
---|
51 | class ForeachStmt; |
---|
52 | class SwitchStmt; |
---|
53 | class CaseClause; |
---|
54 | class BranchStmt; |
---|
55 | class ReturnStmt; |
---|
56 | class ThrowStmt; |
---|
57 | class TryStmt; |
---|
58 | class CatchClause; |
---|
59 | class FinallyClause; |
---|
60 | class SuspendStmt; |
---|
61 | class WhenClause; |
---|
62 | class WaitForStmt; |
---|
63 | class WaitForClause; |
---|
64 | class WaitUntilStmt; |
---|
65 | class WithStmt; |
---|
66 | class DeclStmt; |
---|
67 | class NullStmt; |
---|
68 | class ImplicitCtorDtorStmt; |
---|
69 | class MutexStmt; |
---|
70 | class CorunStmt; |
---|
71 | class CoforStmt; |
---|
72 | |
---|
73 | class Expr; |
---|
74 | class ApplicationExpr; |
---|
75 | class UntypedExpr; |
---|
76 | class NameExpr; |
---|
77 | class QualifiedNameExpr; |
---|
78 | class AddressExpr; |
---|
79 | class LabelAddressExpr; |
---|
80 | class CastExpr; |
---|
81 | class KeywordCastExpr; |
---|
82 | class VirtualCastExpr; |
---|
83 | class MemberExpr; |
---|
84 | class UntypedMemberExpr; |
---|
85 | class VariableExpr; |
---|
86 | class ConstantExpr; |
---|
87 | class SizeofExpr; |
---|
88 | class CountExpr; |
---|
89 | class AlignofExpr; |
---|
90 | class UntypedOffsetofExpr; |
---|
91 | class OffsetofExpr; |
---|
92 | class OffsetPackExpr; |
---|
93 | class LogicalExpr; |
---|
94 | class ConditionalExpr; |
---|
95 | class CommaExpr; |
---|
96 | class TypeExpr; |
---|
97 | class DimensionExpr; |
---|
98 | class AsmExpr; |
---|
99 | class ImplicitCopyCtorExpr; |
---|
100 | class ConstructorExpr; |
---|
101 | class CompoundLiteralExpr; |
---|
102 | class RangeExpr; |
---|
103 | class UntypedTupleExpr; |
---|
104 | class TupleExpr; |
---|
105 | class TupleIndexExpr; |
---|
106 | class TupleAssignExpr; |
---|
107 | class StmtExpr; |
---|
108 | class UniqueExpr; |
---|
109 | class UntypedInitExpr; |
---|
110 | class InitExpr; |
---|
111 | class DeletedExpr; |
---|
112 | class DefaultArgExpr; |
---|
113 | class GenericExpr; |
---|
114 | |
---|
115 | class Type; |
---|
116 | class VoidType; |
---|
117 | class BasicType; |
---|
118 | class PointerType; |
---|
119 | class ArrayType; |
---|
120 | class ReferenceType; |
---|
121 | class QualifiedType; |
---|
122 | class FunctionType; |
---|
123 | class BaseInstType; |
---|
124 | template<typename decl_t> class SueInstType; |
---|
125 | using StructInstType = SueInstType<StructDecl>; |
---|
126 | using UnionInstType = SueInstType<UnionDecl>; |
---|
127 | using EnumInstType = SueInstType<EnumDecl>; |
---|
128 | class TraitInstType; |
---|
129 | class TypeInstType; |
---|
130 | class TupleType; |
---|
131 | class TypeofType; |
---|
132 | class VTableType; |
---|
133 | class VarArgsType; |
---|
134 | class ZeroType; |
---|
135 | class OneType; |
---|
136 | class GlobalScopeType; |
---|
137 | |
---|
138 | class Designation; |
---|
139 | class Init; |
---|
140 | class SingleInit; |
---|
141 | class ListInit; |
---|
142 | class ConstructorInit; |
---|
143 | |
---|
144 | class Label; |
---|
145 | |
---|
146 | class Attribute; |
---|
147 | |
---|
148 | class SymbolTable; |
---|
149 | class TypeEnvironment; |
---|
150 | class TypeSubstitution; |
---|
151 | |
---|
152 | typedef unsigned int UniqueId; |
---|
153 | |
---|
154 | class TranslationUnit; |
---|
155 | class TranslationGlobal; |
---|
156 | |
---|
157 | // For the following types, only use the using type. |
---|
158 | namespace CV { |
---|
159 | struct qualifier_flags; |
---|
160 | using Qualifiers = bitfield<qualifier_flags>; |
---|
161 | } |
---|
162 | namespace Function { |
---|
163 | struct spec_flags; |
---|
164 | using Specs = bitfield<spec_flags>; |
---|
165 | } |
---|
166 | namespace Storage { |
---|
167 | struct class_flags; |
---|
168 | using Classes = bitfield<class_flags>; |
---|
169 | } |
---|
170 | namespace Linkage { |
---|
171 | struct spec_flags; |
---|
172 | using Spec = bitfield<spec_flags>; |
---|
173 | } |
---|
174 | |
---|
175 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.