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

Re: C / C++ problem

by Dragan Bojic
sreda, 27. april 2005 - 21:52.


Da li koristite flex i byacc cije intalacije imate na ri4pp sajtu?
Byacc generise y.tab.h fajl u kome nema nikakve klase.

Primer:

p.l
===
%{
#include "y.tab.h"
%}
%option noyywrap
%%
"end" { return END; }
%%



p.y
===
%token END
%%
start: END ;
%%

int main()
{
yyparse();
return 0;
}

void yyerror(char* s)
{
}


Komande za prevodjenje:
=======================
yacc -d p.y
flex p.l
cl lex.yy.c y.tab.c



On Wed, 27 Apr 2005, Dejan Milosevic wrote:

> 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?