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
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
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(); }
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
Partager