1 package polyglot.frontend; 2 3 import polyglot.ast.*; 4 import polyglot.types.*; 5 import polyglot.util.*; 6 import java.io.*; 7 import java.util.*; 8 import polyglot.main.Options; 9 10 16 public interface ExtensionInfo { 17 18 String compilerName(); 19 20 21 polyglot.main.Version version(); 22 23 26 Options getOptions(); 27 28 31 Stats getStats(); 32 33 38 void initCompiler(polyglot.frontend.Compiler compiler); 39 40 Compiler compiler(); 41 42 44 String [] fileExtensions(); 45 46 48 String [] defaultFileExtensions(); 49 50 51 String defaultFileExtension(); 52 53 54 TypeSystem typeSystem(); 55 56 57 NodeFactory nodeFactory(); 58 59 60 SourceLoader sourceLoader(); 61 62 65 void addDependencyToCurrentJob(Source s); 66 67 73 SourceJob addJob(Source source); 74 75 82 SourceJob addJob(Source source, Node ast); 83 84 97 Job spawnJob(Context c, Node ast, Job outerJob, Pass.ID begin, Pass.ID end); 98 99 100 boolean runToCompletion(); 101 102 103 boolean runToPass(Job job, Pass.ID goal) throws CyclicDependencyException; 104 105 106 boolean runAllPasses(Job job); 107 108 109 boolean readSource(FileSource source); 110 111 116 TargetFactory targetFactory(); 117 118 119 Parser parser(Reader reader, FileSource source, ErrorQueue eq); 120 121 122 List passes(Job job); 123 124 125 List passes(Job job, Pass.ID begin, Pass.ID end); 126 127 128 void beforePass(List passes, Pass.ID oldPass, Pass newPass); 129 130 131 void beforePass(List passes, Pass.ID oldPass, List newPasses); 132 133 134 void afterPass(List passes, Pass.ID oldPass, Pass newPass); 135 136 137 void afterPass(List passes, Pass.ID oldPass, List newPasses); 138 139 140 void replacePass(List passes, Pass.ID oldPass, Pass newPass); 141 142 143 void replacePass(List passes, Pass.ID oldPass, List newPasses); 144 145 146 void removePass(List passes, Pass.ID oldPass); 147 } 148
| Popular Tags
|