!7 p-exp { S input = "tell me what's going on"; new L results; L results1 = nlLogic_processInputOrFact(input, false, "Reduction rules 2"); // Collect results of stage 1 for (ExecutedRule r : results1) if (nempty(r.output) || nempty(r.facts)) { print("Result: " + sfu(r)); results.add(r); } // Collect inputs for stage 2 LinkedHashSet newInputs = litorderedset(input); for (ExecutedRule r : results1) addAll(newInputs, r.newInput); for (S s : newInputs) { print("Stage 2: " + s); L results2 = nlLogic_processInputOrFact(s, false, ""); // Collect results of stage 2 for (ExecutedRule r : results2) if (nempty(r.output) || nempty(r.facts)) { print("Result: " + sfu(r)); results.add(r); } } printAsciiHeading("Results"); pnlStruct(results); }