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