AST의 XML 트리를 생성 할 수있는 (E) BNF 파서가 있습니까?(E) BNF XML 구문 분석
Rephrasing : (E) BNF 정의 언어를 일종의 XML로 컴파일하는 가장 빠른 방법은 무엇입니까?
보너스 :
AST의 XML 트리를 생성 할 수있는 (E) BNF 파서가 있습니까?(E) BNF XML 구문 분석
Rephrasing : (E) BNF 정의 언어를 일종의 XML로 컴파일하는 가장 빠른 방법은 무엇입니까?
보너스 :
지금까지 AntLR과 StringTemplate 인터페이스를 사용하는 것이 가장 좋습니다. JavaScript target도 지원합니다.
무료하지 자바 스크립트 :-)를 사용하지만 XML을 생성합니다 DMS Software Reengineering Toolkit. 다양한 사전 정의 된 언어 정의 (C, C++, C#, Java, COBOL, Javascript, XML 등)를 사용할 수 있습니다.
질문은 무엇입니까? 일부 언어를 심각하게 처리하는 경우 AST (대개 기호 테이블 필요) 이상의 것을 필요로합니다.
문제는 XML DSL이 있고 중복이 많으며 사람이 거의 읽을 수없는 시스템과 상호 운용하려고하는 것입니다. 나는 XML AST를 얻을 수 있다면 XSLT가 내 문제를 해결할 것이라고 생각한다. (비록 심볼 테이블에 대해서는 생각하지 않았다.) \\) –
DSL의 요점은 사람들이 읽을 수 있도록 만드는 것이다. 나는 사람들이 같은 호흡에서 "DSL"과 "XML"이라고 말하는 것을 듣고 거의 울고 싶다. 파서의 요점은 사람들이 쓰는 것을 읽고 기계가 처리 할 수있는 것으로 만들기위한 것입니다. XML DSL은 "나는 파서를 작성하기에는 너무 게으르다"라는 약어를 사용합니다. –
당신은 나의 요지를 오해했습니다. DSL은 XML이 아니지만 해석 엔진은 XML 만 허용합니다. 인간이 읽을 수있는 DSL을 만들려고하는데 컴파일 후 엔진에서 읽을 수있는 자세한 XML을 출력합니다. –
당신이 명확히 할 수 있습니까? 어떤 종류의 XML을 출력으로 사용 하시겠습니까? –
최근에 썼습니다 만 닫힌 소스입니다) 많은 무료/오픈 파서 생성기가 있습니다. 그 중 하나는 XML 출력에 바인딩됩니다. – Joren
결과 구문 분석 트리. 싹둑 예 : <우편 주소> :: =<거리 주소> 은 얻을 것이다 : <거리 주소> ... 거리 <우편 주소> ... -address> ... postal-address> –