Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - Français


Equal

Génère le code interne Scilab représentant une instruction "LHS = RHS"

Séquence d'appel

eq = Equal(lhslist, RHS)

Arguments

lhslist

liste des arguments de sortie (Left Hand Side : coté gauche de l'assignation) (liste d'une liste typée de M2SCI)

RHS

partie droite de l'instruction (Righ Hand Side)(une tlist de M2SCI)

eq

une tlist de type "equal".

Description

Cette fonction créé une tlist représentant une instruction "LHS = RHS", utilisable par le convertisseur M2SCI. Les arguments d'entrée sont vérifiés, en regard des formats attendus par le convertisseur.

Examples

Générons le code interne représentant l'instruction simple A = "off":

LHS = Variable("A", Infer(list(1,1),Type(String,Unknown)));
Equal(list(LHS), Cste("off"))

Générons le code interne représentant l'instruction A(2,:) = "off" :

// A
LHS = Variable("A", Infer(list(Unknown,Unknown),Type(String,Unknown)));
// A(2,:)
LHS = Operation("ins", list(LHS,Cste(2),Colon), list()) // Insertion
// A(2,:) = "off"
Equal(list(LHS), Cste("off"))

Générons le code interne représentant l'expression handles(:).axes_reverse(:,2) = "off", où handles est un vecteur ligne 1x3 d'identifiants (de repères) graphiques:

h = Variable("handles", Infer(list(1,3),Type(Handle,Unknown)));

// Construction du code interne du récipient (partie gauche):
// handles(:)
LHS = Operation("ins", list(h,Colon), list());                 // Insertion

// handles(:).axes_reverse :
LHS = Operation("ins", list(LHS,Cste("axes_reverse")), list()) // Insertion

// handles(:).axes_reverse(:,2) :
LHS = Operation("ins", list(LHS,Colon,Cste(2)), list());       // Insertion

// .. et finalement l'expression complète :
s.statement = Equal(list(LHS), Cste("off"))
--> s.statement = Equal(list(LHS), Cste("off"))
 s  =
  statement: [equal] tlist with fields:
      lhs: list:
          (1) : [operation] tlist with fields:
              operator = "ins"
              operands: list:
                  (1) : [operation] tlist with fields:
                      operator = "ins"
                      operands: list:
                          (1) : [operation] tlist with fields:
                              operator = "ins"
                              operands: list with 2 elements.
                              out:  empty list()
                          (2) : [cste] tlist with fields:
                              value = "axes_reverse"
                              infer: [infer] tlist with fields:
                                  [dims, type, contents]
                      out:  empty list()
                  (2) : [variable] tlist with fields:
                      name = ":"
                      infer: [infer] tlist with fields:
                          dims: list:
                              (1) = -1
                              (2) = 1
                          type: [type] tlist with fields:
                              vtype = 1
                              property = 0
                          contents: [contents] tlist with fields:
                              index:  empty list()
                              data:  empty list()
                  (3) : [cste] tlist with fields:
                      value = 2
                      infer: [infer] tlist with fields:
                          dims: list:
                              (1) = 1
                              (2) = 1
                          type: [type] tlist with fields:
                              vtype = 1
                              property = 0
                          contents: [contents] tlist with fields:
                              index:  empty list()
                              data:  empty list()
              out:  empty list()
      expression: [cste] tlist with fields:
          value = "off"
          infer: [infer] tlist with fields:
              dims: list:
                  (1) = 1
                  (2) = 3
              type: [type] tlist with fields:
                  vtype = 10
                  property = 0
              contents: [contents] tlist with fields:
                  index:  empty list()
                  data:  empty list()
      endsymbol = ";"

Voir aussi

  • Funcall — Crée le pseudo-code converti représentant l'appel à une fonction
  • Operation — Génère le code interne Scilab représentant une opération
  • Variable — Génère le code interne Scilab représentant une variable (sans sa valeur)
  • Cste — Créé un arbre représentant une constante
  • Infer — Créé un arbre contenant les données d'inférence
  • Contents — Créé un arbre contenant les données d'inférence du contenu d'une variable
  • Type — Crée un arbre contenant les données d'inférence de type
Report an issue
<< Cste internals Funcall >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:39:48 CEST 2023