filterApplyIdx在parse.js中的含义是什么?

时间:2014-11-18 08:50:02

标签: swig-template

我正在使用swig.js使它与Django更友好,我可以理解大多数代码但是parse.js,我想知道'filterApplyIdx'究竟意味着什么。是否有其他人正在研究这个太?

1 个答案:

答案 0 :(得分:2)

当我发布到mailing list

filterApplyIdxout(输出)数组上的索引数组,将应用过滤器。当解析器找到过滤器时,它会将其应用于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