package org.kevoree.kevscript;
import org.kevoree.ContainerRoot;
import org.kevoree.kevscript.statement.*;
import org.kevoree.kevscript.util.KevoreeRegistryResolver;
import org.kevoree.log.Log;
import org.waxeye.ast.IAST;
import java.util.Map;
/**
*
* Created by leiko on 12/15/16.
*/
public class Interpreter {
public static void interpret(IAST<Type> stmt, ContainerRoot model, Map<String, String> ctxVars,
KevoreeRegistryResolver resolver) throws Exception {
switch (stmt.getType()) {
case Add:
AddStmt.interpret(stmt, model, ctxVars, resolver);
break;
case Move:
MoveStmt.interpret(stmt, model, ctxVars);
break;
case Attach:
AttachStmt.interpret(stmt, model, ctxVars);
break;
case Detach:
DetachStmt.interpret(stmt, model, ctxVars);
break;
case AddRepo:
AddRepoStmt.interpret(stmt, model);
break;
case Remove:
RemoveStmt.interpret(stmt, model, ctxVars);
break;
case Start:
StartStmt.interpret(stmt, model, ctxVars);
break;
case Stop:
StopStmt.interpret(stmt, model, ctxVars);
break;
case Network:
NetworkStmt.interpret(stmt, model, ctxVars);
break;
case Set:
SetStmt.interpret(stmt, model, ctxVars);
break;
case AddBinding:
AddBinding.interpret(stmt, model, ctxVars);
break;
case DelBinding:
DelBinding.interpret(stmt, model, ctxVars);
break;
default:
Log.info("Deprecated KevScript statement: {} ({})", stmt.getType().name(), stmt.getPosition());
break;
}
}
}