(block)
| 2192 | |
| 2193 | |
| 2194 | def 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 | |
| 2237 | def analyzebody(block, args, tab=''): |
no test coverage detected