2014-11-18 1 views
0

Я работаю над swig.js, чтобы он работал с Django более дружелюбным, я могу понять большинство кодов, но parse.js, интересно, что именно означает filterApplyIdx. Там кто-то еще работает над этим ?Что означает filterApplyIdx в parse.js?

ответ

2

Как я отправил к 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.

+0

Большое спасибо, это помогает! – yanni4night