testing5/bf.scala
changeset 325 26058bf089ae
parent 285 475c39725698
child 340 b37db1787e1b
equal deleted inserted replaced
324:37c86984ecdc 325:26058bf089ae
    91       case '>' => (pc + 1, mp + 1, mem)
    91       case '>' => (pc + 1, mp + 1, mem)
    92       case '<' => (pc + 1, mp - 1, mem)
    92       case '<' => (pc + 1, mp - 1, mem)
    93       case '+' => (pc + 1, mp, write(mem, mp, sread(mem, mp) + 1))
    93       case '+' => (pc + 1, mp, write(mem, mp, sread(mem, mp) + 1))
    94       case '-' => (pc + 1, mp, write(mem, mp, sread(mem, mp) - 1))
    94       case '-' => (pc + 1, mp, write(mem, mp, sread(mem, mp) - 1))
    95       case '.' => { print(sread(mem, mp).toChar); (pc + 1, mp, mem) }
    95       case '.' => { print(sread(mem, mp).toChar); (pc + 1, mp, mem) }
    96       case ',' => (pc + 1, mp, write(mem, mp, Console.in.read().toByte))
    96       case ',' => (pc + 1, mp, write(mem, mp, scala.io.StdIn.readByte()))
    97       case '['  => 
    97       case '['  => 
    98 	if (sread(mem, mp) == 0) (jumpRight(prog, pc + 1, 0), mp, mem) else (pc + 1, mp, mem) 
    98 	if (sread(mem, mp) == 0) (jumpRight(prog, pc + 1, 0), mp, mem) else (pc + 1, mp, mem) 
    99       case ']'  => 
    99       case ']'  => 
   100 	if (sread(mem, mp) != 0) (jumpLeft(prog, pc - 1, 0), mp, mem) else (pc + 1, mp, mem) 
   100 	if (sread(mem, mp) != 0) (jumpLeft(prog, pc - 1, 0), mp, mem) else (pc + 1, mp, mem) 
   101       case _ => (pc + 1, mp, mem)
   101       case _ => (pc + 1, mp, mem)