Skip to content

Commit d304662

Browse files
committed
Move generation to a single executable
1 parent e048c1c commit d304662

24 files changed

+96
-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: "74b1286795d6a4e4f5a106638dc99eb482df609d"),
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: 63 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,80 @@ 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: [
53+
(declarationAttributeFile, "DeclarationAttribute.swift"),
54+
(declarationModifierFile, "DeclarationModifier.swift"),
2955
(miscFile, "Misc.swift"),
56+
(parserEntryFile, "Parser+Entry.swift"),
3057
(syntaxAnyVisitorFile, "SyntaxAnyVisitor.swift"),
3158
(syntaxBaseNodesFile, "SyntaxBaseNodes.swift"),
3259
(syntaxEnumFile, "SyntaxEnum.swift"),
33-
(syntaxKindFile, "SyntaxKind.swift")
60+
(syntaxKindFile, "SyntaxKind.swift"),
61+
(typeAttributeFile, "TypeAttribute.swift"),
3462
],
35-
destination: URL(fileURLWithPath: generatedPath),
63+
inSource: "SwiftParser")
64+
}
65+
66+
private func generateSwiftSyntax() throws {
67+
68+
try generateFiles(
69+
templates: [
70+
(miscFile, "MiscFile.swift"),
71+
],
72+
inSource: "SwiftSyntax")
73+
}
74+
75+
func generateSwiftSyntaxBuilder() throws {
76+
try generateFiles(
77+
templates: [
78+
(buildableCollectionNodesFile, "BuildableCollectionNodes.swift"),
79+
(buildableNodesFile, "BuildableNodes.swift"),
80+
(resultBuildersFile, "ResultBuilders.swift"),
81+
(syntaxExpressibleByStringInterpolationConformancesFile, "SyntaxExpressibleByStringInterpolationConformances.swift"),
82+
(tokenFile, "Token.swift"),
83+
(typealiasesFile, "Typealiases.swift")
84+
],
85+
inSource: "SwiftSyntaxBuilder")
86+
}
87+
88+
private func generateFiles(templates: [(SourceFile, String)], inSource source: String) throws {
89+
try generateTemplates(
90+
templates: templates,
91+
destination: URL(fileURLWithPath: generatedPath)
92+
.appendingPathComponent(source)
93+
.appendingPathComponent("generated"),
3694
verbose: verbose
3795
)
3896
}

CodeGeneration/Sources/generate-swiftsyntaxbuilder/GenerateSwiftSyntaxBuilder.swift

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

0 commit comments

Comments
 (0)