source: src/AST/Fwd.hpp @ dd3576b

ADTast-experimental
Last change on this file since dd3576b was 257a8f5, checked in by Andrew Beach <ajbeach@…>, 17 months ago

Made some of the AST/Print helpers public.

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