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

Reply via email to