本文整理汇总了Java中kodkod.ast.ExprToIntCast类的典型用法代码示例。如果您正苦于以下问题:Java ExprToIntCast类的具体用法?Java ExprToIntCast怎么用?Java ExprToIntCast使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ExprToIntCast类属于kodkod.ast包,在下文中一共展示了ExprToIntCast类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* Calls lookup(intExpr) and returns the cached value, if any. If a
* translation has not been cached, translates the expression, calls
* cache(...) on it and returns it.
*
* @return let t = lookup(intExpr) | some t => t, cache(intExpr,
* translate(intExpr))
*/
public final Int visit(ExprToIntCast intExpr) {
Int ret = lookup(intExpr);
if (ret != null)
return ret;
vars = vars.createNested();
BooleanMatrix expr = intExpr.expression().accept(this);
switch (intExpr.op()) {
case CARDINALITY :
ret = expr.cardinality();
break;
case SUM :
final IntSet ints = interpreter.ints();
ret = sum(expr, ints.iterator(), 0, ints.size() - 1);
break;
default :
throw new IllegalArgumentException("unknown operator: " + intExpr.op());
}
for (Variable v : vars)
ret.defCond().addVar(v);
vars = vars.parent();
return cache(intExpr, ret);
}
示例2: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* @ensures this.tokens' = concat[ this.tokens, "int","[",
* tokenize[node.expression], "]" ]
**/
public void visit(ExprToIntCast node) {
switch (node.op()) {
case SUM :
append("int");
append("[");
node.expression().accept(this);
append("]");
break;
case CARDINALITY :
append("#");
append("(");
node.expression().accept(this);
append(")");
break;
default :
throw new IllegalArgumentException("unknown operator: " + node.op());
}
}
示例3: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/** {@inheritDoc} */
public void visit(ExprToIntCast x) {
String newname = makename(x);
if (newname == null)
return;
String sub = make(x.expression());
switch (x.op()) {
case CARDINALITY :
file.printf("IntExpression %s=%s.count();%n", newname, sub);
break;
case SUM :
file.printf("IntExpression %s=%s.sum();%n", newname, sub);
break;
default :
throw new RuntimeException("Unknown kodkod operator \"" + x.op() + "\" encountered");
}
}
示例4: toInt
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
private IntExpression toInt(Expr x, Object y) throws Err, ErrorFatal {
// simplify: if y is int[Int[sth]] then return sth
if (y instanceof ExprToIntCast) {
ExprToIntCast y2 = (ExprToIntCast) y;
if (y2.expression() instanceof IntToExprCast)
return ((IntToExprCast) y2.expression()).intExpr();
}
// simplify: if y is Int[sth], then return sth
if (y instanceof IntToExprCast)
return ((IntToExprCast) y).intExpr();
if (y instanceof IntExpression)
return (IntExpression) y;
// [AM]: maybe this conversion should be removed
if (y instanceof Expression)
return ((Expression) y).sum();
throw new ErrorFatal(x.span(), "This should have been an integer expression.\nInstead it is " + y);
}
示例5: toInt
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
private IntExpression toInt(Expr x, Object y) throws Err, ErrorFatal {
// simplify: if y is int[Int[sth]] then return sth
if (y instanceof ExprToIntCast) {
ExprToIntCast y2 = (ExprToIntCast) y;
if (y2.expression() instanceof IntToExprCast)
return ((IntToExprCast)y2.expression()).intExpr();
}
// simplify: if y is Int[sth], then return sth
if (y instanceof IntToExprCast)
return ((IntToExprCast) y).intExpr();
if (y instanceof IntExpression)
return (IntExpression)y;
//[AM]: maybe this conversion should be removed
if (y instanceof Expression) return ((Expression) y).sum();
throw new ErrorFatal(x.span(), "This should have been an integer expression.\nInstead it is "+y);
}
示例6: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* Calls lookup(intExpr) and returns the cached value, if any.
* If a translation has not been cached, translates the expression,
* calls cache(...) on it and returns it.
* @return let t = lookup(intExpr) | some t => t,
* cache(intExpr, translate(intExpr))
*/
public final Int visit(ExprToIntCast intExpr) {
Int ret = lookup(intExpr);
if (ret!=null) return ret;
vars = vars.createNested();
BooleanMatrix expr = intExpr.expression().accept(this);
switch(intExpr.op()) {
case CARDINALITY :
ret = expr.cardinality(); break;
case SUM :
final IntSet ints = interpreter.ints();
ret = sum(expr, ints.iterator(), 0, ints.size()-1); break;
default:
throw new IllegalArgumentException("unknown operator: " + intExpr.op());
}
for (Variable v : vars) ret.defCond().addVar(v);
vars = vars.parent();
return cache(intExpr, ret);
}
示例7: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/** @ensures this.tokens' = concat[ this.tokens, "int","[",
* tokenize[node.expression], "]" ] **/
public void visit(ExprToIntCast node) {
switch(node.op()) {
case SUM:
append("int");
append("[");
node.expression().accept(this);
append("]");
break;
case CARDINALITY :
append("#");
append("(");
node.expression().accept(this);
append(")");
break;
default : throw new IllegalArgumentException("unknown operator: " + node.op());
}
}
示例8: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
public IntExpression visit(ExprToIntCast expr) {
IntExpression ret = lookup(expr);
if (ret!=null) return ret;
final ExprCastOperator op = expr.op();
final Expression child = expr.expression().accept(this);
final int hash = hash(op, child);
for(Iterator<PartialCannonicalizer.Holder<IntExpression>> itr = intExprs.get(hash); itr.hasNext(); ) {
final IntExpression next = itr.next().obj;
if (next.getClass()==ExprToIntCast.class) {
if (((ExprToIntCast)next).expression()==child)
return cache(expr, next);
}
}
ret = child==expr.expression() ? expr : child.apply(op);
intExprs.add(new PartialCannonicalizer.Holder<IntExpression>(ret, hash));
return cache(expr,ret);
}
示例9: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/** @effects this.tokens' = concat[ this.tokens, "int","[",
* tokenize[node.expression], "]" ] **/
public void visit(ExprToIntCast node) {
if (displayed(node)) return;
final boolean oldTop = notTop();
switch(node.op()) {
case SUM:
append("int");
append("[");
node.expression().accept(this);
append("]");
break;
case CARDINALITY :
append("#");
append("(");
node.expression().accept(this);
append(")");
break;
default : throw new IllegalArgumentException("unknown operator: " + node.op());
}
top = oldTop;
}
示例10: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* Calls lookup(intExpr) and returns the cached value, if any. If a
* replacement has not been cached, visits the expression's child. If
* nothing changes, the argument is cached and returned, otherwise a
* replacement expression is cached and returned.
*
* @return { i: ExprToIntCast | i.expression =
* intExpr.expression.accept(delegate) && i.op = intExpr.op}
*/
public IntExpression visit(ExprToIntCast intExpr) {
IntExpression ret = lookup(intExpr);
if (ret != null)
return ret;
final Expression expr = intExpr.expression().accept(delegate);
ret = expr == intExpr.expression() ? intExpr : expr.apply(intExpr.op());
return cache(intExpr, ret);
}
示例11: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* Calls lookup(intExpr) and returns the cached value, if any. If no cached
* value exists, visits the child, caches its return value and returns it.
*
* @return let x = lookup(intExpr) | x != null => x, cache(intExpr,
* intExpr.expression.accept(this))
*/
public Set<T> visit(ExprToIntCast intExpr) {
Set<T> ret = lookup(intExpr);
if (ret != null)
return ret;
ret = newSet();
ret.addAll(intExpr.expression().accept(this));
return cache(intExpr, ret);
}
示例12: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/** {@inheritDoc} */
public void visit(ExprToIntCast x) {
String newname=makename(x); if (newname==null) return;
String sub=make(x.expression());
switch(x.op()) {
case CARDINALITY: file.printf("IntExpression %s=%s.count();%n", newname, sub); break;
case SUM: file.printf("IntExpression %s=%s.sum();%n", newname, sub); break;
default: throw new RuntimeException("Unknown kodkod operator \""+x.op()+"\" encountered");
}
}
示例13: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* Calls lookup(intExpr) and returns the cached value, if any.
* If a replacement has not been cached, visits the expression's
* child. If nothing changes, the argument is cached and
* returned, otherwise a replacement expression is cached and returned.
* @return { i: ExprToIntCast | i.expression = intExpr.expression.accept(this) && i.op = intExpr.op}
*/
public IntExpression visit(ExprToIntCast intExpr) {
IntExpression ret = lookup(intExpr);
if (ret!=null) return ret;
final Expression expr = intExpr.expression().accept(this);
ret = expr==intExpr.expression() ? intExpr : expr.apply(intExpr.op());
return cache(intExpr, ret);
}
示例14: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* Calls lookup(intExpr) and returns the cached value, if any.
* If no cached value exists, visits the child, caches its return value and returns it.
* @return let x = lookup(intExpr) |
* x != null => x,
* cache(intExpr, intExpr.expression.accept(this))
*/
public Set<T> visit(ExprToIntCast intExpr) {
Set<T> ret = lookup(intExpr);
if (ret!=null) return ret;
ret = newSet();
ret.addAll(intExpr.expression().accept(this));
return cache(intExpr,ret);
}
示例15: visit
import kodkod.ast.ExprToIntCast; //导入依赖的package包/类
/**
* Calls lookup(intExpr) and returns the cached value, if any.
* If a translation has not been cached, translates the expression,
* calls cache(...) on it and returns it.
* @return let t = lookup(intExpr) | some t => t,
* cache(intExpr, translate(intExpr))
*/
public final Int visit(ExprToIntCast intExpr) {
Int ret = lookup(intExpr);
if (ret!=null) return ret;
switch(intExpr.op()) {
case CARDINALITY :
ret = intExpr.expression().accept(this).cardinality(); break;
case SUM :
final IntSet ints = interpreter.ints();
ret = sum(intExpr.expression().accept(this), ints.iterator(), 0, ints.size()-1); break;
default:
throw new IllegalArgumentException("unknown operator: " + intExpr.op());
}
return cache(intExpr, ret);
}