Bonjour,

J'ai un probleme d'execution d'un programme. Il est developpé en C++ avec l'appel a une fonction d'analyse lexical generer automaiquement sous flex. Son but: recuperer des information utile dans des fichiers .h et .c.

Je l'ai tester sous windows et il fonctionne correctement. Mais au passage sous unix il fonctionne sauf la fonction d'analyse lexical ne marche pas.
Precision: on passe bien dedans.
voici le fichier .l

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
%{
#include "PARSER.h"
%}
%option noyywrap
%s macroVerHi macroVerLo macro256Proc macroProcessState macroVendor
/****************************useful expressions********************************/
versionHigh		"#define HIGH_SW_VERSION"[ \t]*
versionLow		"#define LOW_SW_VERSION"[ \t]*"0x"
more256Proc     "RTK_MORE_THAN_256_PROCESSES_FTR"
processState    "TRA_PROCESS_STATE_DBG"
vendorString    "USB_TRACE_VENDOR_STR_FTR"
macro           .+
retourchariot   \n
 
%%
{versionHigh}	{BEGIN(macroVerHi);}
{versionLow}	{BEGIN(macroVerLo);}
{more256Proc}	{BEGIN(macro256Proc);}
{processState}	{BEGIN(macroProcessState);}
{vendorString}	{BEGIN(macroVendor);}
 
<macroVerHi>{macro}/\n   			{fprintf(yyout, "%s", yytext);BEGIN(INITIAL);}
<macroVerLo>{macro}/\n   			{fprintf(yyout, "%s\n", yytext);BEGIN(INITIAL);}
<macro256Proc>{macro}/\n			{fprintf(yyout, "More256Processes\n");BEGIN(INITIAL);}
<macroProcessState>{macro}/\n		{fprintf(yyout, "ProcessState\n");BEGIN(INITIAL);}
<macroVendor>{macro}/\n				{fprintf(yyout, "VendorString\n");BEGIN(INITIAL);}
 
{retourchariot}       {/* on fait rien */}
.                     {/* on fait rien */}
%%
void parsingMisc(void)
{
    yylex();
}
voici le make file

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
parsingmisc.c: parsingmisc.l
	flex -oparsingmisc.c -Pmiscfile parsingmisc.l
	dos2unix lex.yy.c lex.yy.c
 
main.exe: main.o MISC.o PARSER.o parsingmisc.o
	g++ -Wall -o main.exe main.o MISC.o PARSER.o parsingmisc.o
 
parsingmisc.o: parsingmisc.c parsingmisc.h
	g++ -Wall -c parsingmisc.c -lfl
 
PARSER.o: PARSER.cpp PARSER.h
	g++ -Wall -c PARSER.cpp	
 
MISC.o: MISC.cpp MISC.h PARSER.h
	g++ -Wall -c MISC.cpp
 
main.o: main.cpp MISC.h
	g++ -Wall -c main.cpp
 
clean:
	rm -f main.o MISC.o PARSER.o parsingmisc.o
 
cleanall: clean
	rm -f main.exe
	rm -f parsingmisc.c
 
all: parsingmisc.c main.exe