@Override public R done() { AstAcceptNode acceptNode = result.node; acceptNode.getAcceptables().add(node); return result; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { state.readState = StreamState.OPEN; state.writeState = StreamState.OPEN; acceptable.accept(this, state); } return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.connectivityState = ConnectivityState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { acceptable.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.readWriteState = ReadWriteState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) { acceptableNode.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { state.readState = ReadWriteState.NONE; state.writeState = ReadWriteState.NONE; AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) { acceptableNode.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstAcceptNode acceptNode, State state) { AstAcceptNode newAcceptNode = new AstAcceptNode(acceptNode); String acceptName = acceptNode.getAcceptName(); String newAcceptName = acceptName != null ? acceptName : String.format("~accept~%d", ++state.implicitAcceptCount); state.accepts.put(newAcceptName, newAcceptNode); state.implicitAcceptName = newAcceptName; state.streamables = newAcceptNode.getStreamables(); for (AstStreamableNode streamable : acceptNode.getStreamables()) { streamable.accept(this, state); } for (AstAcceptableNode acceptable : acceptNode.getAcceptables()) { assert equivalent(acceptName, acceptable.getAcceptName()); acceptable.accept(this, state); } state.streams.add(newAcceptNode); return null; }
@Override public AstScriptNode visit(AstScriptNode script, State state) { AstScriptNode newScript = new AstScriptNode(); newScript.setRegionInfo(script.getRegionInfo()); newScript.getProperties().addAll(script.getProperties()); state.streams = newScript.getStreams(); for (AstStreamNode stream : script.getStreams()) { stream.accept(this, state); } // remove all associated streams from the main script // But this appears to be a NOOP. Acceptables are not added as streams! for (AstAcceptNode accept : state.accepts.values()) { newScript.getStreams().removeAll(accept.getAcceptables()); } return newScript; }
state.pipelineAsMap = new LinkedHashMap<>(); for (AstAcceptableNode acceptableNode : acceptNode.getAcceptables()) {
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); String acceptName = acceptableNode.getAcceptName(); if (acceptName == null) { acceptName = state.implicitAcceptName; } AstAcceptNode acceptNode = state.accepts.get(acceptName); if (acceptNode == null) { RegionInfo regionInfo = acceptableNode.getRegionInfo(); throw new AstRegionException("Accept not found for accepted").initRegionInfo(regionInfo); } state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } // associate accepted stream to corresponding accept acceptNode.getAcceptables().add(newAcceptableNode); return null; }