如何将多个文件中相似的代码块提取到单个文件中?

如何将多个文件中相似的代码块提取到单个文件中?

问题:

我有多个大文件,其中包含以下代码块,这些代码块分散在所有文件中:

type Query {
 ...
}

extend type Query {
 ...
}

extend type Query {
 ...
}

我希望解析所有文件并提取该Query块并将其合并到一个文件中。每个文件的块之间的代码Query和行数都不同。并且块之前/之后可能有不同的块Query- 所有块都用{}.

我知道简单的正则表达式不起作用,因为它们可以跳过右大括号并匹配整个文件。

除了编写程序逐行读取文件之外,还有其他 UNIX-y 方法来解决这个问题吗?我的猜测是我想做的是“结构匹配”,这意味着 CFG(上下文无关语法)解析之类的东西,并且可能向 YACC 之类的东西发出信号。尽管我不确定是否有更简单的解决方案以及如何进行。

相关内容