Refactor into four major components:

1. Common: Things shared among all other components.
2. Lang: P4-language-related components.
3. Runtime: Components required to run a P4 program.
4. Parser: Components for parsing a P4 program from source.

Other components:

1. Macros
2. Tests
3. TreeSitterExtensions: Extra tree sitter functionality

Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
This commit is contained in:
Will Hawkins
2026-02-03 08:22:58 -05:00
parent 1203c0c90a
commit 989c9b1212
20 changed files with 513 additions and 320 deletions
+23 -6
View File
@@ -14,8 +14,16 @@ let package = Package(
targets: ["Parser"]
),
.library(
name: "P4",
targets: ["P4"]
name: "Common",
targets: ["Common"]
),
.library(
name: "Lang",
targets: ["Lang"]
),
.library(
name: "Runtime",
targets: ["Runtime"]
),
],
dependencies: [
@@ -38,7 +46,8 @@ let package = Package(
.product(name: "SwiftTreeSitterLayer", package: "swift-tree-sitter"),
.product(name: "TreeSitterP4", package: "tree-sitter-p4"),
.target(name: "TreeSitterExtensions"),
.target(name: "P4"),
.target(name: "Common"),
.target(name: "Lang"),
],
),
.target(
@@ -49,12 +58,20 @@ let package = Package(
],
),
.target(
name: "P4",
dependencies: ["Macros", "TreeSitterExtensions"]
name: "Common",
dependencies: ["Macros"]
),
.target(
name: "Lang",
dependencies: ["Common"]
),
.target(
name: "Runtime",
dependencies: ["Lang", "Common"]
),
.testTarget(
name: "ParserTests",
dependencies: ["Parser", "P4", "Macros", "TreeSitterExtensions"]
dependencies: ["Parser", "Runtime", "Lang", "Macros", "TreeSitterExtensions", "Common"]
),
]
)