我有我想象中的一個相當複雜的技術挑戰:我希望能夠以多種語言可靠地進行字母重命名標識符(儘可能多)。這需要對每種語言進行特殊考慮,並且我正在徵求如何最小化我需要通過共享代碼完成的工作量的建議。像一個已經支持多種語言的統一解析或抽象語法框架就好了。Alpha以多種語言重命名
例如,這裏是一些Python代碼:
def foo(x):
def bar(y):
return x+y
return bar
的x
阿爾法重新命名y
改變x
到y
和保留語義。因此,這將成爲:
def foo(y):
def bar(y1):
return y+y1
return bar
看看我們如何需要的,以便從破譯密碼保持重命名y
到y1
?這就是爲什麼這是一個難題。看起來程序必須對構成範圍的內容有很好的瞭解,而不僅僅是做一個字符串搜索和替換。
我也想保留儘可能多的格式:評論,間距,縮進。但這不是100%必要的,它會很好。
任何提示?
所以基本上你正在尋找一個完整的多語言解析器? – 2011-04-29 20:15:32
這是可能的。我只需要關於名稱的內涵以及它們所指的內容的信息。該語言的其他語義是無關緊要的。但是AFAICT確實需要解析。 – luqui 2011-04-29 20:47:05
單獨的解析器甚至不會這樣做 - 他必須模擬每個標識符的範圍解析,這對於某些語言來說意味着將匿名導入的範圍考慮在內。這聽起來像是一個幾乎不可能完成的任務,如果不支持什麼語言的限制。 – 2011-04-29 20:47:08