«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2005

Re: C / C++ problem

by Djokic Ljubomir
sreda, 04. maj 2005 - 08:13.

Ukoliko se pravi C++ lexer sa "-+" opcijom, dodavanjem u lex fajlu

%{
#include "y.tab.h"
FlexLexer* lexer=new yyFlexLexer;
extern int yylex(){return lexer->yylex();}
%}

i dodavanjem u byacc fajlu

extern int yylex();

parser bez problema prepoznaje funkciju yylex().
----- Original Message -----
From: Dejan Milosevic
To: ri4pp@titan.etf.bg.ac.yu
Sent: Wednesday, April 27, 2005 5:12 PM
Subject: [ri4pp] C / C++ problem


Posto moramo da koristimo include "tab.h" u fajlu koji generise yacc moramo da reimenujemo taj yaccov fajl u .cpp (jer u tab.h ima klasa), tj. da ga kompajliramo kao c++ kod. Medjutim onda se yacc-ov fajl gubi jer ne moze da nadje f-ju yylex() koja je iz .c fajla koji je generisao flex. Ako i njega kompajliramo kao c++ (uz mnogo muke), ni onda se ne pronalazi yylex() bas tako lako vec mora da se napravi poseban .h fajl koji ce sadrzati prototip yylex()-a.

Da li je ovo OK resenje ili ima nesto jednostavnije?