Que je ne maîtrisais pas bien par ailleurs -_-
Donc voici mon problème, voyez vous même :
Le typage de la fonction get_from_file dit bien qu'elle prend une string en premier argument. La variable fn (pour filename) est bien une string.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 # open Ebs_parser ;; # get_from_file ;; - : file_name:string -> ((Lexing.lexbuf -> Ebs_parser_rules.token) -> Lexing.lexbuf -> 'a) -> 'a = <fun> # let fn = "spec.txt" ;; val fn : string = "spec.txt" # let f = get_from_file fn ;; This expression has type string but is here used with type (Lexing.lexbuf -> Ebs_parser_rules.token) -> Lexing.lexbuf -> 'a
Alors pourquoi m'emmerde-t-il pour la définition de f !?
Au cas où ça peut aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 let get_from from parser_entry_rules = let raw = let s = ref "" in try while true do s := (!s ^ (input_line from) ^ "\n") done ; "" with End_of_file -> !s in let raw_spec = Lexing.from_string raw in parser_entry_rules Ebs_lexer_rules.token raw_spec ;; let get_from_file ~file_name per = let ic = open_in file_name in let result = get_from ic per in begin close_in ic ; result end ;;
Partager