# FILE. . . . . /home/hak/hlt/src/hlt/osf/apps/v0/Todo.List
# EDIT BY . . . Hassan Ait-Kaci
# ON MACHINE. . Hp-Dv7
# STARTED ON. . Sun Nov 18 01:29:45 2012

# Last modified on Thu Jan 31 08:31:26 2013 by hak

THINGS TO DO FOR OSF V0 (listed in no particular order):

########################################################################

-> Make the last sort expression evaluated be persistent [DONE] so that
   pragmas with no arguments refer to that implicitly.

########################################################################

-> Cleanup "reset" in Taxonomy, Context, and all Sorts (esp. Top & Bottom)

########################################################################

-> Fix the tokenizer for the missing prompt problem after including a file.

########################################################################

-> Make the parser read an initialization file ".osf" if one is present
   before doing anything else.

########################################################################

-> Clean up the redundant java code into just one to be shared for
   timing pragmas and sort expression evaluation.

########################################################################

-> Make the include pragma take many arguments [DONE]

########################################################################

-> Add a pragma to define another pragma as a macro facility reading
   from a specified string (using the Jacc string parsing facility).
   For example, defining a '%load "foo.bar"' pragma as a shorthand for
   '%include "foo.bar". %encode.' could be done as:

   %pragma load "%include #1. %encode.".

   where '#1' stands for the 1st argument of the pragma being defined.

########################################################################

-> Make pragmas that take sort symbol arguments take sort expressions -
   not just sort symbols. [DONE]

########################################################################

-> Provide a sort expression definition facility to be evaluated right
   away and the resulting code associated to the defined sort name. Note
   that this does not allow using sort names that are not yet defined or
   encoded in such a sort definition. Therefore this is always safe as
   no recursion is possible. For example, if 'foo', 'bar', and 'fuz' are
   encoded sorts. Then, we the following definitions are ok if given in
   this order:

   %defsort buz (foo|bar)\fuz.
   %defsort bof buz\foo.

   but that switching the order of these definitions would give an error
   since 'buz' would be undefined when defining 'bof'.

########################################################################

-> Implement the remaining missing pragmas.

########################################################################

-> Implement a data structure builder and pretty-printer for psi-terms
   [DONE].

########################################################################

-> Implement interpretation of psi-terms (essentially evaluate its sort
   expressions) and adapt the pretty-printer to use the interpreted sort
   values.  NB: Add a pragma "%evaluate" that toggles a switch for the
   pretty-printer to know whether to print uninterpreted or interpreted
   sorts. [DONE]

########################################################################

-> Implement a definition facility for psi-terms.

########################################################################

-> Implement a facility for element sorts (numbers, strings, ...)

########################################################################

-> Implement psi-term unification and generalisation

########################################################################

-> Fix hlt.language.tools.Hilite and hlt.language.tools.Documentor to
   generate <tt>...</tt> for the $...$ and %...% items in javadoc comments
   [see Documentor.formatDoc(String)]; also differentiate the main doc
   per file for comments and stamps (@author, @date, @copyright ...)

########################################################################

-> Fix Jacc (Grammar.java) to copy /* */ comments while generating the
   java parser file (rather than generating blank lines as it does now.)
   [DONE]

########################################################################

-> After that V0 will be finished - move on to V1...

########################################################################
