next up previous contents
Next: 2nd pass Up: The main processus Previous: The main processus   Contents


1st pass

In fact the first pass reads the initial text and tries to interpret every format and defined object as !#U!, !#2!, !&E!, etc... This first pass creates a table of "Object". This table is stored in the !h_File! structure (!h_objs!, !hobjs! and !nb_objs!). Here is the definition of an "Object":


\begin{lstlisting}
/* The different objects */
typedef enum {
HOBJECT_TIOS_LINE...
...t in mem
} pic;
} datas;
unsigned short pos_txt;
} h_Object;
\end{lstlisting}

Each object has a position and a type, some can have some data. So, every picture, link or pretty-print expression is an object. For the text, the definition of an object is a sequence of characters with no change of format. For instance, this is a unique !h_Object!: !"this is a text"!, but there are three !h_Objects! here: !"this #Uis#U a text"! (!"this "! and !"is"! and !" a text"!). The consequence is that each !h_Object! which is a !HOBJECT_TEXT! has is own format.

Other special !h_Object! have been introduced: the Ti-OS line (!HOBJECT_TIOS_LINE!) and the end of text (!HOBJECT_END_TEXT!). Note that theses lines are Ti-OS lines, and not graphical lines, so it is independant of the screen size of the calculator. Note that the !HOBJECT_TIOS_LINE! specify the beginning of a line, not a end of line. So, a bookmark beeing defined for each Ti-OS line, each bookmark will be associated with this type of !h_Object!.


next up previous contents
Next: 2nd pass Up: The main processus Previous: The main processus   Contents
2006-02-19