flip the tolower/toupper funcs

master
Daniel Kolesa 2018-01-02 22:35:56 +01:00
parent a0337c401e
commit 8aace1e65a
1 changed files with 10 additions and 7 deletions

View File

@ -114,7 +114,9 @@ struct parse_state {
template<typename R> template<typename R>
void build( void build(
R &writer, string_range name, R &writer, string_range name,
code_vec const &codes, code_vec const &cases = code_vec{} code_vec const &codes,
string_range cname = string_range{},
code_vec const &cases = code_vec{}
) { ) {
code_vec singles; code_vec singles;
code_vec singles_cases; code_vec singles_cases;
@ -224,7 +226,7 @@ struct parse_state {
if (cases.empty()) { if (cases.empty()) {
format(writer, "\n/* is%s */\n\n", name); format(writer, "\n/* is%s */\n\n", name);
} else { } else {
format(writer, "\n/* is%s, to%s */\n\n", name, name); format(writer, "\n/* is%s, to%s */\n\n", name, cname);
} }
build_list( build_list(
@ -238,14 +240,14 @@ struct parse_state {
/* is_CTYPE(c) */ /* is_CTYPE(c) */
build_func( build_func(
writer, name, "is", "bool", writer, name, name, "is", "bool",
ranges_beg, laces_beg[0], laces_beg[1], singles ranges_beg, laces_beg[0], laces_beg[1], singles
); );
/* to_CTYPE(c) */ /* to_CTYPE(c) */
if (!cases.empty()) { if (!cases.empty()) {
build_func( build_func(
writer, name, "to", "char32_t", writer, name, cname, "to", "char32_t",
ranges_beg, laces_beg[0], laces_beg[1], singles ranges_beg, laces_beg[0], laces_beg[1], singles
); );
} }
@ -267,6 +269,7 @@ struct parse_state {
void build_func( void build_func(
R &writer, R &writer,
string_range name, string_range name,
string_range fname,
string_range prefix, string_range prefix,
string_range ret_type, string_range ret_type,
code_vec const &ranges, code_vec const &ranges,
@ -275,7 +278,7 @@ struct parse_state {
code_vec const &singles code_vec const &singles
) { ) {
format( format(
writer, "%s %s%s(char32_t c) {\n", ret_type, prefix, name writer, "%s %s%s(char32_t c) {\n", ret_type, prefix, fname
); );
format(writer, " return utf::uctype_func<\n"); format(writer, " return utf::uctype_func<\n");
auto it1 = { &ranges, &laces1, &laces2, &singles }; auto it1 = { &ranges, &laces1, &laces2, &singles };
@ -320,10 +323,10 @@ struct parse_state {
build(writer, "alpha", alphas); build(writer, "alpha", alphas);
build(writer, "cntrl", controls); build(writer, "cntrl", controls);
build(writer, "digit", digits); build(writer, "digit", digits);
build(writer, "lower", lowers, touppers); build(writer, "lower", lowers, "upper", touppers);
build(writer, "space", spaces); build(writer, "space", spaces);
build(writer, "title", titles); build(writer, "title", titles);
build(writer, "upper", uppers, tolowers); build(writer, "upper", uppers, "lower", tolowers);
} }
void build_all_from_file(string_range input, string_range output) { void build_all_from_file(string_range input, string_range output) {