4 public class PrintWrapper {
5 java.io.PrintWriter output;
6 StringBuffer buffered=new StringBuffer("");
8 Hashtable vartable=new Hashtable();
11 public PrintWrapper(java.io.PrintWriter output) {
14 void print(String s) {
24 private void doindent() {
25 for (int i = 0; i < indent; i++) {
29 void println(String s) {
31 buffered.append(s+"\n");
39 //Print out declarations
40 for(Iterator it=vartable.keySet().iterator();it.hasNext();) {
41 String var=(String)it.next();
43 output.println(((String)vartable.get(var))+" "+var+";");
45 output.print(buffered.toString());
46 buffered=new StringBuffer("");
47 vartable=new Hashtable();
50 void addDeclaration(String type, String varname) {
52 if (vartable.containsKey(varname)) {
53 String oldtype=(String)vartable.get(varname);
54 if (!oldtype.equals(type)) {
55 throw new Error("Internal error: Inconsistent declarations for:"+varname);
58 vartable.put(varname,type);
61 output.println(type+" "+varname+";");
63 void addDeclaration(String f) {
65 buffered.insert(0,f+"\n");