def p_let_arr_substr_in_args4(p):
    """ statement : LET ARRAY_ID LP arguments TO expr RP EQ expr
                  | ARRAY_ID LP arguments TO expr RP EQ expr
    """
    i = 2 if p[1].upper() == 'LET' else 1

    id_ = p[i]
    arg_list = p[i + 2]
    substr = (arg_list.children.pop().value, p[i + 4])
    expr_ = p[i + 7]
    p[0] = make_array_substr_assign(p.lineno(i), id_, arg_list, substr, expr_)
def p_let_arr_substr_in_args4 ( p ) : i = 2 if p [ 1 ] . upper ( ) == 'LET' else 1 id_ = p [ i ] arg_list = p [ i + 2 ] substr = ( arg_list . children . pop ( ) . value , p [ i + 4 ] ) expr_ = p [ i + 7 ] p [ 0 ] = make_array_substr_assign ( p . lineno ( i ) , id_ , arg_list , substr , expr_ )
statement : LET ARRAY_ID LP arguments TO expr RP EQ expr
                  | ARRAY_ID LP arguments TO expr RP EQ expr