2017-08-16 4 views
0

J'ai donc une liste qui est itéré comme ceci:ST4 itérer une liste avec un indice

body(foo) ::= "<foo:{it|<\n><\n><bar(it)>}>" 

bar(x) ::= "[<x.key>:<x.value>]" 

Je voudrais utiliser l'index.

bar(x) ::= "[<i0>:<x.key>:x.value>]" 

j'ai vu qu'il ya un jeton d'index <i> et <i0>, mais je ne comprends pas comment il est utilisé, ou si elle pourrait être utilisée pour faire ce que je veux faire.

Répondre

0

Ok, donc l'astuce consiste à passer <i> ou <i0> si vous avez une fonction, mais je est implicitement disponible à l'intérieur d'un itérateur:

body(foo) ::= "<foo:{it|<\n><\n><bar(i0,it)>}>" 

bar(i,x) ::= "[<i>:<x.key>:<x.value>]"