Antlr4 如何使用ANTLR访问者处理可选语法块?
这个问题以前可能有人问过,但我找不到。所以如果你们发现类似的东西,请告诉我 根据以下规则:Antlr4 如何使用ANTLR访问者处理可选语法块?,antlr4,optional,visitor-pattern,Antlr4,Optional,Visitor Pattern,这个问题以前可能有人问过,但我找不到。所以如果你们发现类似的东西,请告诉我 根据以下规则: fix_body : ident binders (annotation)? (':' term)? ':=' fix_body_term; 我有一个可选的注释和一个可选的术语。相应的visitorRule如下所示: public FixBody visitFix_body(coqParser.Fix_bodyContext ctx) 我的问题是,我如何发现,是否有一个术语 有一种通过使用ctx.t
fix_body : ident binders (annotation)? (':' term)? ':=' fix_body_term;
我有一个可选的注释和一个可选的术语。相应的visitorRule如下所示:
public FixBody visitFix_body(coqParser.Fix_bodyContext ctx)
我的问题是,我如何发现,是否有一个术语
有一种通过使用
ctx.term()
获取术语的方法,但是当没有给定术语时,该方法是否返回null
?还是有完全不同的方法来解决这个问题?因为我正在使用一个大语法,所以我需要一段时间来测试这个,否则我会这样做的 那里没有陷阱
如果该术语是可选的,则只需在调用accept(visitor)
方法之前对其进行测试即可
就你而言
if(ctx.term() != null) ctx.term().accept(new TermVisitor())
例如: