source: src/AST/Fwd.hpp @ 37ceccb

Last change on this file since 37ceccb was eb779d5, checked in by caparsons <caparson@…>, 12 months ago

Implemented corun statement

  • 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;
[eb779d5]69class CorunStmt;
[ee7a29f]70
71class Expr;
72class ApplicationExpr;
73class UntypedExpr;
74class NameExpr;
[b0d9ff7]75class QualifiedNameExpr;
[ee7a29f]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;
[4ec9513]94class DimensionExpr;
[ee7a29f]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;
[98e8b3b]120class BaseInstType;
[923d25a]121template<typename decl_t> class SueInstType;
122using StructInstType = SueInstType<StructDecl>;
123using UnionInstType = SueInstType<UnionDecl>;
124using EnumInstType = SueInstType<EnumDecl>;
[ee7a29f]125class TraitInstType;
126class TypeInstType;
127class TupleType;
128class TypeofType;
[3945abe]129class VTableType;
[ee7a29f]130class VarArgsType;
131class ZeroType;
132class OneType;
133class GlobalScopeType;
134
135class Designation;
136class Init;
137class SingleInit;
138class ListInit;
139class ConstructorInit;
140
141class Label;
142
143class Attribute;
144
[fb2bde4]145class SymbolTable;
146class TypeEnvironment;
[ee7a29f]147class TypeSubstitution;
148
149typedef unsigned int UniqueId;
150
[1f7dc61]151class TranslationUnit;
[39d8950]152class TranslationGlobal;
[490fb92e]153
[257a8f5]154// For the following types, only use the using type.
155namespace CV {
156        struct qualifier_flags;
157        using Qualifiers = bitfield<qualifier_flags>;
158}
159namespace Function {
160        struct spec_flags;
161        using Specs = bitfield<spec_flags>;
162}
163namespace Storage {
164        struct class_flags;
165        using Classes = bitfield<class_flags>;
166}
167namespace Linkage {
168        struct spec_flags;
169        using Spec = bitfield<spec_flags>;
170}
171
[ee7a29f]172}
Note: See TracBrowser for help on using the repository browser.