xtc.type
Class EnumeratorT

java.lang.Object
  extended by xtc.tree.Node
      extended by xtc.type.Type
          extended by xtc.type.WrappedT
              extended by xtc.type.EnumeratorT
All Implemented Interfaces:
java.lang.Iterable<java.lang.Object>, Locatable

public class EnumeratorT
extends WrappedT

An enumerator. An enumerator's type can be set after creation to support the deduction of the overall enum's type after all enumerators have been seen (C99 6.7.2.2).

Version:
$Revision: 1.39 $
Author:
Robert Grimm

Nested Class Summary
 
Nested classes/interfaces inherited from class xtc.type.Type
Type.Tag
 
Constructor Summary
EnumeratorT(Type type, java.lang.String name, java.math.BigInteger value)
          Create a new enumerator.
EnumeratorT(Type template, Type type, java.lang.String name, java.math.BigInteger value)
          Create a new enumerator.
 
Method Summary
 EnumeratorT copy()
          Create a deep copy of this type.
 java.lang.String getName()
          Get the name.
 java.math.BigInteger getValue()
          Get the value.
 boolean hasEnumerator()
          Determine whether this type contains an enumerator.
 boolean hasName(java.lang.String name)
          Determine whether this enumerator has the specified name.
 boolean isEnumerator()
          Determine whether this type is an enumerator.
 EnumeratorT toEnumerator()
          Get this type as an enumerator.
 void write(java.lang.Appendable out)
          Write a human readable representation to the specified appendable.
 Type.Tag wtag()
          Get this wrapped type's tag.
 
Methods inherited from class xtc.type.WrappedT
equals, getAttribute, getConstant, getLanguage, getLocation, getScope, getShape, getType, hasAlias, hasAnnotated, hasAttribute, hasConstant, hasEnum, hashCode, hasInstantiated, hasLanguage, hasLocation, hasParameterized, hasScope, hasShape, hasTagged, hasVariable, isWrapped, resolve, seal, setType, tag, toAlias, toAnnotated, toEnum, toInstantiated, toParameterized, toStructOrUnion, toTagged, toVariable, toWrapped
 
Methods inherited from class xtc.type.Type
addAttribute, annotate, attribute, attribute, attribute, attributes, cast, checkNotSealed, constant, constant, copy, deannotate, getAttribute, getConstant, getLanguage, getLocation, getScope, getShape, hasAttribute, hasAttribute, hasAttribute, hasAttributes, hasConstant, hasError, hasLanguage, hasLocation, hasScope, hasShape, hasStructOrUnion, hasTag, hasWTag, isAlias, isAnnotated, isArray, isBoolean, isClass, isConcrete, isDerived, isEnum, isError, isFloat, isFunction, isInstantiated, isInteger, isInterface, isInternal, isInternalParameter, isLabel, isMethod, isNamedParameter, isNumber, isPackage, isParameter, isParameterized, isPointer, isSealed, isStruct, isTuple, isUnion, isUnit, isVariable, isVariant, isVoid, isWildcard, language, locate, locate, mark, properties, removeAttribute, removeProperty, resolve, scope, seal, setLocation, setLocation, setProperty, shape, shape, toArray, toBoolean, toClass, toFloat, toFunction, toInteger, toInterface, toInternal, toInternalParameter, toLabel, toMethod, toNamedParameter, toNumber, toPackage, toParameter, toPointer, toStruct, toTuple, toUnion, toUnit, toVariant, toVoid, toWildcard, trace
 
Methods inherited from class xtc.tree.Node
add, add, addAll, addAll, addAll, addAll, addAllTo, addNode, contains, get, getBoolean, getBooleanProperty, getGeneric, getList, getNode, getProperty, getString, getStringProperty, getTokenText, hasProperty, hasTraversal, indexOf, isAnnotation, isEmpty, isGeneric, isList, isToken, iterator, lastIndexOf, remove, set, size, strip, toAnnotation, toList, toString, toToken
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

EnumeratorT

public EnumeratorT(Type type,
                   java.lang.String name,
                   java.math.BigInteger value)
Create a new enumerator. The specified type should be an integer or error type.

Parameters:
type - The type.
name - The name.
value - The value.

EnumeratorT

public EnumeratorT(Type template,
                   Type type,
                   java.lang.String name,
                   java.math.BigInteger value)
Create a new enumerator.

Parameters:
template - The type whose annotations to copy.
type - The type.
name - The name.
value - The value.
Method Detail

copy

public EnumeratorT copy()
Description copied from class: Type
Create a deep copy of this type. The resulting type is not sealed.

Specified by:
copy in class Type
Returns:
A deep copy of this type.

wtag

public Type.Tag wtag()
Description copied from class: Type
Get this wrapped type's tag. Invocations to this method are not forwarded across wrapped types.

Overrides:
wtag in class Type
Returns:
This wrapped type's tag.
See Also:
Type.tag()

isEnumerator

public boolean isEnumerator()
Description copied from class: Type
Determine whether this type is an enumerator.

Overrides:
isEnumerator in class Type
Returns:
true if this type is an enumerator.

hasEnumerator

public boolean hasEnumerator()
Description copied from class: Type
Determine whether this type contains an enumerator.

Overrides:
hasEnumerator in class WrappedT
Returns:
true if this type contains an enumerator.

toEnumerator

public EnumeratorT toEnumerator()
Description copied from class: Type
Get this type as an enumerator.

Overrides:
toEnumerator in class WrappedT
Returns:
This type as an enumerator.

hasName

public boolean hasName(java.lang.String name)
Determine whether this enumerator has the specified name.

Overrides:
hasName in class Node
Parameters:
name - The name.
Returns:
true if this enumerator has the name.

getName

public java.lang.String getName()
Get the name.

Overrides:
getName in class Node
Returns:
The name.

getValue

public java.math.BigInteger getValue()
Get the value.

Returns:
The value.

write

public void write(java.lang.Appendable out)
           throws java.io.IOException
Description copied from class: Node
Write a human readable representation to the specified appendable. If this node supports generic traversal, the default implementation writes this node in algebraic term-format; otherwise, it writes the string returned by Object.toString().

Overrides:
write in class Node
Parameters:
out - The appendable.
Throws:
java.io.IOException - Signals an I/O error.


Copyright © 2012. All Rights Reserved.