2016-07-21 25 views
0

Ich analysiere eine Nachricht und erstelle eine benutzerdefinierte Nachricht während der Analyse. Ich habe mich gefragt, ob die Performance weise ist, ist es besser, das Objekt in den Parser-Aktionen oder anderswo zu erstellen?Was ist der beste Weg um ein Objekt während der Analyse in ANTLR4 zu erstellen?

für jetzt überschreibe ich die Exit-Regel-Methoden.

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

        } 
(...) 
}); 

ist es besser, es so oder in der Parser-Aktion zu tun?

Antwort

0

Es empfiehlt sich, den Analyseprozess und den AST-Bypass zu trennen, da das Parsing für verschiedene Laufzeiten implementiert werden kann. Auch diese Aktionen sind unterschiedliche logische Schritte. Also ich denke du machst alles richtig.