blob: d91cfd89b8d13090bd4c466bb67e60fe48bb4a43 (
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
|
/**
** \file ast/method-dec.hh
** \brief Declaration of ast::MethodDec.
*/
#pragma once
#include <ast/function-dec.hh>
namespace ast
{
/** \class ast::MethodDec
** \brief Method declaration.
**
** A method declaration is \em not a function in the strict
** sense of object-oriented programming. Inheritance is used
** as a factoring tool here.
*/
class MethodDec : public FunctionDec
{
public:
/** \name Ctor & dtor.
** \{ */
/// Construct a MethodDec node.
MethodDec(const Location& location,
misc::symbol name,
VarChunk* formals,
NameTy* result,
Exp* body);
MethodDec(const MethodDec&) = delete;
MethodDec& operator=(const MethodDec&) = delete;
/// Destroy a MethodDec node.
/** \} */
/// \name Visitors entry point.
/// \{ */
/// Accept a const visitor \a v.
void accept(ConstVisitor& v) const override;
/// Accept a non-const visitor \a v.
void accept(Visitor& v) override;
/// \}
};
} // namespace ast
#include <ast/method-dec.hxx>
|