implement CFG.union(CFG)
Closed this issue · 1 comments
bradengroom commented
implement CFG.union(CFG)
bradengroom commented
def union(cfg: CFG): CFG = {
new CFG("S",
this.rules.map(rule => {
(rule._1 + "X", rule._2.map(result => {
result match {
case string: String => string + "X"
case char: Char => char
}
}))
}) ++
cfg.rules.map(rule => {
(rule._1 + "Y", rule._2.map(result => {
result match {
case string: String => string + "Y"
case char: Char => char
}
}))
}) +
(("S", List(this.startVariable + "X"))) +
(("S", List(cfg.startVariable + "Y"))))
}
def |(cfg: CFG) = this.union(cfg)