|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectscale.common.Root
scale.clef.Node
scale.clef.expr.Expression
scale.clef.expr.Literal
scale.clef.expr.AddressLiteral
public class AddressLiteral
A class which represents the address of a Declaration.
$Id: AddressLiteral.java,v 1.28 2007-08-28 17:58:20 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
| Constructor Summary | |
|---|---|
AddressLiteral(Type type,
Declaration decl)
|
|
AddressLiteral(Type type,
Declaration decl,
long offset)
|
|
AddressLiteral(Type type,
Literal value,
long offset)
|
|
| Method Summary | |
|---|---|
AddressLiteral |
copy(Type type)
Return a copy of the address literal with a different type. |
boolean |
equivalent(java.lang.Object exp)
Return true if the two expressions are equivalent. |
Declaration |
getDecl()
Return the declaration whose
address is represented or null. |
void |
getDeclList(java.util.AbstractCollection<Declaration> varList)
Add all declarations referenced in this expression to the collection. |
java.lang.String |
getDisplayLabel()
Return short description of current node. |
java.lang.String |
getGenericValue()
Get the string version of the address literal using C syntax. |
long |
getOffset()
Return the offset from the declaration. |
Literal |
getValue()
Return the literal whose address
is represented or null. |
java.lang.String |
toStringSpecial()
This method allows sub-classes to provide class specific stuff to the string. |
void |
visit(Predicate p)
Process a node by calling its associated routine. |
| Methods inherited from class scale.clef.expr.Literal |
|---|
executionCostEstimate, findCoefficient, formatRealValue, getConstantValue, getCount, getElement, isOne, isZero, linearity |
| Methods inherited from class scale.clef.expr.Expression |
|---|
canonical, containsDeclaration, getCoreType, getDisplayColorHint, getDisplayShapeHint, getPointedToCore, getType, hasTrueFalseResult, isSimpleOp, setType |
| Methods inherited from class scale.clef.Node |
|---|
getChild, getSourceLineNumber, numChildren, setAnnotationLevel, setReportLevel, setSourceLineNumber, toString, toString, toStringChildren |
| Methods inherited from class scale.common.Root |
|---|
addAnnotation, allAnnotations, allMatchingAnnotations, getAnnotation, getDisplayName, getDisplayString, getNodeCount, getNodeID, hasAnnotation, hasEqualAnnotation, hashCode, removeAnnotation, removeAnnotations, toStringAnnotations, toStringClass, trace, trace, trace |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public AddressLiteral(Type type,
Literal value,
long offset)
value - is the literal whose
address is representedoffset - is the offset from the start of the literal
public AddressLiteral(Type type,
Declaration decl,
long offset)
decl - is the declaration whose address is representedoffset - is the offset from the start of the declaration
public AddressLiteral(Type type,
Declaration decl)
decl - is the declaration whose address is represented| Method Detail |
|---|
public AddressLiteral copy(Type type)
public boolean equivalent(java.lang.Object exp)
equivalent in class Expressionpublic java.lang.String getDisplayLabel()
getDisplayLabel in interface DisplayNodegetDisplayLabel in class Literalpublic java.lang.String toStringSpecial()
Node
toStringSpecial in class Expressionpublic void visit(Predicate p)
Node
Each class has a visit(Predicate p) method. For
example, in class ABC:
public void visit(Predicate p)
{
p.visitABC(this);
}
and the class that implements Predicate has a method
public void visitABC(Node n)
{
ABC a = (ABC) n;
...
}
Thus, the class that implements Predicate can call
n.visit(this);where
n is a Node sub-class without
determining which specific sub-class n is.
The visit pattern basically avoids implementing a large
switch statement or defining different methods
in each class for some purpose.
visit in class LiteralPredicatepublic final long getOffset()
declaration.
public final Literal getValue()
literal whose address
is represented or null.
public final Declaration getDecl()
declaration whose
address is represented or null.
getDecl in class Nodepublic java.lang.String getGenericValue()
getValue() which
returns an object that can then be displayed using logic specific
to the target language.
getGenericValue in class Literalpublic void getDeclList(java.util.AbstractCollection<Declaration> varList)
Expression
getDeclList in class Literal
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||