Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語 - Русский
Aide de Scilab >> Code Matlab => Scilab > internals > Equal

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
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Jan 03 14:33:08 CET 2022