当前位置: 首页>>代码示例>>Java>>正文


Java VoidVisitor类代码示例

本文整理汇总了Java中kodkod.ast.visitor.VoidVisitor的典型用法代码示例。如果您正苦于以下问题:Java VoidVisitor类的具体用法?Java VoidVisitor怎么用?Java VoidVisitor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


VoidVisitor类属于kodkod.ast.visitor包,在下文中一共展示了VoidVisitor类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: minRoots

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
 * Returns a minimal subset of {@linkplain #roots(Formula) roots} of the
 * given formula such that all nodes in the given collection are reachable
 * from those roots. The returned subset is a local minimum in that none of
 * its members can be removed without leaving some node in the descendants
 * set unreachable from the remaining roots.
 * 
 * @requires descendants in formula.*components
 * @return { s: Set<Formula> | s.elements in roots(formula) and descendants
 *         in s.elements.*components and no s': Set<Formula> |
 *         s.containsAll(s') and s'.size()<s.size() and descendants in
 *         s.elements.*components }
 * @throws IllegalArgumentException descendants !in formula.*components
 */
public static Set<Formula> minRoots(Formula formula, Collection< ? extends Node> descendants) {

	final Set<Node> desc = new IdentityHashSet<Node>(descendants);
	final VoidVisitor visitor = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();

		@Override
		protected boolean visited(Node n) {
			if (visited.add(n)) {
				desc.remove(n);
				return false;
			}
			return true;
		}
	};

	final Set<Formula> roots = new LinkedHashSet<Formula>();
	for (Formula root : roots(formula)) {
		final int size = desc.size();
		root.accept(visitor);
		if (desc.size() < size) {
			roots.add(root);
		}
		if (desc.isEmpty()) {
			break;
		}
	}

	if (!desc.isEmpty())
		throw new IllegalArgumentException(
				"descendants !in formula.*components: formula=" + formula + " ; descendants=" + descendants);

	return roots;
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:49,代码来源:Nodes.java

示例2: minRoots

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
 * Returns a minimal subset of {@linkplain #roots(Formula) roots} of the given formula such that all nodes in the given collection
 * are reachable from those roots.  The returned subset is a local minimum in that none of its members can be removed without leaving
 * some node in the descendants set unreachable from the remaining roots.
 * @requires descendants in formula.*components
 * @return { s: Set<Formula> | s.elements in roots(formula) and descendants in s.elements.*components and 
 * 				no s': Set<Formula> | s.containsAll(s') and s'.size()<s.size() and descendants in s.elements.*components }
 * @throws IllegalArgumentException - descendants !in formula.*components
 */
public static Set<Formula> minRoots(Formula formula, Collection<? extends Node> descendants) { 
	
	final Set<Node> desc = new IdentityHashSet<Node>(descendants);
	final VoidVisitor visitor = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();
		@Override
		protected boolean visited(Node n) {
			if (visited.add(n)) {
				desc.remove(n);
				return false;
			}
			return true;
		}
	};
	
	final Set<Formula> roots = new LinkedHashSet<Formula>();
	for(Formula root : roots(formula)) { 
		final int size = desc.size();
		root.accept(visitor);
		if (desc.size()<size) { roots.add(root); }
		if (desc.isEmpty()) { break; }
	}
	
	if (!desc.isEmpty()) 
		throw new IllegalArgumentException("descendants !in formula.*components: formula="+formula+" ; descendants="+descendants);
	
	return roots;
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:38,代码来源:Nodes.java

示例3: minRoots

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
 * Returns a minimal subset of {@linkplain #roots(Formula) roots} of the given formula such that all nodes in the given collection
 * are reachable from those roots.  The returned subset is a local minimum in that none of its members can be removed without leaving
 * some node in the descendants set unreachable from the remaining roots.
 * @requires descendants in formula.*components
 * @return { s: Set<Formula> | s.elements in roots(formula) and descendants in s.elements.*components and 
 * 				no s': Set<Formula> | s.containsAll(s') and s'.size()<s.size() and descendants in s.elements.*components }
 * @throws IllegalArgumentException  descendants !in formula.*components
 */
public static Set<Formula> minRoots(Formula formula, Collection<? extends Node> descendants) { 
	
	final Set<Node> desc = new IdentityHashSet<Node>(descendants);
	final VoidVisitor visitor = new AbstractVoidVisitor() {
		final Set<Node> visited = new IdentityHashSet<Node>();
		@Override
		protected boolean visited(Node n) {
			if (visited.add(n)) {
				desc.remove(n);
				return false;
			}
			return true;
		}
	};
	
	final Set<Formula> roots = new LinkedHashSet<Formula>();
	for(Formula root : roots(formula)) { 
		final int size = desc.size();
		root.accept(visitor);
		if (desc.size()<size) { roots.add(root); }
		if (desc.isEmpty()) { break; }
	}
	
	if (!desc.isEmpty()) 
		throw new IllegalArgumentException("descendants !in formula.*components: formula="+formula+" ; descendants="+descendants);
	
	return roots;
}
 
开发者ID:emina,项目名称:kodkod,代码行数:38,代码来源:Nodes.java

示例4: accept

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
@Override
public void accept(VoidVisitor visitor) {
	visitor.visit(this);
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:5,代码来源:FixFormula.java

示例5: accept

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
 * {@inheritDoc}
 * @see kodkod.ast.IntExpression#accept(kodkod.ast.visitor.VoidVisitor)
 */
@Override
public void accept(VoidVisitor visitor) {
	visitor.visit(this);
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:9,代码来源:IfIntExpression.java

示例6: accept

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
 * {@inheritDoc}
 * @see kodkod.ast.Node#accept(kodkod.ast.visitor.VoidVisitor)
 */
@Override
public void accept(VoidVisitor visitor) {
	visitor.visit(this);
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:9,代码来源:NaryFormula.java

示例7: accept

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
 * {@inheritDoc}
 * @see kodkod.ast.Node#accept(kodkod.ast.visitor.VoidVisitor)
 */
@Override
public void accept(VoidVisitor visitor) {
	visitor.visit(this);	
}
 
开发者ID:ModelWriter,项目名称:Tarski,代码行数:9,代码来源:NaryExpression.java

示例8: accept

import kodkod.ast.visitor.VoidVisitor; //导入依赖的package包/类
/**
 * {@inheritDoc}
 * 
 * @see kodkod.ast.Node#accept(kodkod.ast.visitor.VoidVisitor)
 */
public void accept(VoidVisitor visitor) {
	visitor.visit(this);
}
 
开发者ID:AlloyTools,项目名称:org.alloytools.alloy,代码行数:9,代码来源:Comprehension.java


注:本文中的kodkod.ast.visitor.VoidVisitor类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。