001    package escjava.vcGeneration;
002    
003    import java.io.*;
004    
005    abstract public class TVisitor {
006    
007        /**
008         * Default pretty printer that may be used by implementing vistor patterns.
009         */
010        protected PrettyPrinter lib = null;
011    
012        protected/*@ non_null @*/Writer out = null;
013    
014        protected/*@ non_null @*/StringBuffer indentation = null;
015    
016        public TVisitor(Writer out) {
017            this(out, "  ", "(", ")", "\n");
018        }
019    
020        public TVisitor(Writer out, String tab, String lbr, String rbr, String nl) {
021            this.out = out;
022            lib = new PrettyPrinter(out, tab, lbr, rbr, nl);
023            indentation = new StringBuffer();
024        }
025    
026        //non automatic division
027        abstract public void visitTName(/*@ non_null @*/TName n) throws IOException;
028        
029        abstract public void visitTRoot(/*@ non_null @*/TRoot n) throws IOException;
030    
031        // class created using the perl script
032        abstract public void visitTBoolImplies(/*@ non_null @*/TBoolImplies n) throws IOException;
033    
034        abstract public void visitTBoolAnd(/*@ non_null @*/TBoolAnd n) throws IOException;
035    
036        abstract public void visitTBoolOr(/*@ non_null @*/TBoolOr n) throws IOException;
037    
038        abstract public void visitTBoolNot(/*@ non_null @*/TBoolNot n) throws IOException;
039    
040        abstract public void visitTBoolEQ(/*@ non_null @*/TBoolEQ n) throws IOException;
041    
042        abstract public void visitTBoolNE(/*@ non_null @*/TBoolNE n) throws IOException;
043    
044        abstract public void visitTAllocLT(/*@ non_null @*/TAllocLT n) throws IOException;
045    
046        abstract public void visitTAllocLE(/*@ non_null @*/TAllocLE n) throws IOException;
047    
048        abstract public void visitTAnyEQ(/*@ non_null @*/TAnyEQ n) throws IOException;
049    
050        abstract public void visitTAnyNE(/*@ non_null @*/TAnyNE n) throws IOException;
051    
052        abstract public void visitTIntegralEQ(/*@ non_null @*/TIntegralEQ n) throws IOException;
053    
054        abstract public void visitTIntegralGE(/*@ non_null @*/TIntegralGE n) throws IOException;
055    
056        abstract public void visitTIntegralGT(/*@ non_null @*/TIntegralGT n) throws IOException;
057    
058        abstract public void visitTIntegralLE(/*@ non_null @*/TIntegralLE n) throws IOException;
059    
060        abstract public void visitTIntegralLT(/*@ non_null @*/TIntegralLT n) throws IOException;
061    
062        abstract public void visitTIntegralNE(/*@ non_null @*/TIntegralNE n) throws IOException;
063    
064        abstract public void visitTIntegralAdd(/*@ non_null @*/TIntegralAdd n) throws IOException;
065    
066        abstract public void visitTIntegralDiv(/*@ non_null @*/TIntegralDiv n) throws IOException;
067    
068        abstract public void visitTIntegralMod(/*@ non_null @*/TIntegralMod n) throws IOException;
069    
070        abstract public void visitTIntegralMul(/*@ non_null @*/TIntegralMul n) throws IOException;
071    
072        abstract public void visitTFloatEQ(/*@ non_null @*/TFloatEQ n) throws IOException;
073    
074        abstract public void visitTFloatGE(/*@ non_null @*/TFloatGE n) throws IOException;
075    
076        abstract public void visitTFloatGT(/*@ non_null @*/TFloatGT n) throws IOException;
077    
078        abstract public void visitTFloatLE(/*@ non_null @*/TFloatLE n) throws IOException;
079    
080        abstract public void visitTFloatLT(/*@ non_null @*/TFloatLT n) throws IOException;
081    
082        abstract public void visitTFloatNE(/*@ non_null @*/TFloatNE n) throws IOException;
083    
084        abstract public void visitTFloatAdd(/*@ non_null @*/TFloatAdd n) throws IOException;
085    
086        abstract public void visitTFloatDiv(/*@ non_null @*/TFloatDiv n) throws IOException;
087    
088        abstract public void visitTFloatMod(/*@ non_null @*/TFloatMod n) throws IOException;
089    
090        abstract public void visitTFloatMul(/*@ non_null @*/TFloatMul n) throws IOException;
091    
092        abstract public void visitTLockLE(/*@ non_null @*/TLockLE n) throws IOException;
093    
094        abstract public void visitTLockLT(/*@ non_null @*/TLockLT n) throws IOException;
095    
096        abstract public void visitTRefEQ(/*@ non_null @*/TRefEQ n) throws IOException;
097    
098        abstract public void visitTRefNE(/*@ non_null @*/TRefNE n) throws IOException;
099    
100        abstract public void visitTTypeEQ(/*@ non_null @*/TTypeEQ n) throws IOException;
101    
102        abstract public void visitTTypeNE(/*@ non_null @*/TTypeNE n) throws IOException;
103    
104        abstract public void visitTTypeLE(/*@ non_null @*/TTypeLE n) throws IOException;
105    
106        abstract public void visitTCast(/*@ non_null @*/TCast n) throws IOException;
107    
108        abstract public void visitTIs(/*@ non_null @*/TIs n) throws IOException;
109    
110        abstract public void visitTSelect(/*@ non_null @*/TSelect n) throws IOException;
111    
112        abstract public void visitTStore(/*@ non_null @*/TStore n) throws IOException;
113    
114        abstract public void visitTTypeOf(/*@ non_null @*/TTypeOf n) throws IOException;
115    
116        abstract public void visitTForAll(/*@ non_null @*/TForAll n) throws IOException;
117    
118        abstract public void visitTExist(/*@ non_null @*/TExist n) throws IOException;
119    
120        abstract public void visitTIsAllocated(/*@ non_null @*/TIsAllocated n) throws IOException;
121    
122        abstract public void visitTEClosedTime(/*@ non_null @*/TEClosedTime n) throws IOException;
123    
124        abstract public void visitTFClosedTime(/*@ non_null @*/TFClosedTime n) throws IOException;
125    
126        abstract public void visitTAsElems(/*@ non_null @*/TAsElems n) throws IOException;
127    
128        abstract public void visitTAsField(/*@ non_null @*/TAsField n) throws IOException;
129    
130        abstract public void visitTAsLockSet(/*@ non_null @*/TAsLockSet n) throws IOException;
131    
132        abstract public void visitTArrayLength(/*@ non_null @*/TArrayLength n) throws IOException;
133    
134        abstract public void visitTArrayFresh(/*@ non_null @*/TArrayFresh n) throws IOException;
135    
136        abstract public void visitTArrayShapeOne(/*@ non_null @*/TArrayShapeOne n) throws IOException;
137    
138        abstract public void visitTArrayShapeMore(/*@ non_null @*/TArrayShapeMore n) throws IOException;
139    
140        abstract public void visitTIsNewArray(/*@ non_null @*/TIsNewArray n) throws IOException;
141    
142        abstract public void visitTString(/*@ non_null @*/TString n) throws IOException;
143    
144        abstract public void visitTBoolean(/*@ non_null @*/TBoolean n) throws IOException;
145    
146        abstract public void visitTChar(/*@ non_null @*/TChar n) throws IOException;
147    
148        abstract public void visitTInt(/*@ non_null @*/TInt n) throws IOException;
149    
150        abstract public void visitTFloat(/*@ non_null @*/TFloat n) throws IOException;
151    
152        abstract public void visitTDouble(/*@ non_null @*/TDouble n) throws IOException;
153    
154        abstract public void visitTNull(/*@ non_null @*/TNull n) throws IOException;
155    
156        // added by me
157        abstract public void visitTUnset(/*@ non_null @*/ TUnset n) throws IOException;
158    
159        abstract public void visitTMethodCall(/*@ non_null @*/ TMethodCall call) throws IOException;
160    
161        abstract public void visitTIntegralSub(/*@ non_null @*/ TIntegralSub sub) throws IOException;
162        
163        abstract public void visitTSum (TSum s);
164    }