Génère le code interne Scilab représentant une instruction "LHS = RHS"
eq = Equal(lhslist, RHS)
liste des arguments de sortie (Left Hand Side : coté gauche de l'assignation) (liste d'une liste typée de M2SCI)
partie droite de l'instruction (Righ Hand Side)(une tlist de M2SCI)
une tlist de type "equal".
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.
Générons le code interne représentant l'instruction simple A = "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 = ";"