@Override
    public Object render(Map<String, Object> context, LNode... nodes) {

        // The first node in the array denotes whether this is a for-tag
        // over an array, `for item in array ...`, or a for-tag over a
        // range, `for i in (4..item.length)`.
        boolean array = super.asBoolean(nodes[0].render(context));

        String id = super.asString(nodes[1].render(context));

        context.put(FORLOOP, new HashMap<String, Object>());

        Object rendered = array ? renderArray(id, context, nodes) : renderRange(id, context, nodes);

        context.remove(FORLOOP);

        return rendered;
    }
@ Override public Object render ( Map < String , Object > context , LNode ... nodes ) { boolean array = super . asBoolean ( nodes [ 0 ] . render ( context ) ) ; String id = super . asString ( nodes [ 1 ] . render ( context ) ) ; context . put ( FORLOOP , new HashMap < String , Object > ( ) ) ; Object rendered = array ? renderArray ( id , context , nodes ) : renderRange ( id , context , nodes ) ; context . remove ( FORLOOP ) ; return rendered ; }
/*
For loop