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 }