Changeset 2133
- Timestamp:
- 06/29/08 09:16:13 (3 months ago)
- Files:
-
- trunk/ProjectFortress/src/com/sun/fortress/compiler/Fortress.java (modified) (4 diffs)
- trunk/ProjectFortress/src/com/sun/fortress/compiler/Types.java (modified) (11 diffs)
- trunk/ProjectFortress/src/com/sun/fortress/interpreter/Driver.java (modified) (3 diffs)
- trunk/ProjectFortress/src/com/sun/fortress/interpreter/glue/WellKnownNames.java (modified) (1 diff)
- trunk/ProjectFortress/src/com/sun/fortress/repository/GraphRepository.java (modified) (13 diffs)
- trunk/ProjectFortress/src/com/sun/fortress/syntax_abstractions/util/InterpreterWrapper.java (modified) (2 diffs)
- trunk/ProjectFortress/src/com/sun/fortress/unit_tests/FileTests.java (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/ProjectFortress/src/com/sun/fortress/compiler/Fortress.java
r2132 r2133 18 18 package com.sun.fortress.compiler; 19 19 20 import com.sun.fortress.repository.FortressRepository;21 20 import java.io.File; 22 21 import java.io.FileNotFoundException; … … 25 24 import java.util.Map; 26 25 26 import com.sun.fortress.repository.FortressRepository; 27 import com.sun.fortress.repository.GraphRepository; 28 import com.sun.fortress.repository.CacheBasedRepository; 27 29 import com.sun.fortress.compiler.environments.TopLevelEnvGen; 28 30 import com.sun.fortress.compiler.index.ApiIndex; … … 50 52 public class Fortress { 51 53 52 private final FortressRepository _repository; 53 54 public Fortress(FortressRepository repository) { _repository = repository; } 55 56 // /** 57 // * Compile all definitions in the given files, and any additional sources that 58 // * they depend on, and add them to the fortress. 59 // */ 60 // public Iterable<? extends StaticError> compile(Path path, File... files) { 61 // return compile(path, IterUtil.asIterable(files)); 62 // } 63 // 64 // /** 65 // * Compile all definitions in the given files, and any additional sources that 66 // * they depend on, and add them to the fortress. 67 // */ 68 // public Iterable<? extends StaticError> compile(Path path, Iterable<File> files) { 69 // GlobalEnvironment env = new GlobalEnvironment.FromMap(_repository.apis()); 70 // 71 // FortressParser.Result pr = FortressParser.parse(files, env, path); 72 // // Parser.Result pr = Parser.parse(files, env); 73 // if (!pr.isSuccessful()) { return pr.errors(); } 74 // System.out.println("Parsing done."); 75 // 76 // return analyze(env, pr); 77 // } 78 79 /** 80 * Compile all definitions in the given files, and any additional sources that 81 * they depend on, and add them to the fortress. 82 */ 83 public Iterable<? extends StaticError> compile(Path path, String... files) { 84 85 FortressRepository bcr = Driver.fssRepository(path, _repository); 86 87 Debug.debug( 2, "Compiling files " + java.util.Arrays.asList(files) ); 88 Parser.Result result = compileInner(bcr, files); 89 90 // Parser.Result pr = Parser.parse(files, env); 91 if (!result.isSuccessful()) { return result.errors(); } 92 if (bcr.verbose()) 93 System.err.println("Parsing done."); 94 95 GlobalEnvironment env = new GlobalEnvironment.FromMap(bcr.apis()); 96 97 //return analyze(env, result); 98 return IterUtil.empty(); 99 } 54 private final FortressRepository _repository; 55 public static FortressRepository CURRENT_INTERPRETER_REPOSITORY = null; 56 57 /** 58 * This is used to communicate, clumsily, with parsers generated by syntax expansion. 59 * The interface should be improved. 60 */ 61 public static void setCurrentInterpreterRepository( FortressRepository g ){ 62 CURRENT_INTERPRETER_REPOSITORY = g; 63 } 64 65 private static FortressRepository specificRepository(Path p, FortressRepository cache ){ 66 FortressRepository fr = new GraphRepository( p, cache ); 67 CURRENT_INTERPRETER_REPOSITORY = fr; 68 return fr; 69 } 70 71 private static FortressRepository specificRepository(Path p) { 72 // This is bogus; we need to find a better way to communicate with the 73 // syntax transfomer. 74 75 return specificRepository( p, new CacheBasedRepository(ProjectProperties.ANALYZED_CACHE_DIR) ); 76 } 77 78 public static FortressRepository extendedRepository(String s, FortressRepository cache ) { 79 return specificRepository(ProjectProperties.SOURCE_PATH.prepend(s), cache); 80 } 81 82 83 84 public Fortress(FortressRepository repository) { _repository = repository; } 85 86 /** 87 * Compile all definitions in the given files, and any additional sources that 88 * they depend on, and add them to the fortress. 89 */ 90 public Iterable<? extends StaticError> compile(Path path, String... files) { 91 FortressRepository bcr = new GraphRepository( path, _repository ); 92 CURRENT_INTERPRETER_REPOSITORY = bcr; 93 94 Debug.debug( 2, "Compiling files " + java.util.Arrays.asList(files) ); 95 Parser.Result result = compileInner(bcr, files); 96 97 if (!result.isSuccessful()) { return result.errors(); } 98 if (bcr.verbose()) 99 System.err.println("Compiling done."); 100 101 GlobalEnvironment env = new GlobalEnvironment.FromMap(bcr.apis()); 102 103 return IterUtil.empty(); 104 } 100 105 101 106 private Parser.Result compileInner(FortressRepository bcr, … … 317 322 318 323 public Iterable<? extends StaticError> run(Path path, APIName componentName, boolean test, List<String> args) { 319 FortressRepository bcr = Driver.specificRepository(path);324 FortressRepository bcr = specificRepository(path); 320 325 321 326 try { trunk/ProjectFortress/src/com/sun/fortress/compiler/Types.java
r2112 r2133 33 33 34 34 import static com.sun.fortress.nodes_util.NodeFactory.*; 35 import static com.sun.fortress.interpreter.glue.WellKnownNames.*; 35 36 36 37 /** … … 45 46 46 47 public static final Id ANY_NAME = makeId("AnyType", "Any"); 47 public static final Id ARRAY_NAME = makeId( "FortressLibrary","Array");48 public static final Id ARRAY_NAME = makeId(fortressLibrary,"Array"); 48 49 public static final AnyType ANY = new AnyType(); 49 50 public static final BottomType BOTTOM = new BottomType(); 50 public static final TraitType OBJECT = makeTraitType( "FortressLibrary", "Object");51 // public static final Type TUPLE = NodeFactory.makeTraitType( "FortressBuiltin", "Tuple");52 51 public static final TraitType OBJECT = makeTraitType(fortressLibrary, "Object"); 52 // public static final Type TUPLE = NodeFactory.makeTraitType(fortressBuiltin, "Tuple"); 53 53 54 public static final Domain BOTTOM_DOMAIN = NodeFactory.makeDomain(BOTTOM); 54 55 55 56 public static final VoidType VOID = new VoidType(); 56 public static final TraitType FLOAT_LITERAL = makeTraitType( "FortressBuiltin", "FloatLiteral");57 public static final TraitType INT_LITERAL = makeTraitType( "FortressBuiltin", "IntLiteral");58 public static final TraitType BOOLEAN = makeTraitType( "FortressBuiltin", "Boolean");59 public static final TraitType CHAR = makeTraitType( "FortressBuiltin", "Char");60 public static final TraitType STRING = makeTraitType( "FortressBuiltin", "String");61 public static final TraitType REGION = makeTraitType( "FortressLibrary", "Region");62 public static final TraitType EXCEPTION = makeTraitType( "FortressLibrary", "Exception");63 public static final TraitType CHECKED_EXCEPTION = makeTraitType( "FortressLibrary", "CheckedException");64 57 public static final TraitType FLOAT_LITERAL = makeTraitType(fortressBuiltin, "FloatLiteral"); 58 public static final TraitType INT_LITERAL = makeTraitType(fortressBuiltin, "IntLiteral"); 59 public static final TraitType BOOLEAN = makeTraitType(fortressBuiltin, "Boolean"); 60 public static final TraitType CHAR = makeTraitType(fortressBuiltin, "Char"); 61 public static final TraitType STRING = makeTraitType(fortressBuiltin, "String"); 62 public static final TraitType REGION = makeTraitType(fortressLibrary, "Region"); 63 public static final TraitType EXCEPTION = makeTraitType(fortressLibrary, "Exception"); 64 public static final TraitType CHECKED_EXCEPTION = makeTraitType(fortressLibrary, "CheckedException"); 65 65 66 public static final LabelType LABEL = new LabelType(); 66 67 67 68 public static final TraitType makeVarargsParamType(Type varargsType) { 68 69 // TODO: parameterize? 69 return makeTraitType( "FortressBuiltin", "ImmutableHeapSequence");70 } 71 70 return makeTraitType(fortressBuiltin, "ImmutableHeapSequence"); 71 } 72 72 73 public static TraitType makeThreadType(Type typeArg) { 73 return makeTraitType(makeId( "FortressBuiltin", "Thread"),74 return makeTraitType(makeId(fortressBuiltin, "Thread"), 74 75 makeTypeArg(typeArg)); 75 76 } 76 77 77 78 public static Id getArrayKName(int k){ 78 79 String name = "Array"+k; 79 return makeId( "FortressLibrary",name);80 } 81 80 return makeId(fortressLibrary,name); 81 } 82 82 83 public static TraitType makeArrayType(Type elem, Type indexed){ 83 84 return makeTraitType(ARRAY_NAME, makeTypeArg(elem),makeTypeArg(indexed)); 84 85 } 85 86 86 87 public static TraitType makeArrayKType(int k, List<StaticArg> args){ 87 88 return makeTraitType(getArrayKName(k),args); 88 89 } 89 90 90 91 /** 91 92 * Create a type {@code FortressLibrary.Generator[\typeArg\]}. 92 93 */ 93 94 public static TraitType makeGeneratorType(Type typeArg) { 94 return makeTraitType(makeId( "FortressLibrary", "Generator"),95 return makeTraitType(makeId(fortressLibrary, "Generator"), 95 96 makeTypeArg(typeArg)); 96 97 } 97 98 98 99 /** 99 100 * Create a type {@code FortressLibrary.Condition[\typeArg\]}. 100 101 */ 101 102 public static TraitType makeConditionType(Type typeArg) { 102 return makeTraitType(makeId( "FortressLibrary", "Condition"),103 return makeTraitType(makeId(fortressLibrary, "Condition"), 103 104 makeTypeArg(typeArg)); 104 105 } 105 106 106 107 /** Construct the appropriate type from a list of union elements. */ 107 108 public static Type makeUnion(Iterable<Type> disjuncts) { 108 109 return MAKE_UNION.value(disjuncts); 109 110 } 110 111 111 112 /** Construct the appropriate type from a list of union elements. */ 112 113 public static final Lambda<Iterable<Type>, Type> MAKE_UNION = … … 125 126 return MAKE_INTERSECTION.value(conjuncts); 126 127 } 127 128 128 129 /** Construct the appropriate type from a list of intersection elements. */ 129 130 public static final Lambda<Iterable<Type>, Type> MAKE_INTERSECTION = … … 137 138 } 138 139 }; 139 140 140 141 /** Treat an arbitrary type as a union and enumerate its elements. */ 141 142 public static Iterable<Type> disjuncts(Type t) { 142 143 return t.accept(DISJUNCTS); 143 144 } 144 145 145 146 /** Treat an arbitrary type as a union and enumerate its elements. */ 146 147 public static final NodeVisitorLambda<Iterable<Type>> DISJUNCTS = … … 156 157 } 157 158 }; 158 159 159 160 /** Treat an arbitrary type as an intersection and enumerate its elements. */ 160 161 public static Iterable<Type> conjuncts(Type t) { … … 178 179 //} 179 180 }; 180 181 181 182 /** 182 183 * Construct the appropriate type (void, a tuple, or the type itself) from a list of … … 198 199 } 199 200 }; 200 201 201 202 /** 202 203 * Produce the union disjunct of the given vararg tuple at a certain arity. … … 237 238 } 238 239 } 239 240 240 241 /** 241 242 * Produce a map from keyword names to types. The iteration order of the … … 253 254 } 254 255 } 255 256 256 257 /** 257 258 * Construct a Domain from a single type representing the required arguments … … 265 266 return makeDomain(argsType, keywordList); 266 267 } 267 268 268 269 /** 269 270 * Construct a Domain from a single type representing the required arguments … … 296 297 // NodeFactory.makeTraitType(makeId("TotalOperater"), sargs) 297 298 // NodeFactory.makeOpArg("whoa"); 298 299 299 300 return NI.nyi(); 300 301 } 301 302 302 303 } trunk/ProjectFortress/src/com/sun/fortress/interpreter/Driver.java
r2127 r2133 91 91 import com.sun.fortress.nodes_util.NodeFactory; 92 92 import com.sun.fortress.nodes_util.NodeUtil; 93 import com.sun.fortress.repository.CacheBasedRepository;94 import com.sun.fortress.repository.GraphRepository;95 93 import com.sun.fortress.useful.BASet; 96 94 import com.sun.fortress.useful.CheckedNullPointerException; … … 106 104 import edu.rice.cs.plt.tuple.Option; 107 105 106 import static com.sun.fortress.interpreter.glue.WellKnownNames.*; 107 import static com.sun.fortress.compiler.Fortress.CURRENT_INTERPRETER_REPOSITORY; 108 108 109 public class Driver { 109 110 … … 112 113 private static boolean _libraryTest = false; 113 114 114 private static FortressRepository DEFAULT_INTERPRETER_REPOSITORY = 115 new GraphRepository( ProjectProperties.SOURCE_PATH, 116 new CacheBasedRepository( ProjectProperties.ANALYZED_CACHE_DIR ) ); 117 /* 118 ProjectProperties.noStaticAnalysis ? 119 new GraphRepository( ProjectProperties.SOURCE_PATH, 120 new CacheBasedRepository( ProjectProperties.INTERPRETER_CACHE_DIR ) ) 121 : 122 new GraphRepository( ProjectProperties.SOURCE_PATH, 123 new CacheBasedRepository( ProjectProperties.ANALYZED_CACHE_DIR ) ); 124 */ 125 /* 126 ProjectProperties.noStaticAnalysis ? 127 new BatchCachingRepository( 128 (ProjectProperties.SOURCE_PATH), 129 new CacheBasedRepository(ProjectProperties.INTERPRETER_CACHE_DIR) 130 ) 131 : 132 new BatchCachingAnalyzingRepository(false, 133 (ProjectProperties.SOURCE_PATH), 134 new CacheBasedRepository(ProjectProperties.ANALYZED_CACHE_DIR) 135 ); 136 */ 137 138 /** 139 * This is used to communicate, clumsily, with parsers generated by syntax expansion. 140 * The interface should be improved. 141 */ 142 public static FortressRepository CURRENT_INTERPRETER_REPOSITORY = null; 143 144 public static String libraryName = "FortressLibrary"; 145 public static String builtinsName = "AnyType"; 146 public static String nativesName = "FortressBuiltin"; 115 static String libraryName = fortressLibrary; 116 static String nativesName = fortressBuiltin; 117 static String builtinsName = "AnyType"; 147 118 148 119 private Driver() {}; 149 120 150 121 static public void runTests() { 151 }152 153 public static FortressRepository defaultRepository() {154 // This is bogus; we need to find a better way to communicate with the155 // syntax transfomer.156 CURRENT_INTERPRETER_REPOSITORY = DEFAULT_INTERPRETER_REPOSITORY;157 return CURRENT_INTERPRETER_REPOSITORY;158 }159 160 public static FortressRepository extendedRepository(String s) {161 return specificRepository(ProjectProperties.SOURCE_PATH.prepend(s));162 }163 164 public static FortressRepository extendedRepository(String s, FortressRepository cache ) {165 return specificRepository(ProjectProperties.SOURCE_PATH.prepend(s), cache);166 }167 168 public static FortressRepository specificRepository(Path p, FortressRepository cache ){169 FortressRepository fr = new GraphRepository( p, cache );170 CURRENT_INTERPRETER_REPOSITORY = fr;171 return fr;172 }173 174 public static FortressRepository specificRepository(Path p) {175 // This is bogus; we need to find a better way to communicate with the176 // syntax transfomer.177 178 return specificRepository( p, new CacheBasedRepository(ProjectProperties.ANALYZED_CACHE_DIR) );179 180 /*181 FortressRepository fr =182 ProjectProperties.noStaticAnalysis ?183 // new BatchCachingRepository(184 new GraphRepository(185 p,186 new CacheBasedRepository(ProjectProperties.INTERPRETER_CACHE_DIR)187 )188 :189 // new BatchCachingAnalyzingRepository(false,190 new GraphRepository(191 p,192 new CacheBasedRepository(ProjectProperties.ANALYZED_CACHE_DIR)193 );194 195 CURRENT_INTERPRETER_REPOSITORY = fr;196 return fr;197 */198 }199 200 public static void setCurrentInterpreterRepository( FortressRepository g ){201 CURRENT_INTERPRETER_REPOSITORY = g;202 }203 204 public static FortressRepository fssRepository(Path p, FortressRepository derived) {205 // This is bogus; we need to find a better way to communicate with the206 // syntax transfomer.207 208 FortressRepository fr = new GraphRepository( p, derived );209 /*210 BatchCachingAnalyzingRepository fr =211 212 new BatchCachingAnalyzingRepository(false,213 p,214 derived215 );216 */217 218 CURRENT_INTERPRETER_REPOSITORY = fr;219 return fr;220 122 } 221 123 trunk/ProjectFortress/src/com/sun/fortress/interpreter/glue/WellKnownNames.java
r1882 r2133 28 28 return "__builtinFactory"+rank; 29 29 } 30 31 public static String fortressLibrary = "FortressLibrary"; 32 public static String fortressBuiltin = "FortressBuiltin"; 33 34 public static final String[] defaultLibrary = 35 { fortressLibrary, "AnyType", fortressBuiltin, "NatReflect", 36 "NativeArray" }; 37 30 38 public static String varargsFactoryName = "__immutableFactory1"; 31 39 public static String arrayElementTypeName = "T"; trunk/ProjectFortress/src/com/sun/fortress/repository/GraphRepository.java
r2127 r2133 51 51 import com.sun.fortress.exceptions.WrappedException; 52 52 import com.sun.fortress.exceptions.MultipleStaticError; 53 import com.sun.fortress.interpreter.Driver;54 53 import com.sun.fortress.syntax_abstractions.parser.FortressParser; 55 54 import com.sun.fortress.useful.Debug; … … 66 65 import com.sun.fortress.repository.graph.GraphNode; 67 66 import com.sun.fortress.repository.graph.GraphVisitor; 67 68 import static com.sun.fortress.interpreter.glue.WellKnownNames.*; 68 69 69 70 /* A graph-based repository. This repository determines the dependency structure … … 81 82 82 83 /* files that are dependancies of everything */ 83 private static final String[] roots = {"FortressLibrary", "AnyType", "FortressBuiltin", "NatReflect", "NativeArray" };84 private static final String[] roots = defaultLibrary; 84 85 85 86 /* stores the nodes and their relationships */ … … 143 144 } 144 145 } 145 146 146 147 private class CacheVisitor implements GraphVisitor<Long, FileNotFoundException>{ 147 148 public Long visit(ApiGraphNode node) throws FileNotFoundException { … … 157 158 return findFile( node.getName(), ProjectProperties.COMP_SOURCE_SUFFIX ).lastModified(); 158 159 } 159 160 160 161 private long getFileDate( ApiGraphNode node ) throws FileNotFoundException { 161 162 return findFile( node.getName(), ProjectProperties.API_SOURCE_SUFFIX ).lastModified(); … … 356 357 return source.lastModified() > now; 357 358 } 358 359 359 360 private boolean newer( ComponentGraphNode node, long now ) throws FileNotFoundException { 360 361 File source = findFile(node.getName(), ProjectProperties.COMP_SOURCE_SUFFIX); … … 585 586 GraphRepository g1 = new GraphRepository( this.path, this.cache ); 586 587 /* FIXME: hack to prevent infinite recursion */ 587 Driver.setCurrentInterpreterRepository( g1 );588 Fortress.setCurrentInterpreterRepository( g1 ); 588 589 Result result = FortressParser.parse(api_name, file, new GlobalEnvironment.FromRepository( g1 ), verbose()); 589 590 // Result result = FortressParser.parse(file, new GlobalEnvironment.FromRepository(this), verbose()); 590 591 /* FIXME: hack to prevent infinite recursion */ 591 Driver.setCurrentInterpreterRepository( this );592 Fortress.setCurrentInterpreterRepository( this ); 592 593 if (result.isSuccessful()) { 593 594 Debug.debug( 1, "Expanded component " + node ); … … 651 652 } 652 653 653 /* syntaxExpand will parse a component for us, so this method is not needed */ 654 /* syntaxExpand will parse a component for us, so this method is not needed */ 654 655 private Component parseComponent( ComponentGraphNode node ) throws StaticError { 655 656 try{ … … 671 672 672 673 /* return a parsed api */ 673 private Api parseApi( ApiGraphNode node ){ 674 private Api parseApi( ApiGraphNode node ){ 674 675 try{ 675 676 APIName api_name = node.getName(); … … 687 688 } 688 689 } 689 690 690 691 public Map<APIName, ApiIndex> apis() { 691 692 return cache.apis(); … … 731 732 throw new MultipleStaticError(errors); 732 733 } 733 734 734 735 // for ( StaticError e : errors ){ 735 736 // System.err.println("Error while compiling apis: " + e); … … 766 767 } 767 768 } 768 769 769 770 /* add a compiled api to the repository */ 770 771 public void addApi(APIName name, ApiIndex definition) { … … 891 892 return builder.buildComponentIndex( component, fdot.lastModified() ); 892 893 } 893 894 894 895 public ComponentIndex getLinkedComponent(APIName name) throws FileNotFoundException, IOException { 895 896 ComponentGraphNode node = addComponentGraph(name); trunk/ProjectFortress/src/com/sun/fortress/syntax_abstractions/util/InterpreterWrapper.java
r2125 r2133 30 30 31 31 import com.sun.fortress.repository.FortressRepository; 32 import com.sun.fortress.compiler.Fortress; 32 33 import com.sun.fortress.compiler.StaticPhaseResult; 33 34 import com.sun.fortress.exceptions.FortressException; … … 82 83 83 84 public InterpreterWrapper() { 84 repository = Driver.CURRENT_INTERPRETER_REPOSITORY;85 repository = Fortress.CURRENT_INTERPRETER_REPOSITORY; 85 86 } 86 87 trunk/ProjectFortress/src/com/sun/fortress/unit_tests/FileTests.java
r2127 r2133 30 30 import com.sun.fortress.repository.FortressRepository; 31 31 import com.sun.fortress.compiler.index.ComponentIndex; 32 import com.sun.fortress.compiler.Fortress; 32 33 import com.sun.fortress.interpreter.reader.Lex; 33 34 import com.sun.fortress.repository.ProjectProperties; … … 100 101 oldOut.print(" ") ; oldOut.print(f); oldOut.print(" "); oldOut.flush(); 101 102 APIName apiname = NodeFactory.makeAPIName(s); 102 FortressRepository fr = Driver.extendedRepository( path, cache );103 FortressRepository fr = Fortress.extendedRepository( path, cache ); 103 104 ComponentIndex ci = fr.getLinkedComponent(apiname); 104 105 … … 196 197 } 197 198 198 public static class JSTTest extends TestCase {199 String s;200 String d;201 202 public JSTTest(String d, String s) {203 super("testFile");204 this.s = s;205 this.d = d;206 }207 208 public String getName() {209 return d + "/" + s;210 }211 212 public void testFile() throws Throwable {213 System.out.println(s + " test");214 BufferedReader br = new BufferedReader(new FileReader(d + "/" + s + ".tfs"));215 FortressRepository fr = Driver.defaultRepository();216 Lex lex = new Lex(br);217 Unprinter up = new Unprinter(lex);218 lex.name(); // Inhale opening parentheses219 CompilationUnit p = (CompilationUnit) up.readNode(lex.name());220 Driver.runProgram(fr, p, true, false, new ArrayList<String>());221 }222 223 }224 225 199 public static void main(String[] args) throws IOException { 226 200 junit.textui.TestRunner.run(FileTests.suite("tests", true, false)); … … 241 215 242 216 FortressRepository cache = new CacheBasedRepository( ProjectProperties.ANALYZED_CACHE_DIR ); 243 244 /*245 FortressRepository fr =246 Driver.extendedRepository(dir.getCanonicalPath());247 */248 249 // ProjectProperties.noStaticAnalysis ?250 // new BatchCachingRepository(251 // //new PathBasedSyntaxTransformingRepository252 // (ProjectProperties.SOURCE_PATH.prepend(dir)),253 // new CacheBasedRepository(ProjectProperties.ensureDirectoryExists("./.interpreter_cache"))254 // )255 // :256 // new BatchCachingAnalyzingRepository(false,257 // (ProjectProperties.SOURCE_PATH.prepend(dir)),258 // new CacheBasedRepository(ProjectProperties.ensureDirectoryExists("./.analyzed_cache"))259 // );260 261 262 // fr.addRootApis();263 217 264 218 for (int i = 0; i < files.length; i++) { … … 275 229 String testname = s.substring(0, l); 276 230 suite.addTest(new FSSTest(cache, dir.getCanonicalPath(), dirname, testname, failsOnly, expect_failure)); 277 } else if (s.endsWith(".tfs")) {278 int l = s.lastIndexOf(".tfs");279 suite.addTest(new JSTTest(dirname, s.substring(0, l)));280 231 } else { 281 232 System.out.println("Not compiling file " + s);
