CDTParser

private CDTParser parse() throws IOException, CoreException {

byte[] bytes = java.nio.file.Files.readAllBytes(Paths.get(this.file)); //this.file 文件路径

for (byte b : bytes) {

if (b == (byte)'\n') {

this.totalLine++; //文件行数

}

}

String code = new String(bytes);

FileContent fileContent = FileContent.create(this.file, code.toCharArray());

ILanguage language;

AbstractCLikeLanguage abstractCLikeLanguage;

if (this.lang == Language.C) { //this.lang 语言类型

language = CLang;

abstractCLikeLanguage = GCCLanguage.getDefault();

} else {

language = CPPLang;

abstractCLikeLanguage = GPPLanguage.getDefault();

}

Map<String, String> definedSymbols = new HashMap<>();

String[] includePaths = new String[0];

IScannerInfo info = new ScannerInfo(definedSymbols, includePaths);

IncludeFileContentProvider emptyIncludes = IncludeFileContentProvider.getEmptyFilesProvider();

int opts = 8;

IParserLogService log = new DefaultLogService();

this.iastTranslationUnit = abstractCLikeLanguage.getASTTranslationUnit(fileContent, info, emptyIncludes, null, opts, log);

return this;

}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值