Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1188 → Rev 1189

/programs/develop/fasm/trunk/parser.inc
104,15 → 104,15
stos word [edi]
mov al,dl
stos byte [edi]
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
je parse_block
cmp bx,repeat_directive-assembler
cmp bx,repeat_directive-instruction_handler
je parse_block
cmp bx,while_directive-assembler
cmp bx,while_directive-instruction_handler
je parse_block
cmp bx,end_directive-assembler
cmp bx,end_directive-instruction_handler
je parse_end_directive
cmp bx,else_directive-assembler
cmp bx,else_directive-instruction_handler
je parse_else
common_parse:
call parse_line_contents
159,9 → 159,9
shl eax,16
push eax
inc [blocks_stack]
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
je parse_if
cmp bx,while_directive-assembler
cmp bx,while_directive-instruction_handler
je parse_while
call parse_line_contents
jmp parse_next_line
188,11 → 188,11
lods byte [esi]
or al,al
jnz extra_characters_on_line
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
je close_parsing_block
cmp bx,repeat_directive-assembler
cmp bx,repeat_directive-instruction_handler
je close_parsing_block
cmp bx,while_directive-assembler
cmp bx,while_directive-instruction_handler
je close_parsing_block
jmp parse_next_line
close_parsing_block:
202,7 → 202,7
jne unexpected_instruction
dec [blocks_stack]
pop eax edx
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
jne parse_next_line
test al,1100b
jz parse_next_line
251,7 → 251,7
parse_else:
cmp [blocks_stack],0
je unexpected_instruction
cmp word [esp+2],if_directive-assembler
cmp word [esp+2],if_directive-instruction_handler
jne unexpected_instruction
lods byte [esi]
or al,al
264,7 → 264,7
call get_instruction
jc extra_characters_on_line
pop edi
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
jne extra_characters_on_line
test byte [esp],100b
jnz skip_true_condition_else
311,15 → 311,15
lea esi,[esi+ecx+1]
jmp skip_parsing_line
skip_parsing_instruction:
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
je skip_parsing_block
cmp bx,repeat_directive-assembler
cmp bx,repeat_directive-instruction_handler
je skip_parsing_block
cmp bx,while_directive-assembler
cmp bx,while_directive-instruction_handler
je skip_parsing_block
cmp bx,end_directive-assembler
cmp bx,end_directive-instruction_handler
je skip_parsing_end_directive
cmp bx,else_directive-assembler
cmp bx,else_directive-instruction_handler
je skip_parsing_else
skip_parsing_contents:
lods byte [esi]
369,11 → 369,11
lods byte [esi]
or al,al
jnz extra_characters_on_line
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
je close_skip_parsing_block
cmp bx,repeat_directive-assembler
cmp bx,repeat_directive-instruction_handler
je close_skip_parsing_block
cmp bx,while_directive-assembler
cmp bx,while_directive-instruction_handler
je close_skip_parsing_block
jmp skip_parsing
close_skip_parsing_block:
385,7 → 385,7
pop eax edx
test al,1
jz skip_parsing
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
jne parse_next_line
test al,10000b
jz parse_next_line
394,15 → 394,15
mov eax,[current_line]
stos dword [edi]
inc [parsed_lines]
mov eax,1 + (end_directive-assembler) shl 8
mov eax,1 + (end_directive-instruction_handler) shl 8
stos dword [edi]
mov eax,1 + (if_directive-assembler) shl 8
mov eax,1 + (if_directive-instruction_handler) shl 8
stos dword [edi]
jmp parse_next_line
skip_parsing_else:
cmp [blocks_stack],0
je unexpected_instruction
cmp word [esp+2],if_directive-assembler
cmp word [esp+2],if_directive-instruction_handler
jne unexpected_instruction
lods byte [esi]
or al,al
415,7 → 415,7
call get_instruction
jc extra_characters_on_line
pop edi
cmp bx,if_directive-assembler
cmp bx,if_directive-instruction_handler
jne extra_characters_on_line
mov al,[esp]
test al,1
432,7 → 432,7
stos dword [edi]
inc [parsed_lines]
parse_else_if:
mov eax,1 + (if_directive-assembler) shl 8
mov eax,1 + (if_directive-instruction_handler) shl 8
stos dword [edi]
jmp parse_if
skip_parsing_pure_else:
451,21 → 451,21
parse_line_contents:
mov [parenthesis_stack],0
parse_instruction_arguments:
cmp bx,prefix_instruction-assembler
cmp bx,prefix_instruction-instruction_handler
je allow_embedded_instruction
cmp bx,times_directive-assembler
cmp bx,times_directive-instruction_handler
je parse_times_directive
cmp bx,end_directive-assembler
cmp bx,end_directive-instruction_handler
je allow_embedded_instruction
cmp bx,label_directive-assembler
cmp bx,label_directive-instruction_handler
je parse_label_directive
cmp bx,segment_directive-assembler
cmp bx,segment_directive-instruction_handler
je parse_label_directive
cmp bx,load_directive-assembler
cmp bx,load_directive-instruction_handler
je parse_load_directive
cmp bx,extrn_directive-assembler
cmp bx,extrn_directive-instruction_handler
je parse_extrn_directive
cmp bx,public_directive-assembler
cmp bx,public_directive-instruction_handler
je parse_public_directive
parse_argument:
lea eax,[edi+100h]