File indexing completed on 2026-05-19 08:08:31
0001
0002
0003 #ifndef _CL_INPUT_H
0004 #define _CL_INPUT_H
0005
0006 #include "cln/types.h"
0007 #include "cln/floatformat.h"
0008 #include "cln/io.h"
0009
0010 namespace cln {
0011
0012 struct cl_read_float_flags {
0013
0014 float_format_t default_float_format;
0015
0016 float_format_t default_lfloat_format;
0017
0018
0019
0020 bool mantissa_dependent_float_format;
0021 };
0022
0023
0024 enum cl_read_syntax_t {
0025 syntax_integer = 1 << 0,
0026 syntax_ratio = 1 << 1,
0027 syntax_rational = syntax_integer | syntax_ratio,
0028 syntax_sfloat = 1 << 2,
0029 syntax_ffloat = 1 << 3,
0030 syntax_dfloat = 1 << 4,
0031 syntax_lfloat = 1 << 5,
0032 syntax_float = syntax_sfloat | syntax_ffloat | syntax_dfloat | syntax_lfloat,
0033
0034 syntax_real = syntax_rational | syntax_float,
0035 syntax_complex = 1 << 6,
0036 syntax_number = syntax_real | syntax_complex,
0037 syntax_maybe_bad = 1 << 7
0038 };
0039
0040
0041 enum cl_read_lsyntax_t {
0042
0043 lsyntax_standard = 0,
0044
0045 lsyntax_algebraic = 1 << 0,
0046
0047 lsyntax_commonlisp = 1 << 1,
0048
0049 lsyntax_all = lsyntax_algebraic | lsyntax_commonlisp
0050 };
0051
0052 struct cl_read_flags {
0053 cl_read_syntax_t syntax;
0054 cl_read_lsyntax_t lsyntax;
0055 unsigned int rational_base;
0056 cl_read_float_flags float_flags;
0057 };
0058
0059 }
0060
0061 #endif