本文整理汇总了Java中jdk.nashorn.internal.ir.EmptyNode类的典型用法代码示例。如果您正苦于以下问题:Java EmptyNode类的具体用法?Java EmptyNode怎么用?Java EmptyNode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
EmptyNode类属于jdk.nashorn.internal.ir包,在下文中一共展示了EmptyNode类的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: leaveIfNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public Node leaveIfNode(final IfNode ifNode) {
final Node test = ifNode.getTest();
if (test instanceof LiteralNode.PrimitiveLiteralNode) {
final boolean isTrue = ((LiteralNode.PrimitiveLiteralNode<?>)test).isTrue();
final Block executed = isTrue ? ifNode.getPass() : ifNode.getFail();
final Block dropped = isTrue ? ifNode.getFail() : ifNode.getPass();
final List<Statement> statements = new ArrayList<>();
if (executed != null) {
statements.addAll(executed.getStatements()); // Get statements form executed branch
}
if (dropped != null) {
extractVarNodes(dropped, statements); // Get var-nodes from non-executed branch
}
if (statements.isEmpty()) {
return new EmptyNode(ifNode);
}
return BlockStatement.createReplacement(ifNode, ifNode.getFinish(), statements);
}
return ifNode;
}
示例2: handleBlock
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
private boolean handleBlock(final Block block, final boolean sortStats) {
// FIXME: revisit this!
if (block.isSynthetic()) {
final int statCount = block.getStatementCount();
switch (statCount) {
case 0: {
final EmptyNode emptyNode = new EmptyNode(-1, block.getToken(), block.getFinish());
curStat = new EmptyStatementTreeImpl(emptyNode);
return false;
}
case 1: {
curStat = translateStat(block.getStatements().get(0));
return false;
}
default: {
// fall through
break;
}
}
}
final List<? extends Statement> stats = block.getStatements();
curStat = new BlockTreeImpl(block,
translateStats(sortStats? getOrderedStatements(stats) : stats));
return false;
}
示例3: leaveIfNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public Node leaveIfNode(final IfNode ifNode) {
final Node test = ifNode.getTest();
if (test instanceof LiteralNode.PrimitiveLiteralNode) {
final boolean isTrue = ((LiteralNode.PrimitiveLiteralNode<?>)test).isTrue();
final Block executed = isTrue ? ifNode.getPass() : ifNode.getFail();
final Block dropped = isTrue ? ifNode.getFail() : ifNode.getPass();
final List<Statement> statements = new ArrayList<>();
if (executed != null) {
statements.addAll(executed.getStatements()); // Get statements form executed branch
}
if (dropped != null) {
extractVarNodesFromDeadCode(dropped, statements); // Get var-nodes from non-executed branch
}
if (statements.isEmpty()) {
return new EmptyNode(ifNode);
}
return BlockStatement.createReplacement(ifNode, ifNode.getFinish(), statements);
}
return ifNode;
}
示例4: emptyStatement
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
/**
* EmptyStatement :
* ;
*
* See 12.3
*
* Parse an empty statement.
*/
private void emptyStatement() {
if (env._empty_statements) {
appendStatement(new EmptyNode(line, token, Token.descPosition(token) + Token.descLength(token)));
}
// SEMICOLON checked in caller.
next();
}
示例5: enterEmptyNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public boolean enterEmptyNode(final EmptyNode emptyNode) {
enterDefault(emptyNode);
type("EmptyStatement");
return leave();
}
示例6: enterEmptyNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public boolean enterEmptyNode(final EmptyNode emptyNode) {
if(!method.isReachable()) {
return false;
}
enterStatement(emptyNode);
return false;
}
示例7: leaveIfNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public Node leaveIfNode(final IfNode ifNode) {
final Node test = ifNode.getTest();
if (test instanceof LiteralNode) {
final Block shortCut = ((LiteralNode<?>)test).isTrue() ? ifNode.getPass() : ifNode.getFail();
if (shortCut != null) {
return new BlockStatement(ifNode.getLineNumber(), shortCut);
}
return new EmptyNode(ifNode);
}
return ifNode;
}
示例8: enterEmptyNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public boolean enterEmptyNode(final EmptyNode emptyNode) {
return false;
}
示例9: enterEmptyNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public boolean enterEmptyNode(final EmptyNode emptyNode) {
curStat = new EmptyStatementTreeImpl(emptyNode);
return false;
}
示例10: EmptyStatementTreeImpl
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
EmptyStatementTreeImpl(final EmptyNode node) {
super(node);
}
示例11: enterEmptyNode
import jdk.nashorn.internal.ir.EmptyNode; //导入依赖的package包/类
@Override
public boolean enterEmptyNode(final EmptyNode emptyNode) {
// Don't even record the line number, it's irrelevant as there's no code.
return false;
}