MACRO 调用的 ANTLR4 C 语法解析错误

问题描述

在 ANTLR4 C 语法中为以下代码获取解析错误

   static const char* _store_error_msg(int err)
   {
     switch (err) {
        RETURN_ERROR_STRING(STORE_CLIENT_ERROR_NONE)
        RETURN_ERROR_STRING(STORE_CLIENT_ERROR_NOT_SUPPORTED)
     default:
        return "UNKNowN_ERROR";
    }
   }

解析树生成如下

Parse Tree

如果我改变了

expressionStatement
    :   expression? ';'
    ;

expressionStatement
    :   expression ';'?
    ;

我能够消除解析错误但出现编译错误。需要哪些改变?请帮忙。

compoundStatement
    :   '{' blockItemList? '}'
    ;

blockItemList
    :   blockItem
    |   blockItemList blockItem
    ;

blockItem
    :   statement
    |   declaration
    ;

expressionStatement
    :   expression? ';'
    ;

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)