84 opt<seq<spaced_ch<'('>, PART_NUMBER, one<')'>>>,
85 opt<seq<spaced_ch<':'>, PART_VERSION>>,
86 opt<seq<spaced_ch<';'>, PART_DESCRIPTION>>
162int main(
int argc,
char** argv )
168 printf(
"usage: %s <complex|simple> <filename>", argv[0] );
172 std::string chosen_selector = argv[1];
173 std::filesystem::path filepath( argv[2] );
175 file_input in( filepath );
177 const std::size_t issues = tao::pegtl::analyze<GRAMMAR>();
181 std::cout <<
"\n***ERROR***: " << issues <<
" issues found in the grammar!\n";
185 std::unique_ptr<parse_tree::node> root;
187 if( chosen_selector ==
"complex" )
189 root = parse_tree::parse<GRAMMAR, COMPLEX_SELECTOR>( in );
191 else if( chosen_selector ==
"simple" )
193 root = parse_tree::parse<GRAMMAR, SIMPLE_SELECTOR>( in );
197 printf(
"Invalid selector '%s' requested. Valid values are: complex or simple. \n",
199 printf(
"usage: %s <complex|simple> <filename>\n", argv[0] );
205 parse_tree::print_dot( std::cout, *root );
209 std::cout <<
"\n***ERROR***: No root tree node!\n";
212 standard_trace<GRAMMAR>( in );
parse_tree::selector< PEGTL_RULE, parse_tree::store_content::on< STR_SEGMENT_EXCLUDING< PART_NAME_FILTER >, STR_SEGMENT_EXCLUDING< PART_NUMBER_FILTER >, STR_SEGMENT_EXCLUDING< PART_VERSION_FILTER >, STR_SEGMENT_EXCLUDING<>, CURRENT_FORMAT_NUMBER, UNMATCHED_CONTENT >, parse_tree::remove_content::on< FORMAT, PART >, parse_tree::apply< FOLD_CONTENT >::on< PART_NAME, PART_NUMBER, PART_VERSION, PART_DESCRIPTION > > COMPLEX_SELECTOR
static void transform(Node &n)