Production
public struct Production : Codable
extension Production: Hashable
extension Production: CustomStringConvertible
extension Production: CustomDebugStringConvertible
A production describing what symbols can be generated starting from a given non-terminal pattern
-
Starting pattern
Declaration
Swift
public let pattern: NonTerminal -
Symbols produced from the starting pattern
Declaration
Swift
public let production: [Symbol] -
Chain of non-terminals which have been eliminated during normalization
Declaration
Swift
public let nonTerminalChain: [NonTerminal]? -
Declaration
Swift
public let hashValue: Int -
Declaration
Swift
public func hash(into hasher: inout Hasher) -
Creates a new production
Declaration
Swift
public init(pattern: NonTerminal, production: ProductionString)Parameters
patternStarting pattern
productionGenerated sequence of symbols
-
Creates a new production
Declaration
Swift
public init(pattern: NonTerminal, production: [Symbol], chain: [NonTerminal]? = nil)Parameters
patternStarting pattern
productionGenerated sequence of symbols
chainNon-terminals which have been filtered out during normalization
-
A production is final if it only generates terminal symbols
Declaration
Swift
public var isFinal: Bool { get } -
A production is in Chomsky normal form if it generates exactly 2 non-terminals exclusive or one or zero terminal symbols
Declaration
Swift
public var isInChomskyNormalForm: Bool { get } -
Sequence of terminals generated by this production
Declaration
Swift
public var generatedTerminals: [Terminal] { get } -
Declaration
Swift
public static func == (lhs: Production, rhs: Production) -> Bool -
Declaration
Swift
public var description: String { get } -
Declaration
Swift
public var debugDescription: String { get }
View on GitHub
Production Structure Reference