@Override public void visitStatement(Statement node) { if (node.getStatementLabel() != null) { addNode(statements, node.getStatementLabel(), node); if (node instanceof ExpressionStatement) addNode(expressions, node.getStatementLabel(), ((ExpressionStatement)node).getExpression()); } super.visitStatement(node); }
private boolean isFeatureMethod(MethodNode method) { for (Statement stat : AstUtil.getStatements(method)) { String label = stat.getStatementLabel(); if (label == null) continue; // assertion: is (meant to be) a feature method, so we'll return true in the end if (method.isStatic()) errorReporter.error(method, "Feature methods must not be static"); return true; } return false; }
protected void writeStatementLabel(Statement statement) { String name = statement.getStatementLabel(); if (name != null) { Label label = controller.getCompileStack().createLocalLabel(name); controller.getMethodVisitor().visitLabel(label); } }
private Block addBlock(Method method, Statement stat) throws InvalidSpecCompileException { String label = stat.getStatementLabel(); for (BlockParseInfo blockInfo: BlockParseInfo.values()) { if (!label.equals(blockInfo.toString())) continue; checkIsValidSuccessor(method, blockInfo, stat.getLineNumber(), stat.getColumnNumber()); Block block = blockInfo.addNewBlock(method); String description = getDescription(stat); if (description == null) block.getAst().add(stat); else block.getDescriptions().add(description); return block; } throw new InvalidSpecCompileException(stat, "Unrecognized block label: " + label); }
private void buildBlocks(Method method) throws InvalidSpecCompileException { List<Statement> stats = AstUtil.getStatements(method.getAst()); Block currBlock = method.addBlock(new AnonymousBlock(method)); for (Statement stat : stats) { if (stat.getStatementLabel() == null) currBlock.getAst().add(stat); else currBlock = addBlock(method, stat); } checkIsValidSuccessor(method, BlockParseInfo.METHOD_END, method.getAst().getLastLineNumber(), method.getAst().getLastColumnNumber()); // now that statements have been copied to blocks, the original statement // list is cleared; statements will be copied back after rewriting is done stats.clear(); }
ReturnStatement ret = new ReturnStatement(expr); ret.setSourcePosition(expr); ret.setStatementLabel(statement.getStatementLabel()); listener.returnStatementAdded(ret); return ret;
@Override protected void visitStatement(Statement statement) { if (statement.getStatementLabel() != null) { String message = String.format("Statement labels may not be used in build scripts.%nIn case you tried to configure a property named '%s', replace ':' with '=' or ' ', otherwise it will not have the desired effect.", statement.getStatementLabel()); addError(message, statement); } } });
protected void visitStatement(Statement statement) { String name = statement.getStatementLabel(); if (name != null) { Label label = compileStack.createLocalLabel(name); mv.visitLabel(label); } }
protected void visitStatement(Statement statement) { String name = statement.getStatementLabel(); if (name != null) { Label label = compileStack.createLocalLabel(name); mv.visitLabel(label); } }
public void visitStatement(Statement statement) { String label = statement.getStatementLabel(); if (label!=null) { for (Iterator iter = breakLabels.iterator(); iter.hasNext();) { BreakStatement element = (BreakStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } for (Iterator iter = continueLabels.iterator(); iter.hasNext();) { ContinueStatement element = (ContinueStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } visitedLabels.add(label); } super.visitStatement(statement); }
public void visitStatement(Statement statement) { String label = statement.getStatementLabel(); if (label!=null) { for (Iterator iter = breakLabels.iterator(); iter.hasNext();) { BreakStatement element = (BreakStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } for (Iterator iter = continueLabels.iterator(); iter.hasNext();) { ContinueStatement element = (ContinueStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } visitedLabels.add(label); } super.visitStatement(statement); }
public void visitStatement(Statement statement) { String label = statement.getStatementLabel(); if (label!=null) { for (Iterator iter = breakLabels.iterator(); iter.hasNext();) { BreakStatement element = (BreakStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } for (Iterator iter = continueLabels.iterator(); iter.hasNext();) { ContinueStatement element = (ContinueStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } visitedLabels.add(label); } super.visitStatement(statement); }
public void visitStatement(Statement statement) { String label = statement.getStatementLabel(); if (label!=null) { for (Iterator iter = breakLabels.iterator(); iter.hasNext();) { BreakStatement element = (BreakStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } for (Iterator iter = continueLabels.iterator(); iter.hasNext();) { ContinueStatement element = (ContinueStatement) iter.next(); if (element.getLabel().equals(label)) iter.remove(); } visitedLabels.add(label); } super.visitStatement(statement); }
protected void visitStatement(Statement statement) { String name = statement.getStatementLabel(); if (name != null) { Label label = compileStack.createLocalLabel(name); mv.visitLabel(label); } }
protected void writeStatementLabel(Statement statement) { String name = statement.getStatementLabel(); if (name != null) { Label label = controller.getCompileStack().createLocalLabel(name); controller.getMethodVisitor().visitLabel(label); } }
/** * Returns all {@link BooleanExpression} instances found in the given {@link BlockStatement}. */ private static List<BooleanExpression> getBooleanExpressions(BlockStatement closureBlockStatement) { final List<Statement> statementList = closureBlockStatement.getStatements(); List<BooleanExpression> booleanExpressions = new ArrayList<BooleanExpression>(); for (Statement stmt : statementList) { BooleanExpression tmp = null; if (stmt instanceof ExpressionStatement && ((ExpressionStatement) stmt).getExpression() instanceof BooleanExpression) { tmp = (BooleanExpression) ((ExpressionStatement) stmt).getExpression(); tmp.setNodeMetaData("statementLabel", stmt.getStatementLabel()); } else if (stmt instanceof ExpressionStatement) { Expression expression = ((ExpressionStatement) stmt).getExpression(); tmp = new BooleanExpression(expression); tmp.setSourcePosition(expression); tmp.setNodeMetaData("statementLabel", stmt.getStatementLabel()); } booleanExpressions.add(tmp); } return booleanExpressions; }
protected Statement labelledStatement(AST labelNode) { AST node = labelNode.getFirstChild(); String label = identifier(node); Statement statement = statement(node.getNextSibling()); if (statement.getStatementLabel() == null) // if statement has multiple labels, retain the last one statement.setStatementLabel(label); return statement; }
protected Statement labelledStatement(AST labelNode) { AST node = labelNode.getFirstChild(); String label = identifier(node); Statement statement = statement(node.getNextSibling()); if (statement.getStatementLabel() == null) // if statement has multiple labels, retain the last one statement.setStatementLabel(label); return statement; }
protected Statement labelledStatement(AST labelNode) { AST node = labelNode.getFirstChild(); String label = identifier(node); Statement statement = statement(node.getNextSibling()); if (statement.getStatementLabel() == null) // if statement has multiple labels, retain the last one statement.setStatementLabel(label); return statement; }
ReturnStatement ret = new ReturnStatement(expr); ret.setSourcePosition(expr); ret.setStatementLabel(statement.getStatementLabel()); return ret;