@Override public void programTail() throws SemanticException { LOG.trace("Entering programTail"); // Now that we know what all the internal Routines are, wrap up the Calls. List<TreeParserSymbolScope> allScopes = new ArrayList<>(); allScopes.add(rootScope); allScopes.addAll(rootScope.getChildScopesDeep()); LinkedList<Call> calls = new LinkedList<>(); for (TreeParserSymbolScope scope : allScopes) { for (Call call : scope.getCallList()) { // Process IN HANDLE last to make sure PERSISTENT SET is processed first. if (call.isInHandle()) { calls.addLast(call); } else { calls.addFirst(call); } } } for (Call call : calls) { String routineId = call.getRunArgument(); call.wrapUp(rootScope.hasRoutine(routineId)); } }
@Override public void programTail() throws SemanticException { LOG.trace("Entering programTail"); // Now that we know what all the internal Routines are, wrap up the Calls. List<TreeParserSymbolScope> allScopes = new ArrayList<>(); allScopes.add(rootScope); allScopes.addAll(rootScope.getChildScopesDeep()); LinkedList<Call> calls = new LinkedList<>(); for (TreeParserSymbolScope scope : allScopes) { for (Call call : scope.getCallList()) { // Process IN HANDLE last to make sure PERSISTENT SET is processed first. if (call.isInHandle()) { calls.addLast(call); } else { calls.addFirst(call); } } } for (Call call : calls) { String routineId = call.getRunArgument(); call.wrapUp(rootScope.hasRoutine(routineId)); } }