@Override public Void visitBlock(Block node) { writer.print('{'); visitList(node.getStatements(), " "); writer.print('}'); return null; }
@Override public List<Error> visit(Block block) { for (Statement s : block.getStatements()) { this.visit(s); } return this.getErrors(); }
@Override public void visitBlock(Block block) { pushBlockTable(block); definedInBlock(block.getReferenceTable().ownedSymbols(), block); for (GoloStatement statement : block.getStatements()) { statement.accept(this); } dropBlockTable(); }
private List<Statement> getDelegate() { if (delegate == null) { Block block = new Block(); lonelyStatement.replaceWith(block); delegate = block.getStatements(); delegate.add(lonelyStatement); } return delegate; }
public void resolveBlock( CreateProcedureCommand command, Block block, GroupContext originalExternalGroups, TempMetadataAdapter original) throws QueryResolverException, QueryMetadataException, TeiidComponentException { LogManager.logTrace( org.teiid.logging.LogConstants.CTX_QUERY_RESOLVER, new Object[] {"Resolving block", block}); // $NON-NLS-1$ // create a new variable and metadata context for this block so that discovered metadata is not // visible else where TempMetadataStore store = original.getMetadataStore().clone(); TempMetadataAdapter metadata = new TempMetadataAdapter(original.getMetadata(), store); GroupContext externalGroups = new GroupContext(originalExternalGroups, null); // create a new variables group for this block GroupSymbol variables = ProcedureContainerResolver.addScalarGroup( ProcedureReservedWords.VARIABLES, store, externalGroups, new LinkedList<Expression>()); for (Statement statement : block.getStatements()) { resolveStatement(command, statement, externalGroups, variables, metadata); } if (block.getExceptionGroup() != null) { // create a new variable and metadata context for this block so that discovered metadata is // not visible else where store = original.getMetadataStore().clone(); metadata = new TempMetadataAdapter(original.getMetadata(), store); externalGroups = new GroupContext(originalExternalGroups, null); // create a new variables group for this block variables = ProcedureContainerResolver.addScalarGroup( ProcedureReservedWords.VARIABLES, store, externalGroups, new LinkedList<Expression>()); isValidGroup(metadata, block.getExceptionGroup()); if (block.getExceptionStatements() != null) { ProcedureContainerResolver.addScalarGroup( block.getExceptionGroup(), store, externalGroups, exceptionGroup, false); for (Statement statement : block.getExceptionStatements()) { resolveStatement(command, statement, externalGroups, variables, metadata); } } } }
@Override public void visitBlock(Block block) { incr(); space(); System.out.println("Block"); incr(); for (LocalReference ref : block.getReferenceTable().references()) { space(); System.out.println(" - " + ref); } decr(); for (GoloStatement statement : block.getStatements()) { statement.accept(this); } decr(); }
@NotNull private Function methodToFunction(@NotNull PsiMethod method, boolean notEmpty) { if (isOverrideObjectDirect(method)) { dispatcher.setExpressionVisitor(new ExpressionVisitorForDirectObjectInheritors(this)); } else { dispatcher.setExpressionVisitor(new ExpressionVisitor(this)); } methodReturnType = method.getReturnType(); IdentifierImpl identifier = new IdentifierImpl(method.getName()); Type returnType = typeToType( method.getReturnType(), ConverterUtil.isAnnotatedAsNotNull(method.getModifierList())); Block body = hasFlag(J2KConverterFlags.SKIP_BODIES) ? Block.EMPTY_BLOCK : blockToBlock(method.getBody(), notEmpty); // #TODO Element params = createFunctionParameters(method); List<Element> typeParameters = elementsToElementList(method.getTypeParameters()); Set<String> modifiers = modifiersListToModifiersSet(method.getModifierList()); if (isOverrideAnyMethodExceptMethodsFromObject(method)) { modifiers.add(Modifier.OVERRIDE); } if (method.getParent() instanceof PsiClass && ((PsiClass) method.getParent()).isInterface()) { modifiers.remove(Modifier.ABSTRACT); } if (isNotOpenMethod(method)) { modifiers.add(Modifier.NOT_OPEN); } if (method.isConstructor()) { // TODO: simplify boolean isPrimary = isConstructorPrimary(method); return new Constructor( identifier, modifiers, returnType, typeParameters, params, new Block(removeEmpty(body.getStatements()), false), isPrimary); } return new Function(identifier, modifiers, returnType, typeParameters, params, body); }