Class VarnodeAST


  • public class VarnodeAST
    extends Varnode
    This type of Varnode is a node in an Abstract Syntax Tree It keeps track of its defining PcodeOp (in-edge) and PcodeOps which use it (out-edges)
    • Constructor Detail

      • VarnodeAST

        public VarnodeAST​(Address a,
                          int sz,
                          int id)
    • Method Detail

      • isFree

        public boolean isFree()
        Overrides:
        isFree in class Varnode
      • isInput

        public boolean isInput()
        Overrides:
        isInput in class Varnode
        Returns:
        is input to a pcode op
      • isPersistent

        public boolean isPersistent()
        Overrides:
        isPersistent in class Varnode
        Returns:
        is persistent
      • isAddrTied

        public boolean isAddrTied()
        Overrides:
        isAddrTied in class Varnode
        Returns:
        is mapped to an address
      • getDef

        public PcodeOp getDef()
        Overrides:
        getDef in class Varnode
        Returns:
        get the pcode op this varnode belongs to
      • getDescendants

        public java.util.Iterator<PcodeOp> getDescendants()
        Overrides:
        getDescendants in class Varnode
        Returns:
        iterator to all PcodeOp s that take this as input
      • getPCAddress

        public Address getPCAddress()
        Description copied from class: Varnode
        Get the address where this varnode is defined or NO_ADDRESS if this varnode is an input
        Overrides:
        getPCAddress in class Varnode
        Returns:
        the address
      • getHigh

        public HighVariable getHigh()
        Overrides:
        getHigh in class Varnode
        Returns:
        the high level variable this varnode represents
      • getUniqueId

        public int getUniqueId()
      • getMergeGroup

        public short getMergeGroup()
        Overrides:
        getMergeGroup in class Varnode
        Returns:
        the index of the group, within the high containing this, that are forced merged with this
      • setAddrtied

        public void setAddrtied​(boolean val)
      • setInput

        public void setInput​(boolean val)
      • setPersistent

        public void setPersistent​(boolean val)
      • setUnaffected

        public void setUnaffected​(boolean val)
      • setFree

        public void setFree​(boolean val)
      • setDef

        public void setDef​(PcodeOp op)
      • setMergeGroup

        public void setMergeGroup​(short val)
      • addDescendant

        public void addDescendant​(PcodeOp op)
      • removeDescendant

        public void removeDescendant​(PcodeOp op)
      • descendReplace

        public void descendReplace​(VarnodeAST vn)
        Replace all of parameter vn's references with this
        Parameters:
        vn - Varnode whose references will get replaced
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class Varnode