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

# User Rev Content
1 sf-pippijn 1.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 sf-pippijn 1.2 foreach (value const &v, arr.data)
36 sf-pippijn 1.1 {
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 sf-pippijn 1.2 foreach (value_pair const &v, arr.data)
48 sf-pippijn 1.1 {
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     }