feat(pproc): 改进宏处理器中的标识符识别逻辑
修复了宏处理器中对标识符类型的检查方式,使用更准确的子类型判断函数, 确保关键字也能被正确处理为宏名或参数名。同时添加了相关的单元测试用例。 BREAKING CHANGE: 修改了token类型的检查方法
This commit is contained in:
@@ -181,6 +181,19 @@ static void test_define_nested_macros(void) {
|
||||
"#define x 2\n"
|
||||
"g(z)\n",
|
||||
"f(2 * (z))\n");
|
||||
|
||||
TEST_CASE("with keyword as macro name or parameter name");
|
||||
CHECK_PP_OUTPUT_EXACT(
|
||||
"#define ASSIGN_PTR_OR_DEFAULT(assigned_val, value, default)\\\n"
|
||||
"assigned_val = value ? value : default\n"
|
||||
"ASSIGN_PTR_OR_DEFAULT(parser->sema_callbacks.on_decl,"
|
||||
"callbacks->on_decl, dummy_sema_callback);\n",
|
||||
"parser->sema_callbacks.on_decl = callbacks->on_decl ? "
|
||||
"callbacks->on_decl : dummy_sema_callback;\n");
|
||||
|
||||
CHECK_PP_OUTPUT_EXACT("#define default a\n"
|
||||
"default\n",
|
||||
"a\n");
|
||||
}
|
||||
|
||||
static void test_undef_macros(void) {
|
||||
|
||||
Reference in New Issue
Block a user