@@ -5,10 +5,6 @@ public class SwiftAstGenerator {
5
5
private var srcDir : URL
6
6
private var outputDir : URL
7
7
private var prettyPrint : Bool
8
- private let availableProcessors = ProcessInfo . processInfo. activeProcessorCount
9
-
10
- // Private serial queue for directory creation operations
11
- private let fileQueue = DispatchQueue ( label: " io.joern.swiftastgen " )
12
8
13
9
public init ( srcDir: URL , outputDir: URL , prettyPrint: Bool ) throws {
14
10
self . srcDir = srcDir
@@ -47,34 +43,26 @@ public class SwiftAstGenerator {
47
43
. appendingPathExtension ( " json " )
48
44
let outfileDirUrl = outFileUrl. deletingLastPathComponent ( )
49
45
50
- do {
51
- try fileQueue. sync {
52
- try FileManager . default. createDirectory (
53
- atPath: outfileDirUrl. path,
54
- withIntermediateDirectories: true ,
55
- attributes: nil
56
- )
57
- }
58
- } catch { }
46
+ if !FileManager. default. fileExists ( atPath: outfileDirUrl. path) {
47
+ try FileManager . default. createDirectory (
48
+ atPath: outfileDirUrl. path,
49
+ withIntermediateDirectories: true ,
50
+ attributes: nil
51
+ )
52
+ }
59
53
60
54
try astJsonString. write (
61
55
to: outFileUrl,
62
56
atomically: true ,
63
57
encoding: String . Encoding. utf8
64
58
)
65
-
66
- print ( " Generated AST for file: ` \( fileUrl. path) ` " )
59
+ print ( " Generated AST for file: ` \( fileUrl. path) ` " )
67
60
} catch {
68
61
print ( " Parsing failed for file: ` \( fileUrl. path) ` ( \( error) ) " )
69
62
}
70
63
}
71
64
72
65
private func iterateSwiftFiles( at url: URL ) {
73
- let queue = OperationQueue ( )
74
- queue. name = " SwiftAstGen "
75
- queue. qualityOfService = . userInitiated
76
- queue. maxConcurrentOperationCount = availableProcessors
77
-
78
66
if let enumerator = FileManager . default. enumerator (
79
67
at: url,
80
68
includingPropertiesForKeys: [ . isRegularFileKey] ,
@@ -84,15 +72,11 @@ public class SwiftAstGenerator {
84
72
if fileAttributes. isRegularFile! && fileURL. pathExtension == " swift " {
85
73
let relativeFilePath = fileURL. relativePath ( from: srcDir) !
86
74
if !ignoreDirectory( name: " / \( relativeFilePath) " ) {
87
- queue. addOperation {
88
- self . parseFile ( fileUrl: fileURL)
89
- }
75
+ self . parseFile ( fileUrl: fileURL)
90
76
}
91
77
}
92
78
}
93
79
}
94
-
95
- queue. waitUntilAllOperationsAreFinished ( )
96
80
}
97
81
98
82
public func generate( ) throws {
0 commit comments