2016-09-27 1 views
3

주어진 파이썬 코드 인 의 제어 흐름 그래프를 gcc 컴파일러 옵션에서 주어진 옵션과 유사하게 덤프하고 싶습니다. -fdump-tree-cfg for c code.파이썬 코드에 대한 제어 흐름 그래프를 검색하는 방법은 무엇입니까?

파이썬 코드 의 AST (추상 구문 트리)를 얻는데 성공했지만 제어 흐름 그래프를 AST 단계에서 얻으려면 상당히 복잡하고 번거 롭습니다.

파이썬 코드의 제어 흐름 그래프를 쉽게 검색 할 수있는 방법이 있습니까? 어떤 제안? 내가 python3.5

을 사용하고 방법

여러분 모두 감사하여

오!

P.S 정말 내가 후드를 사용하고 통역의 종류를 알 수없는, 은 내가 아는 한 그것은 CPython과 (확인되지 ​​않음), 나는 그것이 PyPy (Rpython) 생각하지 않습니다이다. 제안 사항 어떻게 확인할 수 있습니까?

답변

2

SO answer on how to build a control flow graph, using an AST을 참조하십시오.

원래 질문은 CFGs for Java에 대해 질문했지만 접근법은 실제로 매우 일반적이며 동일한 접근법이 Python 용 CFG를 작성하는 데 효과적입니다.

나는 이것을 "매우 복잡하다"라고 부르지 않았다. 기본 아이디어는 매우 간단합니다.

+0

감사합니다. ANTLR이 흥미롭게 들릴 것입니다. – JammingThebBits

+0

ANTLR은 속임수가 아닙니다. 그것은 단지 AST를 만듭니다. 내 대답은 CFG를 생성하기 위해 파서가 생성 한 AST를 사용하는 방법을 알려줍니다. –

+0

Downvoter :이 대답이 좋은 대답이 아닌 이유를 설명해 주시겠습니까? –