Bonjour,
J'utilise la librairie ocamlgraph pour la génération d'automates
(LTS)... Je vous explique mon problème qui n'est pas un problème de
Ocamlgraph mais d'utilisation avec Ocamlyacc.
* J'ai créé un file *automate.ml* dans lequel je cree les modules:
module LTS_Vertex = struct... end
module LTS_Edge = struct... end
module LTS = Imperative.Digraph.AbstractLabeled(LTS_Vertex)(LTS_Edge)
module BUILD
(LTS : Sig.I with type V.label = int and type E.label = string)
(B : Builder.S with module G = LTS)
= struct
let gEmpty = B.empty
...
end
module Build1 = BUILD(LTS)(Builder.I(LTS))
* J'ai cree un file Test.ml pour le test. Tout est OK!
*Le problème est l'utilisation dans un parser.mly des fonctions et
types déclarés dans les modules de automate.ml* Cad:
Je mets dans la partie header: open Automate
Et dans la partie déclaration: %start task
%type < Graph.Builder.I(LTS).G.t> task
=> le type Graph.Builder.I(LTS).G.t est par exemple le type retourné par
la fonction gEmpty du module BUILD...
J'écris donc une règle dont l'action fait appel a gEmpty... Mais
*La compilation donne ceci*
ocamlc -c parser.mli
File "parser.mli", line 41, characters 48-72:
Unbound type constructor Graph.Builder.I(LTS).G.t
Merci par avance pour votre aide,
Cordialement,
Rabea Ameur
_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs