Gast
#4340904
Moin Leute,
Ich haette gerne einen Parser der auf einem Microcontroller laufen soll.
Klar koennte ich selber schreiben, aber ich dachte zuerst daran es mit
flex zu machen. Erstmal kein problem, aber leider benutzt flex malloc
und ich moechte keinen heap auf dem Controller haben.
Kennt jemand sowas wie flex das ohne malloc auskommt?
Ich hab mir gerade auf die schnelle mal sowas zusammengehackt:
unsigned char buff_92[92];
unsigned char buff_36[36];
unsigned char buff_48[48];
unsigned char buff_4[4];
void *yyalloc (yy_size_t size , yyscan_t yyscanner)
{
switch (size)
{
case 92 : return (void*) buff_92; break;
case 36 : return (void*) buff_36; break;
case 48 : return (void*) buff_48; break;
case 4 : return (void*) buff_4; break;
default:
printf("ACHTUNG NEUE MALLOC SIZE: yyalloc size: %i\n",size);
return (void *) malloc( size );
}
}
Das laeuft jetzt zu testzwecken ohne malloc auf meinem Hostsystem,
allerdings ist es ja irgendwie oehm.. unschoen. :-)
olaf