2

我正在尝试创建一个插件来使用 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”或删除预处理语法可以解决问题,但我不能这样做,因为我不应该修改我想要在插件之外处理的文件. 有人对此有解释/解决方案吗?提前致谢,

4

0 回答 0