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