라텍스와 비슷한 간단한 언어로 파서를 작성하려고합니다. 예를 들어 두 개의 \ commands [with] {some} {parameters}가있는 구조화되지 않은 텍스트가 많이 포함되어 있습니다. 사이. \\와 같은 이스케이프 시퀀스도 고려해야합니다.Java에서 라텍스와 유사한 언어를 파싱
JavaCC를 사용하여 파서를 생성하려고 시도했지만 JavaCC와 같은 컴파일러 컴파일러가 일반적으로 범용 프로그래밍 언어에 적합한 구조화 된 코드에만 적합하고 지저분한 라텍스와 유사하지 않은 것처럼 보입니다. 마크 업. 지금까지 저 레벨로 가야하고 내 자신의 유한 상태 머신을 작성해야만합니다.
그럼 내 질문은 중간에 몇 개의 라텍스 식 명령 만 사용하여 대부분 구조화되지 않은 입력을 구문 분석하는 가장 쉬운 방법은 무엇입니까?
EDIT : Latex 명령을 중첩 할 수 있기 때문에 유한 상태 기계로 로우 레벨로가는 것은 어렵습니다. \ cmd1 {\ cmd2 {\ cmd3 {...}}}
(HTTP : //stackoverflow.com/questions/1669/learning-to-write-a-compiler). 당신의 문제는 수작업으로 재귀 적으로 발생하는 하강 접근법이 적합 할만큼 충분히 작을 수 있습니다. 또한 필자는 렉싱 (lexing)과 파싱 (parsing)이 서로 섞여있을 수도 있다고 생각한다. – dmckee