예제 #1
0
    @Nullable
    private Type parseAndResolve(String file) {
        try {
            Node ast = getAstForFile(file);

            if (ast == null) {
                failedToParse.add(file);
                return null;
            } else {
                Type type = Node.transformExpr(ast, globaltable);
                if (!loadedFiles.contains(file)) {
                    loadedFiles.add(file);
                    loadingProgress.tick();
                }
                return type;
            }
        } catch (OutOfMemoryError e) {
            if (astCache != null) {
                astCache.clear();
            }
            System.gc();
            return null;
        }
    }
예제 #2
0
 public void close() {
     astCache.close();
 }
예제 #3
0
 private AstCache getAstCache() {
     if (astCache == null) {
         astCache = AstCache.get();
     }
     return astCache;
 }