De forma predeterminada, flex usa la regla de coincidencia más larga. ¿Hay alguna manera de anular este comportamiento para que coincida con la secuencia más corta?cómo habilitar la regla de coincidencia más corta en flex (lexer)?
Gracias
De forma predeterminada, flex usa la regla de coincidencia más larga. ¿Hay alguna manera de anular este comportamiento para que coincida con la secuencia más corta?cómo habilitar la regla de coincidencia más corta en flex (lexer)?
Gracias
This page en el manual Flex dice que no tiene ningún operadores no codiciosos porque es un escáner en lugar de un programa de análisis, y sugiere expresiones regulares se podrían utilizar para agregar la funcionalidad que falta.
no me refería a los operadores codiciosos per se. Si tiene regexprs completamente separados que coinciden con el mismo prefijo de una cadena, un lexer elige de manera predeterminada el más largo. lo que necesito es hacer que recoja el más corto, restablecer y comenzar a emparejar nuevamente. – VilleDePommes
No, y no lo querrías si lo tuvieras. Por ejemplo, muchos si no la mayoría de los lexers (ciertamente todos míos) terminan con una regla general ". devuelve yytext [0]; '. Esa sería la única regla que haría cualquier cosa. – EJP