Merge branch 'master' of congo:dev/ohcount
[ohcount] / test / expected_dir / scala1.scala
1 scala   code    import scala.actors.Actor
2 scala   blank   
3 scala   code    case object Ping
4 scala   code    case object Pong
5 scala   code    case object Stop
6 scala   blank   
7 scala   comment /**
8 scala   comment  * Ping class
9 scala   comment  */
10 scala   code    class Ping(count: int, pong: Actor) extends Actor {
11 scala   code      def act() {
12 scala   code        var pingsLeft = count - 1
13 scala   code        pong ! Ping
14 scala   code        while (true) {
15 scala   code          receive {
16 scala   code            case Pong =>
17 scala   code              if (pingsLeft % 1000 == 0)
18 scala   code                Console.println("Ping: pong")
19 scala   code              if (pingsLeft > 0) {
20 scala   code                pong ! Ping
21 scala   code                pingsLeft -= 1
22 scala   code              } else {
23 scala   code                Console.println("Ping: stop")
24 scala   code                pong ! Stop
25 scala   code                exit()
26 scala   code              }
27 scala   code          }
28 scala   code        }
29 scala   code      }
30 scala   code    }
31 scala   blank   
32 scala   comment /**
33 scala   comment  * Pong class
34 scala   comment  */
35 scala   code    class Pong extends Actor {
36 scala   code      def act() {
37 scala   code        var pongCount = 0
38 scala   code        while (true) {
39 scala   code          receive {
40 scala   comment         //pong back the ping
41 scala   code            case Ping =>
42 scala   code              if (pongCount % 1000 == 0)
43 scala   code                Console.println("Pong: ping "+pongCount)
44 scala   code              sender ! Pong
45 scala   code              pongCount = pongCount + 1
46 scala   comment         //stop ping ponging
47 scala   code            case Stop =>
48 scala   code              Console.println("Pong: stop")
49 scala   code              exit()
50 scala   code          }
51 scala   code        }
52 scala   code      }
53 scala   code    }
54 scala   blank   
55 scala   comment /*
56 scala   comment  * And this is the main application, playing a game of ping pong
57 scala   comment  */
58 scala   code    object PingPong extends Application {
59 scala   code      val pong = new Pong
60 scala   code      val ping = new Ping(100000, pong)
61 scala   code      ping.start
62 scala   code      pong.start
63 scala   code    }