1 using System;
2 using Calculator;
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 int main()
29 {
30 Console.WriteLine("desk calculator");
31 #if (WINDOWS)
32 Console.WriteLine("enter command, or CTRL-Z to end:");
33 #else
34 Console.WriteLine("enter command, or CTRL-D to end:");
35 #endif
36 Console.Write("> ");
37 auto lineResult = Console.ReadLine();
38 if (lineResult.Error())
39 {
40 Console.Out() << lineResult.GetErrorMessage() << endl();
41 }
42 else
43 {
44 string line = lineResult.Value();
45 while (!Console.In().EndOfStream())
46 {
47 auto utf32Result = ToUtf32(line);
48 if (utf32Result.Error())
49 {
50 Console.Out() << utf32Result.GetErrorMessage() << endl();
51 }
52 else
53 {
54 auto result = Parse(utf32Result.Value());
55 if (result.Error())
56 {
57 Console.Out() << result.GetErrorMessage() << endl();
58 }
59 }
60 Console.Write("> ");
61 lineResult = Console.ReadLine();
62 if (lineResult.Error())
63 {
64 Console.Out() << lineResult.GetErrorMessage() << endl();
65 }
66 else
67 {
68 line = lineResult.Value();
69 }
70 }
71 }
72 Console.WriteLine("bye!");
73 return 0;
74 }