MCPcopy Create free account
hub / github.com/numpy/numpy / analyzecommon

Function analyzecommon

numpy/f2py/crackfortran.py:2194–2234  ·  view source on GitHub ↗
(block)

Source from the content-addressed store, hash-verified

2192
2193
2194def analyzecommon(block):
2195 if not hascommon(block):
2196 return block
2197 commonvars = []
2198 for k in list(block['common'].keys()):
2199 comvars = []
2200 for e in block['common'][k]:
2201 m = re.match(
2202 r'\A\s*\b(?P<name>.*?)\b\s*(\((?P<dims>.*?)\)|)\s*\Z', e, re.I)
2203 if m:
2204 dims = []
2205 if m.group('dims'):
2206 dims = [x.strip()
2207 for x in markoutercomma(m.group('dims')).split('@,@')]
2208 n = rmbadname1(m.group('name').strip())
2209 if n in block['vars']:
2210 if 'attrspec' in block['vars'][n]:
2211 block['vars'][n]['attrspec'].append(
2212 'dimension(%s)' % (','.join(dims)))
2213 else:
2214 block['vars'][n]['attrspec'] = [
2215 'dimension(%s)' % (','.join(dims))]
2216 else:
2217 if dims:
2218 block['vars'][n] = {
2219 'attrspec': ['dimension(%s)' % (','.join(dims))]}
2220 else:
2221 block['vars'][n] = {}
2222 if n not in commonvars:
2223 commonvars.append(n)
2224 else:
2225 n = e
2226 errmess(
2227 'analyzecommon: failed to extract "<name>[(<dims>)]" from "%s" in common /%s/.\n' % (e, k))
2228 comvars.append(n)
2229 block['common'][k] = comvars
2230 if 'commonvars' not in block:
2231 block['commonvars'] = commonvars
2232 else:
2233 block['commonvars'] = block['commonvars'] + commonvars
2234 return block
2235
2236
2237def analyzebody(block, args, tab=''):

Callers 1

postcrackFunction · 0.85

Calls 7

hascommonFunction · 0.85
markoutercommaFunction · 0.85
rmbadname1Function · 0.85
keysMethod · 0.80
stripMethod · 0.80
splitMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected