public static void main(String args[]) {
   Context context = new Context(10, 4);
   // 加法解释器
   IInterpreter expression = new PlusInterprater();
   int result = expression.interprete(context);
   System.out.println("Result : " + result);
 }
  public InteractiveInterpreterConsole(
      IInterpreter interpreter, String name, String prompt, String continuationPrompt) {
    super(name, CONSOLE_TYPE, null, false);

    this.interpreter = interpreter;
    commandExecutor = new CommandExecutor(this);
    consoleOutputStream = new ConsoleOutputStream(this);
    interpreter.setConsole(this);

    this.prompt = prompt;
    this.continuationPrompt = continuationPrompt;

    commandHistory = new CommandHistory();
    documentListener = new ConsoleDocumentListener(this);
    documentListener.registerListener();

    partitioner = new InterpreterConsolePartitioner();
    IDocument doc = getDocument();
    doc.setDocumentPartitioner(partitioner);
    partitioner.connect(doc);

    documentListener.enable();

    setFont();
  }
  @Override
  public void terminate() {
    boolean wasTerminated;

    synchronized (this) {
      wasTerminated = terminated;
      terminated = true;
    }

    if (!wasTerminated) {
      partitionerFinished();
      documentListener.deregisterListener();

      commandExecutor.terminate();
      interpreter.interrupt();
      interpreter.terminate();
    }
  }
 public IInterpreter createSubInterpreter() {
   return masterInterpreter.createSubInterpreter();
 }
 public String getFileType() {
   return masterInterpreter.getFileType();
 }
 public void interrupt() {
   interpreter.interrupt();
 }
 public void printTrace() {
   writeToConsole(interpreter.getTrace().toLinkedString(), true);
 }