source: src/AST/Fwd.hpp

Last change on this file was fca78f1, checked in by Andrew Beach <ajbeach@…>, 4 weeks ago

Added ForeachStmt? (felt better than ForEachStmt?). This new node is a bit optimistic in that currently it is covering a very narrow case, but with improvements to it and RangeExpr?, it could handle many more kind of loops.

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