summary refs log tree commit diff stats
path: root/tests/misc/tloops.nim
blob: 1aada0298d39717960897fda85091eb3fa9a2f2e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Test nested loops and some other things

proc andTest() =
  var a = 0 == 5 and 6 == 6

proc incx(x: var int) = # is built-in proc
  x = x + 1

proc decx(x: var int) =
  x = x - 1

proc First(y: var int) =
  var x: int
  i_ncx(x)
  if x == 10:
    y = 0
  else:
    if x == 0:
      incx(x)
    else:
      x=11

proc TestLoops() =
  var i, j: int
  while i >= 0:
    if i mod 3 == 0:
      break
    i = i + 1
    while j == 13:
      j = 13
      break
    break

  while true:
    break


proc Foo(n: int): int =
    var
        a, old: int
        b, c: bool
    F_irst(a)
    if a == 10:
        a = 30
    elif a == 11:
        a = 22
    elif a == 12:
        a = 23
    elif b:
        old = 12
    else:
        a = 40

    #
    b = false or 2 == 0 and 3 == 9
    a = 0 + 3 * 5 + 6 + 7 + +8 # 36
    while b:
        a = a + 3
    a = a + 5
    write(stdout, "Hello!")


# We should come till here :-)
discard Foo(345)

# test the new type symbol lookup feature:

type
  MyType[T] = tuple[
    x, y, z: T]
  MyType2 = tuple[x, y: float]

proc main[T]() =
  var myType: MyType[T]
  var b: MyType[T]
  b = (1, 2, 3)
  myType = b
  echo myType
  
  var myType2: MyType2
  var c: MyType2
  c = (1.0, 2.0)
  myType2 = c
  echo myType2

main[int]()