(a, block, args=[])
| 3106 | |
| 3107 | |
| 3108 | def expr2name(a, block, args=[]): |
| 3109 | orig_a = a |
| 3110 | a_is_expr = not analyzeargs_re_1.match(a) |
| 3111 | if a_is_expr: # `a` is an expression |
| 3112 | implicitrules, attrrules = buildimplicitrules(block) |
| 3113 | at = determineexprtype(a, block['vars'], implicitrules) |
| 3114 | na = 'e_' |
| 3115 | for c in a: |
| 3116 | c = c.lower() |
| 3117 | if c not in string.ascii_lowercase + string.digits: |
| 3118 | c = '_' |
| 3119 | na = na + c |
| 3120 | if na[-1] == '_': |
| 3121 | na = na + 'e' |
| 3122 | else: |
| 3123 | na = na + '_e' |
| 3124 | a = na |
| 3125 | while a in block['vars'] or a in block['args']: |
| 3126 | a = a + 'r' |
| 3127 | if a in args: |
| 3128 | k = 1 |
| 3129 | while a + str(k) in args: |
| 3130 | k = k + 1 |
| 3131 | a = a + str(k) |
| 3132 | if a_is_expr: |
| 3133 | block['vars'][a] = at |
| 3134 | else: |
| 3135 | if a not in block['vars']: |
| 3136 | block['vars'][a] = block['vars'].get(orig_a, {}) |
| 3137 | if 'externals' in block and orig_a in block['externals'] + block['interfaced']: |
| 3138 | block['vars'][a] = setattrspec(block['vars'][a], 'external') |
| 3139 | return a |
| 3140 | |
| 3141 | |
| 3142 | def analyzeargs(block): |
no test coverage detected
searching dependent graphs…