source: src/AST/Fwd.hpp @ 60c3d87e

Last change on this file since 60c3d87e was c86b08d, checked in by caparsons <caparson@…>, 14 months ago

added support for the waituntil statement in the compiler

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