2012-02-23 6 views
8

델파이 용 파서 코드 또는 BNF (Backus-Naur Form) 표기법을 입력으로 받아들이고 델파이 (또는 파스칼) 코드를 생성하는 프로그램이 있습니까? 구문 분석을할까요?주어진 BNF 형식의 파일을 구문 분석 할 Delphi 코드 생성

the GEDCOM standard (족보에 사용됨)의 다양한 버전으로 데이터 세트를 완벽하게 구문 분석하려고 시도하고 있으며 토큰에 도달하면 상태에서 상태로 파일을 처리해야합니다. 필자는 자동화 된 프로그램을 사용하여 기본 파스칼 코드를 설정하여 상태 처리를 수행하는 일을 싫어합니다.

그렇지 않으면 직접 수동으로 상태 구조를 만들어야 할 것입니다.

나는 다음과 같은 질문을 참조했다

(그리고 TinyPG 좋아 보인다,하지만 난 델파이 코드가 필요) : 같은 짐승이없는 경우 쉽게이 작업을 할 것입니다 사용할 수있는 다른 도구가, Parser-generator that outputs C# given a BNF grammar?

을 ?

답변

6

GOLD 구문 분석 시스템을 사용하는 것이 좋습니다. GOLD 문법은 Backus-Naur 형식과 정규 표현식을 기반으로합니다.

자원

엔진

엔진 델파이에 대한 자세한 내용은 here입니다.

롭 반 덴 브에 의해 오브젝트 파스칼에 대한이 one

는 관심이있을 수 있습니다.

인용구 : 롭 반 덴 직전이 언어 프로그래밍 오브젝트 파스칼에 대한 자신의 엔진을 업데이트

. 그의 구현은 프로그램 템플릿을 사용하여 전 기능 프로그램을 만듭니다. 이 접근법은 파싱 테이블 을 소스 코드에 직접 포함시킵니다. 결과적으로 컴파일 된 문법 테이블 파일을로드 할 필요가 없습니다. 다운로드에는 프로그램 템플릿 과 몇 가지 예가 포함되어 있습니다. GOLD에게

GOLD를 사용하여

샘플 프로젝트가이 dcu2pas의 구문 분석 엔진으로 사용되는, 강력한이며, 호스팅 델파이 컴파일 된 장치 (DCU 파일) 디 컴파일러 here (bitbucket.org). 대신에 으로 작성된 것을 주목하십시오.

+1

저는 GOLD 구문 분석 시스템, 특히 편집기와 디버거를 정말 좋아합니다. 불행히도 델파이 엔진 구현은 10 년 전이었습니다.'Rob van den Brink' 코드의 Readme.txt는 "2002 년 4 월 24 일"이라고 말합니다. Delphi 유니 코드보다 7 년 앞서 있습니다. –

+0

예, 노화되지만 개선 될 수 있습니다. 최근의 C# 엔진 구현은 출혈 가장자리 구조를 사용하고 있습니다. Matthias Piepkorn의 D (Digital Mars D) 엔진은 Delphi 엔진에서 영감을 얻었으며 정말 훌륭했습니다. 델파이 커뮤니티가 최고의 시간을 되찾고 계속 나아갈 수있는 시간입니다. – menjaraz

+1

이것은 정확히 내가 찾고자했던 도구와 같습니다. 지적 해 주셔서 감사합니다! – lkessler