Я работаю над swig.js, чтобы он работал с Django более дружелюбным, я могу понять большинство кодов, но parse.js, интересно, что именно означает filterApplyIdx. Там кто-то еще работает над этим ?Что означает filterApplyIdx в parse.js?
ответ
Как я отправил к mailing list
filterApplyIdx
представляет собой массив индексов на out
(выход) массив, на котором будут применяться фильтры. Когда парсер найдет фильтр, он применит его к массиву out
с индексом последнего значения в filterApplyIdx
.
Например: если out
массив имеет следующий ['(', 'my_var']
, то filterApplyIdx
должно быть [0, 1]
. (он будет применяться сначала к my_var
и, во-вторых, ко всему, что охватывает открывающая скобка, как только будет найдена закрывающая скобка). Итак, если следующий проанализированный элемент - это фильтр, он выдает последнее значение filterApplyIdx
, которое равно 1
, и посмотрите на массив out
и примените фильтр к токену по адресу out[1]
.
Если, однако, out
массива было чем-то более сложное, как: ['my_func(', 'foo', 'bar']
(обратите внимание, что закрывающая скобка для my_func
не была найдена еще), то filterApplyIdx
будет: [0, 2]
. Мы удалили 1
сейчас, потому что шанс применить фильтр к foo
прошел, так как была найдена новая переменная, bar
.
Большое спасибо, это помогает! – yanni4night