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/TokenRefCount.hpp" 8#include "antlr/Token.hpp" 9 10#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 11namespace antlr { 12#endif 13 14TokenRef::TokenRef(Token* p) 15: ptr(p), count(1) 16{ 17 if (p && !p->ref) 18 p->ref = this; 19} 20 21TokenRef::~TokenRef() 22{ 23 delete ptr; 24} 25 26TokenRef* TokenRef::getRef(const Token* p) 27{ 28 if (p) { 29 Token* pp = const_cast<Token*>(p); 30 if (pp->ref) 31 return pp->ref->increment(); 32 else 33 return new TokenRef(pp); 34 } else 35 return 0; 36} 37 38#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 39} 40#endif 41 42