%% The Jazz compiler version 0.3.0
%% Compilation: 12.93 s (13.43 s real)
%% Link: 4.98 s (5.02 s real)
module M:
  input I, R;
  output O;
  loop
    do
      loop
        do
          halt
        watching I;
        do
          halt
        watching I;
        emit O
      end
    watching R
  end
.

%% Device "Circuit". nets: 34, reg: 3, per: 3, |: 5, &: 16, ~: 6, op: 33, net/op: 1.03
device:
 name:  "Circuit"
 params:  ""
 format:  2.1
 main:  0
 nets:  34
 blocks:  31
 pragmas:  19
end:

nets:
 0:  0 this.i; %0%
 1:  0 this.r; %0%
 2:  0 this.o = 3; %18%
 3:  30 $out = 4 & 0; %5%
 4:  29 $out = 5 & 9; %5%
 5:  4 $out = 6 & 8; %5%
 6:  3 $out = 7 & 7; %5%
 7:  2 invalues[2] = #(1):2; %4%
 8:  5 $out = ~1; %9%
 9:  28 $out = 10 | 21; %13%
 10:  6 $out = reg:6 (11); %15%
 11:  14 $out = 12 & 19; %5%
 12:  13 $out = 13 | 15; %13%
 13:  8 $out = 14 & 0; %5%
 14:  7 $out = 5 & 9; %5%
 15:  12 $out = 16 & 10; %5%
 16:  10 $out = 17 & 18; %5%
 17:  9 $out = 5 & 9; %5%
 18:  11 $out = ~0; %9%
 19:  15 $out = ~20; %9%
 20:  2 invalues[1] = #(0):2; %14%
 21:  16 $out = reg:16 (22); %15%
 22:  26 $out = 23 & 33; %5%
 23:  25 $out = 24 | 29; %13%
 24:  20 $out = 3 | 25; %13%
 25:  19 $out = 26 | 28; %13%
 26:  18 $out = 27 & 1; %5%
 27:  17 $out = 7 & 7; %5%
 28:  2 invalues[0] = ~reg:2 (#(1):2); %17%
 29:  24 $out = 30 & 21; %5%
 30:  22 $out = 31 & 32; %5%
 31:  21 $out = 5 & 9; %5%
 32:  23 $out = ~0; %9%
 33:  27 $out = ~20; %9%
end:

blocks:
 0:  main 1 "Circuit" "" 2 1 i:0 r:1 o:2; %0%
 1:  root;
 2:  logic 0 "where"; %2%
 3:  logic 4 "getValue"; %8%
 4:  logic 2 "getValue"; %7%
 5:  logic 4 "getValue"; %10%
 6:  logic 2 "getValue"; %7%
 7:  logic 8 "getValue"; %8%
 8:  logic 2 "getValue"; %7%
 9:  logic 10 "getValue"; %8%
 10:  logic 2 "getValue"; %7%
 11:  logic 10 "getValue"; %10%
 12:  logic 13 "getValue"; %12%
 13:  logic 14 "getValue"; %8%
 14:  logic 6 "getValue"; %11%
 15:  logic 14 "getValue"; %10%
 16:  logic 2 "getValue"; %7%
 17:  logic 18 "getValue"; %8%
 18:  logic 19 "getValue"; %16%
 19:  logic 2 "getValue"; %7%
 20:  logic 2 "getValue"; %7%
 21:  logic 22 "getValue"; %8%
 22:  logic 2 "getValue"; %7%
 23:  logic 22 "getValue"; %10%
 24:  logic 25 "getValue"; %12%
 25:  logic 26 "getValue"; %8%
 26:  logic 16 "getValue"; %11%
 27:  logic 26 "getValue"; %10%
 28:  logic 2 "getValue"; %7%
 29:  logic 30 "getValue"; %8%
 30:  logic 2 "getValue"; %7%
end:

pragmas:
 0: %loc:  1:24.1-24.16 %
 1: %file:  "." "esterel.jzz" %
 2: %loc:  3:45.1-92.1 %
 3: %file:  "/udir/bourdonc/jazz/packages/jazz/circuit/esterel" "compile.jzz" %
 4: %loc:  3:83.3-83.13 %
 5: %loc:  6:96.3-96.69 %
 6: %file:  "/udir/bourdonc/jazz/packages/jazz/circuit/expr" "construction.jzz" %
 7: %loc:  6:82.18-82.54 %
 8: %loc:  6:96.3-96.34 %
 9: %loc:  6:91.42-91.73 %
 10: %loc:  6:96.38-96.69 %
 11: %loc:  6:93.46-93.76 %
 12: %loc:  6:99.38-99.69 %
 13: %loc:  6:99.3-99.69 %
 14: %loc:  3:82.3-82.13 %
 15: %loc:  6:93.42-93.77 %
 16: %loc:  6:99.3-99.34 %
 17: %loc:  3:81.3-81.13 %
 18: %loc:  1:20.2-20.2 %
end:
%% Execution: 1.93 s (1.93 s real)