| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #include "nodes.h" | ||
| 2 | #include "magic.h" | ||
| 3 | #include "ops.h" | ||
| 4 | |||
| 5 | namespace lython { | ||
| 6 | |||
| 7 | ExprNode* None(); | ||
| 8 | ExprNode* True(); | ||
| 9 | ExprNode* False(); | ||
| 10 | |||
| 11 | // -------------------------------------------------------------------- | ||
| 12 | // to-string | ||
| 13 | |||
| 14 | String str(NodeKind k) { | ||
| 15 | #define CASEGEN(name) \ | ||
| 16 | case NodeKind::name: \ | ||
| 17 | return #name; | ||
| 18 | |||
| 19 | #define X(name, _) CASEGEN(name) | ||
| 20 | #define SECTION(name) CASEGEN(name) | ||
| 21 | #define EXPR(name, _) CASEGEN(name) | ||
| 22 | #define STMT(name, _) CASEGEN(name) | ||
| 23 | #define MOD(name, _) CASEGEN(name) | ||
| 24 | #define MATCH(name, _) CASEGEN(name) | ||
| 25 | |||
| 26 |
68/82✗ Branch 0 not taken.
✗ Branch 1 not taken.
✓ Branch 2 taken 9 times.
✓ Branch 3 taken 7 times.
✓ Branch 4 taken 18 times.
✓ Branch 5 taken 10 times.
✓ Branch 6 taken 7 times.
✓ Branch 7 taken 7 times.
✓ Branch 8 taken 10 times.
✓ Branch 9 taken 10 times.
✓ Branch 10 taken 7 times.
✓ Branch 11 taken 7 times.
✓ Branch 12 taken 7 times.
✓ Branch 13 taken 7 times.
✓ Branch 14 taken 7 times.
✓ Branch 15 taken 9 times.
✓ Branch 16 taken 7 times.
✓ Branch 17 taken 15 times.
✓ Branch 18 taken 7 times.
✓ Branch 19 taken 9 times.
✓ Branch 20 taken 9 times.
✓ Branch 21 taken 199 times.
✓ Branch 22 taken 9 times.
✓ Branch 23 taken 8 times.
✓ Branch 24 taken 7 times.
✓ Branch 25 taken 489 times.
✓ Branch 26 taken 10 times.
✓ Branch 27 taken 22 times.
✓ Branch 28 taken 8 times.
✓ Branch 29 taken 6 times.
✓ Branch 30 taken 6 times.
✓ Branch 31 taken 6 times.
✓ Branch 32 taken 85 times.
✓ Branch 33 taken 6 times.
✓ Branch 34 taken 6 times.
✓ Branch 35 taken 246 times.
✓ Branch 36 taken 6 times.
✗ Branch 37 not taken.
✗ Branch 38 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 44 not taken.
✓ Branch 45 taken 6 times.
✓ Branch 46 taken 60 times.
✓ Branch 47 taken 11 times.
✓ Branch 48 taken 14 times.
✓ Branch 49 taken 7 times.
✓ Branch 50 taken 34 times.
✓ Branch 51 taken 8 times.
✓ Branch 52 taken 11 times.
✓ Branch 53 taken 8 times.
✓ Branch 54 taken 7 times.
✓ Branch 55 taken 7 times.
✓ Branch 56 taken 8 times.
✓ Branch 57 taken 8 times.
✓ Branch 58 taken 7 times.
✓ Branch 59 taken 8 times.
✓ Branch 60 taken 8 times.
✓ Branch 61 taken 8 times.
✓ Branch 62 taken 7 times.
✓ Branch 63 taken 7 times.
✓ Branch 64 taken 56 times.
✓ Branch 65 taken 32 times.
✓ Branch 66 taken 7 times.
✓ Branch 67 taken 7 times.
✓ Branch 68 taken 9 times.
✓ Branch 69 taken 7 times.
✗ Branch 70 not taken.
✗ Branch 71 not taken.
✓ Branch 72 taken 9 times.
✓ Branch 73 taken 2 times.
✓ Branch 74 taken 3 times.
✓ Branch 75 taken 2 times.
✓ Branch 76 taken 1 times.
✓ Branch 77 taken 1 times.
✓ Branch 78 taken 1 times.
✓ Branch 79 taken 1 times.
✗ Branch 80 not taken.
✗ Branch 81 not taken.
|
1660 | switch (k) { |
| 27 |
68/94✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 10 taken 9 times.
✓ Branch 14 taken 7 times.
✓ Branch 18 taken 18 times.
✓ Branch 22 taken 10 times.
✓ Branch 26 taken 7 times.
✓ Branch 30 taken 7 times.
✓ Branch 34 taken 10 times.
✓ Branch 38 taken 10 times.
✓ Branch 42 taken 7 times.
✓ Branch 46 taken 7 times.
✓ Branch 50 taken 7 times.
✓ Branch 54 taken 7 times.
✓ Branch 58 taken 7 times.
✓ Branch 62 taken 9 times.
✓ Branch 66 taken 7 times.
✓ Branch 70 taken 15 times.
✓ Branch 74 taken 7 times.
✓ Branch 78 taken 9 times.
✓ Branch 82 taken 9 times.
✓ Branch 86 taken 199 times.
✓ Branch 90 taken 9 times.
✓ Branch 94 taken 8 times.
✓ Branch 98 taken 7 times.
✓ Branch 102 taken 489 times.
✓ Branch 106 taken 10 times.
✓ Branch 110 taken 22 times.
✓ Branch 114 taken 8 times.
✓ Branch 118 taken 6 times.
✓ Branch 122 taken 6 times.
✓ Branch 126 taken 6 times.
✓ Branch 130 taken 85 times.
✓ Branch 134 taken 6 times.
✓ Branch 138 taken 6 times.
✓ Branch 142 taken 246 times.
✓ Branch 146 taken 6 times.
✗ Branch 150 not taken.
✗ Branch 151 not taken.
✗ Branch 154 not taken.
✗ Branch 155 not taken.
✗ Branch 158 not taken.
✗ Branch 159 not taken.
✗ Branch 162 not taken.
✗ Branch 163 not taken.
✗ Branch 166 not taken.
✗ Branch 167 not taken.
✗ Branch 170 not taken.
✗ Branch 171 not taken.
✗ Branch 174 not taken.
✗ Branch 175 not taken.
✗ Branch 178 not taken.
✗ Branch 179 not taken.
✓ Branch 182 taken 6 times.
✓ Branch 186 taken 60 times.
✓ Branch 190 taken 11 times.
✓ Branch 194 taken 14 times.
✓ Branch 198 taken 7 times.
✓ Branch 202 taken 34 times.
✓ Branch 206 taken 8 times.
✓ Branch 210 taken 11 times.
✓ Branch 214 taken 8 times.
✓ Branch 218 taken 7 times.
✓ Branch 222 taken 7 times.
✓ Branch 226 taken 8 times.
✓ Branch 230 taken 8 times.
✓ Branch 234 taken 7 times.
✓ Branch 238 taken 8 times.
✓ Branch 242 taken 8 times.
✓ Branch 246 taken 8 times.
✓ Branch 250 taken 7 times.
✓ Branch 254 taken 7 times.
✓ Branch 258 taken 56 times.
✓ Branch 262 taken 32 times.
✓ Branch 266 taken 7 times.
✓ Branch 270 taken 7 times.
✓ Branch 274 taken 9 times.
✓ Branch 278 taken 7 times.
✗ Branch 282 not taken.
✗ Branch 283 not taken.
✗ Branch 286 not taken.
✗ Branch 287 not taken.
✓ Branch 290 taken 9 times.
✓ Branch 294 taken 2 times.
✓ Branch 298 taken 3 times.
✓ Branch 302 taken 2 times.
✓ Branch 306 taken 1 times.
✓ Branch 310 taken 1 times.
✓ Branch 314 taken 1 times.
✓ Branch 318 taken 1 times.
✗ Branch 322 not taken.
✗ Branch 323 not taken.
|
1660 | NODEKIND_ENUM(X, SECTION, EXPR, STMT, MOD, MATCH) |
| 28 | |||
| 29 | ✗ | default: break; | |
| 30 | } | ||
| 31 | |||
| 32 | #undef X | ||
| 33 | #undef SECTION | ||
| 34 | #undef EXPR | ||
| 35 | #undef STMT | ||
| 36 | #undef MOD | ||
| 37 | #undef MATCH | ||
| 38 | ✗ | return "<invalid>"; | |
| 39 | } | ||
| 40 | |||
| 41 | void print(BoolOperator const& v, std::ostream& out) { | ||
| 42 |
2/3✓ Branch 0 taken 8 times.
✓ Branch 1 taken 9 times.
✗ Branch 2 not taken.
|
17 | switch (v) { |
| 43 | #define OP(name, kw, _) \ | ||
| 44 | case BoolOperator::name: { \ | ||
| 45 | out << #kw; \ | ||
| 46 | return; \ | ||
| 47 | } | ||
| 48 | 17 | BOOL_OPERATORS(OP) | |
| 49 | |||
| 50 | ✗ | default: break; | |
| 51 | #undef OP | ||
| 52 | } | ||
| 53 | } | ||
| 54 | |||
| 55 | void print(BinaryOperator const& v, std::ostream& out) { | ||
| 56 |
5/17✗ Branch 0 not taken.
✓ Branch 1 taken 19 times.
✓ Branch 2 taken 11 times.
✓ Branch 3 taken 3 times.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 11 taken 1 times.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
35 | switch (v) { |
| 57 | #define OP(name, kw, _) \ | ||
| 58 | case BinaryOperator::name: { \ | ||
| 59 | out << #name; \ | ||
| 60 | return; \ | ||
| 61 | } | ||
| 62 | 35 | BINARY_OPERATORS(OP) | |
| 63 | |||
| 64 | ✗ | default: break; | |
| 65 | #undef OP | ||
| 66 | } | ||
| 67 | } | ||
| 68 | |||
| 69 | void print(UnaryOperator const& v, std::ostream& out) { | ||
| 70 |
4/6✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 3 times.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 6 times.
✗ Branch 5 not taken.
|
15 | switch (v) { |
| 71 | #define OP(name, kw, _) \ | ||
| 72 | case UnaryOperator::name: { \ | ||
| 73 | out << #name; \ | ||
| 74 | return; \ | ||
| 75 | } | ||
| 76 | 15 | UNARY_OPERATORS(OP) | |
| 77 | |||
| 78 | #undef OP | ||
| 79 | } | ||
| 80 | } | ||
| 81 | |||
| 82 | void print(CmpOperator const& v, std::ostream& out) { | ||
| 83 |
8/12✗ Branch 0 not taken.
✓ Branch 1 taken 3 times.
✓ Branch 2 taken 4 times.
✓ Branch 3 taken 10 times.
✗ Branch 4 not taken.
✓ Branch 5 taken 34 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 4 times.
✓ Branch 8 taken 4 times.
✓ Branch 9 taken 4 times.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
|
67 | switch (v) { |
| 84 | #define OP(name, kw, _) \ | ||
| 85 | case CmpOperator::name: { \ | ||
| 86 | out << #name; \ | ||
| 87 | return; \ | ||
| 88 | } | ||
| 89 | 67 | COMP_OPERATORS(OP) | |
| 90 | |||
| 91 | #undef OP | ||
| 92 | } | ||
| 93 | } | ||
| 94 | |||
| 95 | void ClassDef::Attr::dump(std::ostream& out) { | ||
| 96 | ✗ | out << name << ": " << str(type) << " = " << str(stmt); | |
| 97 | ✗ | } | |
| 98 | |||
| 99 | StringRef operator_magic_name(BinaryOperator const& v, bool reverse) { | ||
| 100 | |||
| 101 | #define OP(name, kw, magic) \ | ||
| 102 | static StringRef m_##name = String("__" #magic "__"); \ | ||
| 103 | static StringRef mr_##name = String("__r" #magic "__"); | ||
| 104 | |||
| 105 |
128/256✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 67 taken 12 times.
✓ Branch 70 taken 12 times.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 78 taken 12 times.
✗ Branch 79 not taken.
✓ Branch 82 taken 12 times.
✓ Branch 85 taken 12 times.
✓ Branch 90 taken 12 times.
✗ Branch 91 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 97 taken 12 times.
✓ Branch 100 taken 12 times.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 12 times.
✗ Branch 109 not taken.
✓ Branch 112 taken 12 times.
✓ Branch 115 taken 12 times.
✓ Branch 120 taken 12 times.
✗ Branch 121 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 127 taken 12 times.
✓ Branch 130 taken 12 times.
✓ Branch 135 taken 12 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 12 times.
✗ Branch 139 not taken.
✓ Branch 142 taken 12 times.
✓ Branch 145 taken 12 times.
✓ Branch 150 taken 12 times.
✗ Branch 151 not taken.
✓ Branch 153 taken 12 times.
✗ Branch 154 not taken.
✓ Branch 157 taken 12 times.
✓ Branch 160 taken 12 times.
✓ Branch 165 taken 12 times.
✗ Branch 166 not taken.
✓ Branch 168 taken 12 times.
✗ Branch 169 not taken.
✓ Branch 172 taken 12 times.
✓ Branch 175 taken 12 times.
✓ Branch 180 taken 12 times.
✗ Branch 181 not taken.
✓ Branch 183 taken 12 times.
✗ Branch 184 not taken.
✓ Branch 187 taken 12 times.
✓ Branch 190 taken 12 times.
✓ Branch 195 taken 12 times.
✗ Branch 196 not taken.
✓ Branch 198 taken 12 times.
✗ Branch 199 not taken.
✓ Branch 202 taken 12 times.
✓ Branch 205 taken 12 times.
✓ Branch 210 taken 12 times.
✗ Branch 211 not taken.
✓ Branch 213 taken 12 times.
✗ Branch 214 not taken.
✓ Branch 217 taken 12 times.
✓ Branch 220 taken 12 times.
✓ Branch 225 taken 12 times.
✗ Branch 226 not taken.
✓ Branch 228 taken 12 times.
✗ Branch 229 not taken.
✓ Branch 232 taken 12 times.
✓ Branch 235 taken 12 times.
✓ Branch 240 taken 12 times.
✗ Branch 241 not taken.
✓ Branch 243 taken 12 times.
✗ Branch 244 not taken.
✓ Branch 247 taken 12 times.
✓ Branch 250 taken 12 times.
✓ Branch 255 taken 12 times.
✗ Branch 256 not taken.
✓ Branch 258 taken 12 times.
✗ Branch 259 not taken.
✓ Branch 262 taken 12 times.
✓ Branch 265 taken 12 times.
✓ Branch 270 taken 12 times.
✗ Branch 271 not taken.
✓ Branch 273 taken 12 times.
✗ Branch 274 not taken.
✓ Branch 277 taken 12 times.
✓ Branch 280 taken 12 times.
✓ Branch 285 taken 12 times.
✗ Branch 286 not taken.
✓ Branch 288 taken 12 times.
✗ Branch 289 not taken.
✓ Branch 292 taken 12 times.
✓ Branch 295 taken 12 times.
✓ Branch 300 taken 12 times.
✗ Branch 301 not taken.
✓ Branch 303 taken 12 times.
✗ Branch 304 not taken.
✓ Branch 307 taken 12 times.
✓ Branch 310 taken 12 times.
✓ Branch 315 taken 12 times.
✗ Branch 316 not taken.
✓ Branch 318 taken 12 times.
✗ Branch 319 not taken.
✓ Branch 322 taken 12 times.
✓ Branch 325 taken 12 times.
✓ Branch 330 taken 12 times.
✗ Branch 331 not taken.
✓ Branch 333 taken 12 times.
✗ Branch 334 not taken.
✓ Branch 337 taken 12 times.
✓ Branch 340 taken 12 times.
✓ Branch 345 taken 12 times.
✗ Branch 346 not taken.
✓ Branch 348 taken 12 times.
✗ Branch 349 not taken.
✓ Branch 352 taken 12 times.
✓ Branch 355 taken 12 times.
✓ Branch 360 taken 12 times.
✗ Branch 361 not taken.
✓ Branch 363 taken 12 times.
✗ Branch 364 not taken.
✓ Branch 367 taken 12 times.
✓ Branch 370 taken 12 times.
✓ Branch 375 taken 12 times.
✗ Branch 376 not taken.
✓ Branch 378 taken 12 times.
✗ Branch 379 not taken.
✓ Branch 382 taken 12 times.
✓ Branch 385 taken 12 times.
✓ Branch 390 taken 12 times.
✗ Branch 391 not taken.
✓ Branch 393 taken 12 times.
✗ Branch 394 not taken.
✓ Branch 397 taken 12 times.
✓ Branch 400 taken 12 times.
✓ Branch 405 taken 12 times.
✗ Branch 406 not taken.
✓ Branch 408 taken 12 times.
✗ Branch 409 not taken.
✓ Branch 412 taken 12 times.
✓ Branch 415 taken 12 times.
✓ Branch 420 taken 12 times.
✗ Branch 421 not taken.
✓ Branch 423 taken 12 times.
✗ Branch 424 not taken.
✓ Branch 427 taken 12 times.
✓ Branch 430 taken 12 times.
✓ Branch 435 taken 12 times.
✗ Branch 436 not taken.
✓ Branch 438 taken 12 times.
✗ Branch 439 not taken.
✓ Branch 442 taken 12 times.
✓ Branch 445 taken 12 times.
✓ Branch 450 taken 12 times.
✗ Branch 451 not taken.
✓ Branch 453 taken 12 times.
✗ Branch 454 not taken.
✓ Branch 457 taken 12 times.
✓ Branch 460 taken 12 times.
✓ Branch 465 taken 12 times.
✗ Branch 466 not taken.
✓ Branch 468 taken 12 times.
✗ Branch 469 not taken.
✓ Branch 472 taken 12 times.
✓ Branch 475 taken 12 times.
✗ Branch 481 not taken.
✗ Branch 482 not taken.
✗ Branch 485 not taken.
✗ Branch 486 not taken.
✗ Branch 489 not taken.
✗ Branch 490 not taken.
✗ Branch 493 not taken.
✗ Branch 494 not taken.
✗ Branch 497 not taken.
✗ Branch 498 not taken.
✗ Branch 501 not taken.
✗ Branch 502 not taken.
✗ Branch 505 not taken.
✗ Branch 506 not taken.
✗ Branch 509 not taken.
✗ Branch 510 not taken.
✗ Branch 513 not taken.
✗ Branch 514 not taken.
✗ Branch 517 not taken.
✗ Branch 518 not taken.
✗ Branch 521 not taken.
✗ Branch 522 not taken.
✗ Branch 525 not taken.
✗ Branch 526 not taken.
✗ Branch 529 not taken.
✗ Branch 530 not taken.
✗ Branch 533 not taken.
✗ Branch 534 not taken.
✗ Branch 537 not taken.
✗ Branch 538 not taken.
✗ Branch 541 not taken.
✗ Branch 542 not taken.
✗ Branch 545 not taken.
✗ Branch 546 not taken.
✗ Branch 549 not taken.
✗ Branch 550 not taken.
✗ Branch 553 not taken.
✗ Branch 554 not taken.
✗ Branch 557 not taken.
✗ Branch 558 not taken.
✗ Branch 561 not taken.
✗ Branch 562 not taken.
✗ Branch 565 not taken.
✗ Branch 566 not taken.
✗ Branch 569 not taken.
✗ Branch 570 not taken.
✗ Branch 573 not taken.
✗ Branch 574 not taken.
✗ Branch 577 not taken.
✗ Branch 578 not taken.
✗ Branch 581 not taken.
✗ Branch 582 not taken.
✗ Branch 585 not taken.
✗ Branch 586 not taken.
✗ Branch 589 not taken.
✗ Branch 590 not taken.
✗ Branch 593 not taken.
✗ Branch 594 not taken.
✗ Branch 597 not taken.
✗ Branch 598 not taken.
✗ Branch 601 not taken.
✗ Branch 602 not taken.
✗ Branch 605 not taken.
✗ Branch 606 not taken.
|
12 | BINARY_OPERATORS(OP) |
| 106 | |||
| 107 | #undef OP | ||
| 108 | |||
| 109 |
1/17✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 14 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
|
12 | switch (v) { |
| 110 | #define OP(name, kw, _) \ | ||
| 111 | case BinaryOperator::name: { \ | ||
| 112 | return reverse ? mr_##name : m_##name; \ | ||
| 113 | } | ||
| 114 |
1/32✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✗ Branch 36 not taken.
✗ Branch 37 not taken.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 42 not taken.
✗ Branch 43 not taken.
✗ Branch 45 not taken.
✗ Branch 46 not taken.
|
12 | BINARY_OPERATORS(OP) |
| 115 | |||
| 116 | #undef OP | ||
| 117 | } | ||
| 118 | |||
| 119 | ✗ | return StringRef(""); | |
| 120 | } | ||
| 121 | |||
| 122 | StringRef operator_magic_name(BoolOperator const& v, bool reverse) { | ||
| 123 | |||
| 124 | #define OP(name, kw, magic) \ | ||
| 125 | static StringRef m_##name = String("__" #magic "__"); \ | ||
| 126 | static StringRef mr_##name = String("__r" #magic "__"); | ||
| 127 | |||
| 128 |
20/32✓ Branch 0 taken 12 times.
✓ Branch 1 taken 20 times.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✓ Branch 16 taken 20 times.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✓ Branch 31 taken 20 times.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✓ Branch 46 taken 20 times.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 65 not taken.
✗ Branch 66 not taken.
✗ Branch 69 not taken.
✗ Branch 70 not taken.
✗ Branch 73 not taken.
✗ Branch 74 not taken.
|
32 | BOOL_OPERATORS(OP) |
| 129 | |||
| 130 | #undef OP | ||
| 131 | |||
| 132 |
2/3✓ Branch 0 taken 24 times.
✓ Branch 1 taken 8 times.
✗ Branch 2 not taken.
|
32 | switch (v) { |
| 133 | #define OP(name, kw, _) \ | ||
| 134 | case BoolOperator::name: { \ | ||
| 135 | return reverse ? mr_##name : m_##name; \ | ||
| 136 | } | ||
| 137 |
4/4✓ Branch 0 taken 6 times.
✓ Branch 1 taken 18 times.
✓ Branch 3 taken 4 times.
✓ Branch 4 taken 4 times.
|
32 | BOOL_OPERATORS(OP) |
| 138 | |||
| 139 | ✗ | default: break; | |
| 140 | #undef OP | ||
| 141 | } | ||
| 142 | |||
| 143 | ✗ | return StringRef(""); | |
| 144 | } | ||
| 145 | |||
| 146 | StringRef operator_magic_name(UnaryOperator const& v, bool reverse) { | ||
| 147 | |||
| 148 | #define OP(name, kw, magic) \ | ||
| 149 | static StringRef m_##name = String("__" #magic "__"); \ | ||
| 150 | static StringRef mr_##name = String("__r" #magic "__"); | ||
| 151 | |||
| 152 |
40/80✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 67 taken 12 times.
✓ Branch 70 taken 12 times.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 78 taken 12 times.
✗ Branch 79 not taken.
✓ Branch 82 taken 12 times.
✓ Branch 85 taken 12 times.
✓ Branch 90 taken 12 times.
✗ Branch 91 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 97 taken 12 times.
✓ Branch 100 taken 12 times.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 12 times.
✗ Branch 109 not taken.
✓ Branch 112 taken 12 times.
✓ Branch 115 taken 12 times.
✓ Branch 120 taken 12 times.
✗ Branch 121 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 127 taken 12 times.
✓ Branch 130 taken 12 times.
✓ Branch 135 taken 12 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 12 times.
✗ Branch 139 not taken.
✓ Branch 142 taken 12 times.
✓ Branch 145 taken 12 times.
✗ Branch 151 not taken.
✗ Branch 152 not taken.
✗ Branch 155 not taken.
✗ Branch 156 not taken.
✗ Branch 159 not taken.
✗ Branch 160 not taken.
✗ Branch 163 not taken.
✗ Branch 164 not taken.
✗ Branch 167 not taken.
✗ Branch 168 not taken.
✗ Branch 171 not taken.
✗ Branch 172 not taken.
✗ Branch 175 not taken.
✗ Branch 176 not taken.
✗ Branch 179 not taken.
✗ Branch 180 not taken.
✗ Branch 183 not taken.
✗ Branch 184 not taken.
✗ Branch 187 not taken.
✗ Branch 188 not taken.
|
12 | UNARY_OPERATORS(OP) |
| 153 | |||
| 154 | #undef OP | ||
| 155 | |||
| 156 |
1/6✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
|
12 | switch (v) { |
| 157 | #define OP(name, kw, _) \ | ||
| 158 | case UnaryOperator::name: { \ | ||
| 159 | return reverse ? mr_##name : m_##name; \ | ||
| 160 | } | ||
| 161 |
1/10✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
|
12 | UNARY_OPERATORS(OP) |
| 162 | |||
| 163 | #undef OP | ||
| 164 | } | ||
| 165 | |||
| 166 | ✗ | return StringRef(""); | |
| 167 | } | ||
| 168 | |||
| 169 | StringRef operator_magic_name(CmpOperator const& v, bool reverse) { | ||
| 170 | |||
| 171 | #define OP(name, kw, magic) \ | ||
| 172 | static StringRef m_##name = String("__" #magic "__"); \ | ||
| 173 | static StringRef mr_##name = String("__r" #magic "__"); | ||
| 174 | |||
| 175 |
88/176✓ Branch 0 taken 12 times.
✗ Branch 1 not taken.
✓ Branch 3 taken 12 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 12 times.
✓ Branch 10 taken 12 times.
✓ Branch 15 taken 12 times.
✗ Branch 16 not taken.
✓ Branch 18 taken 12 times.
✗ Branch 19 not taken.
✓ Branch 22 taken 12 times.
✓ Branch 25 taken 12 times.
✓ Branch 30 taken 12 times.
✗ Branch 31 not taken.
✓ Branch 33 taken 12 times.
✗ Branch 34 not taken.
✓ Branch 37 taken 12 times.
✓ Branch 40 taken 12 times.
✓ Branch 45 taken 12 times.
✗ Branch 46 not taken.
✓ Branch 48 taken 12 times.
✗ Branch 49 not taken.
✓ Branch 52 taken 12 times.
✓ Branch 55 taken 12 times.
✓ Branch 60 taken 12 times.
✗ Branch 61 not taken.
✓ Branch 63 taken 12 times.
✗ Branch 64 not taken.
✓ Branch 67 taken 12 times.
✓ Branch 70 taken 12 times.
✓ Branch 75 taken 12 times.
✗ Branch 76 not taken.
✓ Branch 78 taken 12 times.
✗ Branch 79 not taken.
✓ Branch 82 taken 12 times.
✓ Branch 85 taken 12 times.
✓ Branch 90 taken 12 times.
✗ Branch 91 not taken.
✓ Branch 93 taken 12 times.
✗ Branch 94 not taken.
✓ Branch 97 taken 12 times.
✓ Branch 100 taken 12 times.
✓ Branch 105 taken 12 times.
✗ Branch 106 not taken.
✓ Branch 108 taken 12 times.
✗ Branch 109 not taken.
✓ Branch 112 taken 12 times.
✓ Branch 115 taken 12 times.
✓ Branch 120 taken 12 times.
✗ Branch 121 not taken.
✓ Branch 123 taken 12 times.
✗ Branch 124 not taken.
✓ Branch 127 taken 12 times.
✓ Branch 130 taken 12 times.
✓ Branch 135 taken 12 times.
✗ Branch 136 not taken.
✓ Branch 138 taken 12 times.
✗ Branch 139 not taken.
✓ Branch 142 taken 12 times.
✓ Branch 145 taken 12 times.
✓ Branch 150 taken 12 times.
✗ Branch 151 not taken.
✓ Branch 153 taken 12 times.
✗ Branch 154 not taken.
✓ Branch 157 taken 12 times.
✓ Branch 160 taken 12 times.
✓ Branch 165 taken 12 times.
✗ Branch 166 not taken.
✓ Branch 168 taken 12 times.
✗ Branch 169 not taken.
✓ Branch 172 taken 12 times.
✓ Branch 175 taken 12 times.
✓ Branch 180 taken 12 times.
✗ Branch 181 not taken.
✓ Branch 183 taken 12 times.
✗ Branch 184 not taken.
✓ Branch 187 taken 12 times.
✓ Branch 190 taken 12 times.
✓ Branch 195 taken 12 times.
✗ Branch 196 not taken.
✓ Branch 198 taken 12 times.
✗ Branch 199 not taken.
✓ Branch 202 taken 12 times.
✓ Branch 205 taken 12 times.
✓ Branch 210 taken 12 times.
✗ Branch 211 not taken.
✓ Branch 213 taken 12 times.
✗ Branch 214 not taken.
✓ Branch 217 taken 12 times.
✓ Branch 220 taken 12 times.
✓ Branch 225 taken 12 times.
✗ Branch 226 not taken.
✓ Branch 228 taken 12 times.
✗ Branch 229 not taken.
✓ Branch 232 taken 12 times.
✓ Branch 235 taken 12 times.
✓ Branch 240 taken 12 times.
✗ Branch 241 not taken.
✓ Branch 243 taken 12 times.
✗ Branch 244 not taken.
✓ Branch 247 taken 12 times.
✓ Branch 250 taken 12 times.
✓ Branch 255 taken 12 times.
✗ Branch 256 not taken.
✓ Branch 258 taken 12 times.
✗ Branch 259 not taken.
✓ Branch 262 taken 12 times.
✓ Branch 265 taken 12 times.
✓ Branch 270 taken 12 times.
✗ Branch 271 not taken.
✓ Branch 273 taken 12 times.
✗ Branch 274 not taken.
✓ Branch 277 taken 12 times.
✓ Branch 280 taken 12 times.
✓ Branch 285 taken 12 times.
✗ Branch 286 not taken.
✓ Branch 288 taken 12 times.
✗ Branch 289 not taken.
✓ Branch 292 taken 12 times.
✓ Branch 295 taken 12 times.
✓ Branch 300 taken 12 times.
✗ Branch 301 not taken.
✓ Branch 303 taken 12 times.
✗ Branch 304 not taken.
✓ Branch 307 taken 12 times.
✓ Branch 310 taken 12 times.
✓ Branch 315 taken 12 times.
✗ Branch 316 not taken.
✓ Branch 318 taken 12 times.
✗ Branch 319 not taken.
✓ Branch 322 taken 12 times.
✓ Branch 325 taken 12 times.
✗ Branch 331 not taken.
✗ Branch 332 not taken.
✗ Branch 335 not taken.
✗ Branch 336 not taken.
✗ Branch 339 not taken.
✗ Branch 340 not taken.
✗ Branch 343 not taken.
✗ Branch 344 not taken.
✗ Branch 347 not taken.
✗ Branch 348 not taken.
✗ Branch 351 not taken.
✗ Branch 352 not taken.
✗ Branch 355 not taken.
✗ Branch 356 not taken.
✗ Branch 359 not taken.
✗ Branch 360 not taken.
✗ Branch 363 not taken.
✗ Branch 364 not taken.
✗ Branch 367 not taken.
✗ Branch 368 not taken.
✗ Branch 371 not taken.
✗ Branch 372 not taken.
✗ Branch 375 not taken.
✗ Branch 376 not taken.
✗ Branch 379 not taken.
✗ Branch 380 not taken.
✗ Branch 383 not taken.
✗ Branch 384 not taken.
✗ Branch 387 not taken.
✗ Branch 388 not taken.
✗ Branch 391 not taken.
✗ Branch 392 not taken.
✗ Branch 395 not taken.
✗ Branch 396 not taken.
✗ Branch 399 not taken.
✗ Branch 400 not taken.
✗ Branch 403 not taken.
✗ Branch 404 not taken.
✗ Branch 407 not taken.
✗ Branch 408 not taken.
✗ Branch 411 not taken.
✗ Branch 412 not taken.
✗ Branch 415 not taken.
✗ Branch 416 not taken.
|
12 | COMP_OPERATORS(OP) |
| 176 | |||
| 177 | #undef OP | ||
| 178 | |||
| 179 |
1/12✗ Branch 0 not taken.
✓ Branch 1 taken 12 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
|
12 | switch (v) { |
| 180 | #define OP(name, kw, _) \ | ||
| 181 | case CmpOperator::name: { \ | ||
| 182 | return reverse ? mr_##name : m_##name; \ | ||
| 183 | } | ||
| 184 |
1/22✗ Branch 0 not taken.
✗ Branch 1 not taken.
✗ Branch 3 not taken.
✓ Branch 4 taken 12 times.
✗ Branch 6 not taken.
✗ Branch 7 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 15 not taken.
✗ Branch 16 not taken.
✗ Branch 18 not taken.
✗ Branch 19 not taken.
✗ Branch 21 not taken.
✗ Branch 22 not taken.
✗ Branch 24 not taken.
✗ Branch 25 not taken.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 30 not taken.
✗ Branch 31 not taken.
|
12 | COMP_OPERATORS(OP) |
| 185 | |||
| 186 | #undef OP | ||
| 187 | } | ||
| 188 | |||
| 189 | ✗ | return StringRef(""); | |
| 190 | } | ||
| 191 | |||
| 192 | // FIXME: this is a hack | ||
| 193 | // to avoid cicle we should just make a reference to the type that cycles | ||
| 194 | bool Arrow::add_arg_type(ExprNode* arg_type) { | ||
| 195 |
1/2✓ Branch 0 taken 206 times.
✗ Branch 1 not taken.
|
206 | if (arg_type != this) { |
| 196 | 206 | args.push_back(arg_type); | |
| 197 | |||
| 198 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 206 times.
|
206 | if (has_circle(this)) { |
| 199 | ✗ | args.pop_back(); | |
| 200 | ✗ | return false; | |
| 201 | } | ||
| 202 | |||
| 203 | 206 | return true; | |
| 204 | } | ||
| 205 | kwwarn("trying to assing self to an arrow argument"); | ||
| 206 | ✗ | return false; | |
| 207 | } | ||
| 208 | |||
| 209 | bool Arrow::set_arg_type(int i, ExprNode* arg_type) { | ||
| 210 | |||
| 211 |
1/2✓ Branch 0 taken 8 times.
✗ Branch 1 not taken.
|
8 | if (arg_type != this) { |
| 212 | 8 | ExprNode* old = args[i]; | |
| 213 | 8 | args[i] = arg_type; | |
| 214 | |||
| 215 |
1/2✗ Branch 1 not taken.
✓ Branch 2 taken 8 times.
|
8 | if (has_circle(this)) { |
| 216 | ✗ | args[i] = old; | |
| 217 | ✗ | return false; | |
| 218 | } | ||
| 219 | |||
| 220 | 8 | return true; | |
| 221 | } | ||
| 222 | |||
| 223 | kwwarn("trying to assing self to an arrow argument"); | ||
| 224 | ✗ | return false; | |
| 225 | } | ||
| 226 | |||
| 227 | // ------------------------------------------ | ||
| 228 | } // namespace lython | ||
| 229 |