MCPcopy Index your code
hub / github.com/numpy/numpy / expr2name

Function expr2name

numpy/f2py/crackfortran.py:3108–3139  ·  view source on GitHub ↗
(a, block, args=[])

Source from the content-addressed store, hash-verified

3106
3107
3108def 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
3142def analyzeargs(block):

Callers 2

analyzeargsFunction · 0.85
crack2fortrangenFunction · 0.85

Calls 5

buildimplicitrulesFunction · 0.85
determineexprtypeFunction · 0.85
setattrspecFunction · 0.85
lowerMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…