!7 cmodule InputInterpreter > DynTextArea { S output; transient ReliableSingleThread rstRunProgram = dm_rst(this, r runProgram); transient JLabel lblStatus; visual jvsplit( jCenteredSection("Input", super), centerAndSouth( jCenteredSection("Output", dm_textArea_scrollDown_readOnly output()), withRightMargin(lblStatus = jRightAlignedLabel()))); start { grabInterval = 1.0; dm_watchFieldAndNow text(rstRunProgram); } void runProgram { temp tempMiniLoadingAnim(); time { LPair list = agiBlue_rules_gazelleZip(trim(text)); setField(output := mapToLines(list, ruleAndMap -> gazelle_deepReplaceVars(ruleAndMap.b, pairB(tok_splitAtDoubleArrow_pair(ruleAndMap.a))))); } main setText(lblStatus, lastTiming_formatted()); } }