독점 IDE 디자인 파일에서 속성 및 코드를 추출하는 응용 프로그램을 작성하려고합니다.간단한 코드 파서를위한 설계 전략
HEADING
{
SUBHEADING1
{
PropName1 = PropVal1;
PropName2 = PropVal2;
}
SUBHEADING2
{
{ 1 ; PropVal1 ; PropValue2 }
{ 2 ; PropVal1 ; PropValue2 ; OnEvent1=BEGIN
MESSAGE('Hello, World!');
{ block comments are between braces }
//inline comments are after double-slashes
END;
PropVal3 }
{ 1 ; PropVal1 ; PropVal2; PropVal3 }
}
}
내가 뭘하려고 오전 부제목 블록에서 내용을 추출 할 수 있습니다 : 파일 형식은 다음과 같이 보입니다. SUBHEADING2의 경우 세미콜론으로 구분 된 각 토큰을 분리합니다. 나는 괄호를 세우고 내가 현재 부제목을 가지고 있는지를 추적하는 것으로 합리적으로 좋은 성공을 거두었 다. 내가 만난 주된 문제는 코드 주석을 다루는 일이다.
이 언어는 파일 형식의 대괄호를 방해하는 블록 주석에 {}를 사용하는 경우가 있습니다. 더 재미있게 만들려면 두 줄의 인라인 주석을 고려해야하며 줄 끝까지 모든 것을 무시해야합니다.
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 다른 기사 (ANTLR, Doxygen 등)에서 논의 된 컴파일러 라이브러리 중 일부를 살펴 보았지만 이러한 특정 구문 분석 문제를 해결하기에는 과도한 것처럼 보입니다.
XML 기반 구문을 사용하지 않는 이유는 무엇입니까? – xport