Skip to content

Commit f0e1d1b

Browse files
Introduce tool invocation partition (#178)
* Fix `ifcdoc` command typo * Tool Invocation and String Heap
1 parent e7e2fb1 commit f0e1d1b

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

ltx/heaps.tex

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,9 @@ \subsection{Attribute heap}
7676
The attribute heap is a partition consisting entirely of \type{AttrIndex} values.
7777

7878
\partition{heap.attr}
79+
80+
\subsection{String heap}
81+
\label{sec:ifc-string-heap}
82+
83+
The string heap is a partition consisting entirely of \type{TextOffset} values. Each entry in that
84+
heap designates a NUL-terminated UTF-8 encoded string (\secref{sec:ifc-textoffset-data-type}).

ltx/meta.tex

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,34 @@ \section{Producing Tool}
1111
Each entry in that partition is a \type{TextOffset} representing a NUL-terminated UTF-8 encoded string (see \secref{sec:ifc-textoffset-data-type}).
1212
The partition has as many entries as the tool deems necessary for identification purposes.
1313

14-
\partition{meta.tool-maker}
14+
\partition{meta.tool.maker}
15+
16+
\section{Tool Invocation}
17+
\label{sec:ifc-tool-invocation}
18+
19+
A tool producing an IFC file may embed a partition describing the sequence of invocations of tools leading to the creating of that file.
20+
That partition is called the \emph{tool invocation} partition. Each entry in that partition is
21+
a structure of the layout
22+
%
23+
\begin{figure}[H]
24+
\centering
25+
\structure{
26+
\DeclareMember{cmd}{TextOffset} \\
27+
\DeclareMember{args}{Sequence TextOffset} \\
28+
}
29+
\caption{Structure of a tool invocation}
30+
\label{fig:ifc-tool-invocation}
31+
\end{figure}
32+
%
33+
with the following meaning:
34+
\begin{itemize}
35+
\item The \field{cmd} field describes the name of the invoked command
36+
\item The \field{args} field describes the sequence (\secref{sec:ifc-sequence}) of arguments to the
37+
invoked command. It is a slice of the string heap (\secref{sec:ifc-string-heap}), meaning that the field \field{args.start}
38+
designates an entry into the \emph{string heap} and \field{args.cardinality} designates how many
39+
\type{TextOffset} values there are in that sequence. Each element of that sequence designates a NUL-terminated UTF-8 string.
40+
\end{itemize}
41+
42+
43+
\partition{meta.tool.invocation}
44+

0 commit comments

Comments
 (0)