Hola SplinterGu, he cazado un pequeño error a la hora de definir constantes numericas con valores hexadecimales, cuando compilo el siguiente programa:
PROGRAM Prueba;
CONST
Pepa = 0Ah;
Pepe = 0Bh;
END
BEGIN
FRAME;
END
Me da el siguiente error:
Error in file anonimo.prg at line 5: ";" expected ("BH")
Se que el valor 0Bh hexadecimal es correcto, pero da ese error el compilador, de hecho el error lo detecte en la 0.93 de Fenix, y me puse a investigar si Bennu habia heredado ese error tambien, y bingo!, tambien lo tenia.
P.D: En caso que me halla equivocado pido perdon de antemano por hacerte perder el tiempo. :D
Jurl, si que es una putada, como la b sirve para binary se hace la pixa un lío se cree que es "0 binario hexadecimal" :D, truco "0ah+1" juasjuasjuas.
Lo he probado con el bennuwip2 y pasa, suelta errores distintos con 0BH y 0bH
con la B en mayuscula dice: ; expected("BH") y con la b en minuscula dice ; expected("H") .
EDIT:
Por ende, tambien pasa con cualquier hexadecimal que termine en B
Pepe = 034410BH;
:D
Listo, solucionado, gracias!
Ejemplos:
PROGRAM Prueba;
import "mod_say"
CONST
Pepa = 0Ah;
Pepe = 0Bh;
pepi = 101b;
pepo = 10o;
END
BEGIN
say(pepa);
say(pepe);
say(pepi);
say(pepo);
END
salida:
10
11
5
8
---------
PROGRAM Prueba;
import "mod_say"
CONST
Pepa = 0Ah;
Pepe = 0Bh;
pepi = 1201b;
pepo = 10o;
END
BEGIN
say(pepa);
say(pepe);
say(pepi);
say(pepo);
END
salida:
BGDC 0.93 (May 28 2008 03:23:02)
Copyright © 2006-2008 SplinterGU (Fenix/Bennugd)
Copyright © 2002-2006 Fenix Team (Fenix)
Copyright © 1999-2002 José Luis Cebrián Pagüe (Fenix)
Fenix comes with ABSOLUTELY NO WARRANTY; see COPYING for details
const.prg:8: error: ";" expected (0)
--------------
PROGRAM Prueba;
import "mod_say"
CONST
Pepa = 0Ah;
Pepe = 0Bh;
pepi = 101b;
pepo = 810o;
END
BEGIN
say(pepa);
say(pepe);
say(pepi);
say(pepo);
END
Salida:
BGDC 0.93 (May 28 2008 03:23:02)
Copyright © 2006-2008 SplinterGU (Fenix/Bennugd)
Copyright © 2002-2006 Fenix Team (Fenix)
Copyright © 1999-2002 José Luis Cebrián Pagüe (Fenix)
Fenix comes with ABSOLUTELY NO WARRANTY; see COPYING for details
const.prg:9: error: ";" expected (0)
EDIT: Como veran, ahora se agrego el chequeo de numeros invalidos... antes, tomaba cualquier cosa como valida, mientras este en el rango de caracteres 0-9, a-f.
EDIT2: Olvide poner ejemplos en mayusculas el especificador de formato numerico.
PROGRAM Prueba;
import "mod_say"
CONST
Pepa = 0AH;
Pepe = 0BH;
pepi = 101B;
pepo = 10O;
END
BEGIN
say(pepa);
say(pepe);
say(pepi);
say(pepo);
END
salida
10
11
5
8
Como dijo R. Andru Martin "Uno se alegra de resultar util". ;D ;D ;D