C++의 문맥 자유 문법 (CFG) 문을 입력으로 받아들이는 플랫폼을 만드는 방법이 궁금합니다. 모범적 인 목적을 위해 CFG가 포커 이동을 지시한다고 가정합니다. 그래서 이동 문의 일반적인 형태는컨텍스트 무료 문법 및 C++
move statement -> PLAYER_ID MOVE_ID MOVE
될 경우
PLAYER_ID -> INTEGER
MOVE_ID -> INTEGER
MOVE -> CHECK | RAISE | CALL | FOLD
RAISE -> "raise by " INTEGER
나는 (클래스로 구현 될 수있다) 예를 들어, 특정 이동 문 출력을받을 수있는 플랫폼을 구축 할 , 게임의 현재 상태.
C++에서 이와 같은 플랫폼/프로그램을 만드는 방법은 무엇입니까?
"손 쓰기"를 명확히하기 위해 편집 됨. Boost는 인기있는 C++ 라이브러리이며, C++의 표준 라이브러리 중 일부는 먼저 boost에 의해 개발 된 다음 나중에 표준에 통합되었습니다. 이것은 표준이 아니기 때문에 (STL의 일부가 아닌) 영혼의 경우는 아니지만 설치가 쉽고 많은 개발자가 사용하기를 선택합니다. 사용하기 쉽고, 예를 들어 포커싱을 구문 분석하는 데 유용한 옵션이 있습니다. – paulotorrens
나는 당신이 가고 싶은 길을 확실히해야 할 것입니다. 네가 "~라고 생각 했으니"라고 말하면서, 네가하려는 일을 정확히 설명하지 못했고, 나는 너에게 한 가지 이상의 길을 인도 할 수있는 일반적인 대답을했다. C++의 경우, 부스트는 일반적인 해결책이며, 이것은 소개입니다 (http://www.codeproject.com/Articles/20027/JSON-Spirit-A-C-JSON-Parser-Generator-Implemented). 또 다른 인기있는 선택은 bison과 flex로 파서를 생성하는 것입니다. [이것은 간단한 예제입니다] (http://www.jonathanbeard.io/tutorials/FlexBisonC++). 나는'strtok()'이 당신이 물어 본 것에 적합한 해결책이 아니라고 말해야합니다. – paulotorrens