Version française
Home     About     Download     Resources     Contact us    
Browse thread
Help Utilisation de modules avec Ocamlyacc...
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Rabea Ameur-Boulifa <Rabea.Ameur-Boulifa@t...>
Subject: Help Utilisation de modules avec Ocamlyacc...
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