1

有谁知道是否有办法向 pycparser 添加新关键字?我需要为基于 C99 但略有不同的编译器解析 C 代码。有一些关键字不属于 C99。

任何帮助表示赞赏

4

1 回答 1

1

c_lexer.py 模块有一个元组“关键字”定义。可以将新关键字添加到现有列表中。确保在 c_parser.py 中定义的语法规则中考虑了新关键字。例如,如果已将新类型“mytype_t”添加到关键字中,则还必须将其添加到 p_type_specifier 函数文档字符串中,以扩展“type_specifier”的定义,如下例所示:

def p_type_specifier_1(self, p):
    """ type_specifier  : VOID
                        | BOOL
                        | CHAR
                        | MYTYPE_T
                        ...

相同的方法适用于其他类型的关键字。

于 2013-11-13T23:33:54.923 回答