私は、LuaからES3のtranspiler(LuaをクロスブラウザのJavaScriptに変換するツール)を再構築しています。ECMAScript3にLuaラベルをトランスリングするソリューションはありますか?
goto label;
:: label ::
print "skipped";
私の最初のアイデアは、例えば部品、内の文の各体を分離することだった:私はこのtranspilerに私の考えを過ごすために開始する前に、それは例えばECMAScriptの3にLuaのラベルを変換することができます場合は、私が聞きたいですラベルがある場合は、次の文全体を次の部分全体として格納する必要があります。
some body
label (& statements)
other label (& statements)
など。本文(またはプログラムチャンク)を持つすべてのステートメントは、このような部分のリストを取得します。ラベルの各部分は、その名前がどこかに格納されるべきである(例えば、それ自身の部分オブジェクト、プロパティの中に)。
各部分は機能であるか、または他の部分と関連して順次実行される機能をそれ自身に格納します。
gotoステートメントは、そのステートメントを実行し、現在のステートメントの実行を停止するES returnステートメントを呼び出すために、特定のラベルをルックアップします。
このようにボディステートメントを分離することの限界は、さまざまな部分で定義されている変数と関数にアクセスすることです。これについてのアイデアや回答はありますか?それらをECMAScriptに変換する場合、安定したラベルを持つことは不可能ですか?
ラベルを宣言する前にgotoを実行することには1つの制限がありますが、これは私に役立ちます、ありがとう! – Hydro