Edit

kc3-lang/kc3/test/ikc3/while.out.expected

Branch :

  • test/ikc3/while.out.expected
  • while false do
      puts("This should not print")
    end
    void
    while (false) do
      puts("This should not print with parens")
    end
    void
    do
      i = 0
      while (i < 3) do
        puts(i)
        i = i + 1
      end
      i
    end
    0
    1
    2
    3
    do
      i = 0
      while i < 3 do
        puts(i)
        i = i + 1
      end
      i
    end
    0
    1
    2
    3
    do
      sum = 0
      i = 1
      while (i <= 5) do
        sum = sum + i
        i = i + 1
      end
      sum
    end
    15
    do
      sum = 0
      i = 1
      while i <= 5 do
        sum = sum + i
        i = i + 1
      end
      sum
    end
    15
    do
      x = 10
      while (x > 0) do
        if x == 5 do
          break
        end
        puts(x)
        x = x - 1
      end
      x
    end
    10
    9
    8
    7
    6
    5
    do
      x = 10
      while x > 0 do
        if x == 5 do
          break
        end
        puts(x)
        x = x - 1
      end
      x
    end
    10
    9
    8
    7
    6
    5
    do
      result = []
      i = 0
      while (i < 3) do
        result = [i | result]
        i = i + 1
      end
      result
    end
    [2, 1, 0]
    do
      result = []
      i = 0
      while i < 3 do
        result = [i | result]
        i = i + 1
      end
      result
    end
    [2, 1, 0]
    do
      i = 0
      result = []
      while i < 10 do
        i = i + 1
        if i mod 2 == 0 do
          continue
        end
        result = [i | result]
      end
      result
    end
    [9, 7, 5, 3, 1]
    do
      result = []
      i = 0
      while i < 10 do
        i = i + 1
        if i mod 2 == 0 do
          continue
        end
        if i > 7 do
          break
        end
        result = [i | result]
      end
      result
    end
    [7, 5, 3, 1]
    loop 0
    loop 1
    loop 2
    loop 3
    :ok
    block :unwind_test do
      unwind_protect(do
        i = 0
        while i < 5 do
          puts("unwind loop #{i}")
          i = i + 1
          if i == 3 do
            return "early exit"
          end
        end
        "normal completion"
      end, puts("cleanup executed"))
    end
    unwind loop 0
    unwind loop 1
    unwind loop 2
    cleanup executed
    "early exit"