void SFS_GetNumber(ScriptParser *parser)
{
	u32 val, nbBits;

	if (parser->codec->LastError) return;
	// integer
	if (gf_bs_read_int(parser->bs, 1)) {
		nbBits = gf_bs_read_int(parser->bs, 5);
		val = gf_bs_read_int(parser->bs, nbBits);
		SFS_AddInt(parser, val);
		return;
	}
	// real number
	val = gf_bs_read_int(parser->bs, 4);
	while ( val != 15) {
		if (val<=9) {
			SFS_AddChar(parser, (char) (val + '0') );
		} else if (val==10) {
			SFS_AddChar(parser, '.');
		} else if (val==11) {
			SFS_AddChar(parser, 'E');
		} else if (val==12) {
			SFS_AddChar(parser, '-');
		}
		val = gf_bs_read_int(parser->bs, 4);
	}
}
void SFS_GetNumber(ScriptParser *parser)
{
	u32 val, nbBits;

	if (parser->codec->LastError) return;
	 
	if (gf_bs_read_int(parser->bs, 1)) {
		nbBits = gf_bs_read_int(parser->bs, 5);
		val = gf_bs_read_int(parser->bs, nbBits);
		SFS_AddInt(parser, val);
		return;
	}
	 
	val = gf_bs_read_int(parser->bs, 4);
	while ( val != 15) {
		if (val<=9) {
			SFS_AddChar(parser, (char) (val + '0') );
		} else if (val==10) {
			SFS_AddChar(parser, '.');
		} else if (val==11) {
			SFS_AddChar(parser, 'E');
		} else if (val==12) {
			SFS_AddChar(parser, '-');
		}
		val = gf_bs_read_int(parser->bs, 4);
	}
}