ANTLR分析器空指针异常

时间:2013-12-31 03:19:59

标签: parsing exception pointers null antlr4

我正在尝试将操作放入C函数语法,但会出错。 例如:

expressionStatement returns [String value]
    :   expression? ';' {$value = (($expression.value != null)?$expression.value:"") + ";";}
    ;

请查看上述规则,如果我正确地返回表达式值,请告诉我。请注意,规则有条件(?)。 使用antlr正确运行语法以生成正确编译的java文件和java文件,但是当我使用代码运行它来解析时,它会给出空指针异常。

请尽快回复我,在这种情况下如何正确编写动作?

1 个答案:

答案 0 :(得分:0)

如果expression表达式与$expression == null不匹配,那么$expression.value就是Nul​​lPointerExceptions。

尝试:

expressionStatement returns [String value]
:   expression? ';' {
                     if($expression != null){
                       if($expression.value != null){
                         $value = $expression.value
                       }else{
                         $value = "";
                       }
                       $value  += ";";
                     }
                    }
;