Category:Amazing Hopper: Difference between revisions

m
Line 2,942:
 
HOPPER DESCRIPCION ALTO NIVEL
-----------------------------------------------------------------------------------
swtrap(DIR) Instrucción detrás de la macro TRY.
Almacena la dirección de salto DIR al
punto del programa donde un error
será atrapado.
 
gettry(E) Instrucción detrás de CATCH. Obtiene
el código numérico del error, y lo
Line 2,956:
su posterior proceso.
Su uso normal es:
 
{"Has pasado el límite"},throw(1000)
La macro, definida en stdio.hh, tiene
un uso más normal:
 
raise(1000,"Has pasado el límite")
 
popcatch Elimina la dirección almacenada por
SWTRAP, desde el stack interno de
Line 2,969:
Está detrás de FINISH, y mejor use
esta macro.
 
OBSERVACIONES: Estas instrucciones no deben ser usadas. En su lugar, use las macros dispuestas en stdio.hh, donde se establece el uso más estándar. Ejemplo:
try
Line 2,982:
{0,v}eq?, assert("Son iguales!")
 
== PARSER XML/HTML ==
 
HOPPER DESCRIPCION
-----------------------------------------------------------------------------------
{A,B,C,D}parser(M) Construye un registro XML/HTML, y lo agrega a M, donde:
A = nombre del campo
B = atributos
C = contenido del campo
D = código de parser (ver lista de códigos).
M = cadena con registros anidados XML.
Si no hay atributos, debe escribir "" en su lugar.
Si no hay contenido, debe escribir "" en su lugar.
El nombre del campo, y el código de parser, son
obligatorios. Obviamente, la cadena con registros
anidados también son obligatorios.
 
Ejemplo:
 
msg=""
{"nombre","","Este tag esta con datos",NORMALTAG}, parser(msg)
Line 3,011:
{"code_secret","tag=AB450C M=\"MORE\"","INFO-C",NORMALTAG},parser(msg)
{"only_tag","","",ONLYTAG},parser(msg)
Genera:
<nombre>Este tag esta con datos</nombre>
Line 3,019:
<code_secret tag=AB450C M="MORE">INFO-C</code_secret>
<only_tag/>
Para dejar el grupo de registros anterior dentro de otro registro, escribir:
forma=""
{"forma","code=100001",msg,NORMALTAG},parser(forma)
Genera:
<forma code=100001>
Line 3,034:
<only_tag/>
</forma>
 
{A}unparser(M) Descompone la cadena M, obteniendo el campo indicado
por A. Si el campo no existe, devuelve un error que
puede ser atrapado por las macros TRY/CATCH.
El campo A puede estar en cualquier parte de la
cadena M. Si existe más de un campo con el mismo
nombre, será extraída la primera ocurrencia.
Si A contiene atributos, UNPARSER devuelve:
1) un array con los valores de los atributos.
2) el contenido.
Si se sabe que A no contiene atributos, solo esdevuelve el contenido.
Si A no contiene atributoscontenidos, solo devuelve eluna cadena contenidonula.
Si se sabe que A no contiene contenidosatributos, devuelve unasolo cadenaes nula.
necesaria una variable para el contenido.
Si se sabe que A no contiene atributos, solo es
necesaria una variable para el contenido.
 
Ejemplo:
content=""
Line 3,079:
<mem_copy length=1000/>
</forma>
 
Los códigos están definidos en HOPPER.H.
543

edits