Subversion Repositories Kolibri OS

Rev

Rev 624 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 624 Rev 992
Line 22... Line 22...
22
	cmp	eax,[labels_list]
22
	cmp	eax,[labels_list]
23
	jae	out_of_memory
23
	jae	out_of_memory
24
	cmp	byte [esi+16],0
24
	cmp	byte [esi+16],0
25
	je	empty_line
25
	je	empty_line
26
	mov	al,0Fh
26
	cmp	byte [esi+16],3Bh
-
 
27
	je	empty_line
-
 
28
	mov	al,0Fh
27
	stos	byte [edi]
29
	stos	byte [edi]
28
	mov	eax,esi
30
	mov	eax,esi
29
	stos	dword [edi]
31
	stos	dword [edi]
30
	inc	[parsed_lines]
32
	inc	[parsed_lines]
31
	add	esi,16
33
	add	esi,16
Line 119... Line 121...
119
	or	al,al
121
	or	al,al
120
	jz	parse_next_line
122
	jz	parse_next_line
121
	cmp	al,':'
123
	cmp	al,':'
122
	je	invalid_name
124
	je	invalid_name
123
	cmp	al,3Bh
125
	dec	esi
124
	je	skip_preprocessed_symbol
-
 
125
	dec	esi
-
 
126
	call	parse_argument
126
	cmp	al,3Bh
-
 
127
	je	skip_rest_of_line
-
 
128
	call	parse_argument
127
	jmp	parse_next_line
129
	jmp	parse_next_line
128
      skip_preprocessed_symbol:
130
      empty_line:
129
	lods	byte [esi]
-
 
130
	movzx	eax,al
-
 
131
	add	esi,eax
-
 
132
      skip_next:
-
 
133
	lods	byte [esi]
-
 
134
	or	al,al
-
 
135
	jz	parse_next_line
-
 
136
	cmp	al,1Ah
-
 
137
	je	skip_preprocessed_symbol
-
 
138
	cmp	al,3Bh
-
 
139
	je	skip_preprocessed_symbol
-
 
140
	cmp	al,22h
-
 
141
	je	skip_preprocessed_string
-
 
142
	jmp	skip_next
-
 
143
      skip_preprocessed_string:
-
 
144
	lods	dword [esi]
-
 
145
	add	esi,eax
-
 
146
	jmp	skip_next
-
 
147
      empty_line:
-
 
148
	add	esi,17
131
	add	esi,16
149
      parse_next_line:
132
      skip_rest_of_line:
-
 
133
	call	skip_foreign_line
-
 
134
      parse_next_line:
150
	cmp	esi,[source_start]
135
	cmp	esi,[source_start]
151
	jb	parser_loop
136
	jb	parser_loop
152
      source_parsed:
137
      source_parsed:
153
	cmp	[blocks_stack],0
138
	cmp	[blocks_stack],0
154
	je	blocks_stack_ok
139
	je	blocks_stack_ok
Line 157... Line 142...
157
	jmp	missing_end_directive
142
	jmp	missing_end_directive
158
      blocks_stack_ok:
143
      blocks_stack_ok:
159
	xor	al,al
144
	xor	al,al
160
	stos	byte [edi]
145
	stos	byte [edi]
161
	;mov     eax,[error_line]
146
	add	edi,0Fh
162
	;mov     [current_line],eax
-
 
163
	;cmp     [anonymous_forward],0
-
 
164
	;jne     invalid_value
-
 
165
	add	edi,0Fh
-
 
166
	and	edi,not 0Fh
147
	and	edi,not 0Fh
167
	mov	[code_start],edi
148
	mov	[code_start],edi
168
	ret
149
	ret
169
      parse_block:
150
      parse_block:
170
	mov	eax,esp
151
	mov	eax,esp
Line 912... Line 893...
912
	pop	edi esi
893
	pop	edi esi
913
	jmp	expression
894
	jmp	expression
914
      contents_parsed:
895
      contents_parsed:
915
	cmp	[parenthesis_stack],0
896
	cmp	[parenthesis_stack],0
916
;        jne     invalid_expression
897
	je	contents_ok
917
	je	contents_ok
-
 
918
	dec	[parenthesis_stack]
898
	dec	[parenthesis_stack]
919
	add	esp,8
899
	add	esp,8
920
	jmp	contents_parsed
900
	jmp	contents_parsed
921
      contents_ok:
901
      contents_ok:
922
	ret
902
	ret