source: src/AST/Fwd.hpp@ 561354f

ADT
Last change on this file since 561354f was 561354f, checked in by JiadaL <j82liang@…>, 2 years ago

Save progress

  • Property mode set to 100644
File size: 3.2 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 AdtDecl;
35class TraitDecl;
36class NamedTypeDecl;
37class TypeDecl;
38class TypedefDecl;
39class AsmDecl;
40class DirectiveDecl;
41class StaticAssertDecl;
42class InlineMemberDecl;
43
44class Stmt;
45class CompoundStmt;
46class ExprStmt;
47class AsmStmt;
48class DirectiveStmt;
49class IfStmt;
50class WhileDoStmt;
51class ForStmt;
52class SwitchStmt;
53class CaseClause;
54class BranchStmt;
55class ReturnStmt;
56class ThrowStmt;
57class TryStmt;
58class CatchClause;
59class FinallyClause;
60class SuspendStmt;
61class WaitForStmt;
62class WaitForClause;
63class WithStmt;
64class DeclStmt;
65class NullStmt;
66class ImplicitCtorDtorStmt;
67class MutexStmt;
68
69class Expr;
70class ApplicationExpr;
71class UntypedExpr;
72class NameExpr;
73class QualifiedNameExpr;
74class AddressExpr;
75class LabelAddressExpr;
76class CastExpr;
77class KeywordCastExpr;
78class VirtualCastExpr;
79class MemberExpr;
80class UntypedMemberExpr;
81class VariableExpr;
82class ConstantExpr;
83class SizeofExpr;
84class AlignofExpr;
85class UntypedOffsetofExpr;
86class OffsetofExpr;
87class OffsetPackExpr;
88class LogicalExpr;
89class ConditionalExpr;
90class CommaExpr;
91class TypeExpr;
92class DimensionExpr;
93class AsmExpr;
94class ImplicitCopyCtorExpr;
95class ConstructorExpr;
96class CompoundLiteralExpr;
97class RangeExpr;
98class UntypedTupleExpr;
99class TupleExpr;
100class TupleIndexExpr;
101class TupleAssignExpr;
102class StmtExpr;
103class UniqueExpr;
104class UntypedInitExpr;
105class InitExpr;
106class DeletedExpr;
107class DefaultArgExpr;
108class GenericExpr;
109
110class Type;
111class VoidType;
112class BasicType;
113class PointerType;
114class ArrayType;
115class ReferenceType;
116class QualifiedType;
117class FunctionType;
118class BaseInstType;
119template<typename decl_t> class SueInstType;
120using StructInstType = SueInstType<StructDecl>;
121using UnionInstType = SueInstType<UnionDecl>;
122using EnumInstType = SueInstType<EnumDecl>;
123class TraitInstType;
124class TypeInstType;
125class TupleType;
126class TypeofType;
127class VTableType;
128class VarArgsType;
129class ZeroType;
130class OneType;
131class GlobalScopeType;
132
133class Designation;
134class Init;
135class SingleInit;
136class ListInit;
137class ConstructorInit;
138
139class Label;
140
141class Attribute;
142
143class SymbolTable;
144class TypeEnvironment;
145class TypeSubstitution;
146
147typedef unsigned int UniqueId;
148
149class TranslationUnit;
150class TranslationGlobal;
151
152// For the following types, only use the using type.
153namespace CV {
154 struct qualifier_flags;
155 using Qualifiers = bitfield<qualifier_flags>;
156}
157namespace Function {
158 struct spec_flags;
159 using Specs = bitfield<spec_flags>;
160}
161namespace Storage {
162 struct class_flags;
163 using Classes = bitfield<class_flags>;
164}
165namespace Linkage {
166 struct spec_flags;
167 using Spec = bitfield<spec_flags>;
168}
169
170}
Note: See TracBrowser for help on using the repository browser.