diff options
author | David Robillard <d@drobilla.net> | 2009-01-24 21:21:29 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-01-24 21:21:29 +0000 |
commit | fa96ed7c61de89ce51d9c2bb54617468b486f831 (patch) | |
tree | 8ab7e6a8c779f83d740a4769a6a026d5bc710f12 | |
parent | 9f6217e6d6b4ab24ddaa10b52c3b1ce6af2a8746 (diff) | |
download | resp-fa96ed7c61de89ce51d9c2bb54617468b486f831.tar.gz resp-fa96ed7c61de89ce51d9c2bb54617468b486f831.tar.bz2 resp-fa96ed7c61de89ce51d9c2bb54617468b486f831.zip |
Shrink.
git-svn-id: http://svn.drobilla.net/resp/llvm-lisp@11 ad02d1e2-f140-0410-9f75-f8b11f17cedd
-rw-r--r-- | ll.cpp | 33 |
1 files changed, 11 insertions, 22 deletions
@@ -311,9 +311,9 @@ parseExpression(PEnv& penv, const SExp& exp) static vector<AST*> pmap(PEnv& penv, const list<SExp>& l) { - list<SExp>::const_iterator i = l.begin(); vector<AST*> code(l.size()); - for (size_t n = 0; i != l.end(); ++i) + size_t n = 0; + for (list<SExp>::const_iterator i = l.begin(); i != l.end(); ++i) code[n++] = parseExpression(penv, *i); return code; } @@ -681,15 +681,18 @@ ASTPrimitive::compile(CEnv& cenv) } + /*************************************************************************** - * REPL - Interactively compile, optimise, and execute code * + * REPL * ***************************************************************************/ -/// Read-Eval-Print-Loop -static void -repl(CEnv& cenv, ExecutionEngine* engine) +int +main() { - // Set up our language + Module* module = new Module("interactive"); + ExecutionEngine* engine = ExecutionEngine::create(module); + CEnv cenv(module, engine->getTargetData()); + PEnv penv; penv.reg(penv.sym("if"), PEnv::Parser(parseIf, 0)); penv.reg(penv.sym("def"), PEnv::Parser(parseDef, 0)); @@ -730,23 +733,9 @@ repl(CEnv& cenv, ExecutionEngine* engine) std::cerr << "Type error: " << e.what() << endl; } } -} - - -/*************************************************************************** - * Main driver code. - ***************************************************************************/ - -int -main() -{ - Module* module = new Module("interactive"); - ExecutionEngine* engine = ExecutionEngine::create(module); - CEnv cenv(module, engine->getTargetData()); - - repl(cenv, engine); std::cout << "Generated code:" << endl; module->dump(); return 0; } + |