remove more problematic public members
parent
2312961cdc
commit
e4c4c51055
|
@ -666,8 +666,12 @@ struct LIBCUBESCRIPT_EXPORT list_parser {
|
||||||
|
|
||||||
string_ref get_item() const;
|
string_ref get_item() const;
|
||||||
|
|
||||||
std::string_view get_raw_item() const { return p_item; }
|
std::string_view get_raw_item() const {
|
||||||
std::string_view get_quoted_item() const { return p_quoted_item; }
|
return std::string_view{p_ibeg, p_iend};
|
||||||
|
}
|
||||||
|
std::string_view get_quoted_item() const {
|
||||||
|
return std::string_view{p_qbeg, p_qend};
|
||||||
|
}
|
||||||
|
|
||||||
void skip_until_item();
|
void skip_until_item();
|
||||||
|
|
||||||
|
@ -675,8 +679,8 @@ private:
|
||||||
state *p_state;
|
state *p_state;
|
||||||
char const *p_input_beg, *p_input_end;
|
char const *p_input_beg, *p_input_end;
|
||||||
|
|
||||||
std::string_view p_item{};
|
char const *p_ibeg{}, *p_iend{};
|
||||||
std::string_view p_quoted_item{};
|
char const *p_qbeg{}, *p_qend{};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -318,8 +318,10 @@ LIBCUBESCRIPT_EXPORT bool list_parser::parse() {
|
||||||
case '"': {
|
case '"': {
|
||||||
char const *qi = p_input_beg;
|
char const *qi = p_input_beg;
|
||||||
p_input_beg = parse_string(*p_state, get_input());
|
p_input_beg = parse_string(*p_state, get_input());
|
||||||
p_quoted_item = std::string_view{qi, p_input_beg};
|
p_qbeg = qi;
|
||||||
p_item = p_quoted_item.substr(1, p_quoted_item.size() - 2);
|
p_qend = p_input_beg;
|
||||||
|
p_ibeg = p_qbeg + 1;
|
||||||
|
p_iend = p_qend - 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case '(':
|
case '(':
|
||||||
|
@ -369,8 +371,10 @@ LIBCUBESCRIPT_EXPORT bool list_parser::parse() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
endblock:
|
endblock:
|
||||||
p_item = std::string_view{ibeg + 1, p_input_beg - 1};
|
p_ibeg = ibeg + 1;
|
||||||
p_quoted_item = std::string_view{ibeg, p_input_beg};
|
p_iend = p_input_beg - 1;
|
||||||
|
p_qbeg = ibeg;
|
||||||
|
p_qend = p_input_beg;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ')':
|
case ')':
|
||||||
|
@ -378,7 +382,8 @@ endblock:
|
||||||
return false;
|
return false;
|
||||||
default: {
|
default: {
|
||||||
char const *e = parse_word(*p_state, get_input());
|
char const *e = parse_word(*p_state, get_input());
|
||||||
p_quoted_item = p_item = std::string_view{p_input_beg, e};
|
p_ibeg = p_qbeg = p_input_beg;
|
||||||
|
p_iend = p_qend = e;
|
||||||
p_input_beg = e;
|
p_input_beg = e;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -399,12 +404,12 @@ LIBCUBESCRIPT_EXPORT std::size_t list_parser::count() {
|
||||||
}
|
}
|
||||||
|
|
||||||
LIBCUBESCRIPT_EXPORT string_ref list_parser::get_item() const {
|
LIBCUBESCRIPT_EXPORT string_ref list_parser::get_item() const {
|
||||||
if (!p_quoted_item.empty() && (p_quoted_item.front() == '"')) {
|
if ((p_qbeg != p_qend) && (*p_qbeg == '"')) {
|
||||||
charbuf buf{*p_state};
|
charbuf buf{*p_state};
|
||||||
unescape_string(std::back_inserter(buf), p_item);
|
unescape_string(std::back_inserter(buf), get_raw_item());
|
||||||
return string_ref{*p_state, buf.str()};
|
return string_ref{*p_state, buf.str()};
|
||||||
}
|
}
|
||||||
return string_ref{*p_state, p_item};
|
return string_ref{*p_state, get_raw_item()};
|
||||||
}
|
}
|
||||||
|
|
||||||
LIBCUBESCRIPT_EXPORT void list_parser::skip_until_item() {
|
LIBCUBESCRIPT_EXPORT void list_parser::skip_until_item() {
|
||||||
|
|
Loading…
Reference in New Issue