1
포스트 스키핑을하는 가장 관용적 인 방법은 무엇입니까? 더 구체적으로 내 상위 규칙과 일치 한 후 입력에 "건너 뛸 수없는"(쓰레기) 문자가 없는지 확인하고자합니다.포스트 스키핑과 관용적 인 완전 매칭
auto const blankOrComment
= ascii::space
| x3::lexeme ['#' >> *(x3::char_ - x3::eol) >> -x3::eol ]
;
auto const program = rule<AstProgram>("program")
= *(as<AstDefinition> (definition > ";"))
;
auto const programEntry = x3::skip(blankOrComment) [program];
하나 개의 아이디어, 나는 아주 못생긴 고려하면 주요 반복자 위치가 끝 반복자가 아닌 경우, 나중에 blankOrComment
에 대한 별도의 구문 분석 호출을 할 수 있었다. 내가 가진 현재의 더 좋은 아이디어는 루트 규칙을 변경하는 것입니다.
auto const programEntry = x3::skip(blankOrComment) [program >> x3::omit[*blankOrComment]];
더 관용적 인 방법이 있습니까?