2011-05-11 3 views
1

parsec과 함께 C++ 함수에 대한 오픈 소스 파서 구현이 있습니까?C++ 함수에 대한 parsec 파서?

설치도 실패한

+1

원하는 정보에 따라 gccxml/pygccxml에서 서명을 제공 할 수 있습니다. 그것은 많은 작업이 될 것이지만 최소한 g ++이 받아들이는 모든 C++를 파싱합니다. 이것은 중요 할 수 있습니다. (C++은 다소 비현실적이다.) 그러나 gccxml은 느립니다. – gatoatigrado

+0

하스켈에서 사용할 수있는 C++ 파서 또는 C++에서 사용할 수있는 C++ 파서를 찾고 계십니까? – ildjarn

+1

GCCXML의 속도는 걱정하지 않지만, 대수적 데이터 형식을 사용하는 기능 프로그래머에게는 AST가 큰 불쾌감을줍니다. 질문에 관해서는, Stack Overflow가 이러한 종류의 의견을 낙담시키는 것을 알고 있지만, 하스켈을 사용하는 것은 비 스타터입니다. 하스켈은 그렇게 할 기초가 너무 없다는 것이 아닙니다. C++을 파싱해야한다면 파서가 존재하는 시스템을 선택하십시오. 시맨틱 디자인이나 EDG 파서 (예 : Coverity에서 사용하는)의 상업용 DMS 시스템을 선택하십시오. 어쩌면 ANTLR은 현재 실행 가능한 파서를 가지고 있으며 오픈 소스 세계에서 유일한 후보라고 생각합니다. –

답변

3

번호

왜 becuase, libClang를 사용하려는 해달라고, 어떤을 찾을 수 있습니까? C++은 구문 분석하기가 매우 어렵습니다. 따라서 C 용 순수 하스켈 파서 (예 : Language.C)가 있지만 이미 구현 된 C++ 파서가 없으며 이미 알고있는 libclang 바인딩 이외의이 있습니다.


참조 :

+4

이것은 Parsec에는 문제가되지 않습니다. 이것은 C++의 두뇌 손상 구문의 결과입니다. –

+2

@ John L - 유리 주택? 돌? 현재 하루 (글래스고) Haskell을 구문 분석 할 수있는 유일한 것은 GHC입니다. 심지어 H98은 레이아웃을 처리하기 위해 렉서와 파서 사이에 특별한 정규화 단계가 없으면 파싱 될 수 없습니다. 글래스고 하스켈을 함수 언어의 C++로 생각하는 것은 부끄럽지 않은데 모든 GHC 확장의 힘을 좋아하지만, ... –

+2

@stephen tetley : haskell-src-exts는 모든 GHC 확장을 구문 분석 할 수 있다고 주장합니다. 나는 레이아웃 규칙이 파싱을 어렵게한다는 것을 인정하지만 H98과 C++의 복잡성에는 차이가 있습니다. 또한 구문 분석은 여전히 ​​C++의 가장 약한 부분 중 하나입니다. 도구. –