(a, block, args=[])
| 3140 | |
| 3141 | |
| 3142 | def expr2name(a, block, args=[]): |
| 3143 | orig_a = a |
| 3144 | a_is_expr = not analyzeargs_re_1.match(a) |
| 3145 | if a_is_expr: # `a` is an expression |
| 3146 | implicitrules, attrrules = buildimplicitrules(block) |
| 3147 | at = determineexprtype(a, block['vars'], implicitrules) |
| 3148 | na = 'e_' |
| 3149 | for c in a: |
| 3150 | c = c.lower() |
| 3151 | if c not in string.ascii_lowercase + string.digits: |
| 3152 | c = '_' |
| 3153 | na = na + c |
| 3154 | if na[-1] == '_': |
| 3155 | na = na + 'e' |
| 3156 | else: |
| 3157 | na = na + '_e' |
| 3158 | a = na |
| 3159 | while a in block['vars'] or a in block['args']: |
| 3160 | a = a + 'r' |
| 3161 | if a in args: |
| 3162 | k = 1 |
| 3163 | while a + str(k) in args: |
| 3164 | k = k + 1 |
| 3165 | a = a + str(k) |
| 3166 | if a_is_expr: |
| 3167 | block['vars'][a] = at |
| 3168 | else: |
| 3169 | if a not in block['vars']: |
| 3170 | if orig_a in block['vars']: |
| 3171 | block['vars'][a] = block['vars'][orig_a] |
| 3172 | else: |
| 3173 | block['vars'][a] = {} |
| 3174 | if 'externals' in block and orig_a in block['externals'] + block['interfaced']: |
| 3175 | block['vars'][a] = setattrspec(block['vars'][a], 'external') |
| 3176 | return a |
| 3177 | |
| 3178 | |
| 3179 | def analyzeargs(block): |
no test coverage detected