#ifndef __META_H__ #define __META_H__ #define MAXF 32 #define MAXP 256 #define MAXM 64 typedef struct phon_t { char *p1; char *p2; struct phon_t *next; } phon_t; typedef struct field_t { char *name; char **names; int *sizes, nbr; struct field_t *next; } field_t; typedef struct metaexpr_t { char *name; int type; char *string; /* left = right = NULL => feuille left = NULL => opérateur unaire sinon => opérateur binaire */ struct metaexpr_t *left, *right; } metaexpr_t; typedef struct pattern_t { char *name; metaexpr_t **expr; int nbr; struct pattern_t *next; } pattern_t; typedef struct instruct_t { char **names; char **strings; char **implicits; char **istrings; int *etypes, *itypes, *ivalues, nbexplicit, nbimplicit; struct instruct_t *next; } instruct_t; extern phon_t *phons; extern field_t *fields; extern pattern_t *patterns; extern instruct_t *instructs; void meta_parse_line(char *); int meta_init(void); void meta_flush(void); int meta_load(char *); #endif