1
1
mirror of https://github.com/kanaka/mal.git synced 2024-09-20 10:07:45 +03:00
mal/cpp/step0_repl.cpp
Stephen Thirlwall 9ddaa0b91b c++11: step 0
2015-03-27 20:44:42 +11:00

43 lines
687 B
C++

#include "String.h"
#include "ReadLine.h"
#include <iostream>
#include <memory>
String READ(const String& input);
String EVAL(const String& ast);
String PRINT(const String& ast);
String rep(const String& input);
static ReadLine s_readLine("~/.mal-history");
int main(int argc, char* argv[])
{
String prompt = "user> ";
String input;
while (s_readLine.get(prompt, input)) {
std::cout << rep(input) << "\n";
}
return 0;
}
String rep(const String& input)
{
return PRINT(EVAL(READ(input)));
}
String READ(const String& input)
{
return input;
}
String EVAL(const String& ast)
{
return ast;
}
String PRINT(const String& ast)
{
return ast;
}