GCC Code Coverage Report


Directory: src/
File: script_lib/parser.cpp
Date: 2024-12-30 15:39:09
Exec Total Coverage
Lines: 16 17 94.1%
Functions: 1 1 100.0%
Branches: 18 24 75.0%

Line Branch Exec Source
1 #include "script.h"
2 #include "tokens.h"
3 #include <sstream>
4 #include <text_conversion_constexpr.h>
5 #include <vector>
6
7 namespace script
8 {
9 141 void parse(const std::string& line, command& command, std::string& operand)
10 {
11 141 command = command::INVALID;
12
13
2/2
✓ Branch 1 taken 5 times.
✓ Branch 2 taken 136 times.
141 if (line.starts_with("#"))
14 {
15 5 command = command::COMMENT;
16 7 return;
17 }
18
19 136 std::string cmd;
20
21
1/2
✓ Branch 1 taken 136 times.
✗ Branch 2 not taken.
136 std::istringstream iss(line);
22
1/2
✓ Branch 1 taken 136 times.
✗ Branch 2 not taken.
136 iss >> cmd;
23
24
1/2
✗ Branch 1 not taken.
✓ Branch 2 taken 136 times.
136 if (cmd.empty())
25 return;
26
27 136 language_token t;
28
3/4
✓ Branch 1 taken 136 times.
✗ Branch 2 not taken.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 134 times.
136 if (!get_from_token(cmd, t))
29 2 return;
30
31 134 command = t.ID;
32
33
2/2
✓ Branch 0 taken 66 times.
✓ Branch 1 taken 68 times.
134 if (t.has_operand)
34
2/4
✓ Branch 1 taken 66 times.
✗ Branch 2 not taken.
✓ Branch 4 taken 66 times.
✗ Branch 5 not taken.
66 std::getline(iss >> std::ws, operand);
35
6/6
✓ Branch 1 taken 134 times.
✓ Branch 2 taken 2 times.
✓ Branch 4 taken 134 times.
✓ Branch 5 taken 2 times.
✓ Branch 7 taken 134 times.
✓ Branch 8 taken 2 times.
140 }
36 } // namespace script
37