clase4 ejemplo analisis lexico devcpp

Download Clase4 Ejemplo Analisis Lexico DevCpp

If you can't read please download the document

Upload: luis-pineda

Post on 17-Nov-2015

25 views

Category:

Documents


0 download

DESCRIPTION

Ejemplo de Analisis Lexico

TRANSCRIPT

  • Clase # 6 Ejemplo de Anlisis Lxico con Dev C++

    Pgina 1

    UNIVERSIDAD

    , CICLO I 2015

    DOCENTE: ING. MARVIN PARADA

    CLASE # 6

    EJEMPLO DE ANALIZADOR LEXICO USANDO DEV C++

    MiniUGB

    OBJETIVOS

    utilizando en lenguaje C++ creado con Dev C++

    PROTOTIPO DE UN ANALIZADOR LEXICO

    Suponga que se desea construir una cuenta

    escrito en un

    lenguaje definido por el usuario (podemos llamarlo MiniUGB).

    escrito en lenguaje C++ y se debe trabajar con el programa Dev C++ v5.0

    Generalmente un compilador toma el programa fuente, lo interpreta y crea un programa objeto

    analizar una de

    las formas, de

    lenguaje.

    MiniUGB es la siguiente:

    Identificadores

    z.

    Constantes: n utilizando s en el rango 0 9.

    Operadores: +, -, *, / y %.

    : :=, p s ( ), separador de sentencias punto y coma,

    indicadores de principio y fin de bloque { }.

    Palabras reservadas que

    (lectura), W (escritura) y M (programa principal).

  • Clase # 6 Ejemplo de Anlisis Lxico con Dev C++

    Pgina 2

    Observe que en este lenguaje, considera

    que se tiene un solo tipo de dato: entero

    identificar la sintaxis de cada

    sentencia, se conoce que reglas de programa se han de seguir, con solo conocer el token por el

    que comienza la sentencia. Programa de ejemplo escrito con cdigo fuente reconocido por el lenguaje MiniUGB.

    Conociendo cada una

    1. ______________________________________________________________________________

    2. ______________________________________________________________________________

    3. ______________________________________________________________________________

    4. ______________________________________________________________________________

    5. ______________________________________________________________________________

    6. ______________________________________________________________________________

    7. ______________________________________________________________________________

    enviarlos al

    dato

    entero).

  • Clase # 6 Ejemplo de Anlisis Lxico con Dev C++

    Pgina 3

    la cual contiene las funciones

    DEVC.

    #include

    #include

    #include

    #include

    #include

    #define TAM_BUFFER 100

    using namespace std;

    cl ass Lexico

    {

    char *nombreFichero;

    FILE* entrada;

    int n1;

    int traza;

    char buffer[TAM_BUFFER];

    int pBuffer;

    public:

    Lexico(char *unNombreFichero, int una_traza=0);

    ~Lexico(void);

    char siguienteToken(void);

    void devuelveToken(char toke);

    int lineaActual(void){return n1; };

    int existeTraza(void){if(traza)return 1; else return 0;}

    };

    Lexico::Lexico(char *unNombreFichero, int una_traza)

    {

    entrada=fopen(unNombreFichero, "rt");

    if((entrada==NULL))

    {

    cout

  • Clase # 6 Ejemplo de Anlisis Lxico con Dev C++

    Pgina 4

    case'M':

    case'R':

    case'W':

    case'=':

    case'(':

    case')':

    case';':

    case'}':

    case'{':

    case'.':

    case'+':

    case'*':

    case' - ':

    case'/':

    case'%':

    return(car);

    }

    if(islower(car))return(car);

    else if(isdigit(car)) return(car);

    else

    {

    cout

  • Clase # 6 Ejemplo de Anlisis Lxico con Dev C++

    Pgina 5

    cout