2
내가 real_parser를 사용하여 실수를 구문 분석하려고
다음과 같은 ureal_policies는 :정신 real_parser "합니다 .e"
template <typename T>
struct number_real_policies : qi::ureal_policies<T>
{
static bool const expect_dot = true;
template <typename Iterator, typename Attribute>
static bool
parse_nan(Iterator& first, Iterator const& last, Attribute& attr) {
return false;
}
template <typename Iterator, typename Attribute>
static bool
parse_inf(Iterator& first, Iterator const& last, Attribute& attr) {
return false;
}
};
완벽 내가 필요로하는 실수 형식의 모든 변화를 분석하는 것 그러나 나는 다음과 같은 것을 발견 문자열도 허용됩니다 : ".12345.e12".
소수 부분에 두 개의 점이 허용됩니다 (두 번째 점은 E/e 앞에 만 작동하고 E/e는 있어야 함). 사전에
덕분에
. 결국에는 분석되지 않는 텍스트 만 있습니다. –
[This] (http://liveworkspace.org/code/1uSkAG$0)는 작동하는 것처럼 보이며 1.53입니다. –
나는 그것이 단지 qi :: parse의 반환을 검사하는 경우라고 생각한다. [this] (http://stackoverflow.com/questions/12864978/boost-spirit-signals-successful-parsing-despite-token-being-incomplete/12868247#12868247)와 동일합니다. –