#include <vector>
#include <string>
-
#include "lexeme_impl.h"
#include "lexeme_id.h"
return smart_ptr<ILexeme>(new OpenParen());
}
+smart_ptr<ILexeme> utakata::lexeme::makeEOF()
+{
+ return smart_ptr<ILexeme>(new EOFToken());
+}
+
smart_ptr<ILexeme> utakata::lexeme::makeCloseParen()
{
return smart_ptr<ILexeme>(new CloseParen());
return smart_ptr<ILexeme>(new Identifier(str));
}
+smart_ptr<ILexeme> utakata::lexeme::makeString(const utakata::utf8_string::UTF8String& str)
+{
+ return smart_ptr<ILexeme>(new String(str));
+}
+
smart_ptr<ILexeme> utakata::lexeme::makeUnquoteSplicing(const utakata::utf8_string::UTF8String& str)
{
return smart_ptr<ILexeme>(new UnquoteSplicing());
return p;
}
+/////////
+// EOF //
+/////////
+
+int EOFToken::getID() const
+{
+ return IDProxy()->eof;
+}
+
+smart_ptr<utakata::utf8_string::UTF8String> EOFToken::toString() const
+{
+ smart_ptr<utakata::utf8_string::UTF8String> p(new utf8_string::UTF8String);
+ *p += std::string("");
+ return p;
+}
+
+
////////////////
// CloseParen //
////////////////
return str_;
}
+/////////////
+// String //
+/////////////
+
+String::String(const utakata::utf8_string::UTF8String& str) :
+ str_(new utakata::utf8_string::UTF8String(str))
+{}
+
+int String::getID() const
+{
+ return IDProxy()->string;
+}
+
+smart_ptr<utakata::utf8_string::UTF8String> String::toString() const
+{
+ return str_;
+}
+
////////////
// Number //
////////////