/*---------------------------------------------------------------------------------------------------------------- * CupCarbon: A Smart City & IoT Wireless Sensor Network Simulator * www.cupcarbon.com * ---------------------------------------------------------------------------------------------------------------- * Copyright (C) 2013-2017 CupCarbon * ---------------------------------------------------------------------------------------------------------------- * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. *---------------------------------------------------------------------------------------------------------------- * CupCarbon U-One is part of the research project PERSEPTEUR supported by the * French Agence Nationale de la Recherche ANR * under the reference ANR-14-CE24-0017-01. * ---------------------------------------------------------------------------------------------------------------- **/ package cupcarbon_script; /** * @author Ahcene Bounceur * @author Molham Darwish * @version 1.0 */ public class CupCommand_GOTO extends CupCommand { protected String arg ; public CupCommand_GOTO(CupScript script, String arg) { this.script = script ; this.arg = arg ; } @Override public String execute() { if(arg.equals("++")) { script.next(); return "000"; } if(arg.equals("--")) { script.previous(); return "000"; } String idxStr = script.getVariableValue(arg); int idx; if(Character.isDigit(idxStr.charAt(0))) { idx = Integer.valueOf(idxStr); script.setIndex(idx-2); return "000"; } idx = script.getLineOfLabel(arg); script.setIndex(idx-2); return "000"; } @Override public String toString() { return "GOTO"; } }