Warning: session_start(): open(/var/lib/php/sessions/sess_87i2bs4jluontncn3ffuq1fris, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
module LLtoNL > DynRecordingTextArea {
S output;
transient S calcedInput;
visualize {
ret jvsplit(
jSection("INPUT (LL)", super.visualize()),
jSection("OUTPUT (NL)", dm_fieldTextArea('output)));
}
start {
onChangeAndNow(r calc);
}
void calc enter {
if (neq(text, calcedInput)) {
calcedInput = text;
new LS out;
final new MultiMap definitions;
for (S s : tlft(text)) {
LS tok = javaTokWithAllBrackets(s);
continue unless isSquareBracketed(second(tok)) && eq(":", get(tok, 3);
S id = second(tok);
tok = subList(tok, 4);
clearToken(tok, 0);
definitions.put(id, tok);
//out.add(join(tok));
}
//out.add("Keys: " + keys(definitions));
output.addAll(map joinIfStringList(getEmits(r { render(definitions) })));
setField(output := lines(out));
}
}
void render(MultiMap definitions) {
LL bla = definitions.get("[1]");
if (l(bla) < 2) ret;
LS line = concatLists(
ll(dropSuffixICTrim("(definition)", join(first(bla))),
" means: "), second(bla));
emit(line);
}
}