bueanas señores del foro estoy empezando a hacer un pequeño interprete ........lo amlo esque no se porque se salta de la sentencia :
if(frase[patron]=='e' && frase[patron+1]=='l' && frase[patron+2]=='s' && frase[patron+3]=='e' )
justo cunando ingreso 1aelse;
me deve de salir en pantalla:
identidicador entero else
else e if son palabras reservdas que de a cuerdo al analisis que le doy me deve ingresar a la comparacion pero no se porqeu no entra en ese ejemplo me sale
identidicador / entero /identificador
no entiendo orque a que se deve a ver denle una ojeada
if(frase[patron]=='e' && frase[patron+1]=='l' && frase[patron+2]=='s' && frase[patron+3]=='e' )
justo cunando ingreso 1aelse;
me deve de salir en pantalla:
identidicador entero else
else e if son palabras reservdas que de a cuerdo al analisis que le doy me deve ingresar a la comparacion pero no se porqeu no entra en ese ejemplo me sale
identidicador / entero /identificador
no entiendo orque a que se deve a ver denle una ojeada
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
using namespace std;
int patron=0;
int i=0,j=0,factor=0;
char frase[100];
//------------------------------------------------------//
void entero();
void identificador();
void entero_identificador();
//------------------------------------------------------//
int main()
{
cout<<"ingrese frase "<<endl;
cin>>frase;
int n=strlen(frase);
cout<<endl;
while(n!= patron)
{
if(frase[patron]==';')
{
if(i!=0)
{
cout<<"entero "<<"/";
}
if(j!=0)
{
cout<<"identificador"<<"/";
}
cin.ignore();
cin.get ();
}
if(frase[patron]=='i' && frase[patron+1]=='f')
{
if(j!=0)
{
cout<<"identificador"<<"/";
i=0;
j=0;
}
if(i!=0)
{
cout<<"entero"<<"/";
i=0;
j=0;
}
cout<<"if"<<" /";
patron=patron+2;
continue;
}
if(frase[patron]=='e' && frase[patron+1]=='l' && frase[patron+2]=='s' && frase[patron+3]=='e' )
{
if(j!=0)
{
cout<<"identificador "<<"/";
i=0;
j=0;
}
if(i!=0)
{
cout<<"entero "<<"/";
i=0;
j=0;
}
cout<<"else"<<" /";
patron=patron+4;
continue;
}
if(isdigit(frase[patron])!=0)
{
identificador();
patron++;
}
if(isdigit(frase[patron])==0)
{
entero();
patron++;
}
}
}
//------------------------------------------------------//
//------------------------------------------------------//
void identificador()
{
if(j==0)
{
i++;
}
if(j!=0)
{
cout<<"identificador "<<"/";
j=0;
i++;
}
}
//------------------------------------------------------//
//------------------------------------------------------//
void entero()
{
if(i==0)
{
j++;
}
if(i!=0)
{
cout<<"entero "<<"/";
i=0;
j++;
}
}