(* Mines 97: macro-expansions *) let tableMax=128;; type macro_definition= {Symbole:string; Definition:string};; let EntreeVide={Symbole="";Definition=""};; type 'a table_des_symboles = { Table: 'a vect; mutable TailleTable:int } ;; let TableDesSymboles= { Table=make_vect tableMax EntreeVide; TailleTable=0} ;; let nouvelle_entree symbole definition= let n=TableDesSymboles.TailleTable in if n=tableMax then failwith "la table est pleine" else begin TableDesSymboles .TailleTable<-(n+1); TableDesSymboles.Table.(n)<- {Symbole=symbole;Definition=definition}; end ;; nouvelle_entree "Info" "Informatique";; nouvelle_entree "Permute" "$2$1";; let estDansTable s= let trouve=ref false and k=ref (-1) in while ((not !trouve) & (!k