skip the tests which use floating point instructions (as their emulators don't support them).
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			602 B
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			602 B
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
#
 | 
						|
(*$U+ -- enables underscores in identifiers *)
 | 
						|
 | 
						|
program pascalsets;
 | 
						|
 | 
						|
type
 | 
						|
    charset = set of char;
 | 
						|
 | 
						|
var
 | 
						|
    s : charset;
 | 
						|
    i : integer;
 | 
						|
 | 
						|
procedure finished;
 | 
						|
    extern;
 | 
						|
 | 
						|
procedure fail(line: integer);
 | 
						|
    extern;
 | 
						|
 | 
						|
#define ASSERT(cond) \
 | 
						|
    if (not (cond)) then fail(__LINE__)
 | 
						|
 | 
						|
begin
 | 
						|
    s := [];
 | 
						|
    for i := 0 to 255 do
 | 
						|
        s := s + [chr(i)];
 | 
						|
 | 
						|
    i := 99; (* to defeat optimisation *)
 | 
						|
    ASSERT(chr(42) in s);
 | 
						|
    ASSERT(chr(142) in s);
 | 
						|
    ASSERT(chr(i) in s);
 | 
						|
    s := s - [chr(42)];
 | 
						|
    ASSERT(not(chr(42) in s));
 | 
						|
    ASSERT(chr(142) in s);
 | 
						|
    ASSERT(chr(i) in s);
 | 
						|
 | 
						|
    finished
 | 
						|
end.
 |