Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

JPFOptions.java

00001 package gov.nasa.arc.ase.jpf;
00002 
00003 import gov.nasa.arc.ase.util.*;
00004 import java.util.*;
00005 import java.net.*;
00006 
00007 public class JPFOptions extends Options {
00008   public boolean    help            = false;
00009   public boolean    version         = false;
00010   
00011   public boolean    debug           = false;
00012   public boolean    verbose         = false;
00013   public boolean    quiet           = false;
00014 
00015   public Debug      debugs          = null;
00016 
00017   public boolean    bandera         = false;
00018   public boolean    po_reduction        = false;
00019   public boolean    notify          = false;
00020 
00021   public boolean    verify          = true;
00022   public boolean    assertions      = false;
00023 
00024 // ifdef BUCHI
00025 
00026 //#endif BUCHI
00027 
00028   /**************************************************************/
00029   public boolean        real_counterexample     = false;
00030   public boolean        path_simulation         = false;
00031   /**************************************************************/
00032 
00033 // ifdef DISTRIBUTED
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 // ifdef SIBLING_STORING
00045 
00046 //#endif SIBLING_STORING
00047 // ifdef SIBLING_CACHING
00048 
00049 
00050 //#endif SIBLING_CACHING
00051 // ifdef CHILDREN_LOOKAHEAD
00052 
00053 
00054 //#endif CHILDREN_LOOKAHEAD
00055 //#endif DISTRIBUTED
00056 
00057   public boolean    interactive     = false;
00058   public int        report_period       = 10;
00059 
00060   public boolean    atomic_lines        = true;
00061 
00062 // ifdef DISTRIBUTED
00063 
00064 
00065 
00066 
00067 
00068 
00069 
00070 
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 //#endif DISTRIBUTED
00087   public JPFOptions(Class m) {
00088     super(m, "class", false);
00089     addParser("[Ljava.lang.String;", "parseStringArray");
00090     addParser("gov.nasa.arc.ase.util.Debug", "parseDebug");
00091     addPrinter("[Ljava.lang.String;", "printStringArray");
00092     addPrinter("gov.nasa.arc.ase.util.Debug", "printDebug");
00093   }  
00094   public String[] parse(String[] args) {
00095     String[] p = super.parse(args);
00096 
00097     if(debug)
00098       Debug.setDebugLevel(Debug.DEBUG);
00099     else if(verbose)
00100       Debug.setDebugLevel(Debug.MESSAGE);
00101     else if(quiet)
00102       Debug.setDebugLevel(Debug.ERROR);
00103     else
00104       Debug.setDebugLevel(Debug.WARNING);
00105 
00106 // ifdef DISTRIBUTED
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131 
00132 
00133 
00134 // ifdef SIBLING_STORING
00135 
00136 
00137 
00138 
00139 
00140 //#endif SIBLING_STORING
00141 
00142 //#endif DISTRIBUTED
00143 
00144     return p;
00145   }  
00146   public Object parseDebug(String s) {
00147     if(s == null) throw new IllegalArgumentException();
00148 
00149     StringTokenizer ps = new StringTokenizer(s, ",");
00150 
00151     while(ps.hasMoreTokens()) {
00152       String p = ps.nextToken();
00153 
00154       StringTokenizer st = new StringTokenizer(p, "=");
00155       if(st.countTokens() == 1) {
00156     String kind = st.nextToken();
00157     int k;
00158 
00159     if((k = Debug.mapKind(kind)) == -1) {
00160       Debug.println(Debug.ERROR, "invalid debug kind -- " + kind);
00161       return null;
00162     }
00163 
00164     Debug.setDebugLevel(Debug.DEBUG, k);
00165       } else if(st.countTokens() == 2) {
00166     String kind = st.nextToken();
00167     String level = st.nextToken();
00168     int k, l;
00169 
00170     if((k = Debug.mapKind(kind)) == -1) {
00171       Debug.println(Debug.ERROR, "invalid debug kind -- " + kind);
00172       return null;
00173     }
00174     if((l = Debug.mapLevel(level)) == -1) {
00175       Debug.println(Debug.ERROR, "invalid debug level -- " + level);
00176       return null;
00177     }
00178 
00179     Debug.setDebugLevel(l, k);
00180       } else {
00181     Debug.println(Debug.ERROR, "invalid syntax -- -debugs " + s);
00182     return null;
00183       }
00184     }
00185 
00186     return null;
00187   }  
00188   public Object parseStringArray(String s) {
00189     if(s == null) throw new IllegalArgumentException();
00190     StringTokenizer st = new StringTokenizer(s, ",");
00191     int l = st.countTokens();
00192     String[] strs = new String[l];
00193 
00194     for(int i = 0; i < l; i++)
00195       strs[i] = st.nextToken();
00196 
00197     return strs;
00198   }  
00199   public String printDebug(Object o) {
00200     return Debug.status();
00201   }  
00202   public String printStringArray(Object o) {
00203     if(o == null) return "null";
00204 
00205     String[] s = (String[])o;
00206     StringBuffer sb = new StringBuffer("[");
00207 
00208     for(int i = 0; i < s.length; i++) {
00209       if(i != 0) sb.append(",");
00210       sb.append(" ");
00211       sb.append(s[i]);
00212     }
00213     if(s.length != 0) sb.append(" ");
00214     sb.append("]");
00215 
00216     return sb.toString();
00217   }  
00218 }

Generated at Thu Feb 7 06:48:57 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001