envgen.codegen
Class UniversalDriverGenerator

java.lang.Object
  |
  +--envgen.codegen.AbstractDriverGenerator
        |
        +--envgen.codegen.JavaDriverGenerator
              |
              +--envgen.codegen.UniversalDriverGenerator
All Implemented Interfaces:
ICodeGenerator

public class UniversalDriverGenerator
extends JavaDriverGenerator

Generates universal drivers.


Field Summary
(package private)  int debug
          Set to print debugging messages.
(package private)  boolean ifElseCodeCond
           
(package private)  int numThreads
           
 
Fields inherited from class envgen.codegen.JavaDriverGenerator
atomicStepsMode, defaultInstantiations, defaultPropositions
 
Fields inherited from class envgen.codegen.AbstractDriverGenerator
envTable, unitInterface, unitTable, userSpec
 
Constructor Summary
UniversalDriverGenerator(java.util.HashMap unitTable, java.util.HashMap envTable, UnitInterface unitInterface)
           
 
Method Summary
protected  soot.SootClass genIfElseThread()
          Constructs soot class that represents a universal thread using if-else statement in its run method.
 soot.Body genIfElseUniversalRunBody()
           
 void genMainFromSpec(soot.util.Chain units)
           
protected  soot.SootClass genThread()
          Constructs soot class that represents a universal threas using switch statement in the body of its run method.
 void genThreads()
           
 soot.Body genUniversalRunBody()
           
 
Methods inherited from class envgen.codegen.JavaDriverGenerator
genAssignmentStmt, genAtomicPropStmt, genMainRunBody, genMainThread, genMethodStmt, genPropositionStmt, genThreadBasics, genThreadConstructorBody, genTryCatchStmt
 
Methods inherited from class envgen.codegen.AbstractDriverGenerator
genCode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ifElseCodeCond

boolean ifElseCodeCond

numThreads

int numThreads

debug

int debug
Set to print debugging messages.

Constructor Detail

UniversalDriverGenerator

public UniversalDriverGenerator(java.util.HashMap unitTable,
                                java.util.HashMap envTable,
                                UnitInterface unitInterface)
Method Detail

genThreads

public void genThreads()
Specified by:
genThreads in class AbstractDriverGenerator

genIfElseThread

protected soot.SootClass genIfElseThread()
Constructs soot class that represents a universal thread using if-else statement in its run method.


genThread

protected soot.SootClass genThread()
Constructs soot class that represents a universal threas using switch statement in the body of its run method.


genMainFromSpec

public void genMainFromSpec(soot.util.Chain units)
Specified by:
genMainFromSpec in class JavaDriverGenerator

genUniversalRunBody

public soot.Body genUniversalRunBody()

genIfElseUniversalRunBody

public soot.Body genIfElseUniversalRunBody()