답변
번호
왜 becuase, libClang를 사용하려는 해달라고, 어떤을 찾을 수 있습니까? C++은 구문 분석하기가 매우 어렵습니다. 따라서 C 용 순수 하스켈 파서 (예 : Language.C)가 있지만 이미 구현 된 C++ 파서가 없으며 이미 알고있는 libclang 바인딩 이외의이 있습니다.
참조 :
- haskell/libclang하는 C++ 파서 사용하여 그 소리
- haskell/language-c, 순수 하스켈에서 C 파서.
이것은 Parsec에는 문제가되지 않습니다. 이것은 C++의 두뇌 손상 구문의 결과입니다. –
@ John L - 유리 주택? 돌? 현재 하루 (글래스고) Haskell을 구문 분석 할 수있는 유일한 것은 GHC입니다. 심지어 H98은 레이아웃을 처리하기 위해 렉서와 파서 사이에 특별한 정규화 단계가 없으면 파싱 될 수 없습니다. 글래스고 하스켈을 함수 언어의 C++로 생각하는 것은 부끄럽지 않은데 모든 GHC 확장의 힘을 좋아하지만, ... –
@stephen tetley : haskell-src-exts는 모든 GHC 확장을 구문 분석 할 수 있다고 주장합니다. 나는 레이아웃 규칙이 파싱을 어렵게한다는 것을 인정하지만 H98과 C++의 복잡성에는 차이가 있습니다. 또한 구문 분석은 여전히 C++의 가장 약한 부분 중 하나입니다. 도구. –
- 1. 복잡한 Parsec 파서
- 2. 함수에 대한 C 포인터
- 3. 함수에 대한 C++ 정적 포인터
- 4. C/C++의 Lua 함수에 대한 참조
- 5. Parsec : backtracking not working
- 6. 멤버 함수에 대한 포인터를 C 함수에 전달하는 방법은 무엇입니까?
- 7. 포인터, 파일 및 함수에 대한 도움이 C
- 8. (member?) 함수에 대한 C++ 일반 포인터
- 9. variadic 함수에 대한 objective-c 매크로
- 10. C++ 가상 함수에 대한 전달 선언
- 11. C : 함수에 대한 휘발성 포인터 선언
- 12. C++ : 함수에 대한 정의되지 않은 참조
- 13. 자바 스크립트 이스케이프 함수에 대한 C# 대안
- 14. qsort를 C++ 함수에 대한 포인터와 함께 호출
- 15. C++ 함수에 대한 호출 스택 전환
- 16. C++의 멤버 함수에 대한 함수 포인터
- 17. C++ 가상 함수에 대한 하나의 질문
- 18. C# 파서 오류 메시지
- 19. C# 코드 파서 찾기
- 20. 멤버 함수에 대한 참조?
- 21. 파섹 (Parsec) 파서에 readHex 추가
- 22. C++ .net HTML 파서
- 23. xmlElement 파서 필요성 C#
- 24. C 기반 XML 파서
- 25. 흐름 C 파서
- 26. 간단한 C++ MIME 파서
- 27. LDIF 파서 (C#)
- 28. 함수에 대한 포인터와 WINAPI 함수에 대한 포인터의 차이점은 무엇입니까?
- 29. 함수에 대한 .net 4
- 30. member 함수에 대한 인수가
원하는 정보에 따라 gccxml/pygccxml에서 서명을 제공 할 수 있습니다. 그것은 많은 작업이 될 것이지만 최소한 g ++이 받아들이는 모든 C++를 파싱합니다. 이것은 중요 할 수 있습니다. (C++은 다소 비현실적이다.) 그러나 gccxml은 느립니다. – gatoatigrado
하스켈에서 사용할 수있는 C++ 파서 또는 C++에서 사용할 수있는 C++ 파서를 찾고 계십니까? – ildjarn
GCCXML의 속도는 걱정하지 않지만, 대수적 데이터 형식을 사용하는 기능 프로그래머에게는 AST가 큰 불쾌감을줍니다. 질문에 관해서는, Stack Overflow가 이러한 종류의 의견을 낙담시키는 것을 알고 있지만, 하스켈을 사용하는 것은 비 스타터입니다. 하스켈은 그렇게 할 기초가 너무 없다는 것이 아닙니다. C++을 파싱해야한다면 파서가 존재하는 시스템을 선택하십시오. 시맨틱 디자인이나 EDG 파서 (예 : Coverity에서 사용하는)의 상업용 DMS 시스템을 선택하십시오. 어쩌면 ANTLR은 현재 실행 가능한 파서를 가지고 있으며 오픈 소스 세계에서 유일한 후보라고 생각합니다. –