간단한 프로그래밍 언어 (숙제)를 위해 AST를 작성하려고합니다. 그러나 나는 그것을 작동하게 만들 수 없습니다 : 중간 값 ($ 1, $ 2, ...)이 유효하지 않으며 "하위 표현식"에서 반환하는 것과 일치하지 않는 것으로 보입니다. 여기 내 프로젝트의 Bison 코드가 있습니다. (문제는 내 AST 함수가 아니라 여기에 있다고 생각합니다.) 잘못된 값
Swift 컴파일러 (swiftc -dump-ast)가 생성 한 AST 덤프를 구문 분석하는 ANTLR 4 문법을 작성하고 있습니다. 예제 Swift 프로그램과 아래의 해당 AST 덤프를 참조하십시오. 불행히도 bug in the compiler으로 인해 덤프에 불균형 괄호가 포함될 수 있습니다 (일부 트리 노드에는 닫는 괄호가 없습니다). treeNode
필자가 작성한 라이브러리에서 exit PHP 함수를 조롱 할 수 있기를 바랍니다. 나는 namespace MyNamespace;
function exit()
{
// my mocked version of the function
}
처럼 exit, 무언가의 네임 스페이스 버전을 제공하기 위해 php-mock을 사용하려고하지만이 다음 Par
더 좋은 방법이 있나요? 나는 v의 타입이 내장 된 "에러"타입인지 알아야한다. import (
"go/ast"
"go/types"
)
func IsError(v ast.Expr, info types.Info) bool {
t := info.Types[v]
return t.Type.String() == "error"
libclang으로 작은 프로그램을 빌드하여 특정 함수 호출에 대한 함수/메소드 정의를 검색하려고합니다. 예를 들어 , 나는 main.cpp을 다음 있습니다 : int add(int x, int y)
{
return x + y;
}
int main()
{
int a = 1;
int b = 1;
int c = ad
나는 python과 pycparser에 비교적 익숙하다. 나는 이미 https://github.com/eliben/pycparser에서 c-to-c.py 파일을 사용하여 AST로 c 파일을 구문 분석했습니다. 나는 이제 AST를 사용하여 CFG를 만들려고하고 있지만 .show()에 정보를 문자열로 저장할 수 없다. 어떻게 내가이test "아무도"인쇄하려고
그래서 저는 파이썬과 비슷한 언어를 만들기 위해 통역을하고 있습니다. 지금 나는 이것이 작은 일이 아니라는 것을 잘 알고 있으며, 그것이 잘 작동하거나 많이 할 것을 기대하지는 않는다.하지만 몇 가지 기본적인 기능 (변수, 함수, 루프, if 문 등)을 갖고 싶다. 그래서 현재 나는 통역사가 파일을 받아서 토큰 목록으로 나눠서이 토큰을 AST로 변환 할 준
C++ 소스 코드가 주어지면 모든 함수가 쓰고 읽는 클래스 필드를 찾고 싶습니다. Clang 프론트 엔드를 사용하여이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 지금까지 내가 RecursiveASTVisitor를 사용하여 문을 구문 분석을 시도 , 그러나 추적하는, (그러나 효율적인 솔루션을위한 출발점이 좋은 것입니다. 나는 모든 단계에 대한 자세한 설