sclass WordTokReplacer_es1 extends WordTokRule { LS tokReplaced; O[] outParams; S requiredInputType; *(S sentence, S _vars, S replaced, O... outParams) { super(dropLeadingSquareBracketStuff(sentence), asCISet(javaTokC(_vars))); tokReplaced = wordTok_noBrackets(dropLeadingSquareBracketStuff(replaced)); this.outParams = paramsPlus(outParams, type := leadingSquareBracketStuff(replaced)); requiredInputType = leadingSquareBracketStuff(sentence); } @Override bool preCheck(DynamicObject o) { if (nempty(requiredInputType)) { S type = getStringDyn type(o); if (neqic(type, requiredInputType)) { //printStackTrace("Bad type: " + type + " - " + extToString((Ext) o)); false; } } true; } run { emitOut(); } void emitOut { emit(makeExt(join(replaceCodeTokensUsingMap_curly(tokReplaced, map)), outParams)); } }