Error en la definicion de constantes con valor hexadecimal.

Started by kim-elet-o, May 29, 2008, 09:27:36 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

kim-elet-o

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
|/
|\im-elet-o el yayo programador.

DCelso

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;
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

kim-elet-o

Como dijo R. Andru Martin "Uno se alegra de resultar util".  ;D ;D ;D
|/
|\im-elet-o el yayo programador.