package senscript;
import device.SensorNode;
public class Command_GOTO extends Command {
protected String arg ;
public Command_GOTO(SensorNode sensor, String arg) {
this.sensor = sensor ;
this.arg = arg ;
}
@Override
public double execute() {
if(arg.equals("++")) {
sensor.getScript().next();
return 0 ;
}
if(arg.equals("--")) {
sensor.getScript().previous();
return 0 ;
}
String idxStr = sensor.getScript().getVariableValue(arg);
int idx;
if(Character.isDigit(idxStr.charAt(0))) {
idx = Integer.valueOf(idxStr);
sensor.getScript().setIndex(idx-2);
return 0 ;
}
idx = sensor.getScript().getLineOfLabel(arg);
sensor.getScript().setIndex(idx-2);
return 0 ;
}
@Override
public String toString() {
return "GOTO";
}
}