2 |
% $Id$ |
% $Id$ |
3 |
|
|
4 |
\chapter{Affichage graphique} |
\chapter{Affichage graphique} |
5 |
|
\minitoc{} |
6 |
|
|
7 |
Le module d'affichage précédemment développé était très simple et par |
Le module d'affichage précédemment développé était très simple et par |
8 |
conséquent peu adapté et peu efficace pour être intégré dans un outil |
conséquent peu adapté et peu efficace pour être intégré dans un outil |
356 |
|
|
357 |
\newpage |
\newpage |
358 |
\chapter{Modélisation et arbre abstrait} |
\chapter{Modélisation et arbre abstrait} |
359 |
|
\minitoc{} |
360 |
|
|
361 |
Tout le fonctionnement du programme repose sur le module |
Tout le fonctionnement du programme repose sur le module |
362 |
\texttt{Geom}. Il permet de représenter de manière abstraite les |
\texttt{Geom}. Il permet de représenter de manière abstraite les |
488 |
et détaillées deux chapitres plus loin. |
et détaillées deux chapitres plus loin. |
489 |
|
|
490 |
\chapter{Définition d'un langage pour la géométrie} |
\chapter{Définition d'un langage pour la géométrie} |
491 |
|
\minitoc{} |
492 |
|
|
493 |
Une des idées fondamentales de ce projet est de définir un langage |
Une des idées fondamentales de ce projet est de définir un langage |
494 |
permettant de décrire des figures géométriques. Afin que son |
permettant de décrire des figures géométriques. Afin que son |
505 |
\texttt{ocamlyacc}. Pour des raisons d'évolutivité nous avons opté |
\texttt{ocamlyacc}. Pour des raisons d'évolutivité nous avons opté |
506 |
pour l'utilisation de \texttt{ocamllex/ocamlyacc}. |
pour l'utilisation de \texttt{ocamllex/ocamlyacc}. |
507 |
|
|
508 |
\section{Utlisation de \texttt{ocamllex} pour l'analyse lexicale} |
\section{Utilisation de \texttt{ocamllex} pour l'analyse lexicale} |
509 |
|
|
510 |
L'outil \texttt{ocamllex} est un générateur d'analyseur lexical basé |
L'outil \texttt{ocamllex} est un générateur d'analyseur lexical basé |
511 |
sur le modèle de l'outil \texttt{lex} dédié au langage C. Il permet de |
sur le modèle de l'outil \texttt{lex} dédié au langage C. Il permet de |
725 |
l'arbre syntaxique. |
l'arbre syntaxique. |
726 |
|
|
727 |
\chapter{XML/XSLT et \LaTeX/PSTricks} |
\chapter{XML/XSLT et \LaTeX/PSTricks} |
728 |
|
\minitoc{} |
729 |
|
|
730 |
Offrir une sortie sur papier est essentiel pour un logiciel de |
Offrir une sortie sur papier est essentiel pour un logiciel de |
731 |
construction géométrique. La solution que nous avons retenue pour |
construction géométrique. La solution que nous avons retenue pour |
932 |
\verb+name+ elle fournit juste un nom au modèle. |
\verb+name+ elle fournit juste un nom au modèle. |
933 |
|
|
934 |
Exemples: |
Exemples: |
935 |
\begin{center} |
|
936 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
937 |
<xsl:template match= "mon_element_XML"> ... mon_modele ... |
<xsl:template match= "mon_element_XML"> ... mon_modele ... |
938 |
</xsl:template> |
</xsl:template> |
939 |
\end{boxedverbatim} |
\end{boxedverbatim} |
940 |
\end{center} |
|
941 |
\smallskip |
\smallskip |
942 |
\begin{center} |
|
943 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
944 |
<xsl:template name="nom_de_mon_modele"> ... mon_modele ... |
<xsl:template name="nom_de_mon_modele"> ... mon_modele ... |
945 |
</xsl:template> |
</xsl:template> |
946 |
\end{boxedverbatim} |
\end{boxedverbatim} |
947 |
\end{center} |
|
948 |
\medskip |
\medskip |
949 |
|
|
950 |
|
|
961 |
et appliqué non pas à une balise particulière mais au noeud courant. |
et appliqué non pas à une balise particulière mais au noeud courant. |
962 |
|
|
963 |
Exemples: |
Exemples: |
964 |
\begin{center} |
|
965 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
966 |
... <xsl:apply-templates select="mon_element_XML"/> ... |
... <xsl:apply-templates select="mon_element_XML"/> ... |
967 |
\end{boxedverbatim} |
\end{boxedverbatim} |
968 |
\end{center} |
|
969 |
\smallskip |
\smallskip |
970 |
\begin{center} |
|
971 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
972 |
... <xsl:call-template name = "nom_de_mon_modele"/> ... |
... <xsl:call-template name = "nom_de_mon_modele"/> ... |
973 |
\end{boxedverbatim} |
\end{boxedverbatim} |
974 |
\end{center} |
|
975 |
\medskip |
\medskip |
976 |
|
|
977 |
|
|
981 |
attribut \xsla{test}{if} prend comme valeur une expression booléenne. |
attribut \xsla{test}{if} prend comme valeur une expression booléenne. |
982 |
|
|
983 |
Exemple: |
Exemple: |
984 |
\begin{center} |
|
985 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
986 |
<xsl:if test="expression_booleenne"> ... action ... </xsl:if> |
<xsl:if test="expression_booleenne"> |
987 |
|
... action ... |
988 |
|
</xsl:if> |
989 |
\end{boxedverbatim} |
\end{boxedverbatim} |
990 |
\end{center} |
|
991 |
\medskip |
\medskip |
992 |
\xslb{for-each} permet d'itérer une action sur chacun des noeuds |
\xslb{for-each} permet d'itérer une action sur chacun des noeuds |
993 |
définis dans l'attribut \xsla{select}{for-each}. |
définis dans l'attribut \xsla{select}{for-each}. |
994 |
|
|
995 |
Exemple: |
Exemple: |
996 |
\begin{center} |
|
997 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
998 |
<xsl:for-each select="selection_de_noeuds"> ... action ... |
<xsl:for-each select="selection_de_noeuds"> |
999 |
|
... action ... |
1000 |
</xsl:for-each> |
</xsl:for-each> |
1001 |
\end{boxedverbatim} |
\end{boxedverbatim} |
1002 |
\end{center} |
|
1003 |
\medskip |
\medskip |
1004 |
\xslb{choose} permet de lister plusieurs |
\xslb{choose} permet de lister plusieurs |
1005 |
possibilités\footnote{équivalent du \textit{case} en C} que l'on |
possibilités\footnote{équivalent du \textit{case} en C} que l'on |
1010 |
|
|
1011 |
|
|
1012 |
Exemple: |
Exemple: |
1013 |
\begin{center} |
|
1014 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
1015 |
<xsl:choose> <xsl:when test="expression_booleenne_1"> ... action_1 |
<xsl:choose> |
1016 |
... </xsl:when> <xsl:when test="expression_booleenne_2"> ... |
<xsl:when test="expression_booleenne_1"> |
1017 |
action_2 ... </xsl:when> ... <xsl:otherwise> ... action par defaut |
... action_1 ... |
1018 |
... </xsl:otherwise> </xsl:choose> |
</xsl:when> |
1019 |
|
<xsl:when test="expression_booleenne_2"> |
1020 |
|
... action_2 ... |
1021 |
|
</xsl:when> ... |
1022 |
|
<xsl:otherwise> |
1023 |
|
... action par defaut ... |
1024 |
|
</xsl:otherwise> |
1025 |
|
</xsl:choose> |
1026 |
\end{boxedverbatim} |
\end{boxedverbatim} |
1027 |
\end{center} |
|
1028 |
\medskip |
\medskip |
1029 |
|
|
1030 |
|
|
1035 |
|
|
1036 |
|
|
1037 |
Exemple: |
Exemple: |
1038 |
\begin{center} |
|
1039 |
\begin{boxedverbatim} |
\begin{boxedverbatim} |
1040 |
<xsl:value-of select="selection_de_noeuds"/> |
<xsl:value-of select="selection_de_noeuds"/> |
1041 |
\end{boxedverbatim} |
\end{boxedverbatim} |
1042 |
\end{center} |
|
1043 |
|
|
1044 |
\newpage |
\newpage |
1045 |
\section{Présentation l'extension \texttt{pst-eucl.sty}} |
\section{Présentation l'extension \texttt{pst-eucl.sty}} |
1118 |
|
|
1119 |
Listons les différentes balises qui seront utilisées: |
Listons les différentes balises qui seront utilisées: |
1120 |
|
|
1121 |
\verb+<point name=... coordinates=... color=... >+\\ |
\noindent{}\verb+<point name=... coordinates=... color=... >+\\ |
1122 |
\verb+<line name=... pointA=... pointB=... color=... >+\\ |
\verb+<line name=... pointA=... pointB=... color=... >+\\ |
1123 |
\verb+<circle name=... pointA=... pointB=... color=... >+\\ |
\verb+<circle name=... pointA=... pointB=... color=... >+\\ |
1124 |
\verb+<inter_line_line name=... color=... >+\\ |
\verb+<inter_line_line name=... color=... >+\\ |
1224 |
|
|
1225 |
|
|
1226 |
\chapter{\GeOCaml{} sur Savannah} |
\chapter{\GeOCaml{} sur Savannah} |
1227 |
|
\minitoc{} |
1228 |
|
|
1229 |
\section{Présentation de Savannah} |
\section{Présentation de Savannah} |
1230 |
Savannah est une plateforme pour le développement, la distribution et |
Savannah est une plateforme pour le développement, la distribution et |