OpenMD
3.1
Molecular Dynamics in the Open
Loading...
Searching...
No Matches
ASTRefCount.cpp
1
/* ANTLR Translator Generator
2
* Project led by Terence Parr at http://www.jGuru.com
3
* Software rights: http://www.antlr.org/license.html
4
*
5
* $Id$
6
*/
7
#include "antlr/ASTRefCount.hpp"
8
#include "antlr/AST.hpp"
9
10
#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
11
namespace
antlr {
12
#endif
13
14
ASTRef::ASTRef(AST* p)
15
: ptr(p), count(1)
16
{
17
if
(p && !p->ref)
18
p->ref =
this
;
19
}
20
21
ASTRef::~ASTRef()
22
{
23
delete
ptr;
24
}
25
26
ASTRef* ASTRef::getRef(
const
AST* p)
27
{
28
if
(p) {
29
AST* pp =
const_cast<
AST*
>
(p);
30
if
(pp->ref)
31
return
pp->ref->increment();
32
else
33
return
new
ASTRef(pp);
34
}
else
35
return
0;
36
}
37
38
#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
39
}
40
#endif
41
antlr
ASTRefCount.cpp
Generated on Wed Jun 26 2024 13:56:38 for OpenMD by
1.11.0