progs/automata/thompson.sc
changeset 932 5678414a3898
parent 784 7dac4492b0e6
child 967 ce5de01b9632
equal deleted inserted replaced
931:14a6adca16b8 932:5678414a3898
    45 }
    45 }
    46 
    46 
    47 
    47 
    48 // for composing an eNFA transition with an NFA transition
    48 // for composing an eNFA transition with an NFA transition
    49 // | is for set union
    49 // | is for set union
    50 implicit def nfaOps(f: eNFAtrans) = new {
    50 extension (f: eNFAtrans) {
    51   def +++(g: NFAtrans) : eNFAtrans = 
    51   def +++(g: NFAtrans) : eNFAtrans = 
    52   { case (q, None) =>  applyOrElse(f, (q, None)) 
    52   { case (q, None) =>  applyOrElse(f, (q, None)) 
    53     case (q, Some(c)) => applyOrElse(f, (q, Some(c))) | applyOrElse(g, (q, c))  }
    53     case (q, Some(c)) => applyOrElse(f, (q, Some(c))) | applyOrElse(g, (q, c))  }
    54 }
    54 }
    55 
    55