blob: 3d2a6113c87890aea8fed13fb85ab9f88a574cb4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
/**
** \file ast/fwd.hh
** \brief Forward declarations of all AST classes
** (needed by the visitors).
*/
#pragma once
#include <list>
#include <vector>
#include <misc/fwd.hh>
#include <misc/vector.hh>
namespace ast
{
class ArrayExp;
class ArrayTy;
class AssertExp;
class AssignExp;
class Ast;
class BreakExp;
class CallExp;
class CastExp;
class ChunkList;
class ClassTy;
class Dec;
class Escapable;
class Exp;
class Field;
class FieldInit;
class FieldVar;
class ForExp;
class FunctionDec;
class IfExp;
class IntExp;
class LetExp;
class MethodCallExp;
class MethodDec;
class NameTy;
class NilExp;
class ObjectExp;
class OpExp;
class RecordExp;
class RecordTy;
class SeqExp;
class SimpleVar;
class StringExp;
class SubscriptVar;
class Ty;
class Typable;
class TypeConstructor;
class TypeDec;
class Var;
class VarDec;
class WhileExp;
// From visitor.hh
template <template <typename> class Const> class GenVisitor;
using ConstVisitor = GenVisitor<misc::constify_traits>;
using Visitor = GenVisitor<misc::id_traits>;
// Collections of nodes.
using exps_type = std::vector<Exp*>;
using fieldinits_type = std::vector<FieldInit*>;
using fields_type = std::vector<Field*>;
// From chunk-interface.hh.
class ChunkInterface;
// From chunk-list.hh.
class ChunkList;
// From chunk.hh.
template <typename T> class Chunk;
using FunctionChunk = Chunk<FunctionDec>;
using MethodChunk = Chunk<MethodDec>;
using TypeChunk = Chunk<TypeDec>;
using VarChunk = Chunk<VarDec>;
} // namespace ast
|