2011-07-09 18 views
5

Nota: Qualcuno con più di 1500 ripetizioni .. aggiungere flex + + e bison ++ come tag :).Difficoltà comune con Flex ++

sembra che la gente di tutto l'Internet sono stati sempre i seguenti errori con Flex ++:

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

Questo accade su qualsiasi esempio do Flex ++. La versione che ho è da here e ho provato gli esempi esatti in quella pagina e ottengo ancora questi errori. Ho provato su Linux e Mac e ho esaurito completamente le idee!

Sembra che Flex ++ sia un nome per un vecchio virus anche lì, quindi è particolarmente difficile ottenere una discussione utile!

EDIT:

Ecco un esempio che produce l'errore di cui sopra (prime righe di esempio tratto dal link qui sopra):

%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" 
%} 

Qualsiasi aiuto sarebbe più che fantastico.

MODIFICA 2: le persone non possono modificare questo post inserendo il tag "flex"? Flex sarebbe quello che userei per taggare, ma Flex è anche una tecnologia Adobe - NON è lo strumento che sto usando. Il tag flex su SO è per il prodotto Adobe (da cui il logo sul tag). Grazie :).

+0

Mostra le prime righe del tuo esempio. –

+0

Ho appena aggiunto del codice al mio post. Grazie. – ale

+0

Hai ragione che 'flex' è il tag sbagliato. C'è 'gnu-flex' per il lexer/parser-generator. –

risposta

2

Controlla le terminazioni di rete? CR + LF vs NL potrebbe fare la differenza qui.

+0

Buona idea ma sfortunatamente non sembra essere il caso. Inoltre, si lamenta del primissimo carattere nel file che confonde: s! – ale

+0

Se le terminazioni di riga erano sbagliate, flex + considererebbe l'intero file nella riga 1. Potrebbe quindi essere la seconda istanza di '%' di cui si lamenta. Puoi mettere solo la prima riga in un file da sola e vedere se i messaggi di errore sono gli stessi? –

+0

Grazie per i suggerimenti Ben. Innanzitutto, la modifica delle terminazioni di riga non risolve il problema ... Ho provato entrambi i tipi commutando i finali, salvando come nuovo file e eseguendolo sul nuovo file. La prima riga viene inserita in un file a sé stante: – ale