00001 #ifndef VARIABLE_H_INCLUDED_
00002 #define VARIABLE_H_INCLUDED_
00003 
00004 #include <string>
00005 #include <vector>
00006 
00007 #include "rose.h"
00008 
00009 #include "object.h"
00010 
00011 namespace risc {
00012 
00013 class Variable;
00014 typedef std::vector<Variable*> VariableVector;
00015 typedef std::vector<Variable*>::iterator VariableVectorIter;
00016 typedef std::vector<Variable*>::const_iterator VariableVectorConstIter;
00017 
00022 class Variable: public Object {
00023 
00024 public:
00025 
00029   explicit Variable(SgVariableDefinition *ast_node);
00030 
00035   virtual std::string get_ast_type_name();
00036 
00040   bool is_reference();
00041 
00045   bool is_static();
00046 
00050   bool is_pointer();
00051 
00052 private:
00053 
00057   Variable(const Variable &v);
00058 };
00059 
00060 }; 
00061 
00062 #endif 
00063 
00064