flex + bison probleme mit übergabe eines union

marcellus

marcellus

Kaiser
Solved: flex + bison probleme mit übergabe eines union

Ich will etwas mit flex + bison herumspielen und hab mir gedacht da wärs nett einen postscript compiler zusammenzubauen.

Der Compiler ging auch bis ich beschlossen habe von double werten auf

Code:
union {
 double num;
 char* str;
}

umzustellen. Dazu hab ich diesen Eintrag im Manual herangezogen.

Dabei ändert das define

Code:
#define YYPARSE_PARAM scanner

den Funktionsaufruf von yyparse(), womint man yyparse() aufrufen sollte steht allerdings nirgendwo. Was dazu passen würde wäre die Option "%pure_parser", die wird aber verwendet, um mehrere Parser in einem Programm verwenden zu können und die Interessiert mich überhaupt nicht.

Da der Aufruf von meinem Programm das liefert:
Code:
$ ./simple 
1 2 sub
number in lex 		1.000000
number in bison is	0.000000
number in lex 		2.000000
number in bison is	0.000000
$1: 0.000000, $2: 0.000000

Denk ich, dass die Zahlenwerte niemals beim bison ankommen. Gibts die Möglichkeit das ganze ohne pure_parser umzusetzen? Gibts irgendwo bessere Beispiele?

Ich spiel schon eine Zeit lang damit herum und bekomms nicht zum laufen, ich bin für alle Vorschläge offen.

Das das ganze nicht so in der Luft hängt hier der source:
 

Anhänge

  • bison_test.tar.bz2
    42 KB · Aufrufe: 1
Zuletzt bearbeitet:
Nach ewig langem herumspielen hab ichs jetzt endlich zum laufen gebracht. Wies aussieht muss man den pure_parser verwenden, das es geht.

Falls noch jemand über das Problem Stolpert lad ich hier den ausgebesserten source hoch, ich denk ein diff ist etwas aussagekräftiger als langes gerede.
 

Anhänge

  • bison.tar.bz2
    1 KB · Aufrufe: 0
Zurück
Oben