boost-spirit-qi

    2

    1답변

    입력을 std :: string으로 구문 분석 할 때 문자열을 얻지 만 double_으로 구문 분석하면 융합 구조체에 예상되는 것보다 아주 작은 수가 포함됩니다. #include <boost/spirit/include/qi.hpp> #include <boost/fusion/include/adapt_struct.hpp> #include <string>

    1

    1답변

    숫자와 수학 표현식 만 포함하는 매우 단순한 언어에 대한 매우 간단한 구문 분석기를 만들려고합니다. 궁극적으로이 확장을 계획하지만이 기본 버전을 작동시킬 때까지는 아닙니다. 가 나는 성공적으로 분석했습니다 1 425 1 + 1 1 - 1 1 * 1 1/1 없음 문제. 하지만 다음과 같이 입력을 구문 분석하여 재귀 적으로 만들고 싶었습니다. 1

    0

    1답변

    datetime 파서 및 datetime 배열 파서가 있습니다. 예상대로 datetime_ = qi::eps[at_c<0>(qi::_val) = type::datetime] >> dt_string[at_c<1>(qi::_val) = qi::_1]; dt_string = (/*qi::lit("d") >>*/ qi::int_ >> "-

    1

    1답변

    나는 boost :: spirit을 사용하여 간단한 표현 파서를 작성하려고했다. 계산기 예제 (참조 : http://www.boost.org/doc/libs/1_41_0/libs/spirit/example/qi/calc2_ast.cpp)로 시작하여 변수에 대한 참조를 나타내는 "ref"규칙을 추가하려고했습니다. 나는 예에 만들어진 #include <boos

    1

    1답변

    내 프로그램에서는 큰 데이터 세트를 구문 분석하기 위해 Boost-Spirit-Qi를 사용합니다. 입력 데이터는 순차 레코드입니다. 구문 분석의 효율성을 높이기 위해 TBB를 사용하려고합니다. 다음 병렬 처리하기위한 과정은 다음과 같다 : typedef map<string, data_struct_t> mdata_t; vector<string> text;

    1

    1답변

    나는 머리를 감싸고있을 수없는 난처한 간단한 문제가 있습니다. 나는 부스트 문서 how to parse into structs을 읽고 있습니다. 그 장에 대한 sample code provided은 간단합니다 - 또는 그렇게 생각했습니다. 나는 아주 간단한 변화를 만들고 싶다. 다음과 같이 두 가지 (또는 그 이후 이상) 규칙에 ... start %=

    0

    1답변

    나는 간단한 lexer/parser와 boost :: spirit을하고있다. template <typename Lexer> struct word_count_tokens : lex::lexer<Lexer> { word_count_tokens() {

    3

    1답변

    을 사용하여 구분 된 토큰 목록을 구문 분석 boost :: spirit :: qi를 사용하여 구분 된 토큰의 가변 개수가 뒤에 오는 레이블로 구성된 행을 구문 분석하려고합니다. 문법을 phrase_parse으로 호출하고 제공된 레이블 파서를 건너 뛰기 파서로 사용하여 각 줄의 첫 번째 항목이 레이블인지 확인해야합니다. 간단한 기본 케이스 : label t

    5

    1답변

    qi 문법에서 키워드/식별자 사용의 뉘앙스와 관련된 몇 가지 게시물을 보았습니다. 그러나이 방법이 부스트 예제에서 어떻게 입증되었는지 이해할 수 없습니다 qi::symbols<char> keywords; 예 키워드 세트 : keywords.add ("foo") ("bar") ; 식별자 규칙 선언 :... 키워드 선언

    0

    1답변

    // 1 Mexpression = Mterm >> *( '+' >> Mterm [qi::_val = phoenix::new_<BinaryNode>(_1, '+', _2)] | '-' >> Mterm [qi::_val = phoenix::new_<BinaryNode>(_1, '-', _2)] ); Mterm = Mfactor >> *