Skip to content

Commit 346ab29

Browse files
committed
Move generation to a single executable
1 parent 46cc7c0 commit 346ab29

20 files changed

+102
-249
lines changed

CodeGeneration/Package.swift

Lines changed: 0 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,13 @@ let package = Package(
88
.macOS(.v10_15),
99
],
1010
products: [
11-
.executable(name: "generate-swiftbasicformat", targets: ["generate-swiftbasicformat"]),
12-
.executable(name: "generate-swiftideutils", targets: ["generate-swiftideutils"]),
13-
.executable(name: "generate-swiftparser", targets: ["generate-swiftparser"]),
1411
.executable(name: "generate-swiftsyntax", targets: ["generate-swiftsyntax"]),
15-
.executable(name: "generate-swiftsyntaxbuilder", targets: ["generate-swiftsyntaxbuilder"]),
1612
],
1713
dependencies: [
1814
.package(url: "https://github.com/apple/swift-syntax.git", revision: "cdbdcbabb78d14e5e8d4915a115e3d843868ab8d"),
1915
.package(url: "https://github.com/apple/swift-argument-parser.git", .upToNextMinor(from: "1.1.4")),
2016
],
2117
targets: [
22-
.executableTarget(
23-
name: "generate-swiftbasicformat",
24-
dependencies: [
25-
.product(name: "SwiftSyntax", package: "swift-syntax"),
26-
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
27-
.product(name: "ArgumentParser", package: "swift-argument-parser"),
28-
"SyntaxSupport",
29-
"Utils"
30-
]
31-
),
32-
.executableTarget(
33-
name: "generate-swiftideutils",
34-
dependencies: [
35-
.product(name: "SwiftSyntax", package: "swift-syntax"),
36-
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
37-
.product(name: "ArgumentParser", package: "swift-argument-parser"),
38-
"SyntaxSupport",
39-
"Utils"
40-
]
41-
),
42-
.executableTarget(
43-
name: "generate-swiftparser",
44-
dependencies: [
45-
.product(name: "SwiftSyntax", package: "swift-syntax"),
46-
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
47-
.product(name: "ArgumentParser", package: "swift-argument-parser"),
48-
"SyntaxSupport",
49-
"Utils"
50-
]
51-
),
5218
.executableTarget(
5319
name: "generate-swiftsyntax",
5420
dependencies: [
@@ -58,16 +24,6 @@ let package = Package(
5824
"SyntaxSupport",
5925
"Utils"
6026
]
61-
),
62-
.executableTarget(
63-
name: "generate-swiftsyntaxbuilder",
64-
dependencies: [
65-
.product(name: "SwiftSyntax", package: "swift-syntax"),
66-
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
67-
.product(name: "ArgumentParser", package: "swift-argument-parser"),
68-
"SyntaxSupport",
69-
"Utils"
70-
]
7127
),
7228
.target(
7329
name: "SyntaxSupport",

CodeGeneration/Sources/generate-swiftbasicformat/GenerateSwiftBasicFormat.swift

Lines changed: 0 additions & 35 deletions
This file was deleted.

CodeGeneration/Sources/generate-swiftideutils/GenerateIDEUtils.swift

Lines changed: 0 additions & 35 deletions
This file was deleted.

CodeGeneration/Sources/generate-swiftparser/GenerateSwiftParser.swift

Lines changed: 0 additions & 38 deletions
This file was deleted.

CodeGeneration/Sources/generate-swiftsyntax/GenerateSwiftSyntax.swift

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,75 @@ import Utils
1717

1818
@main
1919
struct GenerateSwiftSyntax: ParsableCommand {
20-
@Argument(help: "The path to the destination directory where the source files are to be generated")
20+
@Argument(help: "The path to the source directory where the source files are to be generated")
2121
var generatedPath: String
2222

2323
@Flag(help: "Enable verbose output")
2424
var verbose: Bool = false
25-
25+
2626
func run() throws {
27-
try generateTemplates(
27+
try generateSwiftBasicFormat()
28+
try generateIDEUtils()
29+
try generateSwiftParser()
30+
try generateSwiftSyntax()
31+
try generateSwiftSyntaxBuilder()
32+
}
33+
34+
private func generateSwiftBasicFormat() throws {
35+
try generateFiles(
36+
templates: [
37+
(basicFormatFile, "BasicFormat.swift"),
38+
],
39+
inSource: "SwiftBasicFormat")
40+
}
41+
42+
private func generateIDEUtils() throws {
43+
try generateFiles(
44+
templates: [
45+
(syntaxClassificationFile, "SyntaxClassification.swift"),
46+
],
47+
inSource: "IDEUtils")
48+
}
49+
50+
private func generateSwiftParser() throws {
51+
try generateFiles(
2852
templates: [
29-
(miscFile, "Misc.swift"),
53+
(typeAttributeFile, "TypeAttribute.swift"),
54+
(declarationModifierFile, "DeclarationModifier.swift"),
55+
(parserEntryFile, "Parser+Entry.swift"),
56+
(declarationAttributeFile, "DeclarationAttribute.swift")
3057
],
31-
destination: URL(fileURLWithPath: generatedPath),
58+
inSource: "SwiftParser")
59+
}
60+
61+
private func generateSwiftSyntax() throws {
62+
63+
try generateFiles(
64+
templates: [
65+
(miscFile, "MiscFile.swift"),
66+
],
67+
inSource: "SwiftSyntax")
68+
}
69+
70+
func generateSwiftSyntaxBuilder() throws {
71+
try generateFiles(
72+
templates: [
73+
(buildableCollectionNodesFile, "BuildableCollectionNodes.swift"),
74+
(buildableNodesFile, "BuildableNodes.swift"),
75+
(resultBuildersFile, "ResultBuilders.swift"),
76+
(syntaxExpressibleByStringInterpolationConformancesFile, "SyntaxExpressibleByStringInterpolationConformances.swift"),
77+
(tokenFile, "Token.swift"),
78+
(typealiasesFile, "Typealiases.swift")
79+
],
80+
inSource: "SwiftSyntaxBuilder")
81+
}
82+
83+
private func generateFiles(templates: [(SourceFile, String)], inSource source: String) throws {
84+
try generateTemplates(
85+
templates: templates,
86+
destination: URL(fileURLWithPath: generatedPath)
87+
.appendingPathComponent(source)
88+
.appendingPathComponent("generated"),
3289
verbose: verbose
3390
)
3491
}

CodeGeneration/Sources/generate-swiftsyntaxbuilder/GenerateSwiftSyntaxBuilder.swift

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)