C++에서 콘솔 응용 프로그램을 작성 중이므로 응용 프로그램에서 옵션을 구성하기 위해 사용자 쉘과 같은 명령 시스템을 얻어야합니다. 예를 들어, 사용자가이 같은 작성할 수C++에서 명령 트리를 구문 분석하는 방법은 무엇입니까?
레지스터이름
연결개방[텔넷을 | SSH]
연결 스위치텔넷
보내텍스트
연결 스위치SSH
--register
|
--connetion
| |--open
| |--switch
|
--send
:
는이
그래서, 분명 우리는 몇 가지 명령 트리가, 위의 예에서 우리가 등등텍스트
...와 ... 보내
각 명령은 다른 양의 매개 변수를 가질 수 있습니다.
질문 :
- 어떻게 같은 명령 트리를 구문 분석?
이제 정규식으로 구문을 분석하지만이 솔루션은 실제로보기 흉합니다. 저는 YACC와 LEX에 관해 읽었습니다. 그러나 이것을 사용하는 것이 정말 좋은 생각인지 확신 할 수 없습니다.
구문 트리를 해석하는 데 널리 사용되는 방법이 있습니까? 어휘 분석 이론은 멋지지 않습니다. 학문적 인 방식으로 대답하지 않으면 감사하겠습니다.
제안 : A (상태, 문자)가 상태 머신 (state machine) 사용 -> (주, 옵션 <표준 : 기능>) 전환 기능을. –
lorro