2. Syntax#

evol_ther = CALC_META (
    ◆ reuse = <objet de RESULTAT >,
    ◇ MODELE = model,
    ◇ CHAM_MATER = mater_field,
    ◆ RESULTAT = evol_ther,
    ◆ OPTION =/"DURT_ELNO ",
               /"DURT_NOEU ",
               /"META_ELNO ",
               /"META_NOEU ",
    ◇/TOUT = "OUI" (or not specified),
      /GROUP_MA = grma,
    # If: is_in ('OPTION', ('META_ELNO', 'META_NOEU'))
        ◆ ETAT_INIT = _F (
             ◆/EVOL_THER = evol_ther,
               /META_INIT_ELNO = card,
             # If: exists (" EVOL_THER ")
                 ◆/NUME_INIT = int,
                   /INST_INIT = float,
                 # If: exists (" INST_INIT ")
                     ◇ CRITERE =/"ABSOLU ",
                                 /"RELATIF" (by default),
                     # If: (equal_to (" CRITERE ", 'RELATIF'))
                         ◇ PRECISION = float (default: 1e-06),
                     # If: (equal_to (" CRITERE ", 'ABSOLU'))
                         ◆ PRECISION = float,
          ),
        ◆ COMPORTEMENT = _F (
             ◆ RELATION =/"ACIER ",
                          /"ACIER_REVENU ",
                          /"ZIRC ",
             # If: equal_to (" RELATION ", 'ACIER')
                 ◇ LOI_META = "WAECKEL ",
             # If: equal_to (" RELATION ", 'ZIRC')
                 ◇ LOI_META = "EDGAR ",
             ◇/TOUT = "OUI" (or not specified),
               /| GROUP_MA = grma,
          ),
        ◇ REVENU = _F (
             ◆ RELATION = "ACIER_REVENU" (or not specified),
             # If: equal_to (" RELATION ", 'ACIER_REVENU')
                 ◇ LOI_META = "JMA ",
             ◇/TOUT = "OUI" (or not specified),
               /| GROUP_MA = grma,
          ),
)

◆: mandatory
◇: optional
: present by default
&: together
/: only one among
|: several possible choices