그 표준을 알고 ...
의 우리가 문자열 ONE|(TWO|(THREE|FOUR))
을 가정 해 봅시다 : 정규식 은하지 않습니다 지원 재귀, 우리는 아래로이 문자열에 침입 할 수있는 방법는 C에서 표현의 내용을 교체 ++ [표준 : 정규식]
THREE|FOUR
TWO|{0}
ONE|{1}
위의 방식으로 이것을 변환하는 목적은 중첩 된 if/then 문을 의미 론적으로 나타내야하는 통과 식 목록을 만드는 것입니다. 어떻게 이것을 달성 할 수 있습니까? 당신은 가장 안쪽의 컨텐츠를 원하기 때문에
bison과 같은 구문 분석 소프트웨어를 사용 하시겠습니까? – Barmar
@Barmar 사실, 필자는 [ANTLR] (http://www.antlr.org)과 매우 흡사 한 내 자신의 문법 명세를 사용하여 내 자신의 lexer/parser를 만들고 있습니다. 위의 목적을 달성하는 것은 파싱 코드를 생성하는 것입니다. – RectangleEquals
그런 다음 파서 작성에 대한 좋은 교과서를 읽으십시오.이 책자를 구현하는 방법을 설명해야합니다. – Barmar