7#include "../strings.hpp"
16 bool relative_column_nr =
true;
18 bool relative_row_nr =
true;
21 if (address.starts_with(
"$")) {
22 relative_column_nr =
false;
23 address.remove_prefix(1);
26 while (!address.empty() && is_alpha(address.front())) {
28 column_nr += address.front() - (is_upper(address.front()) ?
'A' :
'a') + 1;
29 address.remove_prefix(1);
32 if (address.starts_with(
"$")) {
33 relative_row_nr =
false;
34 address.remove_prefix(1);
37 while (!address.empty() && is_digit(address.front())) {
39 row_nr += address.front() -
'0';
40 address.remove_prefix(1);
43 tt_parse_check(address.empty(),
"Extra characters in spread sheet address {}", address);
45 return {relative_column_nr, column_nr - 1, relative_row_nr, row_nr - 1};
50 ttlet[relative_column_nr, column_nr, relative_row_nr, row_nr] = parse_spread_sheet_address(address);
51 return {column_nr, row_nr};