여러 파일의 유사한 코드 블록을 단일 파일로 추출하는 방법은 무엇입니까?

여러 파일의 유사한 코드 블록을 단일 파일로 추출하는 방법은 무엇입니까?

질문:

모든 파일에 흩어져 있는 다음 코드 청크를 포함하는 여러 개의 큰 파일이 있습니다.

type Query {
 ...
}

extend type Query {
 ...
}

extend type Query {
 ...
}

Query모든 파일을 구문 분석하고 해당 청크를 추출하여 하나의 파일로 병합하고 싶습니다 . 청크 사이의 코드 수와 줄 수는 Query파일마다 다릅니다. 그리고 블록 앞/뒤에 다른 블록이 있을 수 있습니다 Query. 모든 블록이 사용됩니다 {}.

간단한 정규식은 닫는 중괄호를 건너뛰고 전체 파일을 일치시킬 수 있으므로 작동하지 않는다는 것을 알고 있습니다.

파일을 한 줄씩 읽는 프로그램을 작성하는 것 외에 이 문제를 해결할 수 있는 다른 UNIX-y 방법이 있습니까? 내 생각엔 내가 하고 싶은 것은 "구조 일치"인데, 이는 CFG(Context Free Grammar) 구문 분석과 같은 것을 의미하고 아마도 YACC와 같은 것에 신호를 보내는 것입니다. 더 쉬운 해결책이 있는지, 진행 방법이 있는지는 잘 모르겠습니다.

관련 정보