|
|||||||||
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.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 IntegerType
public final boolean isSigned()
Type
isSigned
in class Type
public final UnsignedIntegerType returnUnsignedIntegerType()
Type
this
is a UnsignedIntegerType
, return this
. Otherwise,
return null
.
returnUnsignedIntegerType
in class Type
public java.lang.String toString()
toString
in class Type
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 IntegerType
Predicate
public 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 IntegerType
TypePredicate
public long putValueInRange(long value)
putValueInRange
in class IntegerType
public static java.util.Enumeration<UnsignedIntegerType> getTypes()
public java.lang.String mapTypeToCString()
mapTypeToCString
in class IntegerType
public java.lang.String mapTypeToF77String()
mapTypeToF77String
in class IntegerType
public static void cleanup()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |