Compiler/AST interpreter: Difference between revisions

Content added Content deleted
(Added)
(→‎{{header|ALGOL W}}: minor bug fix)
Line 222: Line 222:
sLen := sLen + 1;
sLen := sLen + 1;
lPos := lPos + 1;
lPos := lPos + 1;
while lPos <= 255 and line( lPos // 1 ) not = terminator and line( lPos // 1 ) not = "!" do begin
while lPos <= 255 and line( lPos // 1 ) not = terminator do begin
str( sLen // 1 ) := line( lPos // 1 );
str( sLen // 1 ) := line( lPos // 1 );
sLen := sLen + 1;
sLen := sLen + 1;
Line 263: Line 263:
integer n;
integer n;
n := 0;
n := 0;
while line( lPos // 1 ) not = " " and line( lPos // 1 ) not = "!" do begin
while line( lPos // 1 ) not = " " do begin
n := ( n * 10 ) + ( decode( line( lPos // 1 ) ) - decode( "0" ) );
n := ( n * 10 ) + ( decode( line( lPos // 1 ) ) - decode( "0" ) );
lPos := lPos + 1
lPos := lPos + 1
Line 278: Line 278:
while line( lPos // 1 ) = " " do lPos := lPos + 1;
while line( lPos // 1 ) = " " do lPos := lPos + 1;
name := "";
name := "";
while lPos < 256 and line( lPos // 1 ) not = " " and line( lPos // 1 ) not = "!" do begin
while lPos < 256 and line( lPos // 1 ) not = " " do begin
name( tPos // 1 ) := line( lPos // 1 );
name( tPos // 1 ) := line( lPos // 1 );
lPos := lPos + 1;
lPos := lPos + 1;