source: src/SynTree/SynTree.h @ 2edd80ae

ADTaaron-thesisarm-ehast-experimentalcleanup-dtorsdeferred_resndemanglerenumforall-pointer-decayjacob/cs343-translationjenkins-sandboxnew-astnew-ast-unique-exprnew-envno_listpersistent-indexerpthread-emulationqualifiedEnumresolv-newwith_gc
Last change on this file since 2edd80ae was a5f0529, checked in by Andrew Beach <ajbeach@…>, 7 years ago

Virtual casts have been added. They still require a lot of hand coded support to work but for simple cases it should be enough.

  • Property mode set to 100644
File size: 2.6 KB
Line 
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// SynTree.h --
8//
9// Author           : Richard C. Bilson
10// Created On       : Mon May 18 07:44:20 2015
11// Last Modified By : Andrew Beach
12// Last Modified On : Mon Jul 24 16:54:00 2017
13// Update Count     : 11
14//
15
16#pragma once
17
18#include <string>
19#include <list>
20#include <map>
21#include <iostream>
22
23class BaseSyntaxNode;
24
25class Declaration;
26class DeclarationWithType;
27class ObjectDecl;
28class FunctionDecl;
29class AggregateDecl;
30class StructDecl;
31class UnionDecl;
32class EnumDecl;
33class TraitDecl;
34class NamedTypeDecl;
35class TypeDecl;
36class FtypeDecl;
37class DtypeDecl;
38class TypedefDecl;
39class AsmDecl;
40
41class Statement;
42class CompoundStmt;
43class ExprStmt;
44class AsmStmt;
45class IfStmt;
46class WhileStmt;
47class ForStmt;
48class SwitchStmt;
49class CaseStmt;
50class BranchStmt;
51class ReturnStmt;
52class ThrowStmt;
53class TryStmt;
54class CatchStmt;
55class FinallyStmt;
56class NullStmt;
57class DeclStmt;
58class NullStmt;
59class ImplicitCtorDtorStmt;
60
61class Expression;
62class ApplicationExpr;
63class UntypedExpr;
64class NameExpr;
65class AddressExpr;
66class LabelAddressExpr;
67class CastExpr;
68class VirtualCastExpr;
69class MemberExpr;
70class UntypedMemberExpr;
71class VariableExpr;
72class ConstantExpr;
73class SizeofExpr;
74class AlignofExpr;
75class UntypedOffsetofExpr;
76class OffsetofExpr;
77class OffsetPackExpr;
78class AttrExpr;
79class LogicalExpr;
80class ConditionalExpr;
81class CommaExpr;
82class TypeExpr;
83class AsmExpr;
84class ImplicitCopyCtorExpr;
85class ConstructorExpr;
86class CompoundLiteralExpr;
87class UntypedValofExpr;
88class RangeExpr;
89class UntypedTupleExpr;
90class TupleExpr;
91class TupleIndexExpr;
92class TupleAssignExpr;
93class StmtExpr;
94class UniqueExpr;
95class UntypedInitExpr;
96class InitExpr;
97
98class Type;
99class VoidType;
100class BasicType;
101class PointerType;
102class ArrayType;
103class FunctionType;
104class ReferenceToType;
105class StructInstType;
106class UnionInstType;
107class EnumInstType;
108class TraitInstType;
109class TypeInstType;
110class TupleType;
111class TypeofType;
112class AttrType;
113class VarArgsType;
114class ZeroType;
115class OneType;
116
117class Designation;
118class Initializer;
119class SingleInit;
120class ListInit;
121class ConstructorInit;
122
123class Subrange;
124
125//template <class T>    // emulate a union with templates?
126class Constant;
127
128// typedef std::string Label;
129class Label;
130typedef unsigned int UniqueId;
131
132class TypeSubstitution;
133
134// gcc attribute
135class Attribute;
136
137// Local Variables: //
138// tab-width: 4 //
139// mode: c++ //
140// compile-command: "make install" //
141// End: //
Note: See TracBrowser for help on using the repository browser.