J'essaie de faire correspondre une expression entière avec des littéraux de caractère, et le compilateur se plaint de l'incompatibilité de type.F # match char values
let rec read file includepath =
let ch = ref 0
let token = ref 0
use stream = File.OpenText file
let readch() =
ch := stream.Read()
let lex() =
match !ch with
| '!' ->
readch()
| _ -> token := !ch
ch doit être un entier parce que ce Stream.Read rendement afin d'utiliser -1 comme marqueur de fin de fichier. Si je remplace '!'
par int '!'
cela ne fonctionne toujours pas. Quelle est la meilleure façon de faire cela?
qui capte les valeurs de caractère, certes, mais comment faut-il gérer -1 pour la marque de fin de fichier? – rwallace
@juste obtenir la valeur d'abord, puis la conversion de type –