INTNode.hpp
上传用户:afrynkmhm
上传日期:2007-01-06
资源大小:1262k
文件大小:1k
源码类别:

编译器/解释器

开发平台:

Others

  1. #ifndef INC_INTNode_hpp__
  2. #define INC_INTNode_hpp__
  3. #include <cstdlib>
  4. #include "antlr/Token.hpp"
  5. #include "antlr/String.hpp"
  6. #include "CalcAST.hpp"
  7. /** A simple node to represent an INT */
  8. class INTNode : public CalcAST {
  9. protected:
  10. int v; //=0;
  11. public:
  12. INTNode(ANTLR_USE_NAMESPACE(antlr)RefToken tok) {
  13. v = atoi(tok->getText().c_str());
  14. }
  15. /** Compute value of subtree; this is heterogeneous part :) */
  16. int value() const {
  17. return v;
  18. }
  19. ANTLR_USE_NAMESPACE(std)string toString() const {
  20. ANTLR_USING_NAMESPACE(antlr)
  21. return ANTLR_USE_NAMESPACE(std)string(" ")+v;
  22. }
  23. // satisfy abstract methods from ASTNode
  24. void initialize(int t, const ANTLR_USE_NAMESPACE(std)string& txt) {
  25. }
  26. void initialize(ANTLR_USE_NAMESPACE(antlr)RefAST t) {
  27. }
  28. void initialize(ANTLR_USE_NAMESPACE(antlr)RefToken tok) {
  29. }
  30. };
  31. typedef ANTLR_USE_NAMESPACE(antlr)ASTRefCount<INTNode> RefINTNode;
  32. #endif //INC_INTNode_hpp__