error displaying.
[scilab.git] / scilab / Doc / Syntax.tex
1 Dans cette partie nous decrivons les spécificités syntaxiques
2 du language Scilab.
3
4
5 \section{Le token ``ID'' : Les identifiants}
6 Dans le language Scilab, ne sont considérés
7 comme des identifiants que les ``mots''
8 correspondant à l'expression régulière suivante :
9 \begin{verbatim}
10 [a-zA-Z_%#][a-zA-Z_0-9#]
11 \end{verbatim}
12
13 \section{Le token ``QUOTE'' : '}
14 L'utilisation des quotes dans Scilab est assez particulière
15 puisqu'elle prend en charge à la fois les chaines de caracteres et
16 des operations mathématiques : les transpositions de matrices.
17
18 \subsection{Les transpositions matricielles}
19 Le symbole ``QUOTE'' peut etre utilise pour représenter
20 les transpositions matricielles.
21
22 Si $A$ est une matrice, et que nous voulons calculer $^tA$,
23 ceci s'écrit en language Scilab $A'$.
24
25 Nous distinguons donc plusieurs cas ou le comportement
26 du symbole ``QUOTE'' code une transposition.
27
28 \begin{itemize}
29 \item{Les déclarations explicites}
30 $[1, 2, 3 ; 4, 5, 6 ; 7, 8, 9]'$
31 Lorsque le symbole ``QUOTE'' est précédé par le token ``RBRACK'',
32 il code pour une transposition.
33 \item{Les variables nommées}
34 $a'$
35 Lorsque le symbole ``QUOTE'' est précédé par le token ``ID'',
36 il code pour une transposition.
37 \item{Les appels de fonctions}
38 $foo()'$
39 Lorsque le symbole ``QUOTE'' est précédé par le token ``RPAREN'',
40 il code pour une transposition.
41 \end{itemize}
42
43 \subsection{Les chaines de caractères}
44 Le symbole ``QUOTE'' peut etre utilise pour représenter
45 des chaines de caractères.
46
47 Nous proposons une implémentation des chaines de caractères de facon homogène.
48 C'est à dire que le ``token'' servant à l'ouverture de la chaine de caractère
49 sert aussi a sa fermeture.
50 \begin{itemize}
51 \item{Encadrées par des simples quotes : '}
52 Les chaines du type :
53 \begin{verbatim}
54 'foo' 'bar51'
55 \end{verbatim}
56 \item{Encadrées par des doubles quotes : ``}
57 Les chaines du type :
58 \begin{verbatim}
59 ``foo'' ``bar51''
60 \end{verbatim}
61 \end{itemize}
62
63
64 \section{Le token CONTINUE : ..}
65 En fait il ne s'agit pas vraiment d'un token mais d'une règle au sein
66 du lexer permettant l'ecriture de code Scilab sur plusieurs lignes.
67
68 Il est reconnaissable via l'expression régulière suivante :
69 \begin{verbatim}
70 ``..''[\.]*[ \t\v\f]*[\n]
71 \end{verbatim}
72
73 L'utilisation de cette syntaxe n'est pas autorisée a l'intérieur de mots clefs.
74 Exemple :
75 \begin{verbatim}
76 whi..
77 le
78 \end{verbatim}
79 Cette syntaxe sera rejetée au parsing.
80
81 Par contre nous autorisons les découpes suivantes :
82 \begin{verbatim}
83 maVa..
84 riable
85 \end{verbatim}
86 donnera
87 \begin{verbatim}
88 maVariable
89 \end{verbatim}
90 et
91 \begin{verbatim}
92 12345...
93 6789
94 \end{verbatim}
95 donnera
96 \begin{verbatim}
97 123456789
98 \end{verbatim}
99
100 Il faudra néanmoins porter une attention toute particulière aux symboles comportants
101 des points.
102 \begin{verbatim}
103 1./...
104 23456789
105 \end{verbatim}
106 vaut
107 \begin{verbatim}
108 1./23456789
109 \end{verbatim}
110 et non
111 \begin{verbatim}
112 1./.23456789
113 \end{verbatim}
114