2011-07-09 11 views
5

Nota: alguien con más de 1500 representantes ... agregue flex ++ y bison ++ como etiquetas :).Dificultad común con Flex ++

Parece que la gente en todo el Internet han estado recibiendo los errores siguientes con Flex ++:

scanner.l:1: bad character: % 
scanner.l:1: unknown error processing section 1 

Esto sucede en cualquier ejemplo Doy Flex ++. La versión que tengo es here y he intentado con los ejemplos exactos en esa página y sigo recibiendo estos errores. ¡He probado con Linux y Mac y me he quedado sin ideas!

Parece que Flex ++ también es un nombre para un viejo virus, por lo que es particularmente difícil obtener una discusión útil.

EDIT:

Aquí hay un ejemplo que produce el error anterior (primeras líneas de ejemplo tomadas desde el siguiente enlace):

%name CalcScanner 
%define IOSTREAM 
%define LEX_PARAM YY_CalcParser_STYPE *val, YY_CalcParser_LTYPE *loc 
%define MEMBERS public: int line, column;                        
%define CONSTRUCTOR_INIT : line(1), column(1) 

%header{ 
#include<sstream> 
#include "parser.h" 
%} 

Cualquier ayuda sería más que fantástico.

EDIT 2: ¿Puede la gente no editar esta publicación colocando la etiqueta 'flex'? Flex sería lo que usaría para etiquetar, pero Flex también es una tecnología de Adobe, NO es la herramienta que estoy usando. La etiqueta flexible en SO es para el producto Adobe (de ahí el logo en la etiqueta). Gracias :).

+0

Por favor, muestre las primeras líneas de su ejemplo. –

+0

Acabo de agregar un código a mi publicación. Gracias. – ale

+0

Tiene razón en que 'flex' es la etiqueta incorrecta. Hay 'gnu-flex' para el lexer/analizador-analizador. –

Respuesta

2

Compruebe sus finales de línea? CR + LF vs NL podría hacer la diferencia aquí.

+0

Buena idea, pero desafortunadamente, no parece ser el caso. Además, se queja sobre el primer carácter en el archivo que es confuso: s! – ale

+0

Si las terminaciones de línea eran incorrectas, entonces flex ++ consideraría todo el archivo en la línea 1. Podría ser la segunda instancia de '%' sobre la que se queja. ¿Puedes poner solo la primera línea en un archivo y ver si los mensajes de error son los mismos? –

+0

Gracias por los consejos Ben. En primer lugar, cambiar los finales de línea no soluciona el problema ... He intentado ambos tipos cambiando las terminaciones, guardando como un nuevo archivo y ejecutándolo en el nuevo archivo. Poner la primera línea en un archivo propio produce esto: – ale

Cuestiones relacionadas