Support named identifiers on the right side
This commit is contained in:
523
boot/stage2.elna
523
boot/stage2.elna
@@ -22,9 +22,9 @@ var
|
||||
loca0: Word
|
||||
loca4: Word
|
||||
loca8: Word
|
||||
loca12: ^Byte
|
||||
loca16: Word
|
||||
loca20: Word
|
||||
loca12: ^Byte
|
||||
loca24: Bool
|
||||
begin
|
||||
_build_expression(0);
|
||||
@@ -79,16 +79,16 @@ begin
|
||||
_build_expression(1);
|
||||
|
||||
loca0 := 0x627573;
|
||||
_write_out(@loca0, 3);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(3, @loca0);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca8);
|
||||
|
||||
loca0 := 0x7a716573;
|
||||
_write_out(@loca0, 4);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca4, 3);
|
||||
_put_char(0x0a);
|
||||
_write_s(4, @loca0);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(3, @loca4);
|
||||
_write_c(0x0a);
|
||||
|
||||
goto .Lbuild_binary_expression_end;
|
||||
|
||||
@@ -96,10 +96,10 @@ begin
|
||||
_advance(1);
|
||||
_build_expression(1);
|
||||
loca0 := 0x646e61;
|
||||
_write_out(@loca0, 3);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(3, @loca0);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca8);
|
||||
|
||||
goto .Lbuild_binary_expression_end;
|
||||
|
||||
@@ -107,10 +107,10 @@ begin
|
||||
_advance(2);
|
||||
_build_expression(1);
|
||||
loca0 := 0x726f;
|
||||
_write_out(@loca0, 2);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(2, @loca0);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca8);
|
||||
|
||||
goto .Lbuild_binary_expression_end;
|
||||
|
||||
@@ -118,10 +118,10 @@ begin
|
||||
_advance(1);
|
||||
_build_expression(1);
|
||||
loca0 := 0x646461;
|
||||
_write_out(@loca0, 3);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(3, @loca0);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca8);
|
||||
|
||||
goto .Lbuild_binary_expression_end;
|
||||
|
||||
@@ -129,10 +129,10 @@ begin
|
||||
_advance(1);
|
||||
_build_expression(1);
|
||||
loca0 := 0x627573;
|
||||
_write_out(@loca0, 3);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(3, @loca0);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca8);
|
||||
|
||||
goto .Lbuild_binary_expression_end;
|
||||
|
||||
@@ -140,10 +140,10 @@ begin
|
||||
_advance(1);
|
||||
_build_expression(1);
|
||||
loca0 := 0x6c756d;
|
||||
_write_out(@loca0, 3);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca4, 4);
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(3, @loca0);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca4);
|
||||
_write_s(4, @loca8);
|
||||
|
||||
goto .Lbuild_binary_expression_end;
|
||||
|
||||
@@ -151,6 +151,15 @@ begin
|
||||
end
|
||||
|
||||
proc _compile_identifier_expression(loca84: Word, loca80: Byte)
|
||||
var
|
||||
loca0: Word
|
||||
loca4: ^Byte
|
||||
loca8: Word
|
||||
loca12: Bool
|
||||
loca16: Word
|
||||
loca20: Word
|
||||
loca24: ^Byte
|
||||
loca28: Byte
|
||||
begin
|
||||
loca24 := _current();
|
||||
loca0 := 0x61636f6c;
|
||||
@@ -158,17 +167,17 @@ begin
|
||||
|
||||
if loca0 = 0 then
|
||||
loca8 := 0x6120776c;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x00202c00 or loca80;
|
||||
_write_out(@loca8, 3);
|
||||
_write_s(3, @loca8);
|
||||
|
||||
loca4 := loca24 + 4;
|
||||
loca0 := loca84 - 4;
|
||||
_write_out(loca4, loca0);
|
||||
_write_s(loca0, loca4);
|
||||
|
||||
loca8 := 0x29707328;
|
||||
_write_out(@loca8, 4);
|
||||
_put_char(0x0a);
|
||||
_write_s(4, @loca8);
|
||||
_write_c(0x0a);
|
||||
|
||||
goto .Lcompile_identifier_expression_end
|
||||
end;
|
||||
@@ -177,32 +186,32 @@ begin
|
||||
loca12 := loca0 = 0x73;
|
||||
if loca8 & loca12 then
|
||||
loca8 := 0x6120766d;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x00202c00 or loca80;
|
||||
_write_out(@loca8, 3);
|
||||
_write_out(loca24, loca84);
|
||||
_put_char(0x0a);
|
||||
_write_s(3, @loca8);
|
||||
_write_s(loca84, loca24);
|
||||
_write_c(0x0a);
|
||||
|
||||
goto .Lcompile_identifier_expression_end
|
||||
end;
|
||||
|
||||
loca8 := 0x6120616c;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x00202c00 or loca80;
|
||||
_write_out(@loca8, 3);
|
||||
_write_s(3, @loca8);
|
||||
|
||||
_write_out(loca24, loca84);
|
||||
_put_char(0x0a);
|
||||
_write_s(loca84, loca24);
|
||||
_write_c(0x0a);
|
||||
|
||||
if _is_upper(loca0) then
|
||||
loca8 := 0x6120776c;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x28202c00 or loca28;
|
||||
_write_out(@loca8, 4);
|
||||
_put_char(0x61);
|
||||
_put_char(loca28);
|
||||
_put_char(0x29);
|
||||
_put_char(0x0a);
|
||||
_write_s(4, @loca8);
|
||||
_write_c(0x61);
|
||||
_write_c(loca28);
|
||||
_write_c(0x29);
|
||||
_write_c(0x0a);
|
||||
|
||||
goto .Lcompile_identifier_expression_end
|
||||
end;
|
||||
@@ -210,14 +219,16 @@ begin
|
||||
.Lcompile_identifier_expression_end
|
||||
end
|
||||
|
||||
proc _build_expression()
|
||||
proc _build_expression(loca84: Word)
|
||||
var
|
||||
loca0: Word
|
||||
loca20: Word
|
||||
loca28: Word
|
||||
loca8: Word
|
||||
loca24: ^Byte
|
||||
loca4: ^Byte
|
||||
loca8: Word
|
||||
loca12: Word
|
||||
loca16: Word
|
||||
loca20: Word
|
||||
loca24: ^Byte
|
||||
loca28: Word
|
||||
begin
|
||||
loca28 := loca84 + 0x30;
|
||||
|
||||
@@ -250,24 +261,24 @@ begin
|
||||
_build_expression(0);
|
||||
|
||||
loca8 := 0x2067656e;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x202c3061;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x0a3061;
|
||||
_write_out(@loca8, 3);
|
||||
_write_s(3, @loca8);
|
||||
|
||||
goto .Lbuild_expression_advance;
|
||||
|
||||
.Lbuild_expression_address;
|
||||
loca8 := 0x69646461;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x6120;
|
||||
_write_out(@loca8, 2);
|
||||
_put_char(loca28);
|
||||
_write_s(2, @loca8);
|
||||
_write_c(loca28);
|
||||
loca8 := 0x7073202c;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x202c;
|
||||
_write_out(@loca8, 2);
|
||||
_write_s(2, @loca8);
|
||||
|
||||
_advance(1);
|
||||
_skip_spaces();
|
||||
@@ -276,9 +287,9 @@ begin
|
||||
|
||||
loca4 := loca24 + 4;
|
||||
loca0 := loca20 - 4;
|
||||
_write_out(loca4, loca0);
|
||||
_write_s(loca0, loca4);
|
||||
|
||||
_put_char(0xa);
|
||||
_write_c(0xa);
|
||||
|
||||
goto .Lbuild_expression_advance;
|
||||
|
||||
@@ -291,12 +302,12 @@ begin
|
||||
|
||||
.Lbuild_expression_literal;
|
||||
loca8 := 0x6120696c;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca8 := 0x00202c00 or loca28;
|
||||
_write_out(@loca8, 3);
|
||||
_write_s(3, @loca8);
|
||||
|
||||
_write_out(loca24, loca20);
|
||||
_put_char(0x0a);
|
||||
_write_s(loca20, loca24);
|
||||
_write_c(0x0a);
|
||||
|
||||
goto .Lbuild_expression_advance;
|
||||
|
||||
@@ -309,23 +320,27 @@ end
|
||||
proc _compile_designator_expression(loca84: ^Byte, loca80: Word)
|
||||
var
|
||||
loca0: Word
|
||||
loca4: Int
|
||||
loca8: Char
|
||||
loca12: Bool
|
||||
loca16: Bool
|
||||
begin
|
||||
loca0 := 0x61636f6c;
|
||||
loca4 := _memcmp(@loca0, loca84, 4);
|
||||
|
||||
if loca4 = 0 then
|
||||
loca0 := 0x61207773;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x202c30;
|
||||
_write_out(@loca0, 3);
|
||||
_write_s(3, @loca0);
|
||||
|
||||
loca84 := loca84 + 4;
|
||||
loca80 := loca80 - 4;
|
||||
_write_out(loca84, loca80);
|
||||
_write_s(loca80, loca84);
|
||||
|
||||
loca0 := 0x29707328;
|
||||
_write_out(@loca0, 4);
|
||||
_put_char(0x0a);
|
||||
_write_s(4, @loca0);
|
||||
_write_c(0x0a);
|
||||
|
||||
goto .Lcompile_designator_expression_end
|
||||
end;
|
||||
@@ -334,11 +349,11 @@ begin
|
||||
loca16 := loca80 = 2;
|
||||
if loca12 & loca16 then
|
||||
loca0 := 0x20766d;
|
||||
_write_out(@loca0, 3);
|
||||
_write_out(loca84, loca80);
|
||||
_write_s(3, @loca0);
|
||||
_write_s(loca80, loca84);
|
||||
loca0 := 0x3061202c;
|
||||
_write_out(@loca0, 4);
|
||||
_put_char(0x0a);
|
||||
_write_s(4, @loca0);
|
||||
_write_c(0x0a);
|
||||
|
||||
goto .Lcompile_designator_expression_end
|
||||
end;
|
||||
@@ -349,11 +364,11 @@ end
|
||||
proc _compile_identifier()
|
||||
var
|
||||
loca0: Word
|
||||
loca16: Word
|
||||
loca8: Word
|
||||
loca20: ^Byte
|
||||
loca12: ^Byte
|
||||
loca4: Bool
|
||||
loca8: Word
|
||||
loca12: ^Byte
|
||||
loca16: Word
|
||||
loca20: ^Byte
|
||||
begin
|
||||
loca20 := _current();
|
||||
loca16 := _read_token();
|
||||
@@ -388,8 +403,8 @@ proc _compile_call(loca84: ^Byte, loca80: Word)
|
||||
var
|
||||
loca0: Word
|
||||
loca4: Word
|
||||
loca12: Word
|
||||
loca8: ^Byte
|
||||
loca12: Word
|
||||
begin
|
||||
loca12 := 0;
|
||||
|
||||
@@ -404,17 +419,17 @@ begin
|
||||
_build_expression(0);
|
||||
|
||||
loca0 := 0x61207773;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x202c30;
|
||||
_write_out(@loca0, 3);
|
||||
_write_s(3, @loca0);
|
||||
|
||||
loca0 := -4 * loca12;
|
||||
loca0 := loca0 + 60;
|
||||
_printi(loca0);
|
||||
_write_i(loca0);
|
||||
|
||||
loca0 := 0x29707328;
|
||||
_write_out(@loca0, 4);
|
||||
_put_char(0x0a);
|
||||
_write_s(4, @loca0);
|
||||
_write_c(0x0a);
|
||||
|
||||
_skip_spaces();
|
||||
loca8 := _current();
|
||||
@@ -434,60 +449,60 @@ begin
|
||||
.Lcompile_call_restore;
|
||||
|
||||
loca0 := 0x6120776c;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x36202c30;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x70732830;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x0a29;
|
||||
_write_out(@loca4, 2);
|
||||
_write_s(2, @loca4);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x35202c31;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x70732836;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x0a29;
|
||||
_write_out(@loca4, 2);
|
||||
_write_s(2, @loca4);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x35202c32;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x70732832;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x0a29;
|
||||
_write_out(@loca4, 2);
|
||||
_write_s(2, @loca4);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x34202c33;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x70732838;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x0a29;
|
||||
_write_out(@loca4, 2);
|
||||
_write_s(2, @loca4);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x34202c34;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x70732834;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x0a29;
|
||||
_write_out(@loca4, 2);
|
||||
_write_s(2, @loca4);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x34202c35;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x70732830;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca4 := 0x0a29;
|
||||
_write_out(@loca4, 2);
|
||||
_write_s(2, @loca4);
|
||||
|
||||
loca0 := 0x6c6c6163;
|
||||
_write_out(@loca0, 4);
|
||||
_put_char(0x20);
|
||||
_write_s(4, @loca0);
|
||||
_write_c(0x20);
|
||||
|
||||
_write_out(loca84, loca80);
|
||||
_put_char(0x0a);
|
||||
_write_s(loca80, loca84);
|
||||
_write_c(0x0a);
|
||||
|
||||
_skip_spaces();
|
||||
_advance(1)
|
||||
@@ -623,10 +638,10 @@ var loca0: ^Byte
|
||||
begin
|
||||
loca0 := _current();
|
||||
|
||||
_write_out(loca0, loca84);
|
||||
_write_s(loca84, loca0);
|
||||
_advance(loca84);
|
||||
|
||||
_put_char(0xa);
|
||||
_write_c(0xa);
|
||||
|
||||
_advance(1)
|
||||
end
|
||||
@@ -635,13 +650,13 @@ proc _compile_program()
|
||||
var loca0: Word
|
||||
begin
|
||||
loca0 := 0x6f6c672e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x206c6162;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6174735f;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a7472;
|
||||
_write_out(@loca0, 3);
|
||||
_write_s(3, @loca0);
|
||||
|
||||
_advance(8)
|
||||
end
|
||||
@@ -652,15 +667,15 @@ var
|
||||
loca4: ^Byte
|
||||
begin
|
||||
loca0 := 0x6365732e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6e6f6974;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6f722e20;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x61746164;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a;
|
||||
_write_out(@loca0, 1);
|
||||
_write_s(1, @loca0);
|
||||
|
||||
_advance(6);
|
||||
|
||||
@@ -685,25 +700,25 @@ begin
|
||||
loca4 := _read_token();
|
||||
loca8 := _current();
|
||||
|
||||
_write_out(loca8, loca4);
|
||||
_write_s(loca4, loca8);
|
||||
_advance(loca4);
|
||||
|
||||
_skip_spaces();
|
||||
_advance(2);
|
||||
|
||||
loca0 := 0x6c2e203a;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x20676e6f;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
_skip_spaces();
|
||||
loca4 := _read_token();
|
||||
loca8 := _current();
|
||||
|
||||
_write_out(loca8, loca4);
|
||||
_write_s(loca4, loca8);
|
||||
_advance(loca4);
|
||||
|
||||
_put_char(0x0a)
|
||||
_write_c(0x0a)
|
||||
end
|
||||
|
||||
proc _compile_variable_section()
|
||||
@@ -712,13 +727,13 @@ var
|
||||
loca4: ^Byte
|
||||
begin
|
||||
loca0 := 0x6365732e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6e6f6974;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x73622e20;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a73;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
_advance(4);
|
||||
|
||||
@@ -740,11 +755,14 @@ end
|
||||
|
||||
proc _compile_variable()
|
||||
var
|
||||
loca28: ^Byte
|
||||
loca16: ^Byte
|
||||
loca0: Word
|
||||
loca24: Word
|
||||
loca4: Word
|
||||
loca8: Word
|
||||
loca12: Word
|
||||
loca16: ^Byte
|
||||
loca20: Word
|
||||
loca24: Word
|
||||
loca28: ^Byte
|
||||
begin
|
||||
loca24 := _read_token();
|
||||
loca28 := _current();
|
||||
@@ -769,42 +787,42 @@ begin
|
||||
_advance(loca0);
|
||||
|
||||
loca0 := 0x7079742e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x2065;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
_write_out(loca28, loca24);
|
||||
_write_s(loca24, loca28);
|
||||
|
||||
loca0 := 0x6f40202c;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x63656a62;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a74;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
loca0 := 0x7a69732e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x2065;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
_write_out(loca28, loca24);
|
||||
_write_s(loca24, loca28);
|
||||
|
||||
loca0 := 0x202c;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
_write_out(loca20, loca16);
|
||||
_put_char(0x0a);
|
||||
_write_s(loca16, loca20);
|
||||
_write_c(0x0a);
|
||||
|
||||
_write_out(loca28, loca24);
|
||||
_write_s(loca24, loca28);
|
||||
|
||||
loca0 := 0x7a2e203a;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x206f7265;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
_write_out(loca20, loca16);
|
||||
_write_s(loca16, loca20);
|
||||
|
||||
_put_char(0x0a)
|
||||
_write_c(0x0a)
|
||||
end
|
||||
|
||||
proc _compile_procedure()
|
||||
@@ -823,23 +841,23 @@ begin
|
||||
_advance(loca16);
|
||||
|
||||
loca0 := 0x7079742e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x2065;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
_write_out(loca20, loca16);
|
||||
_write_s(loca16, loca20);
|
||||
|
||||
loca0 := 0x6640202c;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x74636e75;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a6e6f69;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
_write_out(loca20, loca16);
|
||||
_write_s(loca16, loca20);
|
||||
|
||||
loca0 := 0x0a3a;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
_skip_spaces();
|
||||
_advance(1);
|
||||
@@ -862,85 +880,85 @@ begin
|
||||
end;
|
||||
|
||||
loca0 := 0x69646461;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
loca0 := 0x2c707320;
|
||||
_write_out(@loca0, 4);
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
loca0 := 0x0a36392d;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
loca0 := 0x72207773;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x39202c61;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x70732832;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a29;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
loca0 := 0x73207773;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x38202c30;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x70732838;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a29;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
loca0 := 0x69646461;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x2c307320;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x2c707320;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a363920;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
loca0 := 0x61207773;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x38202c30;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca8 := 0x70732834;
|
||||
_write_out(@loca8, 4);
|
||||
_write_s(4, @loca8);
|
||||
loca12 := 0x0a29;
|
||||
_write_out(@loca12, 2);
|
||||
_write_s(2, @loca12);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x38202c31;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca8 := 0x70732830;
|
||||
_write_out(@loca8, 4);
|
||||
_write_out(@loca12, 2);
|
||||
_write_s(4, @loca8);
|
||||
_write_s(2, @loca12);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x37202c32;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca8 := 0x70732836;
|
||||
_write_out(@loca8, 4);
|
||||
_write_out(@loca12, 2);
|
||||
_write_s(4, @loca8);
|
||||
_write_s(2, @loca12);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x37202c33;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca8 := 0x70732832;
|
||||
_write_out(@loca8, 4);
|
||||
_write_out(@loca12, 2);
|
||||
_write_s(4, @loca8);
|
||||
_write_s(2, @loca12);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x36202c34;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca8 := 0x70732838;
|
||||
_write_out(@loca8, 4);
|
||||
_write_out(@loca12, 2);
|
||||
_write_s(4, @loca8);
|
||||
_write_s(2, @loca12);
|
||||
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca4 := 0x36202c35;
|
||||
_write_out(@loca4, 4);
|
||||
_write_s(4, @loca4);
|
||||
loca8 := 0x70732838;
|
||||
_write_out(@loca8, 4);
|
||||
_write_out(@loca12, 2);
|
||||
_write_s(4, @loca8);
|
||||
_write_s(2, @loca12);
|
||||
|
||||
.Lcompile_procedure_body;
|
||||
_skip_spaces();
|
||||
@@ -960,43 +978,43 @@ begin
|
||||
_advance(4);
|
||||
|
||||
loca0 := 0x7220776c;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x39202c61;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x70732832;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a29;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
loca0 := 0x7320776c;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x38202c30;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x70732838;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a29;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
loca0 := 0x69646461;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
loca0 := 0x2c707320;
|
||||
_write_out(@loca0, 4);
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
loca0 := 0x0a3639;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
loca0 := 0x0a746572;
|
||||
_write_out(@loca0, 4)
|
||||
_write_s(4, @loca0)
|
||||
end
|
||||
|
||||
proc _token_compare(loca84: ^Byte, loca80: Word, loca76: ^Byte)
|
||||
var
|
||||
loca0: Bool
|
||||
loca4: Byte
|
||||
loca12: Byte
|
||||
loca8: Word
|
||||
loca12: Byte
|
||||
begin
|
||||
.Ltoken_compare_loop;
|
||||
loca4 := _front(loca76);
|
||||
@@ -1038,12 +1056,13 @@ end
|
||||
proc _compile_goto()
|
||||
var
|
||||
loca0: Word
|
||||
loca4: Word
|
||||
loca8: ^Byte
|
||||
begin
|
||||
_advance(4);
|
||||
|
||||
loca0 := 0x206a;
|
||||
_write_out(@loca0, 2);
|
||||
_write_s(2, @loca0);
|
||||
|
||||
_skip_spaces();
|
||||
loca8 := _current();
|
||||
@@ -1052,15 +1071,16 @@ begin
|
||||
loca0 := _read_token();
|
||||
_advance(loca0);
|
||||
loca0 := loca0 + 1;
|
||||
_write_out(loca8, loca0);
|
||||
_write_s(loca0, loca8);
|
||||
|
||||
_advance(1);
|
||||
_put_char(0x0a)
|
||||
_write_c(0x0a)
|
||||
end
|
||||
|
||||
proc _compile_label(loca84: Word)
|
||||
var
|
||||
loca0: Word
|
||||
loca4: Word
|
||||
begin
|
||||
loca0 := _current();
|
||||
|
||||
@@ -1072,10 +1092,10 @@ begin
|
||||
if loca0 = 0x3b then
|
||||
loca4 := loca4 - 1
|
||||
end;
|
||||
_write_out(s1, loca4);
|
||||
_write_s(loca4, s1);
|
||||
|
||||
_put_char(0x3a);
|
||||
_put_char(0x0a);
|
||||
_write_c(0x3a);
|
||||
_write_c(0x0a);
|
||||
|
||||
_advance(loca84)
|
||||
end
|
||||
@@ -1089,11 +1109,12 @@ end
|
||||
|
||||
proc _compile_if()
|
||||
var
|
||||
loca0: Word
|
||||
loca4: ^Byte
|
||||
loca8: Word
|
||||
loca12: Word
|
||||
loca16: Word
|
||||
loca20: Word
|
||||
loca4: ^Byte
|
||||
begin
|
||||
_advance(2);
|
||||
_skip_spaces();
|
||||
@@ -1107,15 +1128,15 @@ begin
|
||||
loca16 := 0x66694c2e;
|
||||
|
||||
loca12 := 0x7a716562;
|
||||
_write_out(@loca12, 4);
|
||||
_write_s(4, @loca12);
|
||||
loca12 := 0x2c306120;
|
||||
_write_out(@loca12, 4);
|
||||
_put_char(0x20);
|
||||
_write_s(4, @loca12);
|
||||
_write_c(0x20);
|
||||
|
||||
_write_out(@loca16, 4);
|
||||
_printi(s2);
|
||||
_write_s(4, @loca16);
|
||||
_write_i(s2);
|
||||
|
||||
_put_char(0x0a);
|
||||
_write_c(0x0a);
|
||||
|
||||
.Lcompile_if_loop;
|
||||
_skip_spaces();
|
||||
@@ -1131,11 +1152,11 @@ begin
|
||||
goto .Lcompile_if_loop
|
||||
end;
|
||||
|
||||
_write_out(@loca16, 4);
|
||||
_printi(s2);
|
||||
_write_s(4, @loca16);
|
||||
_write_i(s2);
|
||||
|
||||
loca12 := 0x0a3a0a3a;
|
||||
_write_out(@loca12, 2);
|
||||
_write_s(2, @loca12);
|
||||
|
||||
s2 := s2 + 1;
|
||||
_advance(4)
|
||||
@@ -1316,34 +1337,34 @@ proc _compile_text_section()
|
||||
var loca0: Word
|
||||
begin
|
||||
loca0 := 0x6365732e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6e6f6974;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x65742e20;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a7478;
|
||||
_write_out(@loca0, 3)
|
||||
_write_s(3, @loca0)
|
||||
end
|
||||
|
||||
proc _compile_entry_point()
|
||||
var loca0: Word
|
||||
begin
|
||||
loca0 := 0x7079742e;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x735f2065;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x74726174;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6640202c;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x74636e75;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a6e6f69;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6174735f;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a3a7472;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
|
||||
_advance(6)
|
||||
end
|
||||
@@ -1352,19 +1373,19 @@ proc _compile_exit()
|
||||
var loca0: Word
|
||||
begin
|
||||
loca0 := 0x6120696c;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x30202c30;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x20696c0a;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x202c3761;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x650a3339;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x6c6c6163;
|
||||
_write_out(@loca0, 4);
|
||||
_write_s(4, @loca0);
|
||||
loca0 := 0x0a;
|
||||
_write_out(@loca0, 1);
|
||||
_write_s(1, @loca0);
|
||||
|
||||
_advance(4);
|
||||
_skip_spaces()
|
||||
|
Reference in New Issue
Block a user