나는 리스프와 유사한 언어로 따옴표처럼 행동 할 나의 부양 정신 문법에 규칙을 구현하려고합니다. 같은 뭔가 : QUOTE (A B의 C) 아이디어는 QUOTE의 개폐 괄호 사이에 어떤 문자열 리터럴로 캡처 할 것입니다보다는 더 어떤 구문 분석된다. ''('또는') '문자가 QUOTE 안에있을 수 있으므로 '\ " '>> * ~ char _ ('\" ') >
내 프로젝트에서 구문 분석에 문제가 있습니다. 적어도 문제가 나타나는 최소 코드 샘플을 찾았습니다. 이제는 문자열을 구문 분석하려고 시도합니다. "bool func1; const bool func2;" 여기에 최소 샘플 코드 : namespace qi = boost::spirit::qi;
using qi::lexeme;
using qi::string;
성령 님이 대안을 시도하는 데 어려움을 겪고 있습니다. 나는 성령 아마도 심하게 뭔가 잘못하고 새로운 오전, 그래서 SNR을 아래로 드래그 대해 사과하지만 어떤 도움에 감사드립니다 : 내가 같은 문법을 사용하고있는 '[' >> *(~ascii::char_("-]^") | (ascii::char_ >> '-' >>ascii::char_)) >> ']'
일
나는 여전히 부스트 스피릿을 처음 접했습니다. 나는 가능한 납과 후행 공백 및 중간 공백이있는 문자열을 구문 분석하려합니다. 나는 문자열 (가)의 사이에 단어의 공백이 하나 개의 공백 예를 들어 에 "( my test1 ) (my test2)"
가져 후행 선도 공백 제한을 제거하여 다음을 수행 할 "my test1"
"my test2"
- 두 용어
이 코드는 부스트 정신 libs와의 예에서, 그것은 OK입니다 : on_error<fail>(expr,error_handler_function(eh)("expecting ", _4, _3, _1));
오류 메시지 : 그러나 on_error<fail>(expr,error_handler_function(eh)("expecting ", _4, _3));
하나의 정신 규칙으로 벡터를 작성하고 거기에 값을 추가하고 싶습니다. 가능한가? 나는 아래와 같은 것을 시도했지만 성공하지 못했다. 자세한 내용은 코드 주석을 읽으십시오. 감사. typedef std::vector<double> number_array;
typedef std::vector<std::string> string_array;
typedef
특정 문법에 대해 반복 횟수를 세는 방법이 있는지 궁금합니다. 함수에 대해 얼마나 많은 매개 변수가 있는지를 효과적으로 계산합니다. 이것은 내 자신의 구문을 구문 분석하는 데 boost spirit 라이브러리를 사용하고 있습니다. 파서가 목록 연산자 %를 사용하여 찾는 매개 변수의 수를 얻으려고합니다. // _1 is string of function, i
성령이 성냥을 단 하나의 개체로 병합하는 방법과시기를 정확히 이해하는 데 어려움이 있습니다. 내가하려는 것은 이중 대괄호 안의 단어 목록을 일치시키는 것이며, 대괄호 안에 전체 텍스트를 추출하고 싶습니다. 예 : 다음과 같이 [[This is some single-spaced text]] -> "This is some single-spaced text"
나는 부스트 스피릿을 사용하여 간단한 계산기를 작성하고 있습니다. 제로 분모가 발생하면 나누기 연산자가 예외를 발생 시키길 원합니다. 이 이해하기 내가 그러나 term =
factor [qi::_val = qi::_1]
>> *(('*' >> factor [qi::_val *= qi::_1])
|
('/'
다음 간단한 코드에서 "액세스 위반"예외가 발생합니다. 왜 그렇게됩니까? 나는 그 이유를 알 수 없다. #define BOOST_SPIRIT_DEBUG
#include <boost/fusion/adapted/struct.hpp>
#include <boost/spirit/include/qi.hpp>
namespace qi = boost::spirit: