Translation using spawning
Same events as translation using dictionary.
The monitor:
monitor Translator {
action onload() {
on all Translation() as t addTranslation(t);
on all unmatched Input() as i fail(i);
}
action addTranslation(Translation t) {
spawn translation(t);
}
action translation(Translation t) {
on all Input(t.raw) translate(t.converted);
}
action translate(string converted) {
send Output(converted) to "output";
}
action fail(Input i) {
print "Cannot translate: " + i.value;
}
}