2012-04-18 10 views
5

Hier ist ein Beispiel Schnittstelle test.mli, mit ocamldoc-Stil Kommentaren kommentiert:Warum schlägt ocamldoc auf ungebundenen Modulen fehl?

(** ocamldoc module comment *) 
open MissingModule;; 
(** ocamldoc function comment *) 
val test : unit;; 

Wenn ich den Befehl ocamldoc test.mli laufen lasse, erhalte ich folgende Fehlermeldung:

File "test.mli", line 2, characters 0-9: 
Error: Unbound module MissingModule 
1 error(s) encountered 

Warum soll eine Dokumentation Generator kümmert sich um ungebundene Module?

Antwort

6

Das ist, weil ocamldoc Typnamen vollständig qualifiziert. Die Datei:

open MissingModule 

val f: foo -> unit 

übersetzt wird

val f: MissingModule.foo -> unit 

Und MissingModule.foo wird ein schöner Querverweis auf die Definition von foo in MissingModule (wenn missingModule.mli als Argument ocamldoc gegeben ist).

Und um die Antwort zu vervollständigen, müssen Sie die Datei, die Sie verarbeiten, vollständig eingeben, um Typidentifikationen vollständig zu qualifizieren. So muss ocamldoc Zugriff auf die entsprechenden .cmi Dateien haben.