code: @Override
  	public Value execute(String line, DBGPReader dbgp) throws Exception
  	{
  		PExp expr = parseExpression(line, getDefaultName());
  		Environment env = getGlobalEnvironment();
  		typeCheck(expr, env);
  
  		Context mainContext = new StateContext(assistantFactory, defaultModule.getName().getLocation(), "module scope", null, assistantFactory.createAModuleModulesAssistant().getStateContext(defaultModule));
  
  		mainContext.putAll(initialContext);
  		mainContext.setThreadState(dbgp, null);
  		clearBreakpointHits();
  
  		// scheduler.reset();
  
  		InitThread iniThread = new InitThread(Thread.currentThread());
  		BasicSchedulableThread.setInitialThread(iniThread);
  
  		MainThread main = new MainThread(expr, mainContext);
  		main.start();
  		scheduler.start(main);
  
  		return main.getResult(); // Can throw ContextException
  	}
docs: Parse the line passed, type check it and evaluate it as an expression in the initial module context (with default
  module's state).
  
  @param line
  A VDM expression.
  @return The value of the expression.
  @throws Exception
  Parser, type checking or runtime errors.