OSDN Git Service

TextArrayFormatをtextarrayformatに変更した。
[simplecms/utakata.git] / test / parser_test.cpp
1 #include <iostream>
2 #include <sstream>
3 #include <string>
4 #include <functional>
5
6 #include "../simpletest.h"
7
8 #include "../textarrayformat.h"
9 #include "../utf8.h"
10 #include "../parser.h"
11 #include "../lexeme.h"
12 #include "../lexer.h"
13
14 using namespace std;
15 using namespace utakata;
16
17 bool lexer_test(smart_ptr<simpletest::SimpleTestAsserter> asserter)
18 {
19     std::stringstream ss;
20     ss << "==========" << endl;
21     ss << "(+ 12 24)" << endl;
22
23     textarrayformat::TextArrayReader reader(ss);
24     smart_ptr<istream> formats(new stringstream(reader.get()));
25     smart_ptr<utakata::utf8::UTF8InputStream> st;
26     st.add(new utakata::utf8::UTF8InputStream(formats));
27     
28     std::vector<smart_ptr<lexeme::ILexeme> > lexemes;
29
30     smart_ptr<utakata::lexer::Lexer> lexer(new utakata::lexer::Lexer());
31
32     utakata::parser::Parser p(lexer);
33     p.parse(st);
34     
35     return asserter->isOk();
36 }
37
38 int main(int argc, char *argv[])
39 {
40     simpletest::SimpleTestSuite suite("main lexer test");
41     suite.addTester(sfcr::screate(lexer_test, suite.getAsserter()));
42 //     suite.addTester(sfcr::screate(lexer_test2, suite.getAsserter()));
43 //     suite.addTester(sfcr::screate(lexer_test3, suite.getAsserter()));
44     suite.run();
45     return 0;
46 }