7 #include "../simpletest.h"
9 #include "../TextArrayFormat.h"
12 #include "../lexeme.h"
13 #include "../lexeme_id.h"
17 using namespace utakata;
19 bool lexer_test(smart_ptr<simpletest::SimpleTestAsserter> asserter)
22 ss << "==========" << endl;
23 ss << "(hoge)" << endl;
25 textarrayformat::TextArrayReader reader(ss);
26 smart_ptr<istream> formats(new stringstream(reader.get()));
27 smart_ptr<utakata::utf8::UTF8InputStream> st;
28 st.add(new utakata::utf8::UTF8InputStream(formats));
30 utakata::lexer::Lexer lexer;
32 smart_ptr<lexeme::ILexeme> m(lexer.lex(st));
33 asserter->check(m->toString()->toStr(), "(");
36 asserter->check(m->getID(), idp->openParenthesis);
39 asserter->check(m->getID(), idp->string);
42 asserter->check(m->getID(), idp->closeParenthesis);
44 // ここで終了しているはず。EOFの状態から実行されると、EOFのIDを持った
47 asserter->check(m->getID(), idp->eof);
52 int main(int argc, char *argv[])
54 simpletest::SimpleTestSuite suite("main lexer test");
55 suite.addTester(sfcr::screate(lexer_test, suite.getAsserter()));
56 // suite.addTester(sfcr::screate(utf8_string_test, suite.getAsserter()));
57 // suite.addTester(sfcr::screate(utf8_string_util_test, suite.getAsserter()));