ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/cf.schmorp.de/dclient/testsuite/adt/test_make.cpp
Revision: 1.2
Committed: Mon Oct 18 06:54:04 2010 UTC (15 years, 11 months ago) by sf-pippijn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +2 -2 lines
Log Message:
gcc 4.5; moved some code; background colour support

File Contents

# Content
1 #include "adt/make.h"
2
3 #include <iostream>
4
5 using make::value;
6 using make::value_pair;
7 using make::array;
8 using make::map;
9
10 static void print (value const &arr);
11 static void print (array const &arr);
12 static void print (map const &arr);
13
14 static void
15 print (value const &v)
16 {
17 switch (v.type_code ())
18 {
19 case value::VALUE:
20 std::cout << v.str ();
21 break;
22 case value::ARRAY:
23 print (v.array ());
24 break;
25 case value::MAP:
26 print (v.map ());
27 break;
28 }
29 }
30
31 static void
32 print (array const &arr)
33 {
34 std::cout << "array { ";
35 foreach (value const &v, arr.data)
36 {
37 print (v);
38 std::cout << ", ";
39 }
40 std::cout << "}";
41 }
42
43 static void
44 print (map const &arr)
45 {
46 std::cout << "map { ";
47 foreach (value_pair const &v, arr.data)
48 {
49 print (v.first);
50 std::cout << " => ";
51 print (v.second);
52 std::cout << ", ";
53 }
54 std::cout << "}";
55 }
56
57
58 int
59 main ()
60 {
61 #define A1 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
62 #define A2 A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1,A1
63 #define A3 A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2,A2
64 for (int i = 0; i < 1000; i++)
65 array {
66 "resource",
67 "b",
68 "exp_table",
69 map { A1 },
70 map {
71 1, "2",
72 "1", 2,
73 array { 1, 2 }, array { 2, 1 }
74 },
75 };
76 print (array {
77 "resource",
78 "b",
79 "exp_table",
80 array { 3, 4, 5 },
81 map {
82 1, "2",
83 "1", 2,
84 array { 1, 2 }, array { 2, 1 }
85 },
86 });
87
88 std::cout << "\n";
89 }