Lenguaje de programación phy
# incluir lt string gt
void main()
{
bool yh _ d = false //Comillas simples
bool yh _ s = false//Comillas dobles
bool zs _ at = false//@
bool zs _ left = false //((
bool zs _ right = false//))
char line[1024];
int l _ line = 0;/ / línea de registro
int p_line = 0; //línea phy
int pro_num = 0; //número de programa
int end_pro = 0; el final de la entrada del programa, 2 indica el final de toda la entrada.
while(fgets(line, 1024, stdin)! = vacío)
{
if(strncmp(line, " ## ", 2)= =0)
{
if(p _ line gt; 0)
pro _ num;
if(zs_left == true)
{
printf("Unter...evitar comentarios al final...\ n ");
}
printf("Pro d contiene d líneas de registro y d líneas phy\n ", pro_num, l_line, p _ line
p _ line =
l _); línea = 0;
Romper;
}
if(strncmp(línea, " # ", 1) ==0)
{
if(p _ line gt; 0)
pro _ num;
if(zs_left == true)
{
printf("Unter...evitar comentarios al final...\n ");
}
printf("Pro d contiene d líneas de registro y líneas d phy\n ", pro_num, l_line, p_line);
p_line = 0;
l_line = 0;
Continuar; p>
}
int len = strlen(línea);
p _ línea;
if(línea [len-1] = = '\n ')
línea[len-1]= 0;
bool end _ line = false
int I ;
for(I = 0; fila [I]! = 0; i)
{
if(fila [i]== '# ')
{
pro _ num;
if(zs_left == true)
{
printf("Unter... evitar comentarios al final...\ n ");
}
printf("Pro d contiene d líneas de registro y d líneas phy\ n ", pro_num, l_line, p _ línea);
p _ línea = 0
l _ línea = 0
fin _ pro = 1 ;
if(line[i 1] =='# ')
{
end _ pro = 2;
Romper ;
}
}
else if(line[I]== ' \ ' amp; ampyh_s == false.
ampzs_at = = false amp ampzs_left == false)
{
yh_d = (yh_d == false? true: false);
}
p>else if(line[I]= = ' \ " ' amp; ampyh _ d == false amp ampzs _ at == false amp ampzs_left == false)
{
yh_s = (yh_s == false? true: false);
}
else if(line[I]= = ' @ ' amp; ampyh_s == false ampyh_d = = falso amp ampzs_left == falso)
{
zs_at = (zs_at == falso? verdadero: falso);
}
else if(line[I]== '(' amp; ampline[I 1]== '(' amp; ampyh_s == false. ampyh_d == false amp ampzs_at == false)
{
zs_left = (zs_left == false? true: false
}
else if(line[I]= = ')' amp; ampline[I 1]= = ')' amp; ampyh_s == ampyh_d = = false amp ampzs_at == false)
{
if(zs_left = true)
{
zs _ left = false
}
Otro
{
//printf("Error: d, d\n ", p_line, l_line
}
}
else if(line[I]); == ';' amp ampyh_s == falso.
ampyh _ d = = false amp ampzs _ left = = false amp ampzs_at == false)
{
end _ line = true
l _ line;
}
/*if(end_line)
{
if(yh_d == verdadero || yh_s == verdadero)
printf("unterstring in line d", p_line);
end_line = false
yh_d = false
yh _ s = false
}*/
}
end_line = true
if(end_line)
{
if(yh_d == true || yh_s == true)
printf(" unterstring in line d \ n ", p _ line
end_line); = falso
yh_d = falso
yh_s = falso
}
if(end_pro == 2)
Descanso;
}
}
/*Se han implementado funciones básicas. Puedes copiarlo y ejecutarlo. Puedes optimizar el código tú mismo*/