| 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 |