Subversion Repositories Kolibri OS

Rev

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

Rev 2664 Rev 2665
Line 501... Line 501...
501
	je	instruction_separator
501
	je	instruction_separator
502
	cmp	al,','
502
	cmp	al,','
503
	je	separator
503
	je	separator
504
	cmp	al,'='
504
	cmp	al,'='
505
	je	separator
505
	je	expression_comparator
506
	cmp	al,'|'
506
	cmp	al,'|'
507
	je	separator
507
	je	separator
508
	cmp	al,'&'
508
	cmp	al,'&'
509
	je	separator
509
	je	separator
510
	cmp	al,'~'
510
	cmp	al,'~'
511
	je	separator
511
	je	separator
Line 567... Line 567...
567
	cmp	al,82h
567
	cmp	al,82h
568
	je	parse_from_operator
568
	je	parse_from_operator
569
	cmp	al,89h
569
	cmp	al,89h
570
	je	parse_label_operator
570
	je	parse_label_operator
571
	jmp	argument_parsed
571
	cmp	al,0F8h
-
 
572
	je	forced_expression
-
 
573
	jmp	argument_parsed
572
      allow_embedded_instruction:
574
      instruction_separator:
-
 
575
	stos	byte [edi]
-
 
576
      allow_embedded_instruction:
573
	cmp	byte [esi],1Ah
577
	cmp	byte [esi],1Ah
574
	jne	parse_argument
578
	jne	parse_argument
575
	push	edi
579
	push	edi
576
	inc	esi
580
	inc	esi
577
	movzx	ecx,byte [esi]
581
	movzx	ecx,byte [esi]
Line 808... Line 812...
808
	mov	al,'{'
812
	mov	al,'{'
809
	stos	byte [edi]
813
	stos	byte [edi]
810
	inc	[parenthesis_stack]
814
	inc	[parenthesis_stack]
811
	jmp	parse_argument
815
	jmp	parse_argument
812
      expression:
816
      expression_comparator:
-
 
817
	stos	byte [edi]
-
 
818
	jmp	forced_expression
-
 
819
      greater:
-
 
820
	cmp	byte [esi],'='
-
 
821
	jne	separator
-
 
822
	inc	esi
-
 
823
	mov	al,0F2h
-
 
824
	jmp	separator
-
 
825
      less:
-
 
826
	cmp	byte [edi-1],0F6h
-
 
827
	je	separator
-
 
828
	cmp	byte [esi],'>'
-
 
829
	je	not_equal
-
 
830
	cmp	byte [esi],'='
-
 
831
	jne	separator
-
 
832
	inc	esi
-
 
833
	mov	al,0F3h
-
 
834
	jmp	separator
-
 
835
      not_equal:
-
 
836
	inc	esi
-
 
837
	mov	al,0F1h
-
 
838
	jmp	expression_comparator
-
 
839
      expression:
813
	mov	al,'('
840
	mov	al,'('
814
	stos	byte [edi]
841
	stos	byte [edi]
815
	call	convert_expression
842
	call	convert_expression
816
	mov	al,')'
843
	mov	al,')'
817
	stos	byte [edi]
844
	stos	byte [edi]
Line 890... Line 917...
890
      close_parenthesis:
917
      close_parenthesis:
891
	mov	al,'}'
918
	mov	al,'}'
892
      separator:
919
      separator:
893
	stos	byte [edi]
920
	stos	byte [edi]
894
	jmp	argument_parsed
921
      argument_parsed:
895
      instruction_separator:
-
 
896
	stos	byte [edi]
-
 
897
	jmp	allow_embedded_instruction
-
 
898
      greater:
-
 
899
	cmp	byte [esi],'='
-
 
900
	jne	separator
-
 
901
	inc	esi
-
 
902
	mov	al,0F2h
-
 
903
	jmp	separator
-
 
904
      less:
-
 
905
	cmp	byte [edi-1],0F6h
-
 
906
	je	separator
-
 
907
	cmp	byte [esi],'>'
-
 
908
	je	not_equal
-
 
909
	cmp	byte [esi],'='
-
 
910
	jne	separator
-
 
911
	inc	esi
-
 
912
	mov	al,0F3h
-
 
913
	jmp	separator
-
 
914
      not_equal:
-
 
915
	inc	esi
-
 
916
	mov	al,0F1h
-
 
917
	jmp	separator
-
 
918
      argument_parsed:
-
 
919
	cmp	[parenthesis_stack],0
922
	cmp	[parenthesis_stack],0
920
	je	parse_argument
923
	je	parse_argument
921
	dec	[parenthesis_stack]
924
	dec	[parenthesis_stack]
922
	add	esp,8
925
	add	esp,8
923
	jmp	argument_parsed
926
	jmp	argument_parsed
Line 982... Line 985...
982
	cmp	ecx,ebp
985
	cmp	ecx,ebp
983
	jne	next_operator
986
	jne	next_operator
984
	repe	cmps byte [esi],[edi]
987
	repe	cmps byte [esi],[edi]
985
	je	operator_found
988
	je	operator_found
986
      next_operator:
989
	jb	no_operator
-
 
990
      next_operator:
987
	mov	edi,ebx
991
	mov	edi,ebx
988
	inc	edi
992
	inc	edi
989
	jmp	check_operator
993
	jmp	check_operator
990
      no_operator:
994
      no_operator:
991
	mov	esi,edx
995
	mov	esi,edx
Line 1044... Line 1048...
1044
	repe	cmps byte [esi],[edi]
1048
	repe	cmps byte [esi],[edi]
1045
	ja	symbols_up
1049
	ja	symbols_up
1046
	jb	symbols_down
1050
	jb	symbols_down
1047
	mov	ax,[edi]
1051
	mov	ax,[edi]
1048
 
1052
	cmp	al,18h
1049
	cmp	al,18h
-
 
1050
	jb	symbol_ok
1053
	jb	symbol_ok
1051
	cmp	[formatter_symbols_allowed],0
1054
	cmp	[formatter_symbols_allowed],0
1052
	je	no_symbol
1055
	je	no_symbol
1053
 
1056
      symbol_ok:
1054
      symbol_ok:
-
 
1055
	pop	esi
1057
	pop	esi
1056
	add	esi,ebp
1058
	add	esi,ebp
1057
	clc
1059
	clc
1058
	ret
1060
	ret
1059
      no_symbol:
1061
      no_symbol: