Hi all,
I'm having a problem with getting a Ruby string substitution going. I'm writing a preprocessor for a limited language that I'm using, that doesn't natively support arrays, so I'm hacking in my own.
I have a line:
x[0] = x[1] & x[1] = x[2]
I want to replace each instance with a reformatted version:
x__0 = x__1 & x__1 = x__2
The line may include square brackets elsewhere.
I've got a regex that will match the array use:
array_usage = /(\w+)\[(\d+)\]/
but I can't figure out the Ruby construct to replace each instance one by one. I can't use .gsub() because that will match every instance on the line, and replace every array declaration with whatever the first one was. .scan() complains that the string is being modified if you try and use scan with a .sub()! inside a block.
Any ideas would be appreciated!