!7 static O host; static SimpleLiveValue lv = new(S); static S last; static ReliableSingleThread rst = new(f parse); static JComponent visualize() { ret jLiveValueLabel(lv); } svoid update { S s = cast callOpt(creator(), 'getInterestingString); if (s != null && neq(s, last)) { last = s; rst.trigger(); } } svoid parse { S text; try { javaParseCompilationUnit(last); text = "Text parses as Java compilation unit"; } catch e { text = getInnerMessage(e); } lv.set(text); }