File indexing completed on 2024-05-05 04:37:09
0001 #include "foolispparser.h" 0002 #include "foolisplexer.h" 0003 #include "foolispdebugvisitor.h" 0004 #include "foolisptokentext.h" 0005 0006 using namespace FooLisp; 0007 using namespace KDevPG; 0008 0009 #include <iostream> 0010 using namespace std; 0011 0012 int main() 0013 { 0014 string str; 0015 getline(cin, str); 0016 QByteArray qcode(str.c_str(), str.size()); 0017 QUtf8ToUcs4Iterator iter(qcode); 0018 qDebug() << qcode.size() << iter.hasNext(); 0019 FooLisp::Lexer lex(iter); 0020 qDebug() << iter.hasNext(); 0021 FooLisp::Parser parser; 0022 KDevPG::MemoryPool pool; 0023 parser.setMemoryPool(&pool); 0024 parser.setTokenStream(&lex); 0025 int kind; 0026 qDebug() << iter.hasNext(); 0027 while((kind = lex.read().kind) != Parser::Token_EOF) 0028 qDebug() << "hi" << tokenText(kind); 0029 parser.rewind(0); 0030 StartAst *ast; 0031 parser.parseStart(&ast); 0032 DebugVisitor vis(&lex, qcode); 0033 vis.visitNode(ast); 0034 qDebug() << ast->sexp; 0035 qDebug() << ast->sexp->sexpSequence; 0036 }