関数型言語の勉強にSICPを読もう - (59) 4章 - 超言語的抽象(220ページ) C++でSchemeインタプリタを作ろう7
とりあえず今までの分をリファクタリング。
int main(int argc, char *argv[])
{
if (argc < 2)
{
fprintf(stderr, "usage: %s file\n", argv[0]);
return -1;
}
string input = load(argv[1]);
if (input == "")
{
return -1;
}
Tokenizer tokenizer(input);
Parser parser(&tokenizer);
Node* node = parser.parse();
node->print();
Object* object = NULL;
if (Translator::translate(node, &object) != Translator::SUCCESS)
{
return -1;
}
Environment* environment = new Environment();
display(object->eval(environment));
return 0;
}
primitive procedureは今後 environment に push する感じで。
計算機プログラムの構造と解釈
posted with amazlet on 06.05.31
