|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.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 representedMethod Detail |
---|
public AddressLiteral copy(Type type)
public boolean equivalent(java.lang.Object exp)
equivalent
in class Expression
public java.lang.String getDisplayLabel()
getDisplayLabel
in interface DisplayNode
getDisplayLabel
in class Literal
public java.lang.String toStringSpecial()
Node
toStringSpecial
in class Expression
public 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 Literal
Predicate
public 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 Node
public java.lang.String getGenericValue()
getValue()
which
returns an object that can then be displayed using logic specific
to the target language.
getGenericValue
in class Literal
public 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 |