source: src/AST/Fwd.hpp@ 3a513d89

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

Save progress

  • Property mode set to 100644
File size: 3.2 KB
RevLine 
[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]18template<typename> struct bitfield;
19
[e0115286]20#include "AST/Node.hpp"
21
[ee7a29f]22namespace ast {
23
24class ParseNode;
25
26class Decl;
27class DeclWithType;
28class ObjectDecl;
29class FunctionDecl;
30class AggregateDecl;
31class StructDecl;
32class UnionDecl;
33class EnumDecl;
[561354f]34class AdtDecl;
[ee7a29f]35class TraitDecl;
36class NamedTypeDecl;
37class TypeDecl;
38class TypedefDecl;
39class AsmDecl;
[2d019af]40class DirectiveDecl;
[ee7a29f]41class StaticAssertDecl;
[71806e0]42class InlineMemberDecl;
[ee7a29f]43
44class Stmt;
45class CompoundStmt;
46class ExprStmt;
47class AsmStmt;
48class DirectiveStmt;
49class IfStmt;
[3b0bc16]50class WhileDoStmt;
[ee7a29f]51class ForStmt;
52class SwitchStmt;
[400b8be]53class CaseClause;
[ee7a29f]54class BranchStmt;
55class ReturnStmt;
56class ThrowStmt;
57class TryStmt;
[400b8be]58class CatchClause;
59class FinallyClause;
[37cdd97]60class SuspendStmt;
[ee7a29f]61class WaitForStmt;
[f6e6a55]62class WaitForClause;
[ee7a29f]63class WithStmt;
64class DeclStmt;
65class NullStmt;
66class ImplicitCtorDtorStmt;
[6cebfef]67class MutexStmt;
[ee7a29f]68
69class Expr;
70class ApplicationExpr;
71class UntypedExpr;
72class NameExpr;
[b0d9ff7]73class QualifiedNameExpr;
[ee7a29f]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;
[4ec9513]92class DimensionExpr;
[ee7a29f]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;
[98e8b3b]118class BaseInstType;
[923d25a]119template<typename decl_t> class SueInstType;
120using StructInstType = SueInstType<StructDecl>;
121using UnionInstType = SueInstType<UnionDecl>;
122using EnumInstType = SueInstType<EnumDecl>;
[ee7a29f]123class TraitInstType;
124class TypeInstType;
125class TupleType;
126class TypeofType;
[3945abe]127class VTableType;
[ee7a29f]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
[fb2bde4]143class SymbolTable;
144class TypeEnvironment;
[ee7a29f]145class TypeSubstitution;
146
147typedef unsigned int UniqueId;
148
[1f7dc61]149class TranslationUnit;
[39d8950]150class TranslationGlobal;
[490fb92e]151
[257a8f5]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
[ee7a29f]170}
Note: See TracBrowser for help on using the repository browser.