2010-12-22 3 views
6

이전에 많은 재귀 파서를 작성했지만, 최근에는 Castalia Delphi Parser에 관심을 갖게되었습니다 (왜 바퀴를 다시 발명하는지). 나는이 파서가 수년 동안 많은 프로젝트에서 사용되었다는 것을 알고있다. 그러나 그것을위한 어떤 문서를 찾는 것은 어려운 것처럼 보인다.Castalia 소스 파서를 사용하는 데 대한 예제 또는 설명서가 있습니까?

어디에서 설명서를 찾을 수 있습니까? 또는 대안으로 실제 구문 분석 시나리오에서 사용하는 방법에 대한 명확한 예가 있습니까?

아이디어는 Castalia를 델파이 유닛의 구문 검증에 사용하고, 가능한 경우 프로그램의 노드 트리 (클래스, 메소드, 매개 변수, 결과 데이터 유형, if/then/else - - 기본적으로 단위 나 프로그램의 전체지도). 실제로 코드를 실행하지 않고 "스크립트 실행 시간 반"이라고 생각하면 가장 근본적인 측면으로 분류 할 수 있습니다.

+0

주십시오 연구 결과를 공유하고, 당신이 마지막으로 선택한/무슨 짓을 한 : 여기

다른 하나? – menjaraz

답변

3

왜 JvInterpreterParser를 사용하지 않습니까? 그것은 단지 2-3 유닛 종속성을 가지고 있습니다 ... 당신의 필요에 맞게 쉽게 수정할 수 있고 속도도 향상시킬 수 있습니다. 이전 테스트에서는 6 초 만에 80MB 파일을 구문 분석했습니다. 여기에 설명 된 구문 분석기를 사용하여 2.8 GHz의 정도 ...

+1

그러면 질문이 생깁니다. JvInterpreterParser를 사용하는 데 필요한 설명서가 있습니까? –

+1

@Craig Peterson 예, JvInterpreter 클래스는 매우 좋은 예제입니다. 기본적으로 처음부터 시작해서 토큰이 tkEOF가 될 때까지 GetNextToken과 같은 것을 호출하면 파일의 끝에 도달했음을 알게됩니다. JvInterpreter는 꽤 큽니다. 그러나 기본 사용법을 통해 사용 방법을 쉽게 이해할 수 있습니다. 그 이상을 원하면 깊이 생각하고 이해해야하며 작동 방식을 개선하고 성능을 향상시켜야합니다 (해당되는 경우) – ComputerSaysNo

+1

나는 Castalia Delphi Parser가하는 일을 정확하게 모르지만, TJvInterpreterParser는 사실 파서가 아닙니다. 그것은 렉서 또는 토크 나이저입니다. TJVInterpreterExpression과 그 파생 클래스는 파서입니다. –

관련 문제