|
|||||||||
| 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.type.Type
scale.clef.type.AtomicType
scale.clef.type.NumericType
scale.clef.type.IntegerType
scale.clef.type.UnsignedIntegerType
public class UnsignedIntegerType
The UnsignedIntegerType class represents a primitive unsigned integer type.
$Id: UnsignedIntegerType.java,v 1.4 2007-10-04 19:58:09 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Examples of unsigned integer types are C's unsigned short, unsigned int, and unsigned long types. The size of the type is specified as the minimum number of bits that are required to represent a value of that type.
| Field Summary |
|---|
| Fields inherited from class scale.clef.type.IntegerType |
|---|
cCharsAreSigned |
| Method Summary | |
|---|---|
static void |
cleanup()
Remove static lists of types. |
static UnsignedIntegerType |
create(int bits)
Re-use an existing instance of a particular integer type. |
Type |
getSignedType()
Return the equivalent signed type. |
static java.util.Enumeration<UnsignedIntegerType> |
getTypes()
Return an enumeration of all the different types. |
boolean |
isSigned()
Return true if the type is signed. |
java.lang.String |
mapTypeToCString()
Map a type to a C string. |
java.lang.String |
mapTypeToF77String()
Map a type to a Fortran string. |
long |
putValueInRange(long value)
Transform an integer value to be in a suitable range. |
UnsignedIntegerType |
returnUnsignedIntegerType()
Return if this is a UnsignedIntegerType, return this. |
java.lang.String |
toString()
|
void |
visit(Predicate p)
Process a node by calling its associated routine. |
void |
visit(TypePredicate p)
Process a node by calling its associated routine. |
| Methods inherited from class scale.clef.type.IntegerType |
|---|
bitSize, equivalent, isIntegerType, returnIntegerType, toStringShort |
| Methods inherited from class scale.clef.type.NumericType |
|---|
isNumericType, returnNumericType |
| Methods inherited from class scale.clef.type.AtomicType |
|---|
alignment, isAtomicType, memorySize, returnAtomicType |
| Methods inherited from class scale.clef.Node |
|---|
getChild, getDecl, getSourceLineNumber, numChildren, setAnnotationLevel, setReportLevel, setSourceLineNumber, toString, toStringChildren, toStringSpecial |
| 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 |
| Method Detail |
|---|
public static UnsignedIntegerType create(int bits)
public Type getSignedType()
getSignedType in class IntegerTypepublic final boolean isSigned()
Type
isSigned in class Typepublic final UnsignedIntegerType returnUnsignedIntegerType()
Typethis is a UnsignedIntegerType, return this. Otherwise,
return null.
returnUnsignedIntegerType in class Typepublic java.lang.String toString()
toString in class Typepublic 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 IntegerTypePredicatepublic void visit(TypePredicate p)
Type
Each type class has a visit(TypePredicate 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 TypePredicate 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 IntegerTypeTypePredicatepublic long putValueInRange(long value)
putValueInRange in class IntegerTypepublic static java.util.Enumeration<UnsignedIntegerType> getTypes()
public java.lang.String mapTypeToCString()
mapTypeToCString in class IntegerTypepublic java.lang.String mapTypeToF77String()
mapTypeToF77String in class IntegerTypepublic static void cleanup()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||