import edu.uci.eecs.specCompiler.specExtraction.ConditionalInterface;
import edu.uci.eecs.specCompiler.specExtraction.Construct;
import edu.uci.eecs.specCompiler.specExtraction.GlobalConstruct;
+import edu.uci.eecs.specCompiler.specExtraction.IDExtractor;
import edu.uci.eecs.specCompiler.specExtraction.InterfaceConstruct;
import edu.uci.eecs.specCompiler.specExtraction.PotentialCPDefineConstruct;
import edu.uci.eecs.specCompiler.specExtraction.SequentialDefineSubConstruct;
public CodeGenerator(File[] srcFiles) {
this.srcFiles = srcFiles;
- this.contents = new HashMap<File, ArrayList<String>>();
+ _extractor = new SpecExtractor();
+ _extractor.extract(srcFiles);
+
+ this.contents = _extractor.contents;
+
this.globalContent = null;
- readSrcFiles();
this.codeAdditions = new HashMap<File, ArrayList<CodeAddition>>();
- _extractor = new SpecExtractor();
-
- _extractor.extract(srcFiles);
- _semantics = new SemanticsChecker(_extractor.getConstructs());
+ _semantics = new SemanticsChecker(_extractor.constructs);
try {
_semantics.check();
System.out.println(_semantics);
return content;
}
- private void readSrcFiles() {
- for (int i = 0; i < srcFiles.length; i++) {
- File f = srcFiles[i];
- if (!contents.containsKey(f)) {
- try {
- contents.put(f, readSrcFile(f));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
-
/**
* <p>
* Generate all the global code, including the "@DefineVar" in each