All pastes #465740 Raw Edit

Something

public text v1 · immutable
#465740 ·published 2007-04-30 15:29 UTC
rendered paste body
BEGIN {
  rules[0.0] = "X 1=bah 2=foo";
  rules[0.1] = "X 1=whee 2=yaz";
}

function applyrule(s,rule, n,rv,blah) {
  n = split(rule,rv);
  if (!index(s,"${" rv[1] ":")) return "";
  for (i = 2;i <= n;++i) {
    split(rv[i],blah,"=");
    gsub("\\${" rv[1] ":" blah[1] "}",blah[2],s);
  }
  return s;
}

function doit(s, didit) {
  for (i in rules)
    if (t = applyrule(s,rules[i])) { didit = 1; doit(t); }
  if (!didit) print s;
}

{ doit($0); }