注: 私はここにいる他のすべての人に同意します。プログラムを最初から書き直すべきであるということです。この答えは単なるアイデアです。誰かが実際に調べてくれることを願っています。
ブートストラップできるRuby-to-Xコンバーターはすでにいくつかあります。優れたものにはすでにレクサーとパーサーがあるため、バックエンドを操作するだけで済みます。Lua に似た言語を選択すると、さらに単純化できます。
たとえば、RubyJSのようなRuby から Javascript への実装がいくつかあります。メタメソッド、シンタックス シュガー、ライブラリの違い、および所々のセマンティックの違いは別として、Lua はより冗長な構文を持つ Javascript のサブセットと見なすことができます。self
{
}
それを念頭に置いて、いくつかの s をあちこちで変更することで、ほとんどのバックエンド ジェネレーターを変更できます。
// some random js
while(x < 56 && y == 40) {
print('Hello World!');
}
-- What you could make it generate:
while x < 56 and y == 40 do
print 'Hello World!'
end
おそらく、Javascript 固有の機能に依存する場合が数回あるかもしれませんが、その場合でも、それらのほとんどはエミュレートできます。
// Javascript has a === operator that enforces type equality
'5' === 5 // FALSE!
-- Lua lacks this, but it's easy to imitate
(type('5') == type(5)) and ('5' == 5)
いいえ、正直なところ、これは簡単なプロジェクトではありませんが、時間を投資する価値のあるものだと思います。:)