Implement `sink` in Lua implementation.
Chris Pressey
6 years ago
98 | 98 | return {start=i, stop=i+2, pattern={x, "$", "dup"}, replacement={x, x, "$"}} |
99 | 99 | end |
100 | 100 | |
101 | if redex[i] == ")" and redex[i+1] == "$" and redex[i+2] and redex[i+3] == "sink" then | |
102 | local x = redex[i+2] | |
103 | return {start=i, stop=i+3, pattern={")", "$", x, "sink"}, replacement={")", "$", x}} | |
104 | end | |
105 | ||
106 | if redex[i] and redex[i+1] == "$" and redex[i+2] and redex[i+3] == "sink" then | |
107 | local x = redex[i] | |
108 | local y = redex[i+2] | |
109 | return {start=i, stop=i+3, pattern={x, "$", y, "sink"}, replacement={"$", y, "sink", x}} | |
110 | end | |
111 | ||
101 | 112 | if redex[i] == "$" and is_number(redex[i+1]) then |
102 | 113 | return {start=i, stop=i+1, pattern={"$", redex[i+1]}, replacement={redex[i+1], "$"}} |
103 | 114 | end |