### Question:
ParsingHybridProperty implements HybridProperty<ModelT> { @Override public Registration addHandler(EventHandler<? super PropertyChangeEvent<ModelT>> handler) { if (myHandlers == null) { myHandlers = new Listeners<>(); } return myHandlers.add(handler); } ParsingHybridProperty(
      Parser<? extends ModelT> parser,
      PrettyPrinter<? super ModelT> printer,
      ObservableList<Token> tokens, ParsingContextFactory parsingContextFactory); @Override final ModelT get(); @Override Registration addHandler(EventHandler<? super PropertyChangeEvent<ModelT>> handler); @Override ObservableList<Token> getTokens(); @Override String getPropExpr();  }### Answer:
@Test public void parserInvocations() { Registration r = myProp.addHandler(new EventHandler<PropertyChangeEvent<Expr>>() { @Override public void onEvent(PropertyChangeEvent<Expr> event) { } }); mySourceTokens.add(new IdentifierToken("a")); mySourceTokens.add(Tokens.PLUS); mySourceTokens.add(new IdentifierToken("b")); assertEquals(5 , parser.invocations); mySourceTokens.set(2, Tokens.MUL); assertEquals(6, parser.invocations); r.remove(); }