fork(1) download
  1. BEGIN {FS=OFS="\n"}
  2.  
  3. {
  4. a=gensub(/([a-zA-Z]*):stem/,"(\\1:stem)", "g");
  5. while ( a ~ /stem)<>.*:suffix/) {
  6. a=gensub(/(\([a-zA-Z]*:stem\).*?)<>([a-zA-Z]*):suffix/,"(\\1\\2:suffix)", "g", a);
  7. }
  8. while ( a ~ /<>/) {
  9. a=gensub(/([a-zA-Z]*?:prefix)<>(.*)/,"(\\1\\2)", "g", a);
  10. }
  11. print a;
  12. }
  13.  
Success #stdin #stdout 0s 5960KB
stdin
abrasion abrade:stem<>ion:suffix
abstainer abstain:stem<>er:suffix
abstention abstain:stem<>ion:suffix
inaccurate in:prefix<>accurate:stem
inactive in:prefix<>active:stem
incommunicable in:prefix<>communicate:stem<>able:suffix
incompatibility in:prefix<>compatible:stem<>ity:suffix
nationalistic national:stem<>ism:suffix<>ist:suffix<>ic:suffix
antinationalistic anti:prefix<>national:stem<>ism:suffix<>ist:suffix<>ic:suffix
stdout
abrasion ((abrade:stem)ion:suffix)
abstainer ((abstain:stem)er:suffix)
abstention ((abstain:stem)ion:suffix)
inaccurate (in:prefix(accurate:stem))
inactive (in:prefix(active:stem))
incommunicable (in:prefix((communicate:stem)able:suffix))
incompatibility (in:prefix((compatible:stem)ity:suffix))
nationalistic ((((national:stem)ism:suffix)ist:suffix)ic:suffix)
antinationalistic (anti:prefix((((national:stem)ism:suffix)ist:suffix)ic:suffix))