coins.ast.expr
Class MemberExpr

java.lang.Object
  extended bycoins.ast.ASTree
      extended bycoins.ast.expr.OperatorExpr
          extended bycoins.ast.expr.UnaryExpr
              extended bycoins.ast.expr.MemberExpr
All Implemented Interfaces:
Expr, LvalueExpr, java.io.Serializable, TokenId

public class MemberExpr
extends UnaryExpr
implements TokenId, LvalueExpr

Member access expression "->" (arrow) or "." (dot).

See Also:
Serialized Form

Field Summary
 
Fields inherited from class coins.ast.expr.UnaryExpr
expr
 
Fields inherited from interface coins.ast.TokenId
AND_E, ANDAND, ARROW, ASM, AUTO, BAD_TOKEN, BREAK, CASE, CAST_OP, CHAR, CHAR_CONST, COND_OP, CONST, CONTINUE, DEFAULT, DIV_E, DO, DOUBLE, DOUBLE_CONST, ELLIPSIS, ELSE, ENUM, EOF, EQ, EXOR_E, EXTERN, FLOAT, FLOAT_CONST, FOR, FUNCALL, GE, GOTO, IDENTIFIER, IF, IGNORE, INDEX_OP, INLINE, INT, INT_CONST, LE, LONG, LONG_CONST, LONG_DOUBLE_CONST, LONGLONG_CONST, LSHIFT, LSHIFT_E, MINUS_E, MINUSMINUS, MOD_E, MUL_E, MUTABLE, NEQ, OR_E, OROR, PLUS_E, PLUSPLUS, PRAGMA, REGISTER, RESTRICT, RETURN, RSHIFT, RSHIFT_E, SHORT, SIGNED, SIZEOF, SKIP_GCC_ASM, SKIP_GCC_ATTRIBUTE, STATIC, STRING_L, STRING_WL, STRUCT, SWITCH, TYPEDEF, TYPEDEF_NAME, UINT_CONST, ULONG_CONST, ULONGLONG_CONST, UNION, UNSIGNED, VOID, VOLATILE, WHILE
 
Constructor Summary
MemberExpr(Expr expr, boolean _arrow, java.lang.String member, Aggregate def, Declarator d)
           
 
Method Summary
 void accept(Visitor v)
          Is a method for the visitor pattern.
 Declarator getMember()
          Returns the declaration of the accessed member.
 Aggregate getStructure()
          Returns the declaration of the struct or union data type that the accessed member belongs to.
protected  java.lang.String getTag()
          Returns the type of this node.
 byte[] getType()
          Returns the type of the resulting value of evaluating the expression.
 boolean hasAddress()
          Returns true if the expression can be an operand of '&'.
 boolean isLvalue()
          Returns true if the expression is really an l-value.
 java.lang.String name()
          Returns the member name.
 int operatorId()
          Returns TokenId.ARROW or "." (dot).
 java.lang.String operatorName()
          Returns the string representation of the operator name.
 
Methods inherited from class coins.ast.expr.UnaryExpr
getExpr, getLeft, getRight, setLeft, setRight
 
Methods inherited from class coins.ast.ASTree
putSeparator, rightToString, toString, toString1
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MemberExpr

public MemberExpr(Expr expr,
                  boolean _arrow,
                  java.lang.String member,
                  Aggregate def,
                  Declarator d)
Method Detail

accept

public void accept(Visitor v)
Description copied from class: ASTree
Is a method for the visitor pattern. It calls atXXX() on the given visitor, where XXX is the class name of the node object.

Specified by:
accept in class ASTree

getType

public byte[] getType()
Description copied from interface: Expr
Returns the type of the resulting value of evaluating the expression. See ast.TypeId

Specified by:
getType in interface Expr
Returns:
the encoded type.

isLvalue

public boolean isLvalue()
Description copied from interface: LvalueExpr
Returns true if the expression is really an l-value.

Specified by:
isLvalue in interface LvalueExpr

hasAddress

public boolean hasAddress()
Description copied from interface: LvalueExpr
Returns true if the expression can be an operand of '&'.

Specified by:
hasAddress in interface LvalueExpr

name

public java.lang.String name()
Returns the member name.


getStructure

public Aggregate getStructure()
Returns the declaration of the struct or union data type that the accessed member belongs to.


getMember

public Declarator getMember()
Returns the declaration of the accessed member.


operatorId

public int operatorId()
Returns TokenId.ARROW or "." (dot).

Specified by:
operatorId in class OperatorExpr

operatorName

public java.lang.String operatorName()
Description copied from class: OperatorExpr
Returns the string representation of the operator name.

Specified by:
operatorName in class OperatorExpr

getTag

protected java.lang.String getTag()
Description copied from class: ASTree
Returns the type of this node. This method is used by toString().

Overrides:
getTag in class OperatorExpr