我正在使用Boost / wave库进行语法突出显示任务。我们通过取消引用lex-token-iterator来获取令牌,然后处理这些令牌以进行自定义突出显示。
开箱即用的wave库带有一个cpp词法分析器,该词法遍历输入的C ++文件并标记化关键字。但是我的工作现在还涉及识别CUDA文件,并使用相同的机制将其标记化。
我可以在token_ids文件(The Token Identifiers)中添加CUDA关键字,但是这样做会更干净。
答案 0 :(得分:0)
问题在于关键字是词法分析器的一部分,因此需要重建词法分析器。令牌ID不够。有关最新示例,请参见this PR。如果您愿意将CUDA关键字视为标识符,则可能是一种解决方案(假设CUDA代码未作为注释或实用程序的一部分出现在C ++中,我不熟悉。)