1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package codeline;
- import java.util.Stack;
- import processor.ControlFlow;
- import processor.Memory;
- public abstract class CodeLine {
-
- public interface BackwardAction
- {
- public void backward( Memory m );
- }
-
- protected Stack<BackwardAction> actions;
- protected int lineId;
- private static int nextLineId = 0;
-
-
- public CodeLine()
- {
- synchronized( CodeLine.class ) {
- lineId = nextLineId++;
- }
- actions = new Stack<BackwardAction>();
- }
-
-
- public abstract ControlFlow runForward( Memory m );
-
-
- public void runBackward( Memory m )
- {
- if( actions.size() != 0 )
- actions.pop().backward( m );
- }
-
- public void createEmptyBackwardsAction() {
- actions.push( (Memory mem) -> {} );
- }
- }
|