| Package | Description | 
|---|---|
| org.clafer.ir | 
 This package provides the IR used as in intermediate language during
 compilation. 
 | 
| org.clafer.ir.analysis | 
 This package provides various analysis and optimizations to perform on the
 IR. 
 | 
| Modifier and Type | Interface and Description | 
|---|---|
interface  | 
IrBoolExpr
An immutable expression that evaluates to a boolean. 
 | 
| Modifier and Type | Class and Description | 
|---|---|
class  | 
IrAbstractInt  | 
class  | 
IrAcyclic  | 
class  | 
IrAdd
offset + foldl (+) addends 
 | 
class  | 
IrAllDifferent  | 
class  | 
IrAnd  | 
class  | 
IrBoolChannel  | 
class  | 
IrBoolConstant  | 
class  | 
IrBoolVar  | 
class  | 
IrCard  | 
class  | 
IrCompare
left `op` right + offset 
 | 
class  | 
IrCount  | 
class  | 
IrDiv
dividend / divisor 
 | 
class  | 
IrElement
Returns array[index]. 
 | 
class  | 
IrFilterString  | 
class  | 
IrIfOnlyIf  | 
class  | 
IrIfThenElse  | 
class  | 
IrImplies  | 
class  | 
IrIntChannel  | 
class  | 
IrIntConstant  | 
class  | 
IrIntVar  | 
class  | 
IrLone  | 
class  | 
IrMember  | 
class  | 
IrMinus  | 
class  | 
IrMul
multiplicant * multiplier 
 | 
class  | 
IrNot  | 
class  | 
IrNotImplies  | 
class  | 
IrNotMember  | 
class  | 
IrNotWithin  | 
class  | 
IrOne  | 
class  | 
IrOr  | 
class  | 
IrSelectN  | 
class  | 
IrSetSum  | 
class  | 
IrSetTest  | 
class  | 
IrSortSets  | 
class  | 
IrSortStrings  | 
class  | 
IrSortStringsChannel  | 
class  | 
IrSubsetEq  | 
class  | 
IrTernary  | 
class  | 
IrUnreachable  | 
class  | 
IrWithin  | 
class  | 
IrXor  | 
| Modifier and Type | Method and Description | 
|---|---|
static IrIntExpr | 
Irs.add(Collection<? extends IrIntExpr> addends)  | 
static IrIntExpr | 
Irs.add(int addend1,
      IrIntExpr addend2)  | 
static IrIntExpr | 
Irs.add(IrIntExpr... addends)  | 
static IrIntExpr | 
Irs.add(IrIntExpr addend1,
      int addend2)  | 
static IrIntExpr | 
IrUtil.asInt(IrSetExpr set)  | 
static IrIntExpr[] | 
IrUtil.asInts(IrSetExpr[] sets)  | 
static IrIntExpr | 
Irs.card(IrSetExpr set)  | 
static IrIntExpr | 
Irs.count(int value,
          IrIntExpr[] array)  | 
static IrIntExpr | 
Irs.div(int dividend,
      IrIntExpr divisor)  | 
static IrIntExpr | 
Irs.div(IrIntExpr dividend,
      int divisor)  | 
static IrIntExpr | 
Irs.div(IrIntExpr dividend,
      IrIntExpr divisor)  | 
static IrIntExpr | 
Irs.element(IrIntExpr[] array,
              IrIntExpr index)  | 
IrIntExpr[] | 
IrAdd.getAddends()  | 
IrIntExpr | 
IrTernary.getAlternative()  | 
IrIntExpr[] | 
IrCount.getArray()  | 
IrIntExpr[] | 
IrElement.getArray()  | 
IrIntExpr[] | 
IrArrayToSet.getArray()  | 
IrIntExpr | 
IrTernary.getConsequent()  | 
IrIntExpr | 
IrDiv.getDividend()  | 
IrIntExpr | 
IrDiv.getDivisor()  | 
IrIntExpr[] | 
IrUnreachable.getEdges()  | 
IrIntExpr[] | 
IrAcyclic.getEdges()  | 
IrIntExpr | 
IrNotMember.getElement()  | 
IrIntExpr | 
IrMember.getElement()  | 
IrIntExpr | 
IrMinus.getExpr()  | 
IrIntExpr | 
IrElement.getIndex()  | 
IrIntExpr[] | 
IrIntChannel.getInts()  | 
IrIntExpr[] | 
IrSortStringsChannel.getInts()  | 
IrIntExpr | 
IrCompare.getLeft()  | 
IrIntExpr | 
IrMul.getMultiplicand()  | 
IrIntExpr | 
IrMul.getMultiplier()  | 
IrIntExpr | 
IrSelectN.getN()  | 
IrIntExpr[] | 
IrAllDifferent.getOperands()  | 
IrIntExpr[] | 
IrJoinFunction.getRefs()  | 
IrIntExpr[] | 
IrFilterString.getResult()  | 
IrIntExpr | 
IrCompare.getRight()  | 
IrIntExpr[] | 
IrFilterString.getString()  | 
IrIntExpr[][] | 
IrSortStrings.getStrings()  | 
IrIntExpr[][] | 
IrSortStringsChannel.getStrings()  | 
IrIntExpr | 
IrNotWithin.getValue()  | 
IrIntExpr | 
IrSingleton.getValue()  | 
IrIntExpr | 
IrWithin.getValue()  | 
static IrIntExpr | 
Irs.minus(IrIntExpr expr)  | 
static IrIntExpr | 
Irs.mul(int multiplicand,
      IrIntExpr multiplier)  | 
static IrIntExpr | 
Irs.mul(IrIntExpr multiplicand,
      int multiplier)  | 
static IrIntExpr | 
Irs.mul(IrIntExpr multiplicand,
      IrIntExpr multiplier)  | 
IrIntExpr[][] | 
IrRewriter.rewrite(IrIntExpr[][] exprs,
              T t)  | 
IrIntExpr[] | 
IrRewriter.rewrite(IrIntExpr[] exprs,
              T t)  | 
IrIntExpr | 
IrRewriter.rewrite(IrIntExpr expr,
              T t)  | 
static IrIntExpr | 
Irs.sub(Collection<? extends IrIntExpr> subtrahends)  | 
static IrIntExpr | 
Irs.sub(int minuend,
      IrIntExpr subtrahend)  | 
static IrIntExpr | 
Irs.sub(IrIntExpr... subtrahends)  | 
static IrIntExpr | 
Irs.sub(IrIntExpr minuend,
      int subtrahend)  | 
static IrIntExpr | 
Irs.sum(IrSetExpr set)  | 
static IrIntExpr | 
Irs.ternary(IrBoolExpr antecedent,
              IrIntExpr consequent,
              IrIntExpr alternative)  | 
IrIntExpr | 
IrRewriter.visit(IrAcyclic ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrAdd ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrCard ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrCount ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrDiv ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrElement ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrMinus ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrMul ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrSetSum ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrTernary ir,
          T a)  | 
IrIntExpr | 
IrRewriter.visit(IrUnreachable ir,
          T a)  | 
| Modifier and Type | Method and Description | 
|---|---|
static IrBoolExpr | 
Irs.acyclic(IrIntExpr[] edges)  | 
static IrIntExpr | 
Irs.add(int addend1,
      IrIntExpr addend2)  | 
static IrIntExpr | 
Irs.add(IrIntExpr... addends)  | 
static IrIntExpr | 
Irs.add(IrIntExpr addend1,
      int addend2)  | 
static IrBoolExpr | 
Irs.allDifferent(IrIntExpr[] ints)  | 
static IrSetExpr | 
Irs.arrayToSet(IrIntExpr[] array,
                    Integer globalCardinality)  | 
static IrBoolExpr | 
Irs.compare(int left,
              IrCompare.Op op,
              IrIntExpr right)  | 
static IrBoolExpr | 
Irs.compare(IrIntExpr left,
              IrCompare.Op op,
              int right)  | 
static IrBoolExpr | 
Irs.compare(IrIntExpr left,
              IrCompare.Op op,
              IrIntExpr right)  | 
static IrUtil.Ordering | 
IrUtil.compare(IrIntExpr a,
              IrIntExpr b)  | 
static IrUtil.Ordering | 
IrUtil.compareString(IrIntExpr[] a,
                          IrIntExpr[] b)  | 
static IrUtil.Ordering | 
IrUtil.compareString(IrIntExpr[] a,
                          IrIntExpr[] b)  | 
static IrUtil.Ordering | 
IrUtil.compareString(IrIntExpr[] a,
                          IrIntExpr[] b,
                          int index)  | 
static IrUtil.Ordering | 
IrUtil.compareString(IrIntExpr[] a,
                          IrIntExpr[] b,
                          int index)  | 
static IrIntExpr | 
Irs.count(int value,
          IrIntExpr[] array)  | 
static IrIntExpr | 
Irs.div(int dividend,
      IrIntExpr divisor)  | 
static IrIntExpr | 
Irs.div(IrIntExpr dividend,
      int divisor)  | 
static IrIntExpr | 
Irs.div(IrIntExpr dividend,
      IrIntExpr divisor)  | 
static IrIntExpr | 
Irs.element(IrIntExpr[] array,
              IrIntExpr index)  | 
static IrIntExpr | 
Irs.element(IrIntExpr[] array,
              IrIntExpr index)  | 
static IrBoolExpr | 
Irs.equal(int left,
          IrIntExpr right)  | 
static IrBoolExpr | 
Irs.equal(IrIntExpr[] left,
          IrIntExpr[] right)  | 
static IrBoolExpr | 
Irs.equal(IrIntExpr[] left,
          IrIntExpr[] right)  | 
static IrBoolExpr | 
Irs.equal(IrIntExpr left,
          int right)  | 
static IrBoolExpr | 
Irs.equal(IrIntExpr left,
          IrIntExpr right)  | 
static IrBoolExpr | 
Irs.filterString(IrSetExpr set,
                        int offset,
                        IrIntExpr[] string,
                        IrIntExpr[] result)  | 
static IrBoolExpr | 
Irs.filterString(IrSetExpr set,
                        int offset,
                        IrIntExpr[] string,
                        IrIntExpr[] result)  | 
static IrBoolExpr | 
Irs.filterString(IrSetExpr set,
                        IrIntExpr[] string,
                        IrIntExpr[] result)  | 
static IrBoolExpr | 
Irs.filterString(IrSetExpr set,
                        IrIntExpr[] string,
                        IrIntExpr[] result)  | 
static Integer | 
IrUtil.getConstant(IrIntExpr i)  | 
static int[] | 
IrUtil.getConstant(IrIntExpr[] is)  | 
static IrBoolExpr | 
Irs.greaterThan(int left,
                      IrIntExpr right)  | 
static IrBoolExpr | 
Irs.greaterThan(IrIntExpr left,
                      int right)  | 
static IrBoolExpr | 
Irs.greaterThan(IrIntExpr left,
                      IrIntExpr right)  | 
static IrBoolExpr | 
Irs.greaterThanEqual(int left,
                                IrIntExpr right)  | 
static IrBoolExpr | 
Irs.greaterThanEqual(IrIntExpr left,
                                int right)  | 
static IrBoolExpr | 
Irs.greaterThanEqual(IrIntExpr left,
                                IrIntExpr right)  | 
static IrBoolExpr | 
Irs.intChannel(IrIntExpr[] ints,
                    IrSetExpr[] sets)  | 
static boolean | 
IrUtil.isConstant(IrIntExpr i)  | 
static IrSetExpr | 
Irs.joinFunction(IrSetExpr take,
                        IrIntExpr[] refs,
                        Integer globalCardinality)  | 
static IrBoolExpr | 
Irs.lessThan(int left,
                IrIntExpr right)  | 
static IrBoolExpr | 
Irs.lessThan(IrIntExpr left,
                int right)  | 
static IrBoolExpr | 
Irs.lessThan(IrIntExpr left,
                IrIntExpr right)  | 
static IrBoolExpr | 
Irs.lessThanEqual(int left,
                          IrIntExpr right)  | 
static IrBoolExpr | 
Irs.lessThanEqual(IrIntExpr left,
                          int right)  | 
static IrBoolExpr | 
Irs.lessThanEqual(IrIntExpr left,
                          IrIntExpr right)  | 
static IrBoolExpr | 
Irs.member(IrIntExpr element,
            IrSetExpr set)  | 
static IrIntExpr | 
Irs.minus(IrIntExpr expr)  | 
static IrIntExpr | 
Irs.mul(int multiplicand,
      IrIntExpr multiplier)  | 
static IrIntExpr | 
Irs.mul(IrIntExpr multiplicand,
      int multiplier)  | 
static IrIntExpr | 
Irs.mul(IrIntExpr multiplicand,
      IrIntExpr multiplier)  | 
static IrBoolExpr | 
Irs.notEqual(int left,
                IrIntExpr right)  | 
static IrBoolExpr | 
Irs.notEqual(IrIntExpr left,
                int right)  | 
static IrBoolExpr | 
Irs.notEqual(IrIntExpr left,
                IrIntExpr right)  | 
static IrBoolExpr | 
Irs.notMember(IrIntExpr element,
                  IrSetExpr set)  | 
static IrBoolExpr | 
Irs.notWithin(IrIntExpr value,
                  IrDomain range)  | 
IrIntExpr[][] | 
IrRewriter.rewrite(IrIntExpr[][] exprs,
              T t)  | 
IrIntExpr[] | 
IrRewriter.rewrite(IrIntExpr[] exprs,
              T t)  | 
IrIntExpr | 
IrRewriter.rewrite(IrIntExpr expr,
              T t)  | 
static IrBoolExpr | 
Irs.selectN(IrBoolExpr[] bools,
              IrIntExpr n)  | 
static IrSetExpr | 
Irs.singleton(IrIntExpr value)  | 
static IrBoolExpr | 
Irs.sort(IrIntExpr... array)  | 
static IrBoolExpr | 
Irs.sort(IrIntExpr[]... strings)  | 
static IrBoolExpr | 
Irs.sortChannel(IrIntExpr[][] strings,
                      IrIntExpr[] ints)  | 
static IrBoolExpr | 
Irs.sortChannel(IrIntExpr[][] strings,
                      IrIntExpr[] ints)  | 
static IrBoolExpr | 
Irs.sortStrict(IrIntExpr... array)  | 
static IrBoolExpr | 
Irs.sortStrict(IrIntExpr[]... strings)  | 
static IrIntExpr | 
Irs.sub(int minuend,
      IrIntExpr subtrahend)  | 
static IrIntExpr | 
Irs.sub(IrIntExpr... subtrahends)  | 
static IrIntExpr | 
Irs.sub(IrIntExpr minuend,
      int subtrahend)  | 
static IrIntExpr | 
Irs.ternary(IrBoolExpr antecedent,
              IrIntExpr consequent,
              IrIntExpr alternative)  | 
static IrBoolExpr | 
Irs.unreachable(IrIntExpr[] edges,
                      int from,
                      int to)  | 
static IrBoolExpr | 
Irs.within(IrIntExpr value,
            IrDomain range)  | 
| Modifier and Type | Method and Description | 
|---|---|
static IrIntExpr | 
Irs.add(Collection<? extends IrIntExpr> addends)  | 
static IrIntExpr | 
Irs.sub(Collection<? extends IrIntExpr> subtrahends)  | 
| Constructor and Description | 
|---|
IrAcyclic(IrIntExpr[] edges,
                  IrBoolDomain domain)  | 
IrCount(int value,
              IrIntExpr[] array,
              IrDomain domain)  | 
IrFilterString(IrSetExpr set,
                            int offset,
                            IrIntExpr[] string,
                            IrIntExpr[] result,
                            IrBoolDomain domain)  | 
IrFilterString(IrSetExpr set,
                            int offset,
                            IrIntExpr[] string,
                            IrIntExpr[] result,
                            IrBoolDomain domain)  | 
IrMinus(IrIntExpr expr,
              IrDomain domain)  | 
IrSortStringsChannel(IrIntExpr[][] strings,
                                        IrIntExpr[] ints,
                                        IrBoolDomain domain)  | 
IrSortStringsChannel(IrIntExpr[][] strings,
                                        IrIntExpr[] ints,
                                        IrBoolDomain domain)  | 
IrTernary(IrBoolExpr antecedent,
                  IrIntExpr consequent,
                  IrIntExpr alternative,
                  IrDomain domain)  | 
IrUnreachable(IrIntExpr[] edges,
                          int from,
                          int to,
                          IrBoolDomain domain)  | 
| Modifier and Type | Method and Description | 
|---|---|
static Pair<IrIntExpr,IrSetVar> | 
AnalysisUtil.getAssignCardinality(IrBoolExpr expr)  | 
static Pair<IrIntExpr,IrSetVar> | 
AnalysisUtil.getAssignCardinality(IrIntExpr left,
                                        IrIntExpr right)  | 
| Modifier and Type | Method and Description | 
|---|---|
static Pair<IrIntExpr,IrSetVar> | 
AnalysisUtil.getAssignCardinality(IrIntExpr left,
                                        IrIntExpr right)  | 
Copyright © 2013. All Rights Reserved.