KDevelop API Documentation

lib/antlr/antlr/BaseAST.hpp

Go to the documentation of this file.
00001 #ifndef INC_BaseAST_hpp__ 00002 #define INC_BaseAST_hpp__ 00003 00004 /* ANTLR Translator Generator 00005 * Project led by Terence Parr at http://www.jGuru.com 00006 * Software rights: http://www.antlr.org/RIGHTS.html 00007 * 00008 * $Id: BaseAST.hpp,v 1.2 2003/05/02 00:36:19 okellogg Exp $ 00009 */ 00010 00011 #include <antlr/config.hpp> 00012 #include <antlr/AST.hpp> 00013 00014 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 00015 namespace antlr { 00016 #endif 00017 00018 class ANTLR_API BaseAST; 00019 typedef ASTRefCount<BaseAST> RefBaseAST; 00020 00021 class ANTLR_API BaseAST : public AST { 00022 public: 00023 BaseAST(); 00024 BaseAST(const BaseAST& other); 00025 00026 virtual ~BaseAST(); 00027 00029 virtual const char* typeName( void ) const; 00030 00032 virtual RefAST clone( void ) const; 00033 00035 virtual bool equals(RefAST t) const; 00036 00040 virtual bool equalsList(RefAST t) const; 00041 00044 virtual bool equalsListPartial(RefAST t) const; 00045 00049 virtual bool equalsTree(RefAST t) const; 00050 00054 virtual bool equalsTreePartial(RefAST t) const; 00055 00060 virtual ANTLR_USE_NAMESPACE(std)vector<RefAST> findAll(RefAST t); 00061 00066 virtual ANTLR_USE_NAMESPACE(std)vector<RefAST> findAllPartial(RefAST t); 00067 00069 virtual void addChild(RefAST c); 00071 virtual RefAST getFirstChild() const 00072 { 00073 return RefAST(down); 00074 } 00076 virtual RefAST getNextSibling() const 00077 { 00078 return RefAST(right); 00079 } 00080 00082 virtual ANTLR_USE_NAMESPACE(std)string getText() const 00083 { 00084 return ""; 00085 } 00087 virtual int getType() const 00088 { 00089 return 0; 00090 } 00091 00093 virtual void removeChildren() 00094 { 00095 down = static_cast<BaseAST*>(static_cast<AST*>(nullAST)); 00096 } 00097 00099 virtual void setFirstChild(RefAST c) 00100 { 00101 down = static_cast<BaseAST*>(static_cast<AST*>(c)); 00102 } 00103 00105 void setNextSibling(RefAST n) 00106 { 00107 right = static_cast<BaseAST*>(static_cast<AST*>(n)); 00108 } 00109 00111 virtual void setText(const ANTLR_USE_NAMESPACE(std)string& txt); 00112 00114 virtual void setType(int type); 00115 00116 #ifdef ANTLR_SUPPORT_XML 00117 00121 virtual bool attributesToStream( ANTLR_USE_NAMESPACE(std)ostream& out ) const; 00126 virtual void toStream( ANTLR_USE_NAMESPACE(std)ostream &out ) const; 00127 #endif 00128 00130 virtual ANTLR_USE_NAMESPACE(std)string toString() const; 00131 00133 virtual ANTLR_USE_NAMESPACE(std)string toStringList() const; 00134 virtual ANTLR_USE_NAMESPACE(std)string toStringTree() const; 00135 00136 protected: 00137 RefBaseAST down; 00138 RefBaseAST right; 00139 private: 00140 void doWorkForFindAll(ANTLR_USE_NAMESPACE(std)vector<RefAST>& v, 00141 RefAST target, 00142 bool partialMatch); 00143 }; 00144 00147 inline bool BaseAST::equals(RefAST t) const 00148 { 00149 if (!t) 00150 return false; 00151 return ((getType() == t->getType()) && (getText() == t->getText())); 00152 } 00153 00154 #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 00155 } 00156 #endif 00157 00158 #endif //INC_BaseAST_hpp__
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Oct 19 08:01:46 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003