summaryrefslogtreecommitdiff
path: root/tests/examplefiles/test.nim
blob: 20610bb69130a6fc8ec7f3c444d59ea7f7133caf (plain)
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
88
89
90
91
92
93
import re

for x in lines("myfile.txt"):
  if x =~ re"(\w+)=(.*)":
    echo "Key: ", matches[0],
         " Value: ", matches[1]

Echo("What's your name? ")
var name: string = readLine(stdin)
if name == "":
  echo("Poor soul, you lost your name?")
elif name == "name":
  echo("Very funny, your name is name.")
else:
  Echo("Hi, ", name, "!")

var name = readLine(stdin)
case name
of "":
  echo("Poor soul, you lost your name?")
of "name":
  echo("Very funny, your name is name.")
else:
  Echo("Hi, ", name, "!")

from strutils import parseInt

Echo("A number please: ")
var n = parseInt(readLine(stdin))
case n
of 0..2, 4..7: Echo("The number is in the set: {0, 1, 2, 4, 5, 6, 7}")
of 3, 8: Echo("The number is 3 or 8")

Echo("Counting to 10: ")
var i = 1
while i <= 10:
  Echo($i)
  inc(i)

proc yes(question: string): bool =
  Echo(question, " (y/n)")
  while true:
    case readLine(stdin)
    of "y", "Y", "yes", "Yes": return true
    of "n", "N", "no", "No": return false
    else: Echo("Please be clear: yes or no")

proc even(n: int): bool

proc odd(n: int): bool =
  if n == 1: return true
  else: return even(n-1)

iterator countup(a, b: int): int =
  var res = a
  while res <= b:
    yield res
    inc(res)

type
  TPerson = object of TObject
    name*: string  # the * means that `name` is accessible from other modules
    age: int       # no * means that the field is hidden from other modules

  TStudent = object of TPerson # TStudent inherits from TPerson
    id: int                    # with an id field

var
  student: TStudent
  person: TPerson
assert(student is TStudent)

echo({'a', 'b', 'c'}.card)
stdout.writeln("Hallo")
var
  f: TFile
if open(f, "numbers.txt"):
  try:
    var a = readLine(f)
    var b = readLine(f)
    echo("sum: " & $(parseInt(a) + parseInt(b)))
  except EOverflow:
    echo("overflow!")
  except EInvalidValue:
    echo("could not convert string to integer")
  except EIO:
    echo("IO error!")
  except:
    echo("Unknown exception!")
    # reraise the unknown exception:
    raise
  finally:
    close(f)