関数型言語の勉強に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