Я хотел бы анализировать различные числа с помощью духа x3 в строку. Я попытался сделать это так, но это не сработает.Разбор номера в строку с повышающим духом x3
typedef x3::rule<class int_parser_id, std::string> int_parser_type;
const int_parser_type int_parser = "int_parser";
auto const int_parser_def = x3::int32;
Что я могу сделать, чтобы разобрать Int с помощью синтаксического анализатора x3 :: int32 в строку?
Говорить, что «это не работает» не говорит нам ничего, что может вам помочь. Пожалуйста, опишите ***, как *** «это не работает». Вы получаете ошибки сборки? Сбой во время выполнения? Неверные результаты? Чем больше деталей, тем лучше. Если вы получаете ошибки сборки, вы должны скопировать все ошибки (полностью и полностью) * как текст * неотредактированный в тело вопроса. Если вы получите неожиданные результаты, сообщите нам свой ввод и фактический * и ожидаемый * вывод. Если вы получаете сбои, запустите в отладчике, чтобы найти сбой. Также, пожалуйста, [прочитайте о том, как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask). –
@JoachimPileborg: В этом случае он не работает так же, как мой автомобиль не плавает - библиотека просто не _for_. Но если бы ФП знал об этом, они бы не спрашивали этот quesiton в первую очередь ...; -] – ildjarn
Этот анализатор должен анализировать последовательность чисел в строку: std :: string input = "1234"; std :: string out; x3 :: phrase_parse (input.begin(), input.end(), + x3 :: digit, x3 :: space, out); assert (out == input); (что означает 1 или более цифр. Атрибут «digit» parser - это «char», поэтому, когда вы ставите плюс спереди, вы получаете вектор char или string). – matiu