Line | Branch | Exec | Source |
---|---|---|---|
1 | #include "sema/bindings.h" | ||
2 | #include "ast/magic.h" | ||
3 | #include "ast/ops.h" | ||
4 | #include "utilities/strings.h" | ||
5 | |||
6 | namespace lython { | ||
7 | |||
8 | std::ostream& print(std::ostream& out, int i, BindingEntry const& entry); | ||
9 | |||
10 | void Bindings::dump(std::ostream& out) const { | ||
11 |
1/1✓ Branch 2 taken 1 times.
|
1 | auto big = String(40, '-'); |
12 |
1/1✓ Branch 2 taken 1 times.
|
1 | auto small = String(20, '-'); |
13 |
1/1✓ Branch 1 taken 1 times.
|
1 | auto sep = fmt::format("{:>40}-+-{:>20}-+-{}", big, small, small); |
14 | |||
15 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | out << sep << '\n'; |
16 |
3/3✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
|
2 | out << fmt::format(" {:40} | {:20} | {}", "name", "type", "value") << "\n"; |
17 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | out << sep << '\n'; |
18 | 1 | int i = 0; | |
19 |
2/2✓ Branch 4 taken 21 times.
✓ Branch 5 taken 1 times.
|
22 | for (auto& e: bindings) { |
20 |
1/1✓ Branch 1 taken 21 times.
|
21 | print(out, i, e); |
21 | 21 | i += 1; | |
22 | } | ||
23 |
2/2✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
|
1 | out << sep << '\n'; |
24 | 1 | } | |
25 | |||
26 | inline std::ostream& print(std::ostream& out, int i, BindingEntry const& entry) { | ||
27 |
1/1✓ Branch 1 taken 21 times.
|
21 | String n = str(entry.name); |
28 |
1/1✓ Branch 1 taken 21 times.
|
21 | String v = str(entry.value); |
29 |
1/1✓ Branch 1 taken 21 times.
|
21 | String t = str(entry.type); |
30 | |||
31 |
1/1✓ Branch 1 taken 21 times.
|
21 | auto frags = split('\n', v); |
32 | |||
33 |
3/3✓ Branch 2 taken 21 times.
✓ Branch 5 taken 21 times.
✓ Branch 8 taken 21 times.
|
42 | out << fmt::format("{:3d} {:>40} | {:>20} | {}", i, n, t, frags[0]) << '\n'; |
34 | |||
35 |
2/2✓ Branch 1 taken 15 times.
✓ Branch 2 taken 21 times.
|
36 | for (int i = 1; i < frags.size(); i++) { |
36 |
3/3✓ Branch 2 taken 15 times.
✓ Branch 6 taken 6 times.
✓ Branch 7 taken 9 times.
|
15 | if (strip(frags[i]) == "") { |
37 | 6 | continue; | |
38 | } | ||
39 |
3/3✓ Branch 2 taken 9 times.
✓ Branch 5 taken 9 times.
✓ Branch 8 taken 9 times.
|
18 | out << fmt::format(" {:>40} | {:>20} | {}", "", "", frags[i]) << '\n'; |
40 | } | ||
41 | 21 | return out; | |
42 | 21 | } | |
43 | |||
44 | } // namespace lython | ||
45 |