Bonjour,
j’essaye de récuperer le type des parametres d’une fonction, donc j’imagine que le moyen le plus simple c’est d’avoir le type de la fonction, mais je ne trouve pas ou est représenté le type d’une fonction dans l’AST d’ocaml.
J’ai créer un petit exemple du style
1 | let func arg1 arg2 = arg1 + arg2 |
Et l’AST typé que ce code me génère
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | structure_item (args_same_types.ml[1,0+0]..args_same_types.ml[1,0+32]) Tstr_value Nonrec [ <def> pattern (args_same_types.ml[1,0+4]..args_same_types.ml[1,0+8]) Tpat_var "func/1002" expression (args_same_types.ml[1,0+9]..args_same_types.ml[1,0+32]) ghost Texp_function Nolabel [ <case> pattern (args_same_types.ml[1,0+9]..args_same_types.ml[1,0+13]) Tpat_var "arg1/1003" expression (args_same_types.ml[1,0+14]..args_same_types.ml[1,0+32]) ghost Texp_function Nolabel [ <case> pattern (args_same_types.ml[1,0+14]..args_same_types.ml[1,0+18]) Tpat_var "arg2/1004" expression (args_same_types.ml[1,0+21]..args_same_types.ml[1,0+32]) Texp_apply expression (args_same_types.ml[1,0+26]..args_same_types.ml[1,0+27]) Texp_ident "Pervasives!.+" [ <arg> Nolabel expression (args_same_types.ml[1,0+21]..args_same_types.ml[1,0+25]) Texp_ident "arg1/1003" <arg> Nolabel expression (args_same_types.ml[1,0+28]..args_same_types.ml[1,0+32]) Texp_ident "arg2/1004" ] ] ] ] ] ` |
Je voit nul part le type inféré des arguments, du coup je sais pas ou chercher.
Si quelqu’un peut m’aider. Merci.
+0
-0