Hi,

this code in PARSER.INC looks "suspicious" and is probably an error:



check_for_reserved_word:
call get_instruction
jnc reserved_word
mov edi,data_directives
call get_symbol
jnc reserved_word
mov edi,directive_operators ;<--- this table has 1 extra byte only
call get_symbol ;<--- symbol tables have 2 extra bytes
jnc reserved_word
mov edi,symbols
call get_symbol
jnc reserved_word
mov edi,formatter_symbols
call get_symbol
jnc reserved_word
label_name_ok:


I think "get_operator" should be called instead of "get_symbol".

Errors isnt serious though, it may just allow you to define labels with names from table "directive operators".

Japheth
Posted on 2003-05-08 03:41:06 by japheth
Yes, you're right. Thanks! Here's the corrected version:


check_for_reserved_word:
call get_instruction
jnc reserved_word
mov edi,data_directives
call get_symbol
jnc reserved_word
mov edi,symbols
call get_symbol
jnc reserved_word
mov edi,formatter_symbols
call get_symbol
jnc reserved_word
sub esi,2
mov edi,operators
call get_operator
or al,al
jnz reserved_word
mov edi,single_operand_operators
call get_operator
or al,al
jnz reserved_word
mov edi,directive_operators
call get_operator
or al,al
jnz reserved_word
inc esi
movzx ecx,byte [esi]
inc esi
label_name_ok:
Posted on 2003-05-08 05:01:25 by Tomasz Grysztar
Hi Privalov

How are you? What about next version of FASM - will it soon be released (with this bug-fix)? And what about the additional documentation?

Well, take your time... Take care!

Regards,
POW
Posted on 2003-05-08 08:10:37 by POW