我正在尝试创建一个插件来使用 CDT 操作 C 源文件,我正在使用 ASTRewrite 对象来修改 C 文件,无论如何它可以正常工作,除了以下示例文件:
#define CODE_SECTION ON
#if ( CODE_SECTION == ON )
/**
* \Code Sample
*/
struct
{
int Var1[4];
//Comment 1!!!
int Var2[8];
} SampleStruct;
#endif /* End of Code Sample */
我得到以下异常:
java.lang.NullPointerException at org.eclipse.cdt.internal.core.dom.rewrite.commenthandler.ASTCommenter$PreprocessorRangeChecker.isCommentOnSameLine(ASTCommenter.java:86)
应:
ASTRewrite.create(ast);
经过一番调查,我认为删除注释“//Comment 1”或删除预处理语法可以解决问题,但我不能这样做,因为我不应该修改我想要在插件之外处理的文件. 有人对此有解释/解决方案吗?提前致谢,