aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-01-24 21:21:29 +0000
committerDavid Robillard <d@drobilla.net>2009-01-24 21:21:29 +0000
commitfa96ed7c61de89ce51d9c2bb54617468b486f831 (patch)
tree8ab7e6a8c779f83d740a4769a6a026d5bc710f12
parent9f6217e6d6b4ab24ddaa10b52c3b1ce6af2a8746 (diff)
downloadresp-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.cpp33
1 files changed, 11 insertions, 22 deletions
diff --git a/ll.cpp b/ll.cpp
index 0e87a2c..823f64a 100644
--- a/ll.cpp
+++ b/ll.cpp
@@ -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;
}
+