13static inline std::string either(std::string_view a, std::string_view b)
15 return std::string { a } +
"|" + b;
18static inline std::string group(std::string_view a)
20 return std::string {
"(" } + a +
")";
23static inline std::string many(std::string_view a)
25 return std::string {
"(?:" } + a +
")*";
28static inline std::string list(std::string_view a)
30 return std::string { a } + many(group(
"," + a));