2016-07-21 13 views
0

私はメッセージを解析しており、解析中はカスタムオブジェクトMessageを作成しています。私はパフォーマンスを賢明に思っていましたが、パーサのアクションや他の場所にオブジェクトを作成する方が良いでしょうか?ANTLR4で解析中にオブジェクトを作成するのがパフォーマンス上最善の方法は何ですか?

今のところ、exitルールのメソッドをオーバーライドしています。

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); 

        } 
(...) 
}); 

この方法またはパーサーの動作で行う方が良いですか?

答えて

0

構文解析プロセスとASTバイパスを分離することをお勧めします。異なるランタイムで構文解析を実装できるためです。また、これらのアクションは異なる論理的なステップです。だから私はあなたがすべてを正しく行うと思う。

関連する問題