Data un'espressione corrispondente al regex /^[-~]*x$/, valutalo in termini di xe genera una stringa corrispondente al regex /^-?x[+-]\d+$/.
Ad esempio, la stringa -~xrestituisce x+1, mentre la stringa -~-xvaluta -x+1e la stringa -~-~--xvaluta x+2.
Partiamo da xe valutiamo la stringa da destra a sinistra. -annulla il termine, mentre viene ~convertito yin -y-1.
Casi test:
x x+0
~x -x-1
-~x x+1
~-~x -x-2
-~-~x x+2
--~~x x+0
~-x x-1
-~-x -x+1
Questo è code-golf . Vince la risposta più breve in byte.
Il formato di input / output è rigoroso. Il "x"è obbligatoria.
~mentre non è stato definito
x+010invece chex+10per-~-~-~-~-~-~-~-~-~-~x? Corrisponde alla seconda regex.