help names: any length + UTF-8 accepted 19/19419/5
Samuel GOUGEON [Sat, 9 Sep 2017 19:31:31 +0000 (21:31 +0200)]
Change-Id: I4a1c41f18294655a1df45e7346eaa619f5eee620

scilab/CHANGES.md
scilab/modules/core/help/en_US/variables/names.xml
scilab/modules/core/help/fr_FR/variables/names.xml
scilab/modules/core/help/ja_JP/variables/names.xml
scilab/modules/core/help/pt_BR/variables/names.xml
scilab/modules/core/help/ru_RU/variables/names.xml

index 8f7827a..6883f27 100644 (file)
@@ -101,6 +101,8 @@ has to be modified in order to work in Scilab 6.0.
 See [the wiki page on porting code from 5.5 to 6.0](https://wiki.scilab.org/FromScilab5ToScilab6)
 for details and examples.
 
+* The parser now fully supports names of variables and functions of any length or/and including
+  some UTF-8 multilingual characters.
 * Declaration of a number on two lines is no longer allowed: `1.. \n 2`.
 * Comment blocks on multiple lines `/* ...\n ... \n ... */` are now possible.
 * `1./M` is now parsed as `1 ./ M` instead of `1. / M`.
index 0702e60..37c221b 100644 (file)
@@ -1,47 +1,84 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="en" xml:id="names">
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ * Copyright (C) 2017 - Samuel GOUGEON
+ *
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+        xml:lang="en" xml:id="names">
     <refnamediv>
         <refname>names</refname>
-        <refpurpose>Scilab names syntax</refpurpose>
+        <refpurpose>Naming rules for variables and functions</refpurpose>
     </refnamediv>
     <refsection>
-        <title>Description</title><para>
+        <title>Description</title>
+        <para>
             Names of variables and functions must begin with a letter or one of
-            the following special characters  '<literal>%</literal>', '<literal>_</literal>', '<literal>#</literal>', '<literal>!</literal>', '<literal>$</literal>', '<literal>?</literal>'.
+            the following special characters: <literal>% _ # ! ? $</literal>.
+        </para>
+        <para>
+            Next characters may be letters, digits, or any special character among
+            <literal>_ # ! $ ?</literal>.
         </para>
         <para>
-            Next characters may be letters or digits or any special character in '<literal>_</literal>',
-            '<literal>#</literal>', '<literal>!</literal>', '<literal>$</literal>', '<literal>?</literal>'.
+            Upper and lower case letters are different.
         </para>
         <para>
+            Multilingual UTF-8 characters are accepted.
         </para>
-        Upper and lower case letters are different.
         <para>
-            Names may be as long as you want but only the first 24 characters are
-            taken into account. If you exceed this limit you get a warning. Please note that this limitation will be fixed with the release of Scilab 6.
+            Names may be as long as you want.
         </para>
     </refsection>
     <refsection>
         <title>Examples</title>
         <programlisting role="example"><![CDATA[
-//Valid names
+// Valid names
 %eps
-A1=123
-#Color=8
-My_Special_Color_Table=rand(10,3)
-//Non valid names
+A1 = 123
+#Color = 8
+þæ_Р= %pi
+
+// Non valid names
 //1A , b%, .C
 
 // Long names
-Try_to_use_a_long_name = 1 // long, but not too
-Try_to_use_a_too_long_name = 1 // too long
-
-// let we insert a second variable with similar long name...
-Try_to_use_a_too_long_name2 = 2
+The_name_of_an_identifier_is_not_length_limited = 1
 
-// ... and see the value of first variable
-disp(Try_to_use_a_too_long_name)
-// Please note that this limitation will be fixed with the release of Scilab 6.
+// A kilometric name:
+name = strcat(part("a",ones(1,1000))); // 1000-char long
+execstr(name+"=%pi; b ="+name);
+b
  ]]></programlisting>
     </refsection>
+    <refsection role="history">
+        <title>History</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>
+                            Scilab's parser no longer truncates names longer than 24 characters.
+                        </listitem>
+                        <listitem>
+                            UTF-8 characters are now accepted in names of variables and fields.
+                        </listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 70e09d2..5a40c7f 100644 (file)
@@ -1,25 +1,45 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="fr" xml:id="names">
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ * Copyright (C) 2017 - Samuel GOUGEON
+ *
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+        xml:lang="fr" xml:id="names">
     <refnamediv>
-        <refname>names</refname>
-        <refpurpose>syntaxe des noms de variables dans Scilab  </refpurpose>
+        <refname>nommage</refname>
+        <refpurpose>Règles de nommage des variables et fonctions</refpurpose>
     </refnamediv>
     <refsection>
         <title>Description</title>
         <para>
-            Les noms de variables et de fonctions doivent commencer par une lettre de l'alphabet ou l'un des caractères "spéciaux" suivants : '<literal>%</literal>', '<literal>_</literal>', '<literal>#</literal>', '<literal>!</literal>', '<literal>$</literal>', '<literal>?</literal>'.
+            Les noms de variables et de fonctions doivent commencer par une lettre ou l'un des
+            caractères suivants : <literal>% _ # ! ? $</literal>
         </para>
         <para>
+            Les caractères suivants peuvent être des lettres ou des chiffres, ou bien des caractères
+            parmi les suivants: <literal>_ # ! ? $</literal>. <literal>%</literal> est exclu.
         </para>
         <para>
-            Les caractères suivants peuvent être des lettres ou des chiffres, ou bien des caractères spéciaux tels que '<literal>_</literal>', '<literal>#</literal>', '<literal>!</literal>', '<literal>$</literal>', '<literal>?</literal>'.
+            La différence entre minuscules et majuscules est prise en compte.
         </para>
         <para>
+            Les lettres accentuées ou caractères non latins encodés en UTF-8 sont acceptés.
         </para>
         <para>
-            Le nombre de caractères des noms de variables n'est pas limité mais seuls les 24 premiers sont pris en compte. La différence entre minuscules et majuscules est prise en compte.
-        </para>
-        <para>
+            Le nombre de caractères des noms/identifiants n'est pas limité.
         </para>
     </refsection>
     <refsection>
         <programlisting role="example"><![CDATA[
 // Noms valides
 %eps
-A1=123
-#Color=8
-My_Special_Color_Table=rand(10,3)
+A1 = 123
+#Color = 8
+œuvres_suggérées = ["1984" "1793"];
+
 // Noms invalides
 //1A , b%, .C
+
+// Noms longs
+Le_nom_d_une_variable_n_est_pas_limité_en_longueur = 1
+
+// Un nom kilométrique (1000 caractères) :
+name = strcat(part("a",ones(1,1000)));
+execstr(name+"=%pi; b ="+name);
+b
  ]]></programlisting>
     </refsection>
+    <refsection role="history">
+        <title>Historique</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>
+                            L'interpréteur de Scilab ne tronque désormais plus les noms de variable
+                            comportant plus de 24 caractères.
+                        </listitem>
+                        <listitem>
+                            Les noms de variables et de champs peuvent maintenant inclure des
+                            caractères étendus (accentués, etc) encodés en UTF-8.
+                        </listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 28a1b96..69be375 100644 (file)
@@ -1,5 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ja" xml:id="names">
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ * Copyright (C) 2017 - Samuel GOUGEON
+ *
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+        xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+        xml:lang="ja" xml:id="names">
     <refnamediv>
         <refname>names</refname>
         <refpurpose>Scilab 名前の構文</refpurpose>
         <title>説明</title>
         <para>
             変数および関数の名前は文字または以下の特殊文字のとれかから始まる必要があります:
-            '<literal>%</literal>', '<literal>_</literal>', '<literal>#</literal>', '<literal>!</literal>',
-            '<literal>$</literal>', '<literal>?</literal>'.
+            <literal>% _ # ! ? $</literal>
         </para>
         <para>
             以下に続く文字は,文字,数字,
-            '<literal>_</literal>', '<literal>#</literal>', '<literal>!</literal>', '<literal>$</literal>', '<literal>?</literal>'
+            <literal>_ # ! ? $</literal>
             を含む任意の特殊文字とすることができます.
         </para>
         <para>
             大文字小文字は区別されます.
         </para>
         <para>
-            名前は任意の長さとすることができますが,最初の24文字のみが認識されます.
-            大文字と小文字は区別されます.
-            この制限を超えた場合,警告が発生します.
-            この制限はScilab 6のリリースでも変わらないことに注意してください.
+            Multilingual UTF-8 characters are accepted.
+        </para>
+        <para>
+            Names may be as long as you want.
         </para>
     </refsection>
     <refsection>
         <title>例</title>
         <programlisting role="example"><![CDATA[
-//有効な名前
+// 有効な名前
 %eps
-A1=123
-#Color=8
-My_Special_Color_Table=rand(10,3)
-//無効な名前
+A1 = 123
+#Color = 8
+長さ = 2
+My_Special_Color_Table = rand(10,3)
+
+// 無効な名前
 //1A , b%, .C
+
 //長い名前
-Try_to_use_a_long_name = 1 // 長いが長すぎない
-Try_to_use_a_too_long_name = 1 // 長すぎる
-// 同様な長い名前を有する2番目の変数を挿入してみましょう
-Try_to_use_a_too_long_name2 = 2
-// ... 最初の変数の値を見てみましょう
-disp(Try_to_use_a_too_long_name)
-// この制限は Scilab 6のリリースでも変わらないことに注意してください.
+The_name_of_an_identifier_is_not_length_limited = 1
+
+// A kilometric name (1000-char long) :
+name = strcat(part("a",ones(1,1000)));
+execstr(name+"=%pi; b ="+name);
+b
  ]]></programlisting>
     </refsection>
+    <refsection role="history">
+        <title>履歴</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>
+                            Scilab's parser no longer truncates names longer than 24 characters.
+                        </listitem>
+                        <listitem>
+                            UTF-8 characters are now accepted in names of variables and fields.
+                        </listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 8aa0bdb..8f877a5 100644 (file)
@@ -1,36 +1,82 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="names" xml:lang="pt">
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ * Copyright (C) 2017 - Samuel GOUGEON
+ *
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:svg="http://www.w3.org/2000/svg" xmlns:ns5="http://www.w3.org/1999/xhtml"
+        xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook"
+        xmlns:scilab="http://www.scilab.org" xml:id="names" xml:lang="pt">
     <refnamediv>
         <refname>names</refname>
         <refpurpose>scilab names syntax</refpurpose>
     </refnamediv>
     <refsection>
-        <title>Descrição</title>
-        <para>Nomes de variáveis ou funções no Scilab devem começar com uma letra,
-            ou com um dos seguintes caracteres especiais: '<literal>%</literal>',
-            '<literal>_</literal>', '<literal>#</literal>', '<literal>!</literal>',
-            '<literal>$</literal>', '<literal>?</literal>'.
+        <title>Descrição</title>
+        <para>Nomes de variáveis ou funções no Scilab devem começar com uma letra,
+            ou com um dos seguintes caracteres especiais: <literal>% _ # ! ? $</literal>
         </para>
-        <para>Os próximos caracteres podem ser letras ou um dos seguintes
-            caracteres especiais: '<literal>_</literal>', '<literal>#</literal>',
-            '<literal>!</literal>', '<literal>$</literal>',
-            '<literal>?</literal>'
+        <para>Os próximos caracteres podem ser letras ou um dos seguintes
+            caracteres especiais: <literal>_ # ! ? $</literal>
         </para>
-        <para>Nomes podem ser tão longos quanto se queira, mas apenas os primeiros
-            24 caracteres serão levados em consideração. Letras maiúsculas e
-            minúsculas são diferentes.
+        <para>
+            Letras maiúsculas e minúsculas são diferentes.
+        </para>
+        <para>
+            Multilingual UTF-8 characters are accepted.
+        </para>
+        <para>
+            Names may be as long as you want.
         </para>
     </refsection>
     <refsection>
         <title>Exemplos</title>
         <programlisting role="example"><![CDATA[
-//Nomes válidos
+//Nomes válidos
 %eps
-A1=123
-#Color=8
-My_Special_Color_Table=rand(10,3)
-//Nomes inválidos
+A1 = 123
+#Color = 8
+função = "linspace"
+
+//Nomes inválidos
 //1A , b%, .C
+
+// Long names
+The_name_of_an_identifier_is_not_length_limited = 1
+
+// A kilometric name:
+name = strcat(part("a",ones(1,1000))); // 1000-char long
+execstr(name+"=%pi; b ="+name);
+b
  ]]></programlisting>
     </refsection>
+    <refsection role="history">
+        <title>Histórico</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>
+                            Scilab's parser no longer truncates names longer than 24 characters.
+                        </listitem>
+                        <listitem>
+                            UTF-8 characters are now accepted in names of variables and fields.
+                        </listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>
index 0c3ec93..249a84e 100644 (file)
@@ -1,5 +1,22 @@
+<!--
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) INRIA
+ *
+ * Copyright (C) 2012 - 2016 - Scilab Enterprises
+ *
+ * This file is hereby licensed under the terms of the GNU GPL v2.0,
+ * pursuant to article 5.3.4 of the CeCILL v.2.1.
+ * This file was originally licensed under the terms of the CeCILL v2.1,
+ * and continues to be available under such terms.
+ * For more information, see the COPYING file which you should have received
+ * along with this program.
+ *
+ -->
 <?xml version="1.0" encoding="UTF-8"?>
-<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:lang="ru" xml:id="names">
+<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML"
+    xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org"
+    xml:lang="ru" xml:id="names">
     <refnamediv>
         <refname>имена</refname>
         <refpurpose>синтаксис имён в Scilab</refpurpose>
         <title>Описание</title>
         <para>
             Имена переменных и функций должны начинаться с буквы, либо с одного из следующих специальных
-            символов: '<literal>%</literal>', '<literal>_</literal>', '<literal>#</literal>',
-            '<literal>!</literal>', '<literal>$</literal>', '<literal>?</literal>'.
+            символов: <literal>% _ # ! ? $</literal>.
         </para>
         <para>
             Последующие символы имени могут быть буквами, цифрами или любыми другими специальными
-            символами из '<literal>_</literal>', '<literal>#</literal>', '<literal>!</literal>',
-            '<literal>$</literal>', '<literal>?</literal>'.
+            символами из <literal>_ # ! ? $</literal>.
         </para>
         <para>
             Буквы верхнего и нижнего регистра различаются.
         </para>
         <para>
-            Имена могут быть как угодно длинными, но учитываются лишь первые 24 символа. В случае
-            превышения этого предела будет в консоли будет выведено предупреждение. Это ограничение будет
-            исправлено в Scilab версии 6.
+            Принимаются многоязычные кодированные символы UTF-8.
+        </para>
+        <para>
+            Имена могут быть такими длинными, как вам нужно.
         </para>
     </refsection>
     <refsection>
         <programlisting role="example"><![CDATA[
 // Корректные имена
 %eps
-A1=123
-#Color=8
-My_Special_Color_Table=rand(10,3)
+A1 = 123
+#Color = 8
+общая_длина = 11
+
 // Некорректные имена
-//1A , b%, .C
+//1A , b%, .C,
 
 // Длинные имена
-Try_to_use_a_long_name = 1
-Try_to_use_a_too_long_name = 1
+The_name_of_an_identifier_is_not_length_limited = 1
 
-// давайте введём вторую переменную с похожим длинным именем...
-Try_to_use_a_too_long_name2 = 2
-
-// ... и посмотрим какое значение имеет первая переменная
-disp(Try_to_use_a_too_long_name)
-
-// Ограничение длины имени переменной 24-мя символами
-// будет исправлено в Scilab версии 6.
+// Километровое имя (1000-символьная длина):
+name = strcat(part("a",ones(1,1000)));
+execstr(name+"=%pi; b ="+name);
+b
  ]]></programlisting>
     </refsection>
+    <refsection role="history">
+        <title>История</title>
+        <revhistory>
+            <revision>
+                <revnumber>6.0</revnumber>
+                <revdescription>
+                    <itemizedlist>
+                        <listitem>
+                            Анализатор Scilab больше не обрезает имена длиной более 24 символов.
+                        </listitem>
+                        <listitem>
+                            Символы UTF-8 теперь принимаются в именах переменных и полей.
+                        </listitem>
+                    </itemizedlist>
+                </revdescription>
+            </revision>
+        </revhistory>
+    </refsection>
 </refentry>