1 #if !defined(LISP_SYMBOL_H_INCLUDED)
2 #define LISP_SYMBOL_H_INCLUDED
8 struct Symbol
: public LispObj
10 void make(const CharType
*symname
)
14 object
.setType(eSymbolObj
);
17 while (*symname
!= '\0')
24 object
.values
.resize(i
);
25 symname
= symname
- i
;
27 while(*symname
!= '\0')
29 object
.values
.push_back( LispValue( *symname
) );
35 std::size_t length() const
37 return object
.values
.size();
40 bool operator==(const Symbol
& sym
)
42 if (sym
.length() == length())
47 while ((i
< length()) && result
)
50 CharType(sym
.object
.values
[i
]) ==
51 CharType(object
.values
[i
]) );
60 } // end namespace lisp