위키 피 디아에서 발견 된 (자바로) 위키 미디어 마크 업을 구문 분석하려고합니다. 이 작업에는 기존 패키지가 많이 있지만, 내 요구 사항을 잘 충족시키지 못했습니다. 가장 좋은 패키지는 대부분의 페이지에서 괜찮은 일을하는 Mathclipse Bliki parser입니다.위키 미디어 마크 업 구문 분석 - EBNF 기반 파서가 적합하지 않습니까?
그러나이 구문 분석기는 불완전하며 특정 페이지를 구문 분석하지 못하거나 잘못 파싱하지 못합니다. 안타깝게도 코드가 다소 엉망이되어서이 구문 분석 엔진의 문제를 해결하는 데 시간이 많이 걸리고 오류가 발생하기 쉽습니다.
더 나은 구문 분석 엔진을 찾기 위해이 작업 (특히 ANTLR)에 EBNF 기반 파서를 사용하여 조사했습니다. 그러나 위키 미디어 마크 업이 상대적으로 완화되어 구조화 된 문법에 쉽게 들어갈 수 없기 때문에 이러한 접근법이이 작업에 특히 적합하지 않은 것으로 보인다.
ANTLR 및 이와 유사한 파서에 대한 경험은 매우 제한적이므로이 파서가 본질적으로이 작업에 적합하지 않은 것보다 문제를 일으킬 수 있습니다. 이 주제에 대해 더 많은 경험을 가진 사람이 여기에 무게를 둘 수 있습니까?
@Stobor : Google 쿼리에서 반환 한 구문 분석 엔진을 비롯하여 다양한 구문 분석 엔진을 살펴 봤다. 지금까지 찾은 최고의 것은 Bliki 엔진입니다. 문제는 그러한 파서를 수정하는 것이 엄청나게 지루한데, 그 이유는 모두 본질적으로 조건문과 정규식 체인이 길어서 스파게티 코드가 생기기 때문입니다. 나는 파싱의 EBNF 방법에 더 비슷한 것을 찾고 있는데, 그 방법은 훨씬 더 명확하고 간결하며 이해하기 쉽고 진화하기 때문이다. 나는 당신이 올린 미디어 위키 링크를 보았습니다. 그리고 그것은 상자 밖의 EBNF가이 작업에 적합하지 않다는 나의 의심을 확인하는 것으로 보입니다. 따라서 나는 EBNF처럼 명확하고 이해할 수있는 구문 분석 엔진을 찾고 있지만 위키 마크 업의 지저분한 구문을 처리 할 수 있습니다.
그것은 좋은 수 있습니다 ...
그래서 짧은에, 더 EBNF의 문법은 미디어 위키 마크 업을 구문 분석에 적합하지 않습니다,하지만 아무것도 정말 없다 http://google.com/search?q=wikipedia+java+parser의 인기 검색어는 더 나은 답변을 제공 할 수 있습니다. – Stobor
도 http://www.mediawiki.org/wiki/Markup_spec/BNF – Stobor