本文整理汇总了Java中com.google.javascript.jscomp.NodeUtil.Visitor类的典型用法代码示例。如果您正苦于以下问题:Java Visitor类的具体用法?Java Visitor怎么用?Java Visitor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Visitor类属于com.google.javascript.jscomp.NodeUtil包,在下文中一共展示了Visitor类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: replaceTypeVariablesWithUnknown
import com.google.javascript.jscomp.NodeUtil.Visitor; //导入依赖的package包/类
private Node replaceTypeVariablesWithUnknown(JSDocInfo functionJsdoc, Node typeAst) {
final List<String> typeVars = functionJsdoc.getTemplateTypeNames();
if (typeVars.isEmpty()) {
return typeAst;
}
NodeUtil.visitPreOrder(typeAst, new Visitor(){
@Override
public void visit(Node n) {
if (n.isString() && n.getParent() != null && typeVars.contains(n.getString())) {
n.replaceWith(new Node(Token.QMARK));
}
}
});
return typeAst;
}
开发者ID:google,项目名称:closure-compiler,代码行数:16,代码来源:EarlyEs6ToEs3Converter.java
示例2: maybeAddUsage
import com.google.javascript.jscomp.NodeUtil.Visitor; //导入依赖的package包/类
private void maybeAddUsage(
final NodeTraversal t,
final Node n,
Node rootTypeNode,
final boolean markStrongUsages,
Predicate<Node> pred) {
Visitor visitor =
new Visitor() {
@Override
public void visit(Node typeNode) {
if (typeNode.isString()) {
String typeString = typeNode.getString();
if (mode == Mode.SINGLE_FILE && !typeString.contains(".")) {
// If using a single-name type, it's probably something like Error, which we
// don't have externs for.
weakUsages.add(typeString);
return;
}
String rootName = Splitter.on('.').split(typeString).iterator().next();
Var var = t.getScope().getVar(rootName);
if (var == null || (var.isGlobal() && !var.isExtern())) {
if (markStrongUsages) {
usages.put(typeString, n);
} else {
// If we're not adding strong usages here, add weak usages for the prefixes of the
// namespace, like we do for GETPROP nodes. Otherwise we get an extra require
// warning for cases like:
//
// goog.require('foo.bar.SomeService');
//
// /** @constructor @extends {foo.bar.SomeService.Handler} */
// var MyHandler = function() {};
addWeakUsagesOfAllPrefixes(typeString);
}
} else {
// Even if the root namespace is in externs, add weak usages because the full
// namespace may still be goog.provided.
addWeakUsagesOfAllPrefixes(typeString);
}
}
}
};
NodeUtil.visitPreOrder(rootTypeNode, visitor, pred);
}
开发者ID:google,项目名称:closure-compiler,代码行数:46,代码来源:CheckMissingAndExtraRequires.java
示例3: verifyScopeChangesHaveBeenRecorded
import com.google.javascript.jscomp.NodeUtil.Visitor; //导入依赖的package包/类
/** Checks that the scope roots marked as changed have indeed changed */
private void verifyScopeChangesHaveBeenRecorded(String passName, Node root) {
final String passNameMsg = passName.isEmpty() ? "" : passName + ": ";
// Gather all the scope nodes that existed when the snapshot was taken.
final Set<Node> snapshotScopeNodes = new HashSet<>();
NodeUtil.visitPreOrder(
clonesByCurrent.get(root),
new Visitor() {
@Override
public void visit(Node oldNode) {
if (NodeUtil.isChangeScopeRoot(oldNode)) {
snapshotScopeNodes.add(oldNode);
}
}
},
Predicates.<Node>alwaysTrue());
NodeUtil.visitPreOrder(
root,
new Visitor() {
@Override
public void visit(Node n) {
if (n.isRoot()) {
verifyRoot(n);
} else if (NodeUtil.isChangeScopeRoot(n)) {
Node clone = clonesByCurrent.get(n);
// Remove any scope nodes that still exist.
snapshotScopeNodes.remove(clone);
verifyNode(passNameMsg, n);
if (clone == null) {
verifyNewNode(passNameMsg, n);
} else {
verifyNodeChange(passNameMsg, n, clone);
}
}
}
},
Predicates.<Node>alwaysTrue());
// Only actually deleted snapshot scope nodes should remain.
verifyDeletedScopeNodes(passNameMsg, snapshotScopeNodes);
}
开发者ID:google,项目名称:closure-compiler,代码行数:44,代码来源:ChangeVerifier.java
注:本文中的com.google.javascript.jscomp.NodeUtil.Visitor类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论