OSDN Git Service

-- NestedCommentLexer、StringLexerの実装を完了。
[simplecms/utakata.git] / lexeme_impl.h
1 #ifndef _LEXEME_IMPL_H_
2 #define _LEXEME_IMPL_H_
3
4 #include "lexeme.h"
5 #include "smart_ptr.h"
6
7 // lexemeの様々な実装を定義する。
8 namespace utakata {
9
10     namespace lexeme {
11
12         // 各lexemeをsmart_ptrにして取得する。
13         smart_ptr<ILexeme> makeOpenParen();
14         smart_ptr<ILexeme> makeCloseParen();
15         smart_ptr<ILexeme> makeBackQuote();
16         smart_ptr<ILexeme> makeQuote();
17         smart_ptr<ILexeme> makeDot();
18         smart_ptr<ILexeme> makeUnquoteSplicing(const utakata::utf8_string::UTF8String& str);
19         smart_ptr<ILexeme> makeUnquote();
20         smart_ptr<ILexeme> makeSyntax();
21         smart_ptr<ILexeme> makeQuasiSyntax();
22         smart_ptr<ILexeme> makeUnsyntaxSplicing();
23         smart_ptr<ILexeme> makeUnsyntax();
24         smart_ptr<ILexeme> makeIdentifier(const utakata::utf8_string::UTF8String& str);
25         smart_ptr<ILexeme> makeNumber(const utakata::utf8_string::UTF8String& str);
26         smart_ptr<ILexeme> makeCharactor(const utakata::utf8_string::UTF8String& str);
27     };
28
29 };
30
31 #endif /* _LEXEME_IMPL_H_ */