m2scideclare
Donner des indices pour aider M2SCI...
Syntaxe
%m2scideclare variable_name|sizes|data_type|property
Arguments
- variable_name
- nom de la variable déclarée. Ce nom peut être un champ de Struct (e.g. - x(1,2).nom) ou décrire le contenu d'une Cell en utilisant la syntaxe- x(1,2).entries. NOTEZ que pour les Cells et les Structs NOTEZ que pour les Cells et les Structs- *peut être utilisé comme index.
- sizes
- Tailles de la variable déclarée, séparées par des espaces. Si une taille est inconnue, la remplacer par - ?. NOTER qu'une chaînes de caractères Matlab (définies entre apostrophes) est considérée comme un vecteur de caractères adressables un à un. En conséquence, la taille de 'string' est NOTER qu'une chaînes de caractères Matlab (définies entre apostrophes) est considérée comme un vecteur de caractères adressables un à un. En conséquence, la taille de 'string' est- |1 6|(non- |1 1|).
- data_type & property
- Type et sous-type de la variable. Les valeurs possibles sont présentées dans la page décrivant Type.  Les valeurs de propriétés qui ne sont pas prédéfinies comme constantes dans m2ci -- telles que 'int8' ou 'Axes' -- doivent être spécifiées sans apostrophes ni guillements dans la ligne %m2scideclare. Les valeurs de propriétés qui ne sont pas prédéfinies comme constantes dans m2ci -- telles que 'int8' ou 'Axes' -- doivent être spécifiées sans apostrophes ni guillements dans la ligne %m2scideclare.
Description
La conversion des expressions du langage Matlab en équivalent Scilab dépend notamment
            du type et de la taille des objets impliqués.
            Plus le convertisseur M2SCI (mfile2sci) connait ces informations,
            plus précise et directe sera la conversion.
Dés lors que les données originelles sont littéralement définies dans le
            code Matlab à convertir -- comme dans l'instruction a = [1 3 5]
            indiquant directement le vtype==Double, la property=Real, et la taille
            |1 3|, M2SCI sait alors tout
            ce qu'il faut savoir à propos de a pour convertir les expressions
            ultérieures dans lesquelles a intervient.
Cependant, l'information manque fréquemment. En particulier, en tête des
            macros, le type et les dimensions des arguments d'entrée ne sont pas donnés (pouvoir
            s'en abstenir est d'ailleurs un des avantages/soulagements des langages évolués tels
            que Matlab ou Scilab).
            Des lignes d'instructions %m2scideclare peuvent être alors ajoutées
            (en commentaire Matlab, donc) pour donner ces informations au convertisseur, avant de
            lancer celui-ci.
Lors de la conversion, lorsqu'une ligne %m2scideclare est rencontrée,
            le convertisseur examine la liste des symboles déjà connus. Cette liste est établie
            au cours de la conversion et est continuellement mise à jour, en fonction des symboles
            déjà rencontrés et convertis, et des lignes  %m2scideclare antérieures
            déjà prises en compte :
            
- Si - %m2scideclaredécrit une nouvelle donnée, celle-ci est ajoutée à la liste des objets partiellement ou totalement connus.
- Si l'objet décrit par - %m2scideclareest déjà connu, le convertisseur compare les informations apportées par- %m2scideclareavec celles déjà connues.- Si ces informations coincident ou sont compatibles, le convertisseur éventuellement complète le registre (par exemple si la property était Unknown et est précisée par - %m2scideclare), ou ne fait rien.
- Sinon, une ligne d'alerte est générée par - %m2scideclaredans le fichier converti, et les informations données par- %m2scideclaresont ignorées.
  Ce fonctionnement peut être mis à profit par les développeurs souhaitant corriger ou étendre le convertisseur, en utilisant Ce fonctionnement peut être mis à profit par les développeurs souhaitant corriger ou étendre le convertisseur, en utilisant- %m2scideclaredans les tests : si le type, le sous-type ou les dimensions de l'objet considéré ne sont pas ceux attendus et donnés par- %m2scideclare, l'alerte générée sera exploitée pour corriger le convertisseur.- Si en tant qu'utilisateur du convertisseur vous rencontrez une telle alerte - %m2scideclarequi vous semble incompatible avec ce que vous connaissez de votre code, vous pouvez rapporter le cas sur https://gitlab.com/scilab/scilab/-/issues
Exemples
- %m2scideclare var1|2 3|Double|Real- var1 est déclarée comme une matrice de Doubles de taille 2x3 et contenant des données réelles 
- %m2scideclare var2|2 3 10|Double|Complex- var2 est déclarée comme une hypermatrice de Doubles de taille 2x3x10 et contenant des nombres complexes. 
- %m2scideclare var3(1,2).name|1 10|String|?- var3 est déclarée comme un tableau de Structs contenant une chaîne de caractères de taille 1x10 dans le champ 'name' de la Struct à l'indice (1,2) 
- %m2scideclare var4(1,5).entries|1 ?|Boolean|?- var4 est déclarée comme un tableau de Cells contenant un vecteur ligne de booléens à l'indice (1,5) 
- %m2scideclare var4(1,6).entries|? ?|Int|?- var4 est déclarée comme un tableau de Cells contenant un vecteur ligne de booléens à l'indice (1,5) et des données entières à l'indice (1,6). 
- %m2scideclare var5(*,*).name|1 ?|String|?- var5 est déclarée comme un tableau de Structs contenant une chaîne de caractères de taille 1xn dans chaque champ 'name' 
- %m2scideclare var6(2,*).entries|1 3|Double|Real- var6 est déclarée comme un tableau de Cells contenant un veteur de Doubles de taille 1x3 dans chaque élement de sa seconde ligne. 
Voir aussi
- Type — Crée un arbre contenant les données d'inférence de type
Historique
| Version | Description | 
| < 5.0 | %m2sciassumeest obsolète et est remplacée parm2scideclare. | 
| 6.1.1 | m2scideclareaccepte tous les nouveaux vtypes et valeurs de
                    sous-typesPolynomial,Function/Macro,Function/Builtin,String/Char,Handle/'Figure',Handle/'Axes',Int/'int8',Int/'int16',Int/'int32',Int/'int64',Int/'uint8',Int/'uint16',Int/'uint32',Int/'uint64',Sparse/Boolean.
                    Le vtypeSparsedevient effectivement utilisable. | 
| Report an issue | ||
| << A propos des outils M2SCI | Code Matlab => Scilab | mfile2sci >> |