coins.ir.hir
Interface ExpListExp

All Superinterfaces:
java.lang.Cloneable, Exp, HIR, HIR0, HirList, IR, IR0, IrList
All Known Implementing Classes:
ExpListExpImpl

public interface ExpListExp
extends Exp, HirList

 ExpListExp
 Interface for the expression representing a list of expressions (Exp).
 Its operator is OP_EXPLIST.
 This is used to represent a list of initial values.
 The element of the list may be a repetition specification
 that specifies repetition count (as child 1) and elements
 to be repeated (as child 2).
   ExpListExp -> (explistCode List_of_ListElement_ )
   ListElement_ -> Exp
                 | (exprepeatCode RepeatCount_ ListElement_ )
   RepeatCount_ -> ConstNode // integer constant node representing
                             // repetition count.


Field Summary
 
Fields inherited from interface coins.ir.hir.HIR
OP_CODE_NAME, OP_CODE_NAME_DENSE
 
Fields inherited from interface coins.ir.IR
OP_INF, OP_LIST, OP_PROG, OP_SUBP_DEF
 
Fields inherited from interface coins.ir.hir.HIR0
FLAG_C_PTR, FLAG_CONST_EXP, FLAG_INIT_BLOCK, FLAG_LOOP_WITH_CONDITIONAL_INIT, FLAG_NOCHANGE, FLAG_NONTERMINAL, OP_ADD, OP_ADD_ASSIGN, OP_ADDR, OP_AND, OP_AND_ASSIGN, OP_ARROW, OP_ASM, OP_ASSIGN, OP_BLOCK, OP_CALL, OP_CMP_EQ, OP_CMP_GE, OP_CMP_GT, OP_CMP_LE, OP_CMP_LT, OP_CMP_NE, OP_COMMA, OP_CONST, OP_CONTENTS, OP_CONV, OP_DECAY, OP_DIV, OP_DIV_ASSIGN, OP_ELEM, OP_ENCLOSE, OP_EQ_ZERO, OP_EXP_STMT, OP_EXPLIST, OP_EXPREPEAT, OP_FOR, OP_IF, OP_INDEX, OP_INDEXED_LOOP, OP_JUMP, OP_LABEL, OP_LABEL_DEF, OP_LABELED_STMT, OP_LG_AND, OP_LG_OR, OP_MOD, OP_MOD_ASSIGN, OP_MULT, OP_MULT_ASSIGN, OP_NEG, OP_NOT, OP_NULL, OP_OFFSET, OP_OR, OP_OR_ASSIGN, OP_PARAM, OP_PHI, OP_POST_DECR, OP_POST_INCR, OP_PRE_DECR, OP_PRE_INCR, OP_QUAL, OP_REPEAT, OP_RETURN, OP_SELECT, OP_SEQ, OP_SETDATA, OP_SHIFT_L_ASSIGN, OP_SHIFT_LL, OP_SHIFT_R, OP_SHIFT_R_ASSIGN, OP_SHIFT_RL, OP_SIZEOF, OP_STMT, OP_STMT_UPPER, OP_SUB, OP_SUB_ASSIGN, OP_SUBP, OP_SUBS, OP_SWITCH, OP_SYM, OP_TYPE, OP_UNDECAY, OP_UNTIL, OP_VAR, OP_WHILE, OP_XOR, OP_XOR_ASSIGN
 
Method Summary
 Exp getExp(int pIndex)
          getExp Get the i-th element of the expression list, where i is given by the parameter pIndex.
 Exp getWithRepeat(int pIndex)
          getWithRepeat
 java.util.ListIterator iterator()
          Make iterator to traverse all elements of the list.
 int length()
          length
 void print(int pIndent)
          Print the list enclosing the string images of all elements by parenthesis.
 void print(int indent, boolean detail)
          Print the list enclosing the detailed string images of all elements by parenthesis.
 void setExp(int pIndex, Exp pExp)
          set Set pExp as pIndex-th element of the expression list.
 int size()
          size
 java.lang.String toString()
          toString Get text representation of this node without traversing children.
 
Methods inherited from interface coins.ir.hir.Exp
adjustTypesOfBinaryOperands, evaluate, evaluateAsDouble, evaluateAsFloat, evaluateAsInt, evaluateAsLong, findSubpType, fold, getActualParamList, getArrayExp, getConstSym, getElem, getElemSizeExp, getExp1, getExp2, getLabel, getPointedElem, getPointerExp, getQualifiedElem, getQualifierExp, getSubp, getSubpSpec, getSubscriptExp, getValueString, getVar, initiateArray, isEvaluable
 
Methods inherited from interface coins.ir.hir.HIR
addrExp, asmStmt, checkLinkage, conditionalExp, contains, copyInfListFrom, cutParentLink, exp, expList, expRepeat, forStmt, getExpId, getFlowAnalSym, getIndentSpace, getInfString, getIrName, getSourceNode, getSourceNode1, getSourceNode2, getSymOrExpId, getWork, hirNodeClone, hirSeq, hirSeq, indexedLoopStmt, indexedLoopStmt, infStmt, infStmt, intConstNode, irList, isEmpty, isStmt, isTree, nullNode, nullStmt, offsetConstNode, phiExp, repeatStmt, replaceSource, replaceSource1, replaceSource2, returnStmt, setChild1, setChild2, setChildren, setChildren, setDataStmt, setIndex, setIndexNumberToAllNodes, setParent, setType, setWork, subpDefinition, subpIterator, subscriptedExp, toStringDetail, toStringShort, toStringWithChildren, undecayExp, undecayExp, undecayExp, whileStmt
 
Methods inherited from interface coins.ir.IR
addInf, getChild1, getChild2, getInf, getInfList, getParent, getSym, removeInf
 
Methods inherited from interface coins.ir.IR0
getChild, getChildCount, getIndex, getOperator, setChild
 
Methods inherited from interface coins.ir.hir.HIR0
accept, assignStmt, blockStmt, callStmt, constNode, contentsExp, convExp, copyWithOperands, copyWithOperandsChangingLabels, decayExp, elemNode, exp, exp, expStmt, falseNode, finishHir, forStmt, functionExp, getChildNumber, getFlag, getFlagBox, getNextStmt, getStmtContainingThisNode, getType, hirClone, hirIterator, hirList, hirSeq, ifStmt, intConstNode, irList, isSameAs, jumpStmt, labelDef, labeledStmt, labelNode, pointedExp, program, qualifiedExp, repeatStmt, replaceThisNode, returnStmt, setFlag, setIndexNumberToAllNodes, sizeofExp, sizeofExp, subpDefinition, subpNode, subscriptedExp, switchStmt, symNode, trueNode, undecayExp, varNode, whileStmt
 
Methods inherited from interface coins.ir.hir.HirList
add, add, contains, get, getFirst, hirListClone, indexOf, isEmpty, remove, remove, set
 
Methods inherited from interface coins.ir.IrList
clear, getClone, toStringShort
 

Method Detail

size

public int size()
size

Specified by:
size in interface HirList
Returns:
the size (number of elements) of the expression list.

length

public int length()
length

Returns:
the length (number of elements) of the expression list.

getExp

public Exp getExp(int pIndex)
getExp Get the i-th element of the expression list, where i is given by the parameter pIndex. If there is no i-th element, return null.

Parameters:
pIndex - element index number.
Returns:
the pIndex-th element of the expression list.

getWithRepeat

public Exp getWithRepeat(int pIndex)
getWithRepeat
 Get the i-th final element of the expression list assuming as if
 the nest of list is expanded, where i is given by the parameter
 pIndex.
 If the i-th element is (exprepeatCode n elem), then
 elem is assumed to be repeated n-times and its first one
 is treated as the i-th element.
 If there is no i-th element, return null.
 The end of list may be detected by encountering null
 as the return value of getWithRepeat method.
 Example
   Given list:
     (OP_EXPLIST c1 c2 (OP_EXPREPEAT c3 c4) c5)
   Sequence of Exp to be get by getWithRepeat:
     c1 c2 c4 c4 c4 c5
   where, each of c1, c2, c3, c4, c5 represents constant expression
   whose value is 1, 2, 3, 4, 5 respectively.

Parameters:
pIndex - index number corresponding to the element to be returned.
Returns:
the pIndex-th element of the expression list; if there is no pIndex-th element, then return null.

setExp

public void setExp(int pIndex,
                   Exp pExp)
set Set pExp as pIndex-th element of the expression list. If there is no pIndex-th element in the list, then do nothing.

Parameters:
pIndex - index number corresponding to the element to be set.
pExp - element to be set.

iterator

public java.util.ListIterator iterator()
Make iterator to traverse all elements of the list.

Specified by:
iterator in interface HirList
Returns:
the iterator.

toString

public java.lang.String toString()
Description copied from interface: HIR
toString Get text representation of this node without traversing children.

Specified by:
toString in interface HIR

print

public void print(int pIndent)
Print the list enclosing the string images of all elements by parenthesis. The start column is indicated by pIndent.

Specified by:
print in interface IR
Parameters:
pIndent - the start column to print.

print

public void print(int indent,
                  boolean detail)
Print the list enclosing the detailed string images of all elements by parenthesis. The start column is indicated by pIndent.

Specified by:
print in interface IR
Parameters:
indent - number of heading spaces for indentation.
detail - true if detail print is requested, false otherwise.