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.
 |