2011-07-09 6 views
5

Not: 1500'den fazla temsilcisi olan .. flex ++ ve bison ++ etiketlerini :) olarak ekleyin.Flex ++ ile genel zorluk

tüm Internet üzerinden insanlar ++ Flex ile aşağıdaki hatalar elde edilmiştir gibi görünüyor: Bu benim Flex verdiğiniz örnek ++ olur

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

. Sahip olduğum sürüm here'dan ve bu sayfadaki tam örnekleri denedim ve hala bu hataları alıyorum. Linux ve Mac üzerinde denedim ve tamamen fikir tükendi!

Flex ++, eski bir virüs için bir isim de gibi görünüyor, bu yüzden özellikle yararlı bir tartışma almak zor!

DÜZENLEME:

İşte yukarıdaki hatayı (yukarıdaki bağlantıdan alınan örnekten ilk birkaç satırı) üreten bir örnek:

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

Herhangi bir yardım fantastik fazla olur.

DÜZEN 2: Lütfen bu yayını 'flex' etiketini koyarak düzenleyemez misiniz? Flex, etiketlemek için kullanacağım şeydi ancak Flex aynı zamanda bir Adobe teknolojisidir - kullandığım araç DEĞİL. SO üzerindeki esnek etiket, Adobe ürünü içindir (dolayısıyla etiketteki logo). Teşekkür ederim :).

+0

Lütfen örneğinizin ilk birkaç satırını gösterin. –

+0

Gönderiye biraz kod ekledim. Teşekkürler. – ale

+0

'Flex' yanlış etiketin doğrudur. Lexer/parser-generator için 'gnu-flex' var. –

cevap

2

Hat sonlarınızı kontrol edin? CR + LF vs NL burada bir fark yaratabilir.

+0

İyi bir fikir ama ne yazık ki, durum böyle görünmüyor. Ayrıca, dosyadaki kafa karıştırıcı olan ilk karakterden şikayetçi: s! – ale

+0

Satır sonları yanlışsa, flex ++ tüm dosyanın 1. satırda olacağını düşünür. Bu, daha sonra '% 'adlı kişinin şikayetçi olduğu ikinci durum olabilir. Sadece ilk satırı kendi başına bir dosyaya koyabilir ve hata mesajlarının aynı olup olmadığını görebilir misiniz? –

+0

Ben ipuçları için teşekkürler. İlk olarak, satır sonlarını değiştirmek sorunu çözmez ... Her iki türü de sonları değiştirerek, yeni bir dosya olarak kaydedip yeni dosyada çalıştırarak denedim. İlk satırı kendi başına bir dosyaya koymak bunu üretir: – ale