icono letras

Lenguaje C--

Macros y utilidades

Núm. página

Asignaciones

  1. opd
    • ++
    • --
  2. yd
    • opdstarsYn
    • starsYnopd
  3. vindx
    • natural
    • ZΩ
    • starsYn
    • yd
    • 0
  4. indx
    [vindx]
  5. indxs
    • ε
    • indxindxs
  6. V
    • Y
    • F
  7. V’n
    starsVndimsindxs
  8. preinstrucción
    xΩ
  9. preinstrucciones
    • ε
    • xΩpreinstrucciones

Expansiones finales 1’

Cuando se usan macros de la forma ‘unsigned int starsnombredims’ el expansor, en las expansiones finales:

  1. después de agregar las instrucciones ‘1’, añade al final una nueva instrucción 1top con una marca i apuntando a ella.
  2. sustituye todas las apariciones de top por i en todas las xtop.
V.id = ZΩ;
Z.id = ZΩ;
ZΩ = V.id;
ZΩ = Z.id;
VΩ = VΩ;
ε
ZΩ = &Vn;
ZΩ = Z:top;
ZΩ += n;
ZΩ = &Vn[vindx1];
Z.indr = vindx1;
ZΩ = &Vn;
ZΩ += Z.indr;
ZΩ = &Vn$k1dims1[λ1][λ2]
Z.ind1 = k1;
Z.ind2 = λ1;
Z.indr = Z.ind1 * Z.ind2;
Z.ind1 = λ2;
Z.indr += Z.ind1;
ZΩ = &Vndims1[Z.indr]
'simb1'
c

donde c es el natural que representa el código del símbolo Unicode simb1.

ajustar

Sea

ajustar{
  texto1
}

y Ξ cualquier Ω distinto de change.

  • Si texto1 no es preinstrucciones:

    :ajustar:{
      texto1
    }
    :ajustar:{
      texto2
    }

    donde texto2 es preinstrucciones, resultado de expandir macroinstrucciones en texto1.

  • Si texto1 es preinstrucciones:

    :ajustar:{
    }
    ε
    :ajustar:{
      preinstrucciones1
      xΞ
    }
    :ajustar:{
      preinstrucciones1
      }
    xΞ
    :ajustar:{
      preinstrucciones1
      x:change
    }
    Z:i = Z.posf
    :ajustar:{
      preinstrucciones1
    }
    xi
ZΩ = Vndims1indxs1;
Z.adjp = &Vndims1indxs1;
:ajustar:{
   ZΩ = Z.change;
}
Vndims1indxs1 = ZΩ;
Z.adjp = &Vndims1indxs1;
:ajustar:{
   Z.change = ZΩ;
}
ZΩ = *V’Φ;
Z.adjp = V’Φ;
:ajustar:{
   ZΩ = Z.change;
}
*VΩ = ZΦ;
Z.adjp = V’Ω dims1indxs1;
:ajustar:{
   Z.change = ZΦ;
}
Núm. página