我正在寻找一个C代码的声明,给出文件名和亚麻的开始.
当然,我不能只是采取行,因为我可以有类似的东西:
foo(i,
j, "this is ); \
", k);
Run Code Online (Sandbox Code Playgroud)
如例子所示,我也不能寻找下);一个,这将使它相当简单.
那里有什么东西,大概是在CPAN上,它会自动执行此操作吗?
如果我可以先通过缩进运行代码,我会让它允许无限制的行长度,然后只取这条线,但如果我这样做,我会丢失行号!
要做得非常好,你需要在Perl中使用完整的C语法分析器.但是,您可以使用更简单的算法覆盖99%以上的所有案例:
"行尾的分号"对于"语句结束"来说是一个相当不错的启发式方法.相对简单的引用解析可能会保护您免受上面显示的情况的影响.
如果你需要更复杂的东西,你可能会看看C :: Scan及其子类,或者Inline :: C :: ParseRecDescent.