59 void AddChild(
SEXPR* aChild );
61 SEXPR * GetChild(
size_t aIndex )
const;
62 size_t GetNumberOfChildren()
const;
63 int64_t GetLongInteger()
const;
64 int32_t GetInteger()
const;
65 float GetFloat()
const;
66 double GetDouble()
const;
67 std::string
const & GetString()
const;
68 std::string
const & GetSymbol()
const;
70 std::string
AsString(
size_t aLevel = 0)
const;
160 type(
Type::INT ) {
u.int_value = aValue; }
163 type(
Type::LONGINT ) {
u.lint_value = aValue; }
166 type(
Type::DOUBLE ) {
u.dbl_value = aValue; }
169 type(
Type::STRING ) {
u.str_value = aValue; }
205 type(
Type::INT ) {
u.int_value = aValue; }
208 type(
Type::LONGINT ) {
u.lint_value = aValue; }
211 type(
Type::DOUBLE ) {
u.dbl_value = aValue; }
223 type(
Type::SEXPR_ATOM ) {
u.sexpr_ptr = aPointer; }
249 template <
typename... Args>
258 template <
typename... Args>
259 size_t Scan(
const Args&... args )
262 return doScan( arg_array,
sizeof...( Args ) );
265 template <
typename... Args>
std::vector< class SEXPR * > SEXPR_VECTOR
SEXPR_SCAN_ARG(int32_t *aValue)
SEXPR_CHILDREN_ARG(const char *aValue)
union SEXPR::SEXPR_CHILDREN_ARG::@36 u
SEXPR_SCAN_ARG(std::string aValue)
SEXPR_DOUBLE(double aValue)
SEXPR_INTEGER(int64_t aValue, int aLineNumber)
size_t GetLineNumber() const
SEXPR_SYMBOL(std::string aValue, int aLineNumber)
SEXPR_STRING(std::string aValue)
size_t doScan(const SEXPR_SCAN_ARG *args, size_t num_args)
SEXPR_LIST(int aLineNumber)
SEXPR_SYMBOL(std::string aValue)
friend SEXPR_LIST & operator<<(SEXPR_LIST &list, double value)
const std::string & _String
SEXPR_STRING(std::string aValue, int aLineNumber)
void doAddChildren(const SEXPR_CHILDREN_ARG *args, size_t num_args)
SEXPR_CHILDREN_ARG(double aValue)
void AddChildren(const Args &... args)
SEXPR_CHILDREN_ARG(int32_t aValue)
SEXPR_DOUBLE(double aValue, int aLineNumber)
SEXPR_SCAN_ARG(int64_t *aValue)
SEXPR_CHILDREN_ARG(SEXPR *aPointer)
size_t Scan(const Args &... args)
_OUT_STRING AsString(const std::string &aString)
_OUT_STRING AsSymbol(const std::string &aString)
SEXPR_CHILDREN_ARG(std::string aValue)
SEXPR_INTEGER(int64_t aValue)
SEXPR_CHILDREN_ARG(int64_t aValue)
SEXPR_CHILDREN_ARG(const _OUT_STRING &aValue)
SEXPR_SCAN_ARG(double *aValue)
friend SEXPR_LIST & operator>>(SEXPR_LIST &input, ISEXPRABLE &obj)
SEXPR_SCAN_ARG(_IN_STRING &aValue)
SEXPR_LIST(const Args &... args)
SEXPR_SCAN_ARG(const std::string *aValue)
SEXPR_SCAN_ARG(const char *aValue)
SEXPR_SCAN_ARG(std::string *aValue)
union SEXPR::SEXPR_SCAN_ARG::@35 u