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 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 language) 33 throws java.io.IOException 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 |