You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							61 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							61 lines
						
					
					
						
							1.9 KiB
						
					
					
				| // Input functions. | |
|  | |
| #ifndef _CL_INPUT_H | |
| #define _CL_INPUT_H | |
|  | |
| #include "cln/types.h" | |
| #include "cln/floatformat.h" | |
| #include "cln/io.h" | |
|  | |
| namespace cln { | |
| 
 | |
| struct cl_read_float_flags { | |
| 	// The float format used when reading floats with exponent marker 'E'. | |
| 	float_format_t default_float_format; | |
| 	// The float format used when reading floats with exponent marker 'L'. | |
| 	float_format_t default_lfloat_format; | |
| 	// Flag whether floats specified with more digits than corresponding | |
| 	// to the exponent marker they contain, but without _nnn suffix, will | |
| 	// get a precision corresponding to their number of significant digits. | |
| 	bool mantissa_dependent_float_format; | |
| }; | |
| 
 | |
| // Specifies the possible results of a read operation. | |
| enum cl_read_syntax_t { | |
| 	syntax_integer = 1 << 0,				// -> cl_I | |
| 	syntax_ratio = 1 << 1,					// -> cl_RA | |
| 	syntax_rational = syntax_integer | syntax_ratio,	// -> cl_RA | |
| 	syntax_sfloat = 1 << 2,					// -> cl_SF | |
| 	syntax_ffloat = 1 << 3,					// -> cl_FF | |
| 	syntax_dfloat = 1 << 4,					// -> cl_DF | |
| 	syntax_lfloat = 1 << 5,					// -> cl_LF | |
| 	syntax_float = syntax_sfloat | syntax_ffloat | syntax_dfloat | syntax_lfloat, | |
| 								// -> cl_F | |
| 	syntax_real = syntax_rational | syntax_float,		// -> cl_R | |
| 	syntax_complex = 1 << 6,				// -> cl_N | |
| 	syntax_number = syntax_real | syntax_complex,		// -> cl_N | |
| 	syntax_maybe_bad = 1 << 7				// avoid errors | |
| }; | |
| 
 | |
| // Specifies the syntax to be applied to a read operation. | |
| enum cl_read_lsyntax_t { | |
| 		// Standard algebraic notation. | |
| 	lsyntax_standard = 0, | |
| 		// Extended algebraic notation: x+yi | |
| 	lsyntax_algebraic = 1 << 0, | |
| 		// Common Lisp notation: #b, #o, #x, #r, #c | |
| 	lsyntax_commonlisp = 1 << 1, | |
| 		// All of them. | |
| 	lsyntax_all = lsyntax_algebraic | lsyntax_commonlisp | |
| }; | |
| 
 | |
| struct cl_read_flags { | |
| 	cl_read_syntax_t syntax; | |
| 	cl_read_lsyntax_t lsyntax; | |
| 	unsigned int rational_base; | |
| 	cl_read_float_flags float_flags; | |
| }; | |
| 
 | |
| }  // namespace cln | |
|  | |
| #endif /* _CL_INPUT_H */
 |