在ANTLR4中进行解析时,从性能角度来看,创建对象的最佳方式是什么



我正在解析一条消息,并在进行解析时创建一个自定义对象message。我想知道性能方面,在解析器操作中还是在其他地方创建对象更好?

现在我正在重写退出规则方法。

parser.addParseListener(new MessageGrammarBaseListener(){
            MessageType message = null;
            @Override
            public void exitStartofMessage(StartofMessageContext ctx) {
                message = new MessageType();
            }
            @Override
                public void exitPersonalInformation( PersonalInformationContext ctx) {
                    Person p = new Person();
                    p.setName(ctx.name.getText());
                    message.setPersonalInformation(p);
                    }
(...)
});

这样做更好还是在解析器操作中更好?

将解析过程和AST旁路分开是一种很好的做法,因为解析可以在不同的运行时实现。这些操作也是不同的逻辑步骤。所以我认为你做每件事都是正确的。

相关内容

  • 没有找到相关文章

最新更新