
README for TIVI2
================

tivi2 is a program to visualize the contents of an Interopal-File.
Interopal is the format which is used by the frontend of the Opal compiler
(oc1) to represent the abstract syntax. The files are typically located in
an OCS subdirectory and end in ".inter".

"TIVI" is an acronym for _T_he _I_nteropal _VI_ewer (intended pronounciation
is that of "TV"), "2" signifies that it has been adapted to the enhanced
Interopal format, "/E" (in the main window) reminds of the capability to
edit the Interopal file.

tivi2 is called with any number of Interopal files as arguments. If no
arguments are given, tivi2 starts with its main window, where you may enter 
the names of Interopal files and load them. If any arguments are given,
these files are loaded and the main window is iconified.

Clicking on an entry allows either to edit this entry or pops up a window in 
which the substructure is presented.

The buttons have the following meaning:

- Done: close the window and any subwindows
- Apply: apply the change to all windows (i.e. make change in current window 
	 global) 
- Cancel: discard changes, load window from parent
- Show parent: pop up the parent window
- Show children: pop up all (grand*)children of current window

Only in the InterOpal root windows:

- Save: save current state to the Interopal file from which it was loaded
- Reload: load again the Interopal file

Note that after applying a change or reloading an Interopal file some
windows may disappear because the corresponding substructure does not exist
any more. (Example: There is a window showing the structure with
origin(5). The new Interopal file does not contain a structure with
origin(5). After pressing "Reload", the window showing the structure with
origin(5) and its children will disappear.)


tivi2 has several bugs and flaws the user should be aware of:
-------------------------------------------------------------

- ugly layout
- vertical scrolling of maps is buggy: domain and codomain are not scrolled
  simultaneously; they may be off by one entry
- a mouse-click into an empty map or sequence results in a runtime error
- no way to distinguish entries which can be edited directly and entries
  which will result in a new window
- no way to add or remove elements from a map or a sequence, one may only
  edit existing entries
- parsing errors are presented without any help information
- the file names of the images used (in the main window and for the icon)
  are coded in the program (file TIVI.impl) with their absolute paths
- tivi2 uses a predecessor of the OpalWinAdditions and the ParserLight
  library - should be rewritten

	

Klaus Didrich ---------------------------------------- 30 July 1998