Support Parameters For Parsers

Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
This commit is contained in:
Will Hawkins
2026-03-30 07:57:41 -04:00
parent 744c375c5f
commit 8962235aca
8 changed files with 317 additions and 26 deletions
+9 -1
View File
@@ -319,12 +319,19 @@ public struct Parser: P4Type, P4Value {
public var states: ParserStates
public var name: Identifier
public var parameters: ParameterList?
public init(withName name: Identifier) {
self.states = ParserStates()
self.name = name
}
public init(withName name: Identifier, withParameters parameters: ParameterList) {
self.states = ParserStates()
self.parameters = parameters
self.name = name
}
public func findStartState() -> ParserState? {
for state in states.states {
if state.state == Identifier(name: "start") {
@@ -342,7 +349,8 @@ public struct Parser: P4Type, P4Value {
}
public var description: String {
return "Parser"
let parameters = self.parameters?.description ?? "N/A"
return "Parser \(self.name) with parameters: \(parameters) and states: \(self.states)"
}
public func def() -> any P4Value {