June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -0,0 +1,43 @@
|
|||
begin
|
||||
% determines the non-comment portion of the string s, startPos and endPos are %
|
||||
% returned set to the beginning and ending character positions (indexed from 0) %
|
||||
% of the non-comment text in s. If there is no non-comment text in s, startPos %
|
||||
% will be greater than endPos %
|
||||
% note that in Algol W, strings can be at most 256 characters long %
|
||||
procedure stripComments ( string(256) value s; integer result startPos, endPos ) ;
|
||||
begin
|
||||
integer MAX_LENGTH;
|
||||
MAX_LENGTH := 256;
|
||||
startPos := 0;
|
||||
endPos := -1;
|
||||
% find the first non-blank character in s %
|
||||
while startPos < MAX_LENGTH and s( startPos // 1 ) = " " do startPos := startPos + 1;
|
||||
if startPos < MAX_LENGTH then begin
|
||||
% have a non-blank character in the string %
|
||||
if s( startPos // 1 ) not = "#" and s( startPos // 1 ) not = ";" then begin
|
||||
% the non-blank character is not a comment delimiter %
|
||||
integer cPos;
|
||||
cPos := endPos := startPos;
|
||||
while cPos < MAX_LENGTH and s( cPos // 1 ) not = "#" and s( cPos // 1 ) not = ";" do begin
|
||||
if s( cPos // 1 ) not = " " then endPos := cPos;
|
||||
cPos := cPos + 1
|
||||
end while_not_a_comment
|
||||
end if_not_a_comment
|
||||
end if_startPos_lt_MAX_LENGTH
|
||||
end stripComments ;
|
||||
% tests the stripComments procedure %
|
||||
procedure testStripComments( string(256) value s ) ;
|
||||
begin
|
||||
integer startPos, endPos;
|
||||
stripComments( s, startPos, endPos );
|
||||
write( """" );
|
||||
for cPos := startPos until endPos do writeon( s( cPos // 1 ) );
|
||||
writeon( """" )
|
||||
end testStripComments ;
|
||||
begin % test cases - should all print "apples, pears" %
|
||||
testStripComments( "apples, pears # and bananas" );
|
||||
testStripComments( "apples, pears ; and bananas" );
|
||||
testStripComments( "apples, pears " );
|
||||
testStripComments( " apples, pears" )
|
||||
end
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue