You are using the same name for the type and one object (
liste
) but the object is a pointer while the type is not. So you should use a different name for the pointer and use that for your variable:
typedef struct liste{
char * cle;
int data;
struct liste * svt;
} noeud, *pliste;
pliste inserer( char * k )
{
pliste aux;
aux = ( pliste ) malloc( sizeof(noeud) );
[EDIT]
The file format is not a valid
flex file because the separator between rules and user code is missing. If there are no rules just insert the line:
%{
#include<stdio.h>
#include<string.h>
%}
%%
%%
typedef struct liste{
[/EDIT]
[EDIT2]
Added inclusion of
string.h above to make the compiler happy.
[/EDIT]