more code
[IRC.git] / Robust / src / IR / Flat / ParamsObject.java
1 package IR.Flat;
2 import IR.*;
3 import java.util.*;
4
5 public class ParamsObject {
6     private Vector pointerparams;
7     private Vector primitiveparams;
8     private MethodDescriptor method;
9     private int tag;
10     private Hashtable paramtotemp;
11     private Hashtable temptostore;
12     private int count;
13
14     public ParamsObject(MethodDescriptor md, int tag) {
15         pointerparams=new Vector();
16         primitiveparams=new Vector();
17         paramtotemp=new Hashtable();
18         temptostore=new Hashtable();
19         this.method=md;
20         this.tag=tag;
21         count=0;
22     }
23
24     public void addPtr(TempDescriptor t) {
25         Position p=new Position(true, pointerparams.size());
26         pointerparams.add(t);
27         paramtotemp.put(new Integer(count++), t);
28         temptostore.put(t,p);
29     }
30
31     public boolean containsTemp(TempDescriptor t) {
32         return temptostore.containsKey(t);
33     }
34
35     public void addPrim(TempDescriptor t) {
36         Position p=new Position(false, primitiveparams.size());
37         primitiveparams.add(t);
38         paramtotemp.put(new Integer(count++), t);
39         temptostore.put(t,p);
40     }
41
42     int numPointers() {
43         return pointerparams.size();
44     }
45
46     TempDescriptor getPointer(int i) {
47         return (TempDescriptor) pointerparams.get(i);
48     }
49     int numPrimitives() {
50         return primitiveparams.size();
51     }
52
53     TempDescriptor getPrimitive(int i) {
54         return (TempDescriptor) primitiveparams.get(i);
55     }
56     static class Position {
57         boolean inStruct;
58         int position;
59         Position(boolean inStruct, int position) {
60             this.inStruct=inStruct;
61             this.position=position;
62         }
63     }
64 }