KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > jemacs > buffer > ReplMode


1 package gnu.jemacs.buffer;
2 import gnu.mapping.*;
3 import gnu.expr.Language;
4 import java.io.*;
5
6 public class ReplMode extends ProcessMode
7 {
8   BufferWriter processWriter;
9   InPort in;
10   OutPort out;
11   OutPort err;
12   Future thread;
13
14   public ReplMode (Buffer buffer, Language language, Environment environment)
15     throws java.io.IOException JavaDoc
16   {
17     lineMode = true;
18     this.buffer = buffer;
19     processMark = new Marker(buffer.pointMarker);
20     processWriter = new BufferWriter(processMark, true);
21     out = new OutPort(processWriter, true, true);
22     err = new OutPort(processWriter, true, true);
23     PipedReader preader = new PipedReader();
24     toInferior = new PipedWriter(preader);
25     in = new TtyInPort(preader, "<stdin>", out);
26     thread = new Future (new kawa.repl(language),
27              environment, in, out, err);
28     thread.setPriority(Thread.currentThread().getPriority() + 1);
29     thread.start();
30   }
31
32   public static void make (Buffer buffer, Object JavaDoc language)
33     throws java.io.IOException JavaDoc
34   {
35     Language lang = language instanceof Language ? (Language) language
36       : Language.getInstance(language.toString());
37     buffer.modes = new ReplMode (buffer, lang, Environment.getGlobal());
38   }
39 }
40
Popular Tags