我正在爲要在瀏覽器中運行的元語言編寫解析器。元語言是阻塞的,但由於JavaScript的限制,需要在解釋器中轉換爲非阻塞。以編程方式將同步代碼轉換爲異步代碼
例如,元語言代碼可能看起來像
1. dosomething(4)
2. dosomethingelse(1)
3. dosomething(7)
4. goto 2
用JavaScript實現的功能
function dosomething(n, callback) {
... // do something with n
setTimeout(callback, 1000);
}
function dosomethingelse(n, callback) {
... // do something else with n
setTimeout(callback, 1000);
}
沒有goto
報表,這將是很容易編譯成JavaScript,然後eval
。但是,我不知道如何實施goto
。任何幫助表示讚賞。
無條件轉到只是一個while循環 – akonsu
你如何解釋一個非阻塞語言中的阻塞while循環? – twinlakes
我不明白這個問題。 – akonsu