forge.program
Interface ForgeType

All Superinterfaces:
ForgeExpression, ProgramElement
All Known Subinterfaces:
ForgeType.Tuple, ForgeType.Unary
All Known Implementing Classes:
BooleanDomain, ForgeDomain, InstanceDomain, IntegerDomain

public interface ForgeType
extends ForgeExpression

The type of a Forge expression.

Author:
Greg Dennis (gdennis@mit.edu)

Nested Class Summary
static interface ForgeType.Tuple
          A type that is a tuple of classes.
static interface ForgeType.Unary
          A type that is a set of classes.
 
Nested classes/interfaces inherited from interface forge.program.ForgeExpression
ForgeExpression.Leaf, ForgeExpression.Modifiable
 
Method Summary
 ForgeType difference(ForgeType type)
           
 ForgeType.Unary domain()
           
 ForgeType intersection(ForgeType type)
           
 boolean isDomain()
           
 boolean isEmpty()
           
 ForgeType join(ForgeType type)
           
 ForgeType product(ForgeType type)
           
 ForgeType projectType(int... columns)
           
 ForgeType.Unary range()
           
 boolean subtypeOf(ForgeType type)
           
 java.util.Set<? extends ForgeType.Tuple> tupleTypes()
           
 ForgeType union(ForgeType type)
           
 
Methods inherited from interface forge.program.ForgeExpression
accept, and, apply, arity, bitAnd, bitNot, bitOr, bitXor, bool, closure, compose, comprehension, difference, divide, eq, forAll, forSome, gt, gte, iden, iff, implies, in, intersection, isUnary, join, lone, lt, lte, minus, modulo, neg, no, not, one, or, override, plus, product, projection, quantify, shiftLeft, shiftRight, size, some, sum, summation, thenElse, times, type, union, unsignedShiftRight, xor
 
Methods inherited from interface forge.program.ProgramElement
program
 

Method Detail

isDomain

boolean isDomain()

isEmpty

boolean isEmpty()

subtypeOf

boolean subtypeOf(ForgeType type)

tupleTypes

java.util.Set<? extends ForgeType.Tuple> tupleTypes()

domain

ForgeType.Unary domain()
Specified by:
domain in interface ForgeExpression

range

ForgeType.Unary range()
Specified by:
range in interface ForgeExpression

projectType

ForgeType projectType(int... columns)

union

ForgeType union(ForgeType type)

difference

ForgeType difference(ForgeType type)

intersection

ForgeType intersection(ForgeType type)

product

ForgeType product(ForgeType type)

join

ForgeType join(ForgeType type)