GCC Code Coverage Report


Directory: ./
File: src/parser/parser_ext.cpp
Date: 2023-04-27 00:55:30
Exec Total Coverage
Lines: 8 8 100.0%
Functions: 4 4 100.0%
Branches: 8 10 80.0%

Line Branch Exec Source
1 // extension to python AST
2 #include "parser/parser.h"
3
4 #define TRACE_START2(tok) \
5 kwtrace_start(depth, "{}: {} - `{}`", to_string(tok.type()).c_str(), tok.type(), tok.identifier())
6
7 #define TRACE_START() TRACE_START2(token())
8
9 namespace lython {
10
11 ExprNode* Parser::parse_ifexp_ext(Node* parent, int depth) {
12 TRACE_START();
13
14 1 auto expr = parent->new_object<IfExp>();
15
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
1 start_code_loc(expr, token());
16 1 next_token();
17
18 1 expr->test = parse_expression(expr, depth + 1);
19 expect_token(':', true, expr, LOC);
20
21 1 expr->body = parse_expression(expr, depth + 1);
22
23 expect_token(tok_else, true, expr, LOC);
24
25 1 expr->orelse = parse_expression(expr, depth + 1);
26
27
4/5
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 9 taken 1 times.
1 end_code_loc(expr, token());
28 1 return expr;
29 }
30 } // namespace lython
31