inverseOperations = [
{
regex: /swap p.*(\d+).*(\d+)/,
fn: (pwd, m) => swap(pwd, +m[1], +m[2])
},
{
regex: /swap l.* (\w) .*(\w)/,
fn: (pwd, m) => swapLetters(pwd, m[1], m[2])
},
{
regex: /rotate (left|right).*(\d+)/,
fn: (pwd, m) => rotate(pwd, m[1] === "left" ? "right" : "left", +m[2])
},
{
regex: /rotate b.*(\w)/,
fn: (pwd, m) => inverseRotateAt(pwd, m[1])
},
{
regex: /reverse.*(\d+).*?(\d+)/,
fn: (pwd, m) => reverseBetween(pwd, +m[1], +m[2])
},
{
regex: /move.*(\d+).*(\d+)/,
fn: (pwd, m) => move(pwd, +m[2], +m[1])
}
]