我正在玩ANTLR JavaScript target。虽然我理解如何直接在任何目标语言中返回值,但我不知道如何处理返回值来自回调的特殊JavaScript情况。
例如,我知道如何做到这一点:
atom returns [cell]
: number { console.log('number: ' + $number.text); $cell = $number.text; }
;
但不是这样,以异步方式(它显然不起作用,但它用于说明概念。可以有一个回调函数传递给atom来发送结果):
atom returns [cell]
: number {console.log('number: ' + $number.text); myfunc($number, function(a) {$cell = a;}); }
;