source: src/AST/Fwd.hpp @ fa2c005

ADT
Last change on this file since fa2c005 was fa2c005, checked in by JiadaL <j82liang@…>, 12 months ago

Finish Adt POC

  • 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 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 WhenClause;
62class WaitForStmt;
63class WaitForClause;
64class WaitUntilStmt;
65class WithStmt;
66class DeclStmt;
67class NullStmt;
68class ImplicitCtorDtorStmt;
69class MutexStmt;
70
71class Expr;
72class ApplicationExpr;
73class UntypedExpr;
74class NameExpr;
75class QualifiedNameExpr;
76class AddressExpr;
77class LabelAddressExpr;
78class CastExpr;
79class KeywordCastExpr;
80class VirtualCastExpr;
81class MemberExpr;
82class UntypedMemberExpr;
83class VariableExpr;
84class ConstantExpr;
85class SizeofExpr;
86class AlignofExpr;
87class UntypedOffsetofExpr;
88class OffsetofExpr;
89class OffsetPackExpr;
90class LogicalExpr;
91class ConditionalExpr;
92class CommaExpr;
93class TypeExpr;
94class DimensionExpr;
95class AsmExpr;
96class ImplicitCopyCtorExpr;
97class ConstructorExpr;
98class CompoundLiteralExpr;
99class RangeExpr;
100class UntypedTupleExpr;
101class TupleExpr;
102class TupleIndexExpr;
103class TupleAssignExpr;
104class StmtExpr;
105class UniqueExpr;
106class UntypedInitExpr;
107class InitExpr;
108class DeletedExpr;
109class DefaultArgExpr;
110class GenericExpr;
111
112class Type;
113class VoidType;
114class BasicType;
115class PointerType;
116class ArrayType;
117class ReferenceType;
118class QualifiedType;
119class FunctionType;
120class BaseInstType;
121template<typename decl_t> class SueInstType;
122using StructInstType = SueInstType<StructDecl>;
123using UnionInstType = SueInstType<UnionDecl>;
124using EnumInstType = SueInstType<EnumDecl>;
125using AdtInstType = SueInstType<AdtDecl>;
126class TraitInstType;
127class TypeInstType;
128class TupleType;
129class TypeofType;
130class VTableType;
131class VarArgsType;
132class ZeroType;
133class OneType;
134class GlobalScopeType;
135
136class Designation;
137class Init;
138class SingleInit;
139class ListInit;
140class ConstructorInit;
141
142class Label;
143
144class Attribute;
145
146class SymbolTable;
147class TypeEnvironment;
148class TypeSubstitution;
149
150typedef unsigned int UniqueId;
151
152class TranslationUnit;
153class TranslationGlobal;
154
155// For the following types, only use the using type.
156namespace CV {
157        struct qualifier_flags;
158        using Qualifiers = bitfield<qualifier_flags>;
159}
160namespace Function {
161        struct spec_flags;
162        using Specs = bitfield<spec_flags>;
163}
164namespace Storage {
165        struct class_flags;
166        using Classes = bitfield<class_flags>;
167}
168namespace Linkage {
169        struct spec_flags;
170        using Spec = bitfield<spec_flags>;
171}
172
173}
Note: See TracBrowser for help on using the repository browser.