Interface IPrimitiveTypeManager


@Ser public interface IPrimitiveTypeManager
A type manager specifically for primitives and built-in types. It is itself managed by a ITypeManager.
  • Method Details

    • addPrimitive

      IPrimitiveType addPrimitive(String name, int size, PrimitiveCategory category)
      Add a primitive or a compiler built-in (~primitive) type.
      Parameters:
      name - primitive name
      size - size of the primitive in bytes
      category - primitive category
      Returns:
      created primitive type
    • getSizes

      IPrimitiveSizes getSizes()
      Retrieve primitive type sizes.
      Returns:
      primitive sizes
    • getTypes

      Retrieve a list of the principal primitive types. Alternates are not returned.
      Returns:
      principal primitive types
    • getNames

      Collection<String> getNames()
      Retrieve a list of all primitive type names. Alternates are returned.
      Returns:
      primitive type names
    • getType

      IPrimitiveType getType(String name)
      Retrieve a primitive type by name.
      Parameters:
      name - primitive name
      Returns:
      primitive type, or null
    • getExactIntegerBySize

      IPrimitiveType getExactIntegerBySize(int size, boolean signed)
      Get the primitive integer fitting on the exact amount of bytes.
      Parameters:
      size - exact size in bytes
      signed - signedness
      Returns:
      primitive integer type, or null
    • getIntegerBySize

      IPrimitiveType getIntegerBySize(int size, boolean signed)
      Get the smallest primitive integer having at least the provided amount of bytes.
      Parameters:
      size - minimal size in bytes
      signed - signedness
      Returns:
      primitive integer type, or null
    • getExactFloatBySize

      IPrimitiveType getExactFloatBySize(int size)
      Get the primitive float fitting on the exact amount of bytes.
      Parameters:
      size - exact size in bytes
      Returns:
      primitive floating-point type, or null
    • isVoid

      boolean isVoid(IPrimitiveType t)
      Determine whether a primitive type is void.
      Parameters:
      t - primitive type
      Returns:
      true for void
    • isCharacter

      boolean isCharacter(IPrimitiveType t)
      Determine whether a primitive type is a character type.
      Parameters:
      t - primitive type
      Returns:
      true for a character type
    • isInteger

      boolean isInteger(IPrimitiveType t)
      Determine whether a primitive type is an integer type.
      Parameters:
      t - primitive type
      Returns:
      true for an integer type
    • isSignedInteger

      boolean isSignedInteger(IPrimitiveType t)
      Determine whether a primitive type is a signed integer type.
      Parameters:
      t - primitive type
      Returns:
      true for a signed integer type
    • isUnsignedInteger

      boolean isUnsignedInteger(IPrimitiveType t)
      Determine whether a primitive type is an unsigned integer type.
      Parameters:
      t - primitive type
      Returns:
      true for an unsigned integer type
    • isFloat

      boolean isFloat(IPrimitiveType t)
      Determine whether a primitive type is a floating-point type.
      Parameters:
      t - primitive type
      Returns:
      true for a floating-point type
    • getAlternateNames

      List<String> getAlternateNames(IPrimitiveType t)
      Retrieve alternate names for a primitive type.
      Parameters:
      t - primitive type
      Returns:
      alternate names
    • addAlternateName

      boolean addAlternateName(IPrimitiveType t, String name, boolean setAsEffectiveName)
      Add an alternate name to a primitive type.
      Parameters:
      t - primitive type
      name - alternate name
      setAsEffectiveName - true to make the name effective
      Returns:
      true if the name was added
    • setEffectiveName

      boolean setEffectiveName(IPrimitiveType t, String name)
      Set the effective name of a primitive type.
      Parameters:
      t - primitive type
      name - effective name
      Returns:
      true if the effective name was set