...
 
Commits (630)
# Summary
(Summarize the bug encountered concisely)
# Steps to reproduce
(How one can reproduce the issue - this is very important)
# Example Project
(If possible, please create an example project here on GitLab.com that exhibits the problematic behaviour, and link to it here in the bug report)
(If you are using an older version of GitLab, this will also determine whether the bug has been fixed in a more recent version)
# What is the current bug behavior?
(What actually happens)
# What is the expected correct behavior?
(What you should see instead)
# Relevant logs and/or screenshots
(Paste any relevant logs - please use code blocks (```) to format console output,
logs, and code as it's very hard to read otherwise.)
# Possible fixes
(If you can, link to the line of code that might be responsible for the problem)
/label ~bug ~reproduced ~needs-investigation
......@@ -27,6 +27,10 @@
<root url="jar://$PROJECT_DIR$/libs/jautomata-core.jar!/" />
<root url="jar://$PROJECT_DIR$/libs/com.microsoft.z3.jar!/" />
<root url="jar://$PROJECT_DIR$/libs/jna-3.3.0.jar!/" />
<root url="jar://$PROJECT_DIR$/libs/jgrapht-core-1.3.0.jar!/" />
<root url="jar://$PROJECT_DIR$/libs/jgrapht-ext-1.3.0.jar!/" />
<root url="jar://$PROJECT_DIR$/libs/jgrapht-io-1.3.0.jar!/" />
<root url="jar://$PROJECT_DIR$/libs/jgraphx-3.4.1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$PROJECT_DIR$/libs/commons-io-2.5-javadoc.jar!/" />
......
......@@ -30,7 +30,7 @@ updategeneratedcode:
cp Makefile.soclib mutekh/examples/avatar/Makefile
compilesoclib:
#rm soclib/soclib/platform/topcells/caba-vgmn-mutekh_kernel_tutorial/*_tdf.h ||:
rm soclib/soclib/platform/topcells/caba-vgmn-mutekh_kernel_tutorial/*_tdf.h ||:
cp ../SysCAMSGenerationCode/generated_CPP/*_tdf.h soclib/soclib/platform/topcells/caba-vgmn-mutekh_kernel_tutorial/ ||:
cp ../SysCAMSGenerationCode/generated_H/*_tdf.h soclib/soclib/platform/topcells/caba-vgmn-mutekh_kernel_tutorial/ ||:
rm ../SysCAMSGenerationCode/generated_H/*_tdf.h ||:
......
......@@ -415,6 +415,7 @@ $(BASERELEASE:.tgz=.tar): $(JTTOOL_BINARY) $(TTOOL_BINARY) $(LAUNCHER_BINARY) $(
@cp $(TTOOL_SIMULATORS)/c++2/Makefile.defs $(TTOOL_TARGET)/simulators/c++2
@cp $(TTOOL_SIMULATORS)/c++2/src_simulator/*.cpp $(TTOOL_TARGET)/simulators/c++2/src_simulator
@cp $(TTOOL_SIMULATORS)/c++2/src_simulator/*.h $(TTOOL_TARGET)/simulators/c++2/src_simulator
@cp $(TTOOL_SIMULATORS)/c++2/src_simulator/*.js $(TTOOL_TARGET)/simulators/c++2/src_simulator
@cp $(TTOOL_SIMULATORS)/c++2/src_simulator/app/*.cpp $(TTOOL_TARGET)/simulators/c++2/src_simulator/app
@cp $(TTOOL_SIMULATORS)/c++2/src_simulator/app/*.h $(TTOOL_TARGET)/simulators/c++2/src_simulator/app
@cp $(TTOOL_SIMULATORS)/c++2/src_simulator/arch/*.cpp $(TTOOL_TARGET)/simulators/c++2/src_simulator/arch
......@@ -556,7 +557,8 @@ clean:
@$(MAKE) -C $(TTOOL_DOC_SOCLIB_INSTALLATIONGUIDE_DIR) clean
@rm -rf $(TTOOL_TARGET_RELEASE)
@rm -f $(TTOOL_STD_RELEASE)/*.tar
@rm -rf $(TTOOL_BUILD)
@rm -rf $(TTOOL_BUILD)
@rm -rf $(TTOOL_DIR)/build/
ultraclean: clean
@rm -rf $(TTOOL_DOC_HTML)
......
The files can be compiled by using the generated Makefile
in standalone mode, without SoCLib cross-compilation, if no GPIO2VCI
component or code running on the SoCLib digital platform is required
A SystemC-AMS proof-of-concept(2.1) is provided in
https://www.coseda-tech.com/systemc-ams-proof-of-concept
In the Virtual Machine, the authors kindly accepted that we
provide the PoC
13113
\ No newline at end of file
13302
\ No newline at end of file
......@@ -17,6 +17,9 @@
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{syntax}
\usepackage[a4paper,bindingoffset=0.2in,headsep=0.5cm,left=1in,right=1in,bottom=3cm,top=2cm,headheight=2cm]{geometry}
\usepackage{hyperref}
\usepackage{listings}
......@@ -36,11 +39,11 @@
\begin{center}
\includegraphics[width=0.2\textwidth]{fig/logotpt}
\includegraphics[width=0.2\textwidth]{fig/tp}
\vspace{10 pt}\\
\Huge TTool \\
\vspace{10 pt}
\Large \url{ttool.telecom-paristech.fr}
\Large \url{ttool.telecom-paris.fr}
\vspace{20 pt}\\
\underline{\Large Use of TTool explained through the creation of a coffee machine.}
\vspace{30 pt}
......@@ -58,7 +61,7 @@
Ludovic APVRILLE} &
\multirow{2}{*}{Ludovic APVRILLE} \\
\hhline{--~~}
\textbf{Contact} & ludovic.apvrille@telecom-paristech.fr & & \\
\textbf{Contact} & ludovic.apvrille@telecom-paris.fr & & \\
\hhline{--~~}
\textbf{Date} & \today & & \\
\hline
......@@ -88,6 +91,8 @@ Modifications} & \textbf{Sections Modified} \\
\hhline{----}
1.0 & July 7, 2018 & First draft & \\
\hline
1.1 & Oct 29, 2019 & Adding safety pragmas & \\
\hline
\end{tabular}
\end{adjustbox}
\end{table}
......@@ -129,7 +134,7 @@ Editor} & \textbf{Year}
\newpage
\section{Introduction}
TTool is an open-source toolkit dedicated to the design of embedded systems based on UML and SysML diagrams. The source files of TTool can be downloaded from the website: http://ttool.telecom-paristech.fr/download.html
TTool is an open-source toolkit dedicated to the design of embedded systems based on UML and SysML diagrams. The source files of TTool can be downloaded from the website: http://ttool.telecom-paris.fr/download.html
after having accepted the license agreement. To install the tool, simply unpack the archive in your home directory and follow the installation process of your operating system.
\section{Getting Started}
......@@ -571,6 +576,56 @@ Using as reference what was already indicated in the block diagram, we will dete
\caption{Reachability graph} \label{fig:rg}
\end{figure*}
\subsection{Safety pragmas}
Safety pragmas can be inserted in the model. These pragmas follow the following grammar.
\setlength{\grammarparsep}{20pt plus 1pt minus 1pt} % increase separation between rules
\setlength{\grammarindent}{12em} % increase separation between LHS/RHS
\begin{grammar}
<pragma> ::= <path> <state> <property>
\alt <property> <leadsto> <property>
<path> ::= `A' | `E'
<state> ::= `<>' | `[]'
<leadsto> ::= `-->'
<property> ::= <stateproperty>
\alt <intproperty>
\alt <boolproperty>
\alt <property> <binaryop> <property>
<stateproperty> ::= `BlockName.stateName'
<intproperty> ::= <intexpr> <intcomparator> <intexpr>
<boolproperty> ::= <boolexpr> <boolcomparator> <boolexpr>
\alt <boolexpr>
<intexpr> ::= `BlockName.integerattribute'
\alt <intvalue>
<intexpr> ::= `BlockName.booleanattribute'
\alt <booleanvalue>
<binaryop> ::= `&&' | `||'
<intvalue> :: <integer>
<booleanvalue> :: `true' | `false'
<intcomparator> ::= `<' | `>' | `==' | `!='
<boolcomparator> ::= `==' | `!='
\end{grammar}
\subsection{Latency Analysis}
......@@ -591,7 +646,7 @@ The operators relating to this requirement are the last `getCoin(x)' and the idl
\begin{figure*}[htbp]
\centering
\includegraphics[width=0.99\textwidth]{build/latencycheckpoint-svg.pdf}
\caption{Latency Checkpoints on Activity Diagram} \label{fig:latencycheckpoint}
\caption{Latency Checkpoints in State Machine Diagrams} \label{fig:latencycheckpoint}
\end{figure*}
......
TTool, an open-source UML toolkit for modeling embedded systems and procotols.
TTool is developed at Telecom ParisTech, http://ttool.telecom-paristech.fr/
-------------------------------------------------------------------------------
The SysCAMSGenerationCode and ELNGenerationCode directories are intended to store the SystemC-AMS (TDF and DE) and SystemC-AMS (ELN) files generated from TTool. The former can be uses in standalone mode with SystemC-AMS 2.1 available from
COSEDA https://www.coseda-tech.com/systemc-ams-proof-of-concept
\ No newline at end of file
set model ./../tmlcode/specz3.tmap
tml load $model
tml checksyntax
tml loadz3lib /opt/z3/bin/libz3.dylib:/opt/z3/bin/libz3java.dylib
tml z3opt
tml save-result ../tmlcode/z3result
tml save-result-tml-mapping ../tmlcode/z3result
set model ./../modeling/AVATAR/PressureController.xml
#print The model to be opened is: $model
action start
wait 2
action open $model
wait 5
action check-syntax
print tabs
wait 5
action quit
\ No newline at end of file
# Tools
LATEXFLAGS ?= -interaction=nonstopmode -file-line-error
PDFLATEX = pdflatex $(LATEXFLAGS)
BIBTEX = bibtex
BIBTEX =
FIG2DEV = fig2dev
RUBBER ?= $(shell which rubber 2> /dev/null)
RUBBERFLAGS = --pdf --short --warn refs --warn misc -q
......
......@@ -35,11 +35,11 @@
\begin{center}
\includegraphics[width=0.2\textwidth]{figures/logotpt}
\includegraphics[width=0.2\textwidth]{figures/tp}
\vspace{10 pt}\\
\Huge TTool \\
\vspace{10 pt}
\Large \url{ttool.telecom-paristech.fr}
\Large \url{ttool.telecom-paris.fr}
\vspace{20 pt}\\
\underline{\Large Code generation from Avatar Design Diagrams in TTool}
\vspace{30 pt}
......@@ -56,7 +56,7 @@
\textbf{Name} & Ludovic APVRILLE & \multirow{2}{*}{Ludovic APVRILLE} &
\multirow{2}{*}{Ludovic APVRILLE} \\
\hhline{--~~}
\textbf{Contact} & ludovic.apvrille@telecom-paristech.fr & & \\
\textbf{Contact} & ludovic.apvrille@telecom-paris.fr & & \\
\hhline{--~~}
\textbf{Date} & \today & & \\
\hline
......
......@@ -5,3 +5,5 @@
/*.log
/*.out
/*.toc
/ttool_development_infrastructur.synctex.gz
/*.class
\ No newline at end of file
# Tools
LATEXFLAGS ?= -interaction=nonstopmode -file-line-error
PDFLATEX = pdflatex $(LATEXFLAGS)
BIBTEX = bibtex
BIBTEX =
FIG2DEV = fig2dev
RUBBER ?= $(shell which rubber 2> /dev/null)
RUBBERFLAGS = --pdf --short --warn refs --warn misc
......
......@@ -38,7 +38,7 @@
\sloppy
\begin{center}
\Large Telecom ParisTech \\
\Large Telecom Paris \\
\Large COMELEC Department \\
\vspace{20 pt}
\underline{\Huge Development Infrastructure for TTool}
......@@ -55,7 +55,7 @@
\textbf{Name} & Dominique BLOUIN & Ludovic APVRILLE &
\multirow{2}{*}{Ludovic APVRILLE} \\
\hhline{--~~}
\textbf{Contact} & dominique.blouin@telecom-paristech.fr & \multirow{2}{*}{Arthur VUAGNIAUX} & \\
\textbf{Contact} & dominique.blouin@telecom-paris.fr & \multirow{2}{*}{Arthur VUAGNIAUX} & \\
\hhline{--~~}
\textbf{Date} & \today & Matteo BERTOLINO & \\
\hline
......@@ -146,9 +146,9 @@ as well as the testing, building and installation procedures.
\subsection{Gitlab Server}
TTool sources are hosted on the Gitlab server of \textbf{Telecom ParisTech} under the
TTool sources are hosted on the Gitlab server of \textbf{Telecom Paris} under the
group \textbf{\textit{mbe}\textit{-tools}} and project \textbf{\textit{TTool}}. The Gitlab project
can be accessed via \url{https://gitlab.telecom-paristech.fr/users/sign_in}.
can be accessed via \url{https://gitlab.telecom-paris.fr/users/sign_in}.
Login must be performed using Shibboleth as shown in
figure~\ref{fig:image1}, using the credentials from your institution if it is a
member of the Federation Education Recherche (\url{https://services.renater.fr/federation/participants/idp}). Otherwise, please ask us for an account.
......@@ -163,7 +163,7 @@ member of the Federation Education Recherche (\url{https://services.renater.fr/f
\subsection{Basic Sources Management}
The address to access the sources is \url{https://gitlab.telecom-paristech.fr/mbe-tools/TTool}.
The address to access the sources is \url{https://gitlab.telecom-paris.fr/mbe-tools/TTool}.
For the time being and until further notice, we will keep using a centralized development process, like it was the case for Subversion. In this process, each developer first obtains a clone of the master remote repository. For this, go to the directory where the sources are to be downloaded and issue the following command: \\
......@@ -188,13 +188,13 @@ More information on the use of Git can be found here: \\
By default, Git will ask credentials for each operation. In order to avoid this,
it is possible to upload a public SSH key at: \\
\url{https://gitlab.telecom-paristech.fr/profile/keys}.
\url{https://gitlab.telecom-paris.fr/profile/keys}.
\subsection{Bug Tracking}
The Gitlab server provides an issues tracking system to record bugs, evolutions
or support demands from users and developers. Issues can be seen at: \\
\url{https://gitlab.telecom-paristech.fr/mbe-tools/TTool/issues} \\
\url{https://gitlab.telecom-paris.fr/mbe-tools/TTool/issues} \\
It is suggested to create an issue for every modification that is made to the
code, providing with the issue detailed information on the problem including
......@@ -689,7 +689,7 @@ public class Foo {
Do ensure your file is correctly indented before committing/pushing it.
Preferably, configure your code editor so that these guidelines are
automatically enforced.
automatically enforced. Also, for guidelines not given here, please apply the ones given in \href{https://google.github.io/styleguide/javaguide.html}{Java coding styles}.
\subsubsection{How to output debug information}
......@@ -889,8 +889,8 @@ public class TToolUtilTestsRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestRshClient.class);
for ( final Failure failure : result.getFailures() ) {
System.err.println( "Test failed : " + failure.toString() );
for ( final Failure failure: result.getFailures() ) {
System.err.println( "Test failed: " + failure.toString() );
}
if ( result.wasSuccessful() ) {
......@@ -1240,7 +1240,7 @@ The current version of IzPack used by TTool is 5.1.3.
\subsection{Sources}
The sources of the installer are located in the TTool-Private Gitlab project at \url{https://gitlab.telecom-paristech.fr/mbe-tools/TTool-Private/tree/master/installer}.
The sources of the installer are located in the TTool-Private Gitlab project at \url{https://gitlab.telecom-paris.fr/mbe-tools/TTool-Private/tree/master/installer}.
\subsection{Configuration File}
......
# Top LaTeX document (without .tex extension)
TOP = user_guide.tex
# Bibliography (if any)
BIBLIO =
SHELL = /bin/bash
# Figures directory
FIGDIR = fig
# Maximum number of pdflatex compilations
MAXPASSES ?= 5
# Main, common, Makefile
include ../mli.mk
#include Makefile.inc
# Main PDF depends on other PDFs generated from fig, dot, dia, gnuplot or
# inkscape formats. The GENERATED make variable is computed automatically by
# Makefile.inc, based on what is found in the FIGDIR directory.
$(TOP).pdf: $(GENERATED) $(BIBLIO) $(wildcard $(FIGDIR)/*.JPG) $(wildcard $(FIGDIR)/*.jpg) $(wildcard $(FIGDIR)/*.png)
# Specific dependencies
$(TOP).pdf: $(wildcard *.tex)
# Top LaTeX document (without .tex extension)
TOP = users_guide.tex
# Bibliography (if any)
BIBLIO =
SHELL = /bin/bash
# Figures directory
FIGDIR = fig
# Maximum number of pdflatex compilations
MAXPASSES ?= 5
# Main, common, Makefile
include ../mli.mk
#include Makefile.inc
# Main PDF depends on other PDFs generated from fig, dot, dia, gnuplot or
# inkscape formats. The GENERATED make variable is computed automatically by
# Makefile.inc, based on what is found in the FIGDIR directory.
$(TOP).pdf:
# Specific dependencies
$(TOP).pdf: $(wildcard *.tex)
%%
%% This is file `dirtree.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% dirtree.dtx (with options: `latex-wrapper')
%%
%% IMPORTANT NOTICE:
%%
%% For the copyright see the source file.
%%
%% Any modified versions of this file must be renamed
%% with new filenames distinct from dirtree.sty.
%%
%% For distribution of the original source see the terms
%% for copying and modification in the file dirtree.dtx.
%%
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%
%% Package `dirtree.dtx'
%% -----------------------------------------------
%% Copyright (C) 2004-2009 Jean-C\^ome Charpentier
%% -----------------------------------------------
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%%
%% See CTAN archives in directory macros/latex/base/lppl.txt.
%%
%% CONTENTS:
%% This work consists of the files dirtree.ins and dirtree.dtx.
%% Derived files are dirtree.tex and dirtree.sty.
%%
%% DESCRIPTION:
%% dirtree is a package displaying directory trees.
%%
\def\fileversion{0.32}
\def\filedate{2012/12/11}
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{dirtree}[\filedate\space v\fileversion\space
package wrapper for dirtree]
\newcommand*\DT@fromsty{}
\input{dirtree.tex}
\ProvidesFile{dirtree.tex}
[\filedate\space v\fileversion\space `dirtree' (jcc)]
\endinput
%%
%% End of file `dirtree.sty'.
%%
%% This is file `dirtree.tex',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% dirtree.dtx (with options: `tex')
%%
%% IMPORTANT NOTICE:
%%
%% For the copyright see the source file.
%%
%% Any modified versions of this file must be renamed
%% with new filenames distinct from dirtree.tex.
%%
%% For distribution of the original source see the terms
%% for copying and modification in the file dirtree.dtx.
%%
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%%
%% Package `dirtree.dtx'
%% -----------------------------------------------
%% Copyright (C) 2004-2009 Jean-C\^ome Charpentier
%% -----------------------------------------------
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%%
%% See CTAN archives in directory macros/latex/base/lppl.txt.
%%
%% CONTENTS:
%% This work consists of the files dirtree.ins and dirtree.dtx.
%% Derived files are dirtree.tex and dirtree.sty.
%%
%% DESCRIPTION:
%% dirtree is a package displaying directory trees.
%%
\def\fileversion{0.32}
\def\filedate{2012/12/11}
\message{`dirtree' v\fileversion, \filedate\space (jcc)}
\edef\DTAtCode{\the\catcode`\@}
\catcode`\@=11
\long\def\DT@loop#1\DT@repeat{%
\def\DT@iterate{#1\relax\expandafter\DT@iterate\fi}%
\DT@iterate
\let\DT@iterate\relax
}
\let\DT@repeat=\fi
\expandafter\ifx\csname DT@fromsty\endcsname\relax
\def\@namedef#1{\expandafter\def\csname #1\endcsname}
\def\@nameuse#1{\csname #1\endcsname}
\long\def\@gobble#1{}
\fi
\def\@nameedef#1{\expandafter\edef\csname #1\endcsname}
\newdimen\DT@offset \DT@offset=0.2em
\newdimen\DT@width \DT@width=1em
\newdimen\DT@sep \DT@sep=0.2em
\newdimen\DT@all
\DT@all=\DT@offset
\advance\DT@all \DT@width
\advance\DT@all \DT@sep
\newdimen\DT@rulewidth \DT@rulewidth=0.4pt
\newdimen\DT@dotwidth \DT@dotwidth=1.6pt
\newdimen\DTbaselineskip \DTbaselineskip=\baselineskip
\newcount\DT@counti
\newcount\DT@countii
\newcount\DT@countiii
\newcount\DT@countiv
\def\DTsetlength#1#2#3#4#5{%
\DT@offset=#1\relax
\DT@width=#2\relax
\DT@sep=#3\relax
\DT@all=\DT@offset
\advance\DT@all by\DT@width
\advance\DT@all by\DT@sep
\DT@rulewidth=#4\relax
\DT@dotwidth=#5\relax
}
\expandafter\ifx\csname DT@fromsty\endcsname\relax
\def\DTstyle{\tt}
\def\DTstylecomment{\rm}
\else
\def\DTstyle{\ttfamily}
\def\DTstylecomment{\rmfamily}
\fi
\def\DTcomment#1{%
\kern\parindent\dotfill
{\DTstylecomment{#1}}%
}
\newdimen\DT@indent
\newdimen\DT@parskip
\newdimen\DT@baselineskip
\def\dirtree#1{%
\DT@indent=\parindent
\parindent=\z@
\DT@parskip=\parskip
\parskip=\z@
\DT@baselineskip=\baselineskip
\baselineskip=\DTbaselineskip
\let\DT@strut=\strut
\def\strut{\vrule width\z@ height0.7\baselineskip depth0.3\baselineskip}%
\DT@counti=\z@
\let\next\DT@readarg
\next#1\@nil
\dimen\z@=\hsize
\advance\dimen\z@ -\DT@offset
\advance\dimen\z@ -\DT@width
\setbox\z@=\hbox to\dimen\z@{%
\hsize=\dimen\z@
\vbox{\@nameuse{DT@body@1}}%
}%
\dimen\z@=\ht\z@
\advance\dimen0 by\dp\z@
\advance\dimen0 by-0.7\baselineskip
\ht\z@=0.7\baselineskip
\dp\z@=\dimen\z@
\par\leavevmode
\kern\DT@offset
\kern\DT@width
\box\z@
\endgraf
\DT@countii=\@ne
\DT@countiii=\z@
\dimen3=\dimen\z@
\@namedef{DT@lastlevel@1}{-0.7\baselineskip}%
\loop
\ifnum\DT@countii<\DT@counti
\advance\DT@countii \@ne
\advance\DT@countiii \@ne
\dimen\z@=\@nameuse{DT@level@\the\DT@countii}\DT@all
\advance\dimen\z@ by\DT@offset
\advance\dimen\z@ by-\DT@all
\leavevmode
\kern\dimen\z@
\DT@countiv=\DT@countii
\count@=\z@
\DT@loop
\advance\DT@countiv \m@ne
\ifnum\@nameuse{DT@level@\the\DT@countiv} >
\@nameuse{DT@level@\the\DT@countii}\relax
\else
\count@=\@ne
\fi
\ifnum\count@=\z@
\DT@repeat
\edef\DT@hsize{\the\hsize}%
\count@=\@nameuse{DT@level@\the\DT@countii}\relax
\dimen\z@=\count@\DT@all
\advance\hsize by-\dimen\z@
\setbox\z@=\vbox{\@nameuse{DT@body@\the\DT@countii}}%
\hsize=\DT@hsize
\dimen\z@=\ht\z@
\advance\dimen\z@ by\dp\z@
\advance\dimen\z@ by-0.7\baselineskip
\ht\z@=0.7\baselineskip
\dp\z@=\dimen\z@
\@nameedef{DT@lastlevel@\the\DT@countii}{\the\dimen3}%
\advance\dimen3 by\dimen\z@
\advance\dimen3 by0.7\baselineskip
\dimen\z@=\@nameuse{DT@lastlevel@\the\DT@countii}\relax
\advance\dimen\z@ by-\@nameuse{DT@lastlevel@\the\DT@countiv}\relax
\advance\dimen\z@ by0.3\baselineskip
\ifnum\@nameuse{DT@level@\the\DT@countiv} <
\@nameuse{DT@level@\the\DT@countii}\relax
\advance\dimen\z@ by-0.5\baselineskip
\fi
\kern-0.5\DT@rulewidth
\hbox{\vbox to\z@{\vss\hrule width\DT@rulewidth height\dimen\z@}}%
\kern-0.5\DT@rulewidth
\kern-0.5\DT@dotwidth
\vrule width\DT@dotwidth height0.5\DT@dotwidth depth0.5\DT@dotwidth
\kern-0.5\DT@dotwidth
\vrule width\DT@width height0.5\DT@rulewidth depth0.5\DT@rulewidth
\kern\DT@sep
\box\z@
\endgraf
\repeat
\parindent=\DT@indent
\parskip=\DT@parskip
\baselineskip=\DT@baselineskip
\let\strut\DT@strut
}
\def\DT@readarg.#1 #2. #3\@nil{%
\advance\DT@counti \@ne
\@namedef{DT@level@\the\DT@counti}{#1}%
\@namedef{DT@body@\the\DT@counti}{\strut{\DTstyle{#2}\strut}}%
\ifx\relax#3\relax
\let\next\@gobble
\fi
\next#3\@nil
}
\catcode`\@=\DTAtCode\relax
\endinput
%%
%% End of file `dirtree.tex'.
This diff is collapsed.