2
Camera {
position 0 0 0
direction 0 -1 0
up 0 1 0
FOVy 45
}
내 선택은 부스트 갔다 텍스트의 다음 조각을 구문 분석 할 수 있습니다 정신을 내가 플렉스 또는 들소와 거래를하지 않았 때문이다.
내가 마지막으로이 문법을했다
struct camera_grammar : qi::grammar<Iterator, camera(), ascii::space_type>
{
qi::rule<Iterator, camera(), ascii::space_type> start;
camera_grammar() : camera_grammar::base_type(start)
{
start %=
lit("Camera")
>> '{'
>> (lit("position") >> float_ >> float_ >> float_)
>> (lit("direction") >> float_ >> float_ >> float_)
>> (lit("up") >> float_ >> float_ >> float_)
>> (lit("FOVy") >> int_)
>> '}'
;
}
};
문제는 중괄호 내부의 부품도 교환 할 수있다; 순열 연산자 ^에 대해 읽었습니다.하지만 적어도 하나의 피연산자가 임의의 순서로 일치 할 때이 값을 읽습니다. 모든 문법이 순서에 있고 한 번만있는 경우에만 일치시킬 문법이 필요합니다.
누군가 나를 도울 수 있습니까?