SymEval for POWER: WIP
[dyninst.git] / symEval / rose / SgAsmOperandList.h
1 // Class Definition for SgAsmOperandList
2 #if !defined(SG_ASM_OPERAND_LIST_H)
3 #define SG_ASM_OPERAND_LIST_H
4
5 #include "SgNode.h"
6 #include "typedefs.h"
7
8 class SgAsmOperandList : public SgNode {
9  public:
10
11     void append_operand( SgAsmExpression* operand );
12  public:
13
14        // DQ (3/25/3006): I put this back in because it had the logic for where the copy function required 
15        // and not required which is required to match the other aspects of the copy mechanism code generation.
16        // Specifically it is a problem to declare the copy function everywhere because it is not implemented 
17        // for the SgSymbol IR nodes. I'm not clear why it is not implemented for these IR nodes.
18       /*! \brief Copies AST (whole subtree, depending on the SgCopyHelp class */
19        // virtual SgNode* copy ( const SgCopyHelp & help) const;
20
21       /*! \brief returns a string representing the class name */
22     virtual std::string class_name() const;
23     
24     /*! \brief returns new style SageIII enum values */
25     virtual VariantT variantT() const; // MS: new variant used in tree traversal
26     
27     /*! \brief static variant value */
28     static const VariantT static_variant = V_SgAsmOperandList;
29     
30     /* the generated cast function */
31     /*! \brief Casts pointer from base class to derived class */
32     friend       SgAsmOperandList* isSgAsmOperandList(       SgNode * s );
33     /*! \brief Casts pointer from base class to derived class (for const pointers) */
34     friend const SgAsmOperandList* isSgAsmOperandList( const SgNode * s );
35     
36  public: 
37     const SgAsmExpressionPtrList&  get_operands() const;
38     SgAsmExpressionPtrList& get_operands(); 
39     
40     
41  public: 
42     virtual ~SgAsmOperandList();
43     
44     
45  public: 
46     SgAsmOperandList(); 
47     
48  protected:
49     // Start of memberFunctionString
50     SgAsmExpressionPtrList p_operands;
51 };
52
53 #endif