es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Lex y YACC (FLEX y Bison)

Hola, necesito entender flex y bison para reescribir a QRegExp, surgieron las siguientes preguntas.

Si el token es adecuado para varios equipos a la vez, ¿cómo actuará YACC / BISON?

Por ejemplo, hay un token FLOAT_NUM,
hay dos comandos:

  • El primer comando necesita dos tokens (STARTED y FLOAT_NUM)
    title: STARTED FLOAT_NUM
    {
    .
    .
    .
    }
    
  • El segundo comando solo necesita el token FLOAT_NUM
    my_type: FLOAT_NUM
    {
    .
    .
    .
    }
    

En consecuencia, la expresión siguiente llega a YACC/BISON:

STARTED FLOAT_NUM

¿Es correcto entender que solo funcionará el comando ‘title’ y el comando ‘my_type’ solo funcionará cuando llegue un FLOAT_NUM y nada más?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Bison y Yacc, puedo confirmar que tienes razón. Cuando YACC/Bison encuentra la expresión “STARTED FLOAT_NUM”, la comparará con el primer comando que requiere dos tokens (STARTED y FLOAT_NUM), que es “title”. El segundo comando, “my_type”, solo funcionará cuando reciba un único token FLOAT_NUM y nada más. YACC/Bison siempre intentará hacer coincidir la expresión con el comando que tenga la regla más específica primero, en este caso, el comando “title”, que requiere tanto los tokens “STARTED” como “FLOAT_NUM”.

Comments are closed.