|
|||||||||
| 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.SignedIntegerType
public class SignedIntegerType
The SignedIntegerType class represents a primitive signed integer type.
$Id: SignedIntegerType.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 signed integer types are C's short, int, and 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 SignedIntegerType |
create(int bits)
Re-use an existing instance of a particular integer type. |
Type |
getSignedType()
Return the equivalent signed type. |
static java.util.Enumeration<SignedIntegerType> |
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. |
SignedIntegerType |
returnSignedIntegerType()
Return if this is a SignedIntegerType, 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 SignedIntegerType create(int bits)
bits - is the number of bits in the representationpublic Type getSignedType()
getSignedType in class IntegerTypepublic final boolean isSigned()
Type
isSigned in class Typepublic final SignedIntegerType returnSignedIntegerType()
Typethis is a SignedIntegerType, return this. Otherwise, return
null.
returnSignedIntegerType 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<SignedIntegerType> 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 | ||||||||