- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
void cmps_genslave(prog src[progs], char slave, char look){ // заполнение списков нелокальных имен
int s=0,m=0,l=0;
while( src[s].name[0]!=0 && src[s].name[0]!=slave && s<progs)s++;
if(!src[s].master) return;
if(look==slave){ if(src[s].nonlnum) return; l=s; }else
while( src[l].name[0]!=0 && src[l].name[0]!=look && l<progs)l++;
if(!src[l].master) return;
while(src[m+1].name[0]!=0 && src[l].master==src[m+1].name[0] && m+1<progs)m++;
strcpy(src[s].nonlocals+strlen(src[s].nonlocals),src[m].locals);
src[s].nonlnum+=src[m].lnum;
if(src[m].master) cmps_genslave(src,slave,src[m].name[0]);
}
курсовик по проге на втором курсе, изобретаем области видимости