@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(AstAcceptableNode acceptableNode, State state) { state.connectivityState = ConnectivityState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.readWriteState = ReadWriteState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@Override public AstScriptNode visit(AstAcceptableNode acceptableNode, State state) { state.readState = ReadWriteState.NONE; state.writeState = ReadWriteState.NONE; AstAcceptableNode newAcceptableNode = new AstAcceptableNode(); newAcceptableNode.setRegionInfo(acceptableNode.getRegionInfo()); newAcceptableNode.setAcceptName(acceptableNode.getAcceptName()); state.streamables = newAcceptableNode.getStreamables(); for (AstStreamableNode streamable : acceptableNode.getStreamables()) { streamable.accept(this, state); } state.streams.add(newAcceptableNode); return null; }
@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; }