|
@@ -8,6 +8,7 @@ import animation.Memory;
|
|
|
import animation.Memory.MemoryType;
|
|
|
import animation.Memory.ReadOnlyMemory;
|
|
|
import animation.PseudoCodeNode;
|
|
|
+import codelines.DeclareVariable;
|
|
|
import codelines.FunctionCall;
|
|
|
import codelines.FunctionDefinition;
|
|
|
import codelines.IfLoop;
|
|
@@ -30,16 +31,16 @@ public class PlaceBlock{
|
|
|
public String getDebugOutput( Memory m )
|
|
|
{
|
|
|
if( m.isSomewhereDefined( "v", MemoryType.LOCAL ) && !m.isSomewhereDefined( "w", MemoryType.LOCAL ) )
|
|
|
- m.<LayeredGraphNode>read( "v", MemoryType.LOCAL).setSelected( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
|
|
|
+ m.<LayeredGraphNode>read( "v", MemoryType.LOCAL ).setSelected( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
|
|
|
if( m.isSomewhereDefined( "w", MemoryType.LOCAL ) )
|
|
|
- m.<LayeredGraphNode>read( "w", MemoryType.LOCAL).setSelected( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
|
|
|
+ m.<LayeredGraphNode>read( "w", MemoryType.LOCAL ).setSelected( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
|
|
|
return super.getDebugOutput( m );
|
|
|
}
|
|
|
};
|
|
|
PseudoCodeNode ifUndef = new PseudoCodeNode( "if x[v] == undefined then", vars, tree, new IfLoop() {
|
|
|
@Override
|
|
|
protected boolean condition(ReadOnlyMemory m) {
|
|
|
- return m.<LayeredGraphNode>read( "v", MemoryType.LOCAL ).isXUndefined( m.read( "layout", MemoryType.LOCAL ) );
|
|
|
+ return m.<LayeredGraphNode>read( "v", MemoryType.LOCAL ).isXUndefined( LayoutType.fromString( m.read( "layout", MemoryType.LOCAL ) ) );
|
|
|
}
|
|
|
});
|
|
|
root.add( ifUndef );
|
|
@@ -81,7 +82,7 @@ public class PlaceBlock{
|
|
|
}
|
|
|
});
|
|
|
whilewv.add( ifPos );
|
|
|
- ifPos.add( new PseudoCodeNode( "u = layout.contains('RIGHT') ? root[fore(w)] : root[foll(w)];", vars, tree, new SetVariable<LayeredGraphNode>( "w" ) {
|
|
|
+ ifPos.add( new PseudoCodeNode( "u = layout.contains('RIGHT') ? root[fore(w)] : root[foll(w)];", vars, tree, new DeclareVariable<LayeredGraphNode>( "u" ){
|
|
|
@Override
|
|
|
protected LayeredGraphNode value(ReadOnlyMemory m) {
|
|
|
LayeredGraphNode w = m.read( "w", MemoryType.LOCAL );
|
|
@@ -90,7 +91,7 @@ public class PlaceBlock{
|
|
|
return graph.getContainedLayers().get( w.getLayer() ).get( graph.getContainedLayers().get( w.getLayer() ).indexOf( w ) - 1 );
|
|
|
return graph.getContainedLayers().get( w.getLayer() ).get( graph.getContainedLayers().get( w.getLayer() ).indexOf( w ) + 1 );
|
|
|
}
|
|
|
- }));
|
|
|
+ } ));
|
|
|
ifPos.add( new PseudoCodeNode( "call place_block( u, layout );", vars, tree, new FunctionCall( root, new String[]{ "u", "layout" } ) ) );
|
|
|
ifPos.add( new PseudoCodeNode( "sink[v] = sink[v] == v ? sink[u] : sink[v];", vars, tree, new CodeLine() {
|
|
|
@Override
|