diff options
Diffstat (limited to 'otherlibs/labltk/browser')
-rw-r--r-- | otherlibs/labltk/browser/.depend | 334 | ||||
-rw-r--r-- | otherlibs/labltk/browser/Makefile.shared | 2 | ||||
-rw-r--r-- | otherlibs/labltk/browser/editor.ml | 2 | ||||
-rw-r--r-- | otherlibs/labltk/browser/mytypes.mli | 2 | ||||
-rw-r--r-- | otherlibs/labltk/browser/searchid.ml | 79 | ||||
-rw-r--r-- | otherlibs/labltk/browser/searchpos.ml | 187 | ||||
-rw-r--r-- | otherlibs/labltk/browser/typecheck.ml | 7 | ||||
-rw-r--r-- | otherlibs/labltk/browser/viewer.ml | 32 |
8 files changed, 412 insertions, 233 deletions
diff --git a/otherlibs/labltk/browser/.depend b/otherlibs/labltk/browser/.depend index 4a0040b3b..9903879db 100644 --- a/otherlibs/labltk/browser/.depend +++ b/otherlibs/labltk/browser/.depend @@ -1,101 +1,265 @@ -editor.cmo : viewer.cmi typecheck.cmi shell.cmi setpath.cmi searchpos.cmi \ - searchid.cmi mytypes.cmi lexical.cmi jg_toplevel.cmo jg_tk.cmo \ - jg_text.cmi jg_message.cmi jg_menu.cmo jg_button.cmo jg_bind.cmi \ - fileselect.cmi editor.cmi -editor.cmx : viewer.cmx typecheck.cmx shell.cmx setpath.cmx searchpos.cmx \ - searchid.cmx mytypes.cmi lexical.cmx jg_toplevel.cmx jg_tk.cmx \ - jg_text.cmx jg_message.cmx jg_menu.cmx jg_button.cmx jg_bind.cmx \ - fileselect.cmx editor.cmi -fileselect.cmo : useunix.cmi setpath.cmi list2.cmo jg_toplevel.cmo \ - jg_memo.cmi jg_entry.cmo jg_box.cmo fileselect.cmi -fileselect.cmx : useunix.cmx setpath.cmx list2.cmx jg_toplevel.cmx \ - jg_memo.cmx jg_entry.cmx jg_box.cmx fileselect.cmi +editor.cmo : ../labltk/wm.cmi ../labltk/winfo.cmi ../support/widget.cmi \ + viewer.cmi ../../../typing/types.cmi typecheck.cmi ../labltk/toplevel.cmi \ + ../labltk/tk.cmo ../support/timer.cmi ../support/textvariable.cmi \ + ../labltk/text.cmi shell.cmi setpath.cmi ../labltk/selection.cmi \ + searchpos.cmi searchid.cmi ../support/protocol.cmi \ + ../../../parsing/parsetree.cmi ../../../parsing/parser.cmi \ + ../labltk/pack.cmi mytypes.cmi ../labltk/menu.cmi \ + ../../../parsing/longident.cmi ../../../parsing/location.cmi \ + ../labltk/listbox.cmi lexical.cmi ../../../parsing/lexer.cmi \ + ../labltk/label.cmi jg_toplevel.cmo jg_tk.cmo jg_text.cmi jg_message.cmi \ + jg_menu.cmo jg_button.cmo jg_bind.cmi ../../../typing/ident.cmi \ + ../labltk/frame.cmi ../labltk/focus.cmi fileselect.cmi \ + ../../../typing/env.cmi ../labltk/entry.cmi ../labltk/clipboard.cmi \ + ../../../utils/clflags.cmi ../labltk/checkbutton.cmi ../labltk/button.cmi \ + editor.cmi +editor.cmx : ../labltk/wm.cmx ../labltk/winfo.cmx ../support/widget.cmx \ + viewer.cmx ../../../typing/types.cmx typecheck.cmx ../labltk/toplevel.cmx \ + ../labltk/tk.cmx ../support/timer.cmx ../support/textvariable.cmx \ + ../labltk/text.cmx shell.cmx setpath.cmx ../labltk/selection.cmx \ + searchpos.cmx searchid.cmx ../support/protocol.cmx \ + ../../../parsing/parsetree.cmi ../../../parsing/parser.cmx \ + ../labltk/pack.cmx mytypes.cmi ../labltk/menu.cmx \ + ../../../parsing/longident.cmx ../../../parsing/location.cmx \ + ../labltk/listbox.cmx lexical.cmx ../../../parsing/lexer.cmx \ + ../labltk/label.cmx jg_toplevel.cmx jg_tk.cmx jg_text.cmx jg_message.cmx \ + jg_menu.cmx jg_button.cmx jg_bind.cmx ../../../typing/ident.cmx \ + ../labltk/frame.cmx ../labltk/focus.cmx fileselect.cmx \ + ../../../typing/env.cmx ../labltk/entry.cmx ../labltk/clipboard.cmx \ + ../../../utils/clflags.cmx ../labltk/checkbutton.cmx ../labltk/button.cmx \ + editor.cmi +fileselect.cmo : useunix.cmi ../labltk/tkwait.cmi ../labltk/tk.cmo \ + ../support/textvariable.cmi setpath.cmi ../labltk/pack.cmi \ + ../../../utils/misc.cmi ../labltk/listbox.cmi list2.cmo \ + ../labltk/label.cmi jg_toplevel.cmo jg_memo.cmi jg_entry.cmo jg_box.cmo \ + ../labltk/grab.cmi ../labltk/frame.cmi ../labltk/focus.cmi \ + ../../../utils/config.cmi ../labltk/checkbutton.cmi ../labltk/button.cmi \ + fileselect.cmi +fileselect.cmx : useunix.cmx ../labltk/tkwait.cmx ../labltk/tk.cmx \ + ../support/textvariable.cmx setpath.cmx ../labltk/pack.cmx \ + ../../../utils/misc.cmx ../labltk/listbox.cmx list2.cmx \ + ../labltk/label.cmx jg_toplevel.cmx jg_memo.cmx jg_entry.cmx jg_box.cmx \ + ../labltk/grab.cmx ../labltk/frame.cmx ../labltk/focus.cmx \ + ../../../utils/config.cmx ../labltk/checkbutton.cmx ../labltk/button.cmx \ + fileselect.cmi help.cmo : help.cmx : -jg_bind.cmo : jg_bind.cmi -jg_bind.cmx : jg_bind.cmi -jg_box.cmo : jg_completion.cmi jg_bind.cmi -jg_box.cmx : jg_completion.cmx jg_bind.cmx -jg_button.cmo : -jg_button.cmx : -jg_completion.cmo : jg_completion.cmi -jg_completion.cmx : jg_completion.cmi -jg_config.cmo : jg_tk.cmo jg_config.cmi -jg_config.cmx : jg_tk.cmx jg_config.cmi -jg_entry.cmo : jg_bind.cmi -jg_entry.cmx : jg_bind.cmx +jg_bind.cmo : ../labltk/tk.cmo ../labltk/focus.cmi ../labltk/button.cmi \ + jg_bind.cmi +jg_bind.cmx : ../labltk/tk.cmx ../labltk/focus.cmx ../labltk/button.cmx \ + jg_bind.cmi +jg_box.cmo : ../labltk/winfo.cmi ../labltk/tk.cmo ../labltk/scrollbar.cmi \ + ../labltk/listbox.cmi jg_completion.cmi jg_bind.cmi ../labltk/frame.cmi +jg_box.cmx : ../labltk/winfo.cmx ../labltk/tk.cmx ../labltk/scrollbar.cmx \ + ../labltk/listbox.cmx jg_completion.cmx jg_bind.cmx ../labltk/frame.cmx +jg_button.cmo : ../labltk/tk.cmo ../labltk/button.cmi +jg_button.cmx : ../labltk/tk.cmx ../labltk/button.cmx +jg_completion.cmo : ../support/timer.cmi jg_completion.cmi +jg_completion.cmx : ../support/timer.cmx jg_completion.cmi +jg_config.cmo : ../support/widget.cmi ../labltk/option.cmi jg_tk.cmo \ + jg_config.cmi +jg_config.cmx : ../support/widget.cmx ../labltk/option.cmx jg_tk.cmx \ + jg_config.cmi +jg_entry.cmo : ../labltk/tk.cmo jg_bind.cmi ../labltk/entry.cmi +jg_entry.cmx : ../labltk/tk.cmx jg_bind.cmx ../labltk/entry.cmx jg_memo.cmo : jg_memo.cmi jg_memo.cmx : jg_memo.cmi -jg_menu.cmo : -jg_menu.cmx : -jg_message.cmo : jg_toplevel.cmo jg_tk.cmo jg_text.cmi jg_bind.cmi \ - jg_message.cmi -jg_message.cmx : jg_toplevel.cmx jg_tk.cmx jg_text.cmx jg_bind.cmx \ - jg_message.cmi -jg_multibox.cmo : jg_completion.cmi jg_bind.cmi jg_multibox.cmi -jg_multibox.cmx : jg_completion.cmx jg_bind.cmx jg_multibox.cmi -jg_text.cmo : jg_toplevel.cmo jg_tk.cmo jg_button.cmo jg_bind.cmi \ - jg_text.cmi -jg_text.cmx : jg_toplevel.cmx jg_tk.cmx jg_button.cmx jg_bind.cmx \ - jg_text.cmi -jg_tk.cmo : -jg_tk.cmx : -jg_toplevel.cmo : -jg_toplevel.cmx : -lexical.cmo : jg_tk.cmo lexical.cmi -lexical.cmx : jg_tk.cmx lexical.cmi +jg_menu.cmo : ../labltk/toplevel.cmi ../labltk/tk.cmo ../labltk/menu.cmi +jg_menu.cmx : ../labltk/toplevel.cmx ../labltk/tk.cmx ../labltk/menu.cmx +jg_message.cmo : ../labltk/wm.cmi ../labltk/tkwait.cmi ../labltk/tk.cmo \ + ../support/textvariable.cmi ../labltk/text.cmi ../labltk/message.cmi \ + jg_toplevel.cmo jg_tk.cmo jg_text.cmi jg_bind.cmi ../labltk/grab.cmi \ + ../labltk/frame.cmi ../labltk/button.cmi jg_message.cmi +jg_message.cmx : ../labltk/wm.cmx ../labltk/tkwait.cmx ../labltk/tk.cmx \ + ../support/textvariable.cmx ../labltk/text.cmx ../labltk/message.cmx \ + jg_toplevel.cmx jg_tk.cmx jg_text.cmx jg_bind.cmx ../labltk/grab.cmx \ + ../labltk/frame.cmx ../labltk/button.cmx jg_message.cmi +jg_multibox.cmo : ../labltk/tk.cmo ../labltk/scrollbar.cmi \ + ../labltk/listbox.cmi jg_completion.cmi jg_bind.cmi ../labltk/focus.cmi \ + jg_multibox.cmi +jg_multibox.cmx : ../labltk/tk.cmx ../labltk/scrollbar.cmx \ + ../labltk/listbox.cmx jg_completion.cmx jg_bind.cmx ../labltk/focus.cmx \ + jg_multibox.cmi +jg_text.cmo : ../labltk/wm.cmi ../labltk/winfo.cmi ../labltk/tk.cmo \ + ../support/textvariable.cmi ../labltk/text.cmi ../labltk/scrollbar.cmi \ + ../labltk/radiobutton.cmi ../support/protocol.cmi ../labltk/label.cmi \ + jg_toplevel.cmo jg_tk.cmo jg_button.cmo jg_bind.cmi ../labltk/frame.cmi \ + ../labltk/focus.cmi ../labltk/entry.cmi ../labltk/button.cmi jg_text.cmi +jg_text.cmx : ../labltk/wm.cmx ../labltk/winfo.cmx ../labltk/tk.cmx \ + ../support/textvariable.cmx ../labltk/text.cmx ../labltk/scrollbar.cmx \ + ../labltk/radiobutton.cmx ../support/protocol.cmx ../labltk/label.cmx \ + jg_toplevel.cmx jg_tk.cmx jg_button.cmx jg_bind.cmx ../labltk/frame.cmx \ + ../labltk/focus.cmx ../labltk/entry.cmx ../labltk/button.cmx jg_text.cmi +jg_tk.cmo : ../labltk/tk.cmo +jg_tk.cmx : ../labltk/tk.cmx +jg_toplevel.cmo : ../labltk/wm.cmi ../support/widget.cmi \ + ../labltk/toplevel.cmi ../labltk/tk.cmo +jg_toplevel.cmx : ../labltk/wm.cmx ../support/widget.cmx \ + ../labltk/toplevel.cmx ../labltk/tk.cmx +lexical.cmo : ../labltk/tk.cmo ../labltk/text.cmi \ + ../../../parsing/parser.cmi ../../../parsing/location.cmi \ + ../../../parsing/lexer.cmi jg_tk.cmo lexical.cmi +lexical.cmx : ../labltk/tk.cmx ../labltk/text.cmx \ + ../../../parsing/parser.cmx ../../../parsing/location.cmx \ + ../../../parsing/lexer.cmx jg_tk.cmx lexical.cmi list2.cmo : list2.cmx : -main.cmo : viewer.cmi shell.cmi searchpos.cmi searchid.cmi jg_config.cmi \ - editor.cmi -main.cmx : viewer.cmx shell.cmx searchpos.cmx searchid.cmx jg_config.cmx \ - editor.cmx -searchid.cmo : list2.cmo searchid.cmi -searchid.cmx : list2.cmx searchid.cmi -searchpos.cmo : searchid.cmi lexical.cmi jg_tk.cmo jg_text.cmi \ - jg_message.cmi jg_memo.cmi jg_bind.cmi searchpos.cmi -searchpos.cmx : searchid.cmx lexical.cmx jg_tk.cmx jg_text.cmx \ - jg_message.cmx jg_memo.cmx jg_bind.cmx searchpos.cmi -setpath.cmo : useunix.cmi list2.cmo jg_toplevel.cmo jg_button.cmo jg_box.cmo \ - jg_bind.cmi setpath.cmi -setpath.cmx : useunix.cmx list2.cmx jg_toplevel.cmx jg_button.cmx jg_box.cmx \ - jg_bind.cmx setpath.cmi -shell.cmo : list2.cmo lexical.cmi jg_toplevel.cmo jg_tk.cmo jg_text.cmi \ - jg_message.cmi jg_menu.cmo jg_memo.cmi fileselect.cmi dummy.cmi shell.cmi -shell.cmx : list2.cmx lexical.cmx jg_toplevel.cmx jg_tk.cmx jg_text.cmx \ - jg_message.cmx jg_menu.cmx jg_memo.cmx fileselect.cmx dummy.cmi shell.cmi -typecheck.cmo : mytypes.cmi jg_tk.cmo jg_text.cmi jg_message.cmi \ - typecheck.cmi -typecheck.cmx : mytypes.cmi jg_tk.cmx jg_text.cmx jg_message.cmx \ - typecheck.cmi +main.cmo : ../../../utils/warnings.cmi viewer.cmi ../labltk/tk.cmo shell.cmi \ + searchpos.cmi searchid.cmi ../support/protocol.cmi \ + ../../../utils/misc.cmi ../labltk/message.cmi jg_config.cmi \ + ../../../typing/env.cmi editor.cmi ../../../utils/config.cmi \ + ../../../utils/clflags.cmi ../labltk/button.cmi +main.cmx : ../../../utils/warnings.cmx viewer.cmx ../labltk/tk.cmx shell.cmx \ + searchpos.cmx searchid.cmx ../support/protocol.cmx \ + ../../../utils/misc.cmx ../labltk/message.cmx jg_config.cmx \ + ../../../typing/env.cmx editor.cmx ../../../utils/config.cmx \ + ../../../utils/clflags.cmx ../labltk/button.cmx +searchid.cmo : ../../../typing/typetexp.cmi ../../../typing/types.cmi \ + ../../../typing/typemod.cmi ../../../typing/typedtree.cmi \ + ../../../parsing/syntaxerr.cmi ../../../typing/path.cmi \ + ../../../parsing/parsetree.cmi ../../../parsing/parse.cmi \ + ../../../parsing/longident.cmi ../../../parsing/location.cmi list2.cmo \ + ../../../parsing/lexer.cmi ../../../typing/ident.cmi \ + ../../../typing/env.cmi ../../../typing/ctype.cmi \ + ../../../typing/btype.cmi ../../../parsing/asttypes.cmi searchid.cmi +searchid.cmx : ../../../typing/typetexp.cmx ../../../typing/types.cmx \ + ../../../typing/typemod.cmx ../../../typing/typedtree.cmx \ + ../../../parsing/syntaxerr.cmx ../../../typing/path.cmx \ + ../../../parsing/parsetree.cmi ../../../parsing/parse.cmx \ + ../../../parsing/longident.cmx ../../../parsing/location.cmx list2.cmx \ + ../../../parsing/lexer.cmx ../../../typing/ident.cmx \ + ../../../typing/env.cmx ../../../typing/ctype.cmx \ + ../../../typing/btype.cmx ../../../parsing/asttypes.cmi searchid.cmi +searchpos.cmo : ../labltk/wm.cmi ../labltk/winfo.cmi ../support/widget.cmi \ + ../../../typing/typetexp.cmi ../../../typing/types.cmi \ + ../../../typing/typemod.cmi ../../../typing/typedtree.cmi \ + ../../../typing/typedecl.cmi ../../../typing/typeclass.cmi \ + ../labltk/tk.cmo ../labltk/text.cmi ../../../parsing/syntaxerr.cmi \ + ../support/support.cmi ../../../typing/stypes.cmi searchid.cmi \ + ../../../typing/printtyp.cmi ../../../typing/path.cmi \ + ../../../parsing/parsetree.cmi ../../../parsing/parse.cmi \ + ../labltk/pack.cmi ../labltk/option.cmi ../../../utils/misc.cmi \ + ../labltk/menu.cmi ../../../parsing/longident.cmi \ + ../../../parsing/location.cmi lexical.cmi ../../../parsing/lexer.cmi \ + ../labltk/label.cmi jg_tk.cmo jg_text.cmi jg_message.cmi jg_memo.cmi \ + jg_bind.cmi ../../../typing/ident.cmi ../../../typing/env.cmi \ + ../../../typing/ctype.cmi ../../../utils/config.cmi ../labltk/button.cmi \ + ../../../parsing/asttypes.cmi searchpos.cmi +searchpos.cmx : ../labltk/wm.cmx ../labltk/winfo.cmx ../support/widget.cmx \ + ../../../typing/typetexp.cmx ../../../typing/types.cmx \ + ../../../typing/typemod.cmx ../../../typing/typedtree.cmx \ + ../../../typing/typedecl.cmx ../../../typing/typeclass.cmx \ + ../labltk/tk.cmx ../labltk/text.cmx ../../../parsing/syntaxerr.cmx \ + ../support/support.cmx ../../../typing/stypes.cmx searchid.cmx \ + ../../../typing/printtyp.cmx ../../../typing/path.cmx \ + ../../../parsing/parsetree.cmi ../../../parsing/parse.cmx \ + ../labltk/pack.cmx ../labltk/option.cmx ../../../utils/misc.cmx \ + ../labltk/menu.cmx ../../../parsing/longident.cmx \ + ../../../parsing/location.cmx lexical.cmx ../../../parsing/lexer.cmx \ + ../labltk/label.cmx jg_tk.cmx jg_text.cmx jg_message.cmx jg_memo.cmx \ + jg_bind.cmx ../../../typing/ident.cmx ../../../typing/env.cmx \ + ../../../typing/ctype.cmx ../../../utils/config.cmx ../labltk/button.cmx \ + ../../../parsing/asttypes.cmi searchpos.cmi +setpath.cmo : useunix.cmi ../labltk/tk.cmo ../support/textvariable.cmi \ + ../support/protocol.cmi ../labltk/listbox.cmi list2.cmo \ + ../labltk/label.cmi jg_toplevel.cmo jg_button.cmo jg_box.cmo jg_bind.cmi \ + ../labltk/frame.cmi ../labltk/entry.cmi ../../../utils/config.cmi \ + ../labltk/button.cmi setpath.cmi +setpath.cmx : useunix.cmx ../labltk/tk.cmx ../support/textvariable.cmx \ + ../support/protocol.cmx ../labltk/listbox.cmx list2.cmx \ + ../labltk/label.cmx jg_toplevel.cmx jg_button.cmx jg_box.cmx jg_bind.cmx \ + ../labltk/frame.cmx ../labltk/entry.cmx ../../../utils/config.cmx \ + ../labltk/button.cmx setpath.cmi +shell.cmo : ../labltk/winfo.cmi ../../../utils/warnings.cmi \ + ../labltk/toplevel.cmi ../labltk/tk.cmo ../support/timer.cmi \ + ../labltk/text.cmi ../labltk/menu.cmi list2.cmo lexical.cmi \ + jg_toplevel.cmo jg_tk.cmo jg_text.cmi jg_message.cmi jg_menu.cmo \ + jg_memo.cmi fileselect.cmi ../support/fileevent.cmi dummy.cmi \ + ../../../utils/config.cmi ../../../utils/clflags.cmi shell.cmi +shell.cmx : ../labltk/winfo.cmx ../../../utils/warnings.cmx \ + ../labltk/toplevel.cmx ../labltk/tk.cmx ../support/timer.cmx \ + ../labltk/text.cmx ../labltk/menu.cmx list2.cmx lexical.cmx \ + jg_toplevel.cmx jg_tk.cmx jg_text.cmx jg_message.cmx jg_menu.cmx \ + jg_memo.cmx fileselect.cmx ../support/fileevent.cmx dummy.cmi \ + ../../../utils/config.cmx ../../../utils/clflags.cmx shell.cmi +typecheck.cmo : ../../../typing/typetexp.cmi ../../../typing/typemod.cmi \ + ../../../typing/typedtree.cmi ../../../typing/typedecl.cmi \ + ../../../typing/typecore.cmi ../../../typing/typeclass.cmi \ + ../labltk/tk.cmo ../labltk/text.cmi ../../../parsing/syntaxerr.cmi \ + ../../../typing/stypes.cmi ../../../parsing/parsetree.cmi \ + ../../../parsing/parse.cmi mytypes.cmi ../../../utils/misc.cmi \ + ../../../parsing/location.cmi ../../../parsing/lexer.cmi jg_tk.cmo \ + jg_text.cmi jg_message.cmi ../../../typing/includemod.cmi \ + ../../../typing/env.cmi ../../../typing/ctype.cmi \ + ../../../utils/config.cmi ../../../typing/cmi_format.cmi \ + ../../../utils/clflags.cmi ../../../utils/ccomp.cmi typecheck.cmi +typecheck.cmx : ../../../typing/typetexp.cmx ../../../typing/typemod.cmx \ + ../../../typing/typedtree.cmx ../../../typing/typedecl.cmx \ + ../../../typing/typecore.cmx ../../../typing/typeclass.cmx \ + ../labltk/tk.cmx ../labltk/text.cmx ../../../parsing/syntaxerr.cmx \ + ../../../typing/stypes.cmx ../../../parsing/parsetree.cmi \ + ../../../parsing/parse.cmx mytypes.cmi ../../../utils/misc.cmx \ + ../../../parsing/location.cmx ../../../parsing/lexer.cmx jg_tk.cmx \ + jg_text.cmx jg_message.cmx ../../../typing/includemod.cmx \ + ../../../typing/env.cmx ../../../typing/ctype.cmx \ + ../../../utils/config.cmx ../../../typing/cmi_format.cmx \ + ../../../utils/clflags.cmx ../../../utils/ccomp.cmx typecheck.cmi useunix.cmo : useunix.cmi useunix.cmx : useunix.cmi -viewer.cmo : useunix.cmi shell.cmi setpath.cmi searchpos.cmi searchid.cmi \ - mytypes.cmi jg_toplevel.cmo jg_tk.cmo jg_text.cmi jg_multibox.cmi \ - jg_message.cmi jg_menu.cmo jg_entry.cmo jg_completion.cmi jg_button.cmo \ - jg_box.cmo jg_bind.cmi help.cmo viewer.cmi -viewer.cmx : useunix.cmx shell.cmx setpath.cmx searchpos.cmx searchid.cmx \ - mytypes.cmi jg_toplevel.cmx jg_tk.cmx jg_text.cmx jg_multibox.cmx \ - jg_message.cmx jg_menu.cmx jg_entry.cmx jg_completion.cmx jg_button.cmx \ - jg_box.cmx jg_bind.cmx help.cmx viewer.cmi +viewer.cmo : ../labltk/wm.cmi useunix.cmi ../../../typing/types.cmi \ + ../../../typing/typedtree.cmi ../labltk/toplevel.cmi ../labltk/tk.cmo \ + ../support/textvariable.cmi ../labltk/text.cmi shell.cmi setpath.cmi \ + searchpos.cmi searchid.cmi ../labltk/radiobutton.cmi \ + ../support/protocol.cmi ../../../typing/predef.cmi \ + ../../../typing/path.cmi ../labltk/pack.cmi mytypes.cmi \ + ../labltk/menu.cmi ../../../parsing/longident.cmi \ + ../../../parsing/location.cmi ../labltk/listbox.cmi ../labltk/label.cmi \ + jg_toplevel.cmo jg_tk.cmo jg_text.cmi jg_multibox.cmi jg_message.cmi \ + jg_menu.cmo jg_entry.cmo jg_completion.cmi jg_button.cmo jg_box.cmo \ + jg_bind.cmi ../../../typing/ident.cmi help.cmo ../labltk/frame.cmi \ + ../labltk/focus.cmi ../../../typing/env.cmi ../labltk/entry.cmi \ + ../../../utils/config.cmi ../../../typing/cmi_format.cmi \ + ../labltk/button.cmi viewer.cmi +viewer.cmx : ../labltk/wm.cmx useunix.cmx ../../../typing/types.cmx \ + ../../../typing/typedtree.cmx ../labltk/toplevel.cmx ../labltk/tk.cmx \ + ../support/textvariable.cmx ../labltk/text.cmx shell.cmx setpath.cmx \ + searchpos.cmx searchid.cmx ../labltk/radiobutton.cmx \ + ../support/protocol.cmx ../../../typing/predef.cmx \ + ../../../typing/path.cmx ../labltk/pack.cmx mytypes.cmi \ + ../labltk/menu.cmx ../../../parsing/longident.cmx \ + ../../../parsing/location.cmx ../labltk/listbox.cmx ../labltk/label.cmx \ + jg_toplevel.cmx jg_tk.cmx jg_text.cmx jg_multibox.cmx jg_message.cmx \ + jg_menu.cmx jg_entry.cmx jg_completion.cmx jg_button.cmx jg_box.cmx \ + jg_bind.cmx ../../../typing/ident.cmx help.cmx ../labltk/frame.cmx \ + ../labltk/focus.cmx ../../../typing/env.cmx ../labltk/entry.cmx \ + ../../../utils/config.cmx ../../../typing/cmi_format.cmx \ + ../labltk/button.cmx viewer.cmi dummy.cmi : dummyUnix.cmi : dummyWin.cmi : -editor.cmi : +editor.cmi : ../support/widget.cmi fileselect.cmi : -jg_bind.cmi : +jg_bind.cmi : ../support/widget.cmi jg_completion.cmi : jg_config.cmi : jg_memo.cmi : -jg_message.cmi : -jg_multibox.cmi : -jg_text.cmi : -lexical.cmi : -mytypes.cmi : shell.cmi -searchid.cmi : -searchpos.cmi : -setpath.cmi : -shell.cmi : -typecheck.cmi : mytypes.cmi +jg_message.cmi : ../support/widget.cmi +jg_multibox.cmi : ../support/widget.cmi ../labltk/tk.cmo +jg_text.cmi : ../support/widget.cmi ../labltk/tk.cmo +lexical.cmi : ../support/widget.cmi ../labltk/tk.cmo +mytypes.cmi : ../support/widget.cmi ../../../typing/types.cmi \ + ../../../typing/typedtree.cmi ../support/textvariable.cmi \ + ../../../typing/stypes.cmi shell.cmi ../../../parsing/parsetree.cmi +searchid.cmi : ../../../typing/path.cmi ../../../parsing/parsetree.cmi \ + ../../../parsing/longident.cmi ../../../typing/env.cmi +searchpos.cmi : ../support/widget.cmi ../../../typing/types.cmi \ + ../../../typing/typedtree.cmi ../../../typing/stypes.cmi \ + ../../../typing/path.cmi ../../../parsing/parsetree.cmi \ + ../../../parsing/longident.cmi ../../../parsing/location.cmi \ + ../../../typing/env.cmi +setpath.cmi : ../support/widget.cmi +shell.cmi : ../support/widget.cmi +typecheck.cmi : ../support/widget.cmi mytypes.cmi useunix.cmi : -viewer.cmi : +viewer.cmi : ../support/widget.cmi ../../../parsing/longident.cmi \ + ../../../typing/env.cmi diff --git a/otherlibs/labltk/browser/Makefile.shared b/otherlibs/labltk/browser/Makefile.shared index 6199e012f..53a4f0bb0 100644 --- a/otherlibs/labltk/browser/Makefile.shared +++ b/otherlibs/labltk/browser/Makefile.shared @@ -69,7 +69,7 @@ clean: rm -f *.cm? ocamlbrowser$(EXE) dummy.mli *~ *.orig *.$(O) help.ml depend: help.ml - $(CAMLDEP) *.ml *.mli > .depend + $(CAMLDEP) $(LABLTKLIB) $(OCAMLTOPLIB) *.ml *.mli > .depend shell.cmo: dummy.cmi setpath.cmo fileselect.cmo lexical.cmi searchid.cmi typecheck.cmi: $(TOPDIR)/compilerlibs/ocamlcommon.cma diff --git a/otherlibs/labltk/browser/editor.ml b/otherlibs/labltk/browser/editor.ml index a9f7e6eac..90241c6b1 100644 --- a/otherlibs/labltk/browser/editor.ml +++ b/otherlibs/labltk/browser/editor.ml @@ -618,7 +618,7 @@ class editor ~top ~menus = object (self) (try Filename.chop_extension basename with _ -> basename) in let env = Env.add_module (Ident.create modname) - (Types.Tmty_signature txt.signature) + (Types.Mty_signature txt.signature) Env.initial in Viewer.view_defined (Longident.Lident modname) ~env ~show_all:true end; diff --git a/otherlibs/labltk/browser/mytypes.mli b/otherlibs/labltk/browser/mytypes.mli index b4deead23..217fc111c 100644 --- a/otherlibs/labltk/browser/mytypes.mli +++ b/otherlibs/labltk/browser/mytypes.mli @@ -22,7 +22,7 @@ type edit_window = frame: frame widget; modified: Textvariable.textVariable; mutable shell: (string * Shell.shell) option; - mutable structure: Typedtree.structure; + mutable structure: Typedtree.structure_item list; mutable type_info: Stypes.annotation list; mutable signature: Types.signature; mutable psignature: Parsetree.signature; diff --git a/otherlibs/labltk/browser/searchid.ml b/otherlibs/labltk/browser/searchid.ml index e624eca98..ab66f0f03 100644 --- a/otherlibs/labltk/browser/searchid.ml +++ b/otherlibs/labltk/browser/searchid.ml @@ -14,6 +14,7 @@ (* $Id$ *) +open Asttypes open StdLabels open Location open Longident @@ -218,9 +219,9 @@ let rec search_type_in_signature t ~sign ~prefix ~mode = and lid_of_id id = mklid (prefix @ [Ident.name id]) in List2.flat_map sign ~f: begin fun item -> match item with - Tsig_value (id, vd) -> + Sig_value (id, vd) -> if matches vd.val_type then [lid_of_id id, Pvalue] else [] - | Tsig_type (id, td, _) -> + | Sig_type (id, td, _) -> if matches (newconstr (Pident id) td.type_params) || begin match td.type_manifest with @@ -239,23 +240,23 @@ let rec search_type_in_signature t ~sign ~prefix ~mode = List.exists l ~f:(fun (_, _, t) -> matches t) end then [lid_of_id id, Ptype] else [] - | Tsig_exception (id, l) -> + | Sig_exception (id, l) -> if List.exists l.exn_args ~f:matches then [lid_of_id id, Pconstructor] else [] - | Tsig_module (id, Tmty_signature sign, _) -> + | Sig_module (id, Mty_signature sign, _) -> search_type_in_signature t ~sign ~mode ~prefix:(prefix @ [Ident.name id]) - | Tsig_module _ -> [] - | Tsig_modtype _ -> [] - | Tsig_class (id, cl, _) -> + | Sig_module _ -> [] + | Sig_modtype _ -> [] + | Sig_class (id, cl, _) -> let self = self_type cl.cty_type in if matches self || (match cl.cty_new with None -> false | Some ty -> matches ty) (* || List.exists (get_fields ~prefix ~sign self) ~f:(fun (_,_,ty_field) -> matches ty_field) *) then [lid_of_id id, Pclass] else [] - | Tsig_cltype (id, cl, _) -> + | Sig_class_type (id, cl, _) -> let self = self_type cl.clty_type in if matches self (* || List.exists (get_fields ~prefix ~sign self) @@ -273,7 +274,7 @@ let search_all_types t ~mode = begin fun modname -> let mlid = Lident modname in try match lookup_module mlid initial with - _, Tmty_signature sign -> + _, Mty_signature sign -> List2.flat_map tl ~f:(search_type_in_signature ~sign ~prefix:[modname] ~mode) | _ -> [] @@ -286,12 +287,12 @@ let search_string_type text ~mode = try let sexp = Parse.interface (Lexing.from_string ("val z : " ^ text)) in let sign = - try Typemod.transl_signature !start_env sexp with _ -> + try (Typemod.transl_signature !start_env sexp).sig_type with _ -> let env = List.fold_left !module_list ~init:initial ~f: begin fun acc m -> try open_pers_signature m acc with Env.Error _ -> acc end in - try Typemod.transl_signature env sexp + try (Typemod.transl_signature env sexp).sig_type with Env.Error err -> [] | Typemod.Error (l,_) -> let start_c = l.loc_start.Lexing.pos_cnum in @@ -302,7 +303,7 @@ let search_string_type text ~mode = let end_c = l.loc_end.Lexing.pos_cnum in raise (Error (start_c - 8, end_c - 8)) in match sign with - [Tsig_value (_, vd)] -> + [ Sig_value (_, vd) ] -> search_all_types vd.val_type ~mode | _ -> [] with @@ -355,20 +356,20 @@ let search_pattern_symbol text = let l = List.map !module_list ~f: begin fun modname -> Lident modname, try match lookup_module (Lident modname) initial with - _, Tmty_signature sign -> + _, Mty_signature sign -> List2.flat_map sign ~f: begin function - Tsig_value (i, _) when check i -> [i, Pvalue] - | Tsig_type (i, _, _) when check i -> [i, Ptype] - | Tsig_exception (i, _) when check i -> [i, Pconstructor] - | Tsig_module (i, _, _) when check i -> [i, Pmodule] - | Tsig_modtype (i, _) when check i -> [i, Pmodtype] - | Tsig_class (i, cl, _) when check i + Sig_value (i, _) when check i -> [i, Pvalue] + | Sig_type (i, _, _) when check i -> [i, Ptype] + | Sig_exception (i, _) when check i -> [i, Pconstructor] + | Sig_module (i, _, _) when check i -> [i, Pmodule] + | Sig_modtype (i, _) when check i -> [i, Pmodtype] + | Sig_class (i, cl, _) when check i || List.exists (get_fields ~prefix:[modname] ~sign (self_type cl.cty_type)) ~f:(fun (name,_,_) -> check_match ~pattern (explode name)) -> [i, Pclass] - | Tsig_cltype (i, cl, _) when check i + | Sig_class_type (i, cl, _) when check i || List.exists (get_fields ~prefix:[modname] ~sign (self_type cl.clty_type)) ~f:(fun (name,_,_) -> check_match ~pattern (explode name)) @@ -412,8 +413,8 @@ open Parsetree let rec bound_variables pat = match pat.ppat_desc with Ppat_any | Ppat_constant _ | Ppat_type _ | Ppat_unpack _ -> [] - | Ppat_var s -> [s] - | Ppat_alias (pat,s) -> s :: bound_variables pat + | Ppat_var s -> [s.txt] + | Ppat_alias (pat,s) -> s.txt :: bound_variables pat | Ppat_tuple l -> List2.flat_map l ~f:bound_variables | Ppat_construct (_,None,_) -> [] | Ppat_construct (_,Some pat,_) -> bound_variables pat @@ -437,7 +438,7 @@ let search_structure str ~name ~kind ~prefix = List.fold_left ~init:[] str ~f: begin fun acc item -> match item.pstr_desc with - Pstr_module (s, mexp) when s = modu -> + Pstr_module (s, mexp) when s.txt = modu -> loc := mexp.pmod_loc.loc_start.Lexing.pos_cnum; begin match mexp.pmod_desc with Pmod_structure str -> str @@ -457,27 +458,27 @@ let search_structure str ~name ~kind ~prefix = then loc := pat.ppat_loc.loc_start.Lexing.pos_cnum end; false - | Pstr_primitive (s, _) when kind = Pvalue -> name = s + | Pstr_primitive (s, _) when kind = Pvalue -> name = s.txt | Pstr_type l when kind = Ptype -> List.iter l ~f: begin fun (s, td) -> - if s = name then loc := td.ptype_loc.loc_start.Lexing.pos_cnum + if s.txt = name then loc := td.ptype_loc.loc_start.Lexing.pos_cnum end; false - | Pstr_exception (s, _) when kind = Pconstructor -> name = s - | Pstr_module (s, _) when kind = Pmodule -> name = s - | Pstr_modtype (s, _) when kind = Pmodtype -> name = s + | Pstr_exception (s, _) when kind = Pconstructor -> name = s.txt + | Pstr_module (s, _) when kind = Pmodule -> name = s.txt + | Pstr_modtype (s, _) when kind = Pmodtype -> name = s.txt | Pstr_class l when kind = Pclass || kind = Ptype || kind = Pcltype -> List.iter l ~f: begin fun c -> - if c.pci_name = name + if c.pci_name.txt = name then loc := c.pci_loc.loc_start.Lexing.pos_cnum end; false | Pstr_class_type l when kind = Pcltype || kind = Ptype -> List.iter l ~f: begin fun c -> - if c.pci_name = name + if c.pci_name.txt = name then loc := c.pci_loc.loc_start.Lexing.pos_cnum end; false @@ -487,6 +488,8 @@ let search_structure str ~name ~kind ~prefix = !loc let search_signature sign ~name ~kind ~prefix = + ignore (name = ""); + ignore (prefix = [""]); let loc = ref 0 in let rec search_module_type sign ~prefix = match prefix with [] -> sign @@ -495,7 +498,7 @@ let search_signature sign ~name ~kind ~prefix = List.fold_left ~init:[] sign ~f: begin fun acc item -> match item.psig_desc with - Psig_module (s, mtyp) when s = modu -> + Psig_module (s, mtyp) when s.txt = modu -> loc := mtyp.pmty_loc.loc_start.Lexing.pos_cnum; begin match mtyp.pmty_desc with Pmty_signature sign -> sign @@ -508,27 +511,27 @@ let search_signature sign ~name ~kind ~prefix = List.iter (search_module_type sign ~prefix) ~f: begin fun item -> if match item.psig_desc with - Psig_value (s, _) when kind = Pvalue -> name = s + Psig_value (s, _) when kind = Pvalue -> name = s.txt | Psig_type l when kind = Ptype -> List.iter l ~f: begin fun (s, td) -> - if s = name then loc := td.ptype_loc.loc_start.Lexing.pos_cnum + if s.txt = name then loc := td.ptype_loc.loc_start.Lexing.pos_cnum end; false - | Psig_exception (s, _) when kind = Pconstructor -> name = s - | Psig_module (s, _) when kind = Pmodule -> name = s - | Psig_modtype (s, _) when kind = Pmodtype -> name = s + | Psig_exception (s, _) when kind = Pconstructor -> name = s.txt + | Psig_module (s, _) when kind = Pmodule -> name = s.txt + | Psig_modtype (s, _) when kind = Pmodtype -> name = s.txt | Psig_class l when kind = Pclass || kind = Ptype || kind = Pcltype -> List.iter l ~f: begin fun c -> - if c.pci_name = name + if c.pci_name.txt = name then loc := c.pci_loc.loc_start.Lexing.pos_cnum end; false | Psig_class_type l when kind = Ptype || kind = Pcltype -> List.iter l ~f: begin fun c -> - if c.pci_name = name + if c.pci_name.txt = name then loc := c.pci_loc.loc_start.Lexing.pos_cnum end; false diff --git a/otherlibs/labltk/browser/searchpos.ml b/otherlibs/labltk/browser/searchpos.ml index 2d4b68947..2ae702adc 100644 --- a/otherlibs/labltk/browser/searchpos.ml +++ b/otherlibs/labltk/browser/searchpos.ml @@ -14,6 +14,7 @@ (* $Id$ *) +open Asttypes open StdLabels open Support open Tk @@ -118,7 +119,7 @@ let rec search_pos_type t ~pos ~env = List.iter tl ~f:(search_pos_type ~pos ~env) | Ptyp_constr (lid, tl) -> List.iter tl ~f:(search_pos_type ~pos ~env); - add_found_sig (`Type, lid) ~env ~loc:t.ptyp_loc + add_found_sig (`Type, lid.txt) ~env ~loc:t.ptyp_loc | Ptyp_object fl -> List.iter fl ~f: begin function @@ -127,7 +128,7 @@ let rec search_pos_type t ~pos ~env = end | Ptyp_class (lid, tl, _) -> List.iter tl ~f:(search_pos_type ~pos ~env); - add_found_sig (`Type, lid) ~env ~loc:t.ptyp_loc + add_found_sig (`Type, lid.txt) ~env ~loc:t.ptyp_loc | Ptyp_alias (t, _) | Ptyp_poly (_, t) -> search_pos_type ~pos ~env t | Ptyp_package (_, stl) -> @@ -138,23 +139,23 @@ let rec search_pos_class_type cl ~pos ~env = if in_loc cl.pcty_loc ~pos then begin match cl.pcty_desc with Pcty_constr (lid, _) -> - add_found_sig (`Class, lid) ~env ~loc:cl.pcty_loc - | Pcty_signature (_, cfl) -> - List.iter cfl ~f: - begin function + add_found_sig (`Class, lid.txt) ~env ~loc:cl.pcty_loc + | Pcty_signature cl -> + List.iter cl.pcsig_fields ~f: (fun fl -> + begin match fl.pctf_desc with Pctf_inher cty -> search_pos_class_type cty ~pos ~env - | Pctf_val (_, _, _, ty, loc) -> - if in_loc loc ~pos then search_pos_type ty ~pos ~env - | Pctf_virt (_, _, ty, loc) -> - if in_loc loc ~pos then search_pos_type ty ~pos ~env - | Pctf_meth (_, _, ty, loc) -> - if in_loc loc ~pos then search_pos_type ty ~pos ~env - | Pctf_cstr (ty1, ty2, loc) -> - if in_loc loc ~pos then begin + | Pctf_val (_, _, _, ty) -> + if in_loc fl.pctf_loc ~pos then search_pos_type ty ~pos ~env + | Pctf_virt (_, _, ty) -> + if in_loc fl.pctf_loc ~pos then search_pos_type ty ~pos ~env + | Pctf_meth (_, _, ty) -> + if in_loc fl.pctf_loc ~pos then search_pos_type ty ~pos ~env + | Pctf_cstr (ty1, ty2) -> + if in_loc fl.pctf_loc ~pos then begin search_pos_type ty1 ~pos ~env; search_pos_type ty2 ~pos ~env end - end + end) | Pcty_fun (_, ty, cty) -> search_pos_type ty ~pos ~env; search_pos_class_type cty ~pos ~env @@ -187,13 +188,13 @@ let rec search_pos_signature l ~pos ~env = begin fun env pt -> let env = match pt.psig_desc with Psig_open id -> - let path, mt = lookup_module id env in + let path, mt = lookup_module id.txt env in begin match mt with - Tmty_signature sign -> open_signature path sign env + Mty_signature sign -> open_signature path sign env | _ -> env end | sign_item -> - try add_signature (Typemod.transl_signature env [pt]) env + try add_signature (Typemod.transl_signature env [pt]).sig_type env with Typemod.Error _ | Typeclass.Error _ | Typetexp.Error _ | Typedecl.Error _ -> env in @@ -219,7 +220,7 @@ let rec search_pos_signature l ~pos ~env = List.iter l ~f:(fun ci -> search_pos_class_type ci.pci_expr ~pos ~env) (* The last cases should not happen in generated interfaces *) - | Psig_open lid -> add_found_sig (`Module, lid) ~env ~loc:pt.psig_loc + | Psig_open lid -> add_found_sig (`Module, lid.txt) ~env ~loc:pt.psig_loc | Psig_include t -> search_pos_module t ~pos ~env end; env @@ -228,7 +229,7 @@ let rec search_pos_signature l ~pos ~env = and search_pos_module m ~pos ~env = if in_loc m.pmty_loc ~pos then begin begin match m.pmty_desc with - Pmty_ident lid -> add_found_sig (`Modtype, lid) ~env ~loc:m.pmty_loc + Pmty_ident lid -> add_found_sig (`Modtype, lid.txt) ~env ~loc:m.pmty_loc | Pmty_signature sg -> search_pos_signature sg ~pos ~env | Pmty_functor (_ , m1, m2) -> search_pos_module m1 ~pos ~env; @@ -240,7 +241,7 @@ and search_pos_module m ~pos ~env = _, Pwith_type t -> search_pos_type_decl t ~pos ~env | _ -> () end - | Pmty_typeof md -> + | Pmty_typeof md -> () (* TODO? *) end end @@ -292,13 +293,13 @@ let edit_source ~file ~path ~sign = [item] -> let id, kind = match item with - Tsig_value (id, _) -> id, Pvalue - | Tsig_type (id, _, _) -> id, Ptype - | Tsig_exception (id, _) -> id, Pconstructor - | Tsig_module (id, _, _) -> id, Pmodule - | Tsig_modtype (id, _) -> id, Pmodtype - | Tsig_class (id, _, _) -> id, Pclass - | Tsig_cltype (id, _, _) -> id, Pcltype + Sig_value (id, _) -> id, Pvalue + | Sig_type (id, _, _) -> id, Ptype + | Sig_exception (id, _) -> id, Pconstructor + | Sig_module (id, _, _) -> id, Pmodule + | Sig_modtype (id, _) -> id, Pmodtype + | Sig_class (id, _, _) -> id, Pclass + | Sig_class_type (id, _, _) -> id, Pcltype in let prefix = List.tl (list_of_path path) and name = Ident.name id in let pos = @@ -319,7 +320,7 @@ let edit_source ~file ~path ~sign = (* List of windows to destroy by Close All *) let top_widgets = ref [] -let dummy_item = Tsig_modtype (Ident.create "dummy", Tmodtype_abstract) +let dummy_item = Sig_modtype (Ident.create "dummy", Modtype_abstract) let rec view_signature ?title ?path ?(env = !start_env) ?(detach=false) sign = let env = @@ -441,11 +442,11 @@ and view_signature_item sign ~path ~env = and view_module path ~env = match find_module path env with - Tmty_signature sign -> + Mty_signature sign -> !view_defined_ref (Searchid.longident_of_path path) ~env | modtype -> let id = ident_of_path path ~default:"M" in - view_signature_item [Tsig_module (id, modtype, Trec_not)] ~path ~env + view_signature_item [Sig_module (id, modtype, Trec_not)] ~path ~env and view_module_id id ~env = let path, _ = lookup_module id env in @@ -458,12 +459,12 @@ and view_type_decl path ~env = {desc = Tobject _} -> let clt = find_cltype path env in view_signature_item ~path ~env - [Tsig_cltype(ident_of_path path ~default:"ct", clt, Trec_first); + [Sig_class_type(ident_of_path path ~default:"ct", clt, Trec_first); dummy_item; dummy_item] | _ -> raise Not_found with Not_found -> view_signature_item ~path ~env - [Tsig_type(ident_of_path path ~default:"t", td, Trec_first)] + [Sig_type(ident_of_path path ~default:"t", td, Trec_first)] and view_type_id li ~env = let path, decl = lookup_type li env in @@ -472,19 +473,19 @@ and view_type_id li ~env = and view_class_id li ~env = let path, cl = lookup_class li env in view_signature_item ~path ~env - [Tsig_class(ident_of_path path ~default:"c", cl, Trec_first); + [Sig_class(ident_of_path path ~default:"c", cl, Trec_first); dummy_item; dummy_item; dummy_item] and view_cltype_id li ~env = let path, clt = lookup_cltype li env in view_signature_item ~path ~env - [Tsig_cltype(ident_of_path path ~default:"ct", clt, Trec_first); + [Sig_class_type(ident_of_path path ~default:"ct", clt, Trec_first); dummy_item; dummy_item] and view_modtype_id li ~env = let path, td = lookup_modtype li env in view_signature_item ~path ~env - [Tsig_modtype(ident_of_path path ~default:"S", td)] + [Sig_modtype(ident_of_path path ~default:"S", td)] and view_expr_type ?title ?path ?env ?(name="noname") t = let title = @@ -496,8 +497,8 @@ and view_expr_type ?title ?path ?env ?(name="noname") t = | Some path -> parent_path path, ident_of_path path ~default:name in view_signature ~title ?path ?env - [Tsig_value (id, {val_type = t; val_kind = Val_reg; - val_loc = Location.none})] + [Sig_value (id, {val_type = t; val_kind = Val_reg; + Types.val_loc = Location.none})] and view_decl lid ~kind ~env = match kind with @@ -577,7 +578,7 @@ let view_type kind ~env = begin try let vd = find_value path env in view_signature_item ~path ~env - [Tsig_value(ident_of_path path ~default:"v", vd)] + [Sig_value(ident_of_path path ~default:"v", vd)] with Not_found -> view_expr_type ty ~path ~env end @@ -587,19 +588,19 @@ let view_type kind ~env = | `New path -> let cl = find_class path env in view_signature_item ~path ~env - [Tsig_class(ident_of_path path ~default:"c", cl, Trec_first)] + [Sig_class(ident_of_path path ~default:"c", cl, Trec_first)] end | `Class (path, cty) -> let cld = { cty_params = []; cty_variance = []; cty_type = cty; cty_path = path; cty_new = None } in view_signature_item ~path ~env - [Tsig_class(ident_of_path path ~default:"c", cld, Trec_first)] + [Sig_class(ident_of_path path ~default:"c", cld, Trec_first)] | `Module (path, mty) -> match mty with - Tmty_signature sign -> view_signature sign ~path ~env + Mty_signature sign -> view_signature sign ~path ~env | modtype -> view_signature_item ~path ~env - [Tsig_module(ident_of_path path ~default:"M", mty, Trec_not)] + [Sig_module(ident_of_path path ~default:"M", mty, Trec_not)] let view_type_menu kind ~env ~parent = let title = @@ -661,7 +662,7 @@ let add_found_str = add_found ~found:found_str let rec search_pos_structure ~pos str = List.iter str ~f: - begin function + begin function str -> match str.str_desc with Tstr_eval exp -> search_pos_expr exp ~pos | Tstr_value (rec_flag, l) -> List.iter l ~f: @@ -671,56 +672,59 @@ let rec search_pos_structure ~pos str = search_pos_pat pat ~pos ~env; search_pos_expr exp ~pos end - | Tstr_primitive (_, vd) ->() + | Tstr_primitive (_, _, vd) ->() | Tstr_type _ -> () | Tstr_exception _ -> () - | Tstr_exn_rebind(_, _) -> () - | Tstr_module (_, m) -> search_pos_module_expr m ~pos + | Tstr_exn_rebind(_, _, _, _) -> () + | Tstr_module (_, _, m) -> search_pos_module_expr m ~pos | Tstr_recmodule bindings -> - List.iter bindings ~f:(fun (_, m) -> search_pos_module_expr m ~pos) + List.iter bindings ~f:(fun (_, _, _, m) -> search_pos_module_expr m ~pos) | Tstr_modtype _ -> () | Tstr_open _ -> () | Tstr_class l -> - List.iter l ~f:(fun (id, _, _, cl, _) -> search_pos_class_expr cl ~pos) - | Tstr_cltype _ -> () + List.iter l ~f:(fun (cl, _, _) -> search_pos_class_expr cl.ci_expr ~pos) + | Tstr_class_type _ -> () | Tstr_include (m, _) -> search_pos_module_expr m ~pos end and search_pos_class_structure ~pos cls = - List.iter cls.cl_field ~f: - begin function - Cf_inher (cl, _, _) -> + List.iter cls.cstr_fields ~f: + begin function cf -> match cf.cf_desc with + Tcf_inher (_, cl, _, _, _) -> search_pos_class_expr cl ~pos - | Cf_val (_, _, Some exp, _) -> search_pos_expr exp ~pos - | Cf_val _ -> () - | Cf_meth (_, exp) -> search_pos_expr exp ~pos - | Cf_init exp -> search_pos_expr exp ~pos + | Tcf_val (_, _, _, _, Tcfk_concrete exp, _) -> search_pos_expr exp ~pos + | Tcf_val _ -> () + | Tcf_meth (_, _, _, Tcfk_concrete exp, _) -> search_pos_expr exp ~pos + | Tcf_init exp -> search_pos_expr exp ~pos + | Tcf_constr _ + | Tcf_meth _ + -> assert false (* TODO !!!!!!!!!!!!!!!!! *) end and search_pos_class_expr ~pos cl = if in_loc cl.cl_loc ~pos then begin begin match cl.cl_desc with - Tclass_ident path -> + Tcl_ident (path, _, _) -> add_found_str (`Class (path, cl.cl_type)) ~env:!start_env ~loc:cl.cl_loc - | Tclass_structure cls -> + | Tcl_structure cls -> search_pos_class_structure ~pos cls - | Tclass_fun (pat, iel, cl, _) -> + | Tcl_fun (_, pat, iel, cl, _) -> search_pos_pat pat ~pos ~env:pat.pat_env; - List.iter iel ~f:(fun (_,exp) -> search_pos_expr exp ~pos); + List.iter iel ~f:(fun (_,_, exp) -> search_pos_expr exp ~pos); search_pos_class_expr cl ~pos - | Tclass_apply (cl, el) -> + | Tcl_apply (cl, el) -> search_pos_class_expr cl ~pos; - List.iter el ~f:(fun (x,_) -> Misc.may (search_pos_expr ~pos) x) - | Tclass_let (_, pel, iel, cl) -> + List.iter el ~f:(fun (_, x,_) -> Misc.may (search_pos_expr ~pos) x) + | Tcl_let (_, pel, iel, cl) -> List.iter pel ~f: begin fun (pat, exp) -> search_pos_pat pat ~pos ~env:exp.exp_env; search_pos_expr exp ~pos end; - List.iter iel ~f:(fun (_,exp) -> search_pos_expr exp ~pos); + List.iter iel ~f:(fun (_,_, exp) -> search_pos_expr exp ~pos); search_pos_class_expr cl ~pos - | Tclass_constraint (cl, _, _, _) -> + | Tcl_constraint (cl, _, _, _, _) -> search_pos_class_expr cl ~pos end; add_found_str (`Class (Pident (Ident.create "c"), cl.cl_type)) @@ -730,7 +734,7 @@ and search_pos_class_expr ~pos cl = and search_pos_expr ~pos exp = if in_loc exp.exp_loc ~pos then begin begin match exp.exp_desc with - Texp_ident (path, _) -> + Texp_ident (path, _, _) -> add_found_str (`Exp(`Val path, exp.exp_type)) ~env:exp.exp_env ~loc:exp.exp_loc | Texp_constant v -> @@ -743,14 +747,14 @@ and search_pos_expr ~pos exp = search_pos_expr exp' ~pos end; search_pos_expr exp ~pos - | Texp_function (l, _) -> + | Texp_function (_, l, _) -> List.iter l ~f: begin fun (pat, exp) -> search_pos_pat pat ~pos ~env:exp.exp_env; search_pos_expr exp ~pos end | Texp_apply (exp, l) -> - List.iter l ~f:(fun (x,_) -> Misc.may (search_pos_expr ~pos) x); + List.iter l ~f:(fun (_, x,_) -> Misc.may (search_pos_expr ~pos) x); search_pos_expr exp ~pos | Texp_match (exp, l, _) -> search_pos_expr exp ~pos; @@ -767,14 +771,14 @@ and search_pos_expr ~pos exp = search_pos_expr exp ~pos end | Texp_tuple l -> List.iter l ~f:(search_pos_expr ~pos) - | Texp_construct (_, l) -> List.iter l ~f:(search_pos_expr ~pos) + | Texp_construct (_, _, _, l,_) -> List.iter l ~f:(search_pos_expr ~pos) | Texp_variant (_, None) -> () | Texp_variant (_, Some exp) -> search_pos_expr exp ~pos | Texp_record (l, opt) -> - List.iter l ~f:(fun (_, exp) -> search_pos_expr exp ~pos); + List.iter l ~f:(fun (_, _, _, exp) -> search_pos_expr exp ~pos); (match opt with None -> () | Some exp -> search_pos_expr exp ~pos) - | Texp_field (exp, _) -> search_pos_expr exp ~pos - | Texp_setfield (a, _, b) -> + | Texp_field (exp, _, _, _) -> search_pos_expr exp ~pos + | Texp_setfield (a, _, _, _, b) -> search_pos_expr a ~pos; search_pos_expr b ~pos | Texp_array l -> List.iter l ~f:(search_pos_expr ~pos) | Texp_ifthenelse (a, b, c) -> @@ -786,24 +790,24 @@ and search_pos_expr ~pos exp = search_pos_expr a ~pos; search_pos_expr b ~pos | Texp_while (a,b) -> search_pos_expr a ~pos; search_pos_expr b ~pos - | Texp_for (_, a, b, _, c) -> + | Texp_for (_, _, a, b, _, c) -> List.iter [a;b;c] ~f:(search_pos_expr ~pos) | Texp_when (a, b) -> search_pos_expr a ~pos; search_pos_expr b ~pos - | Texp_send (exp, _) -> search_pos_expr exp ~pos - | Texp_new (path, _) -> + | Texp_send (exp, _, _) -> search_pos_expr exp ~pos + | Texp_new (path, _, _) -> add_found_str (`Exp(`New path, exp.exp_type)) ~env:exp.exp_env ~loc:exp.exp_loc - | Texp_instvar (_,path) -> + | Texp_instvar (_, path, _) -> add_found_str (`Exp(`Var path, exp.exp_type)) ~env:exp.exp_env ~loc:exp.exp_loc - | Texp_setinstvar (_, path, exp) -> + | Texp_setinstvar (_, path, _, exp) -> search_pos_expr exp ~pos; add_found_str (`Exp(`Var path, exp.exp_type)) ~env:exp.exp_env ~loc:exp.exp_loc | Texp_override (_, l) -> - List.iter l ~f:(fun (_, exp) -> search_pos_expr exp ~pos) - | Texp_letmodule (id, modexp, exp) -> + List.iter l ~f:(fun (_, _, exp) -> search_pos_expr exp ~pos) + | Texp_letmodule (id, _, modexp, exp) -> search_pos_module_expr modexp ~pos; search_pos_expr exp ~pos | Texp_assertfalse -> () @@ -811,10 +815,11 @@ and search_pos_expr ~pos exp = search_pos_expr exp ~pos | Texp_lazy exp -> search_pos_expr exp ~pos - | Texp_object (cls, _, _) -> + | Texp_object (cls, _) -> search_pos_class_structure ~pos cls | Texp_pack modexp -> search_pos_module_expr modexp ~pos + | _ -> assert false (* TODO ................................... *) end; add_found_str (`Exp(`Expr, exp.exp_type)) ~env:exp.exp_env ~loc:exp.exp_loc end @@ -823,21 +828,21 @@ and search_pos_pat ~pos ~env pat = if in_loc pat.pat_loc ~pos then begin begin match pat.pat_desc with Tpat_any -> () - | Tpat_var id -> + | Tpat_var (id, _) -> add_found_str (`Exp(`Val (Pident id), pat.pat_type)) ~env ~loc:pat.pat_loc - | Tpat_alias (pat, _) -> search_pos_pat pat ~pos ~env + | Tpat_alias (pat, _, _) -> search_pos_pat pat ~pos ~env | Tpat_lazy pat -> search_pos_pat pat ~pos ~env | Tpat_constant _ -> add_found_str (`Exp(`Const, pat.pat_type)) ~env ~loc:pat.pat_loc | Tpat_tuple l -> List.iter l ~f:(search_pos_pat ~pos ~env) - | Tpat_construct (_, l) -> + | Tpat_construct (_, _, _, l, _) -> List.iter l ~f:(search_pos_pat ~pos ~env) | Tpat_variant (_, None, _) -> () | Tpat_variant (_, Some pat, _) -> search_pos_pat pat ~pos ~env - | Tpat_record l -> - List.iter l ~f:(fun (_, pat) -> search_pos_pat pat ~pos ~env) + | Tpat_record (l, _) -> + List.iter l ~f:(fun (_, _, _, pat) -> search_pos_pat pat ~pos ~env) | Tpat_array l -> List.iter l ~f:(search_pos_pat ~pos ~env) | Tpat_or (a, b, None) -> @@ -848,17 +853,17 @@ and search_pos_pat ~pos ~env pat = add_found_str (`Exp(`Pat, pat.pat_type)) ~env ~loc:pat.pat_loc end -and search_pos_module_expr ~pos m = +and search_pos_module_expr ~pos (m :module_expr) = if in_loc m.mod_loc ~pos then begin begin match m.mod_desc with - Tmod_ident path -> + Tmod_ident (path, _) -> add_found_str (`Module (path, m.mod_type)) ~env:m.mod_env ~loc:m.mod_loc - | Tmod_structure str -> search_pos_structure str ~pos - | Tmod_functor (_, _, m) -> search_pos_module_expr m ~pos + | Tmod_structure str -> search_pos_structure str.str_items ~pos + | Tmod_functor (_, _, _, m) -> search_pos_module_expr m ~pos | Tmod_apply (a, b, _) -> search_pos_module_expr a ~pos; search_pos_module_expr b ~pos - | Tmod_constraint (m, _, _) -> search_pos_module_expr m ~pos + | Tmod_constraint (m, _, _, _) -> search_pos_module_expr m ~pos | Tmod_unpack (e, _) -> search_pos_expr e ~pos end; add_found_str (`Module (Pident (Ident.create "M"), m.mod_type)) diff --git a/otherlibs/labltk/browser/typecheck.ml b/otherlibs/labltk/browser/typecheck.ml index ac861a6f2..f557105f1 100644 --- a/otherlibs/labltk/browser/typecheck.ml +++ b/otherlibs/labltk/browser/typecheck.ml @@ -17,6 +17,7 @@ open StdLabels open Tk open Parsetree +open Typedtree open Location open Jg_tk open Mytypes @@ -105,7 +106,7 @@ let f txt = let psign = parse_pp text ~ext:".mli" ~parse:Parse.interface ~wrap:(fun x -> x) in txt.psignature <- psign; - txt.signature <- Typemod.transl_signature !env psign + txt.signature <- (Typemod.transl_signature !env psign).sig_type; else (* others are interpreted as .ml *) @@ -115,7 +116,7 @@ let f txt = begin function Ptop_def pstr -> let str, sign, env' = Typemod.type_structure !env pstr Location.none in - txt.structure <- txt.structure @ str; + txt.structure <- txt.structure @ str.str_items; txt.signature <- txt.signature @ sign; env := env' | Ptop_dir _ -> () @@ -156,6 +157,8 @@ let f txt = Includemod.report_error Format.std_formatter errl; Location.none | Env.Error err -> Env.report_error Format.std_formatter err; Location.none + | Cmi_format.Error err -> + Cmi_format.report_error Format.std_formatter err; Location.none | Ctype.Tags(l, l') -> Format.printf "In this program,@ variant constructors@ `%s and `%s@ have same hash value.@." l l'; Location.none diff --git a/otherlibs/labltk/browser/viewer.ml b/otherlibs/labltk/browser/viewer.ml index 72b9c1d66..34ccfd7a2 100644 --- a/otherlibs/labltk/browser/viewer.ml +++ b/otherlibs/labltk/browser/viewer.ml @@ -61,20 +61,20 @@ let view_symbol ~kind ~env ?path id = match kind with Pvalue -> let path, vd = lookup_value id env in - view_signature_item ~path ~env [Tsig_value (Ident.create name, vd)] + view_signature_item ~path ~env [Sig_value (Ident.create name, vd)] | Ptype -> view_type_id id ~env - | Plabel -> let ld = lookup_label id env in + | Plabel -> let _,ld = lookup_label id env in begin match ld.lbl_res.desc with Tconstr (path, _, _) -> view_type_decl path ~env | _ -> () end | Pconstructor -> - let cd = lookup_constructor id env in + let _,cd = lookup_constructor id env in begin match cd.cstr_res.desc with Tconstr (cpath, _, _) -> if Path.same cpath Predef.path_exn then view_signature ~title:(string_of_longident id) ~env ?path - [Tsig_exception (Ident.create name, {exn_loc = Location.none; exn_args = cd.cstr_args})] + [Sig_exception (Ident.create name, {Types.exn_loc = Location.none; exn_args = cd.cstr_args})] else view_type_decl cpath ~env | _ -> () @@ -217,23 +217,23 @@ let search_symbol () = (* Display the contents of a module *) let ident_of_decl ~modlid = function - Tsig_value (id, _) -> Lident (Ident.name id), Pvalue - | Tsig_type (id, _, _) -> Lident (Ident.name id), Ptype - | Tsig_exception (id, _) -> Ldot (modlid, Ident.name id), Pconstructor - | Tsig_module (id, _, _) -> Lident (Ident.name id), Pmodule - | Tsig_modtype (id, _) -> Lident (Ident.name id), Pmodtype - | Tsig_class (id, _, _) -> Lident (Ident.name id), Pclass - | Tsig_cltype (id, _, _) -> Lident (Ident.name id), Pcltype + Sig_value (id, _) -> Lident (Ident.name id), Pvalue + | Sig_type (id, _, _) -> Lident (Ident.name id), Ptype + | Sig_exception (id, _) -> Ldot (modlid, Ident.name id), Pconstructor + | Sig_module (id, _, _) -> Lident (Ident.name id), Pmodule + | Sig_modtype (id, _) -> Lident (Ident.name id), Pmodtype + | Sig_class (id, _, _) -> Lident (Ident.name id), Pclass + | Sig_class_type (id, _, _) -> Lident (Ident.name id), Pcltype let view_defined ~env ?(show_all=false) modlid = - try match lookup_module modlid env with path, Tmty_signature sign -> + try match lookup_module modlid env with path, Mty_signature sign -> let rec iter_sign sign idents = match sign with [] -> List.rev idents | decl :: rem -> let rem = match decl, rem with - Tsig_class _, cty :: ty1 :: ty2 :: rem -> rem - | Tsig_cltype _, ty1 :: ty2 :: rem -> rem + Sig_class _, cty :: ty1 :: ty2 :: rem -> rem + | Sig_class_type _, ty1 :: ty2 :: rem -> rem | _, rem -> rem in iter_sign rem (ident_of_decl ~modlid decl :: idents) in @@ -248,6 +248,10 @@ let view_defined ~env ?(show_all=false) modlid = let tl, tw, finish = Jg_message.formatted ~title:"Error!" () in Env.report_error Format.std_formatter err; finish () + | Cmi_format.Error err -> + let tl, tw, finish = Jg_message.formatted ~title:"Error!" () in + Cmi_format.report_error Format.std_formatter err; + finish () (* Manage toplevel windows *) |