我正在使用swig.js使它与Django更友好,我可以理解大多数代码但是parse.js,我想知道'filterApplyIdx'究竟意味着什么。是否有其他人正在研究这个太?
答案 0 :(得分: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
的右括号尚未找到),{{1}将是:filterApplyIdx
。我们现已删除[0, 2]
,因为已经过了将过滤器应用到1
的机会,因为找到了新的变量foo
。