Skip to content

Commit c828475

Browse files
committed
Small change.
1 parent 69e591c commit c828475

2 files changed

Lines changed: 14 additions & 11 deletions

File tree

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ sub 0 1
4545
flip sub 0 1
4646
λ -> 1
4747

48+
fac = \n.if n < 2 then 1 else (n * (fac (n - 1)))
49+
50+
fac 8
51+
λ -> 40320
52+
4853
```
4954

5055
```haskell

source/main.cpp

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ int main(int argc, const char *argv[]) {
101101
std::shared_ptr<ast::NativeAbstraction> typeof_abstraction = std::make_shared<backend::interpreter::native_library::Typeof>();
102102
ast::node_reference native_typeof = std::make_shared<backend::interpreter::Curried>(typeof_abstraction, 1);
103103
global_scope->set("exit", native_exit);
104-
global_scope->set("truthy", native_truthy);
104+
// global_scope->set("truthy", native_truthy);
105105
global_scope->set("typeof", native_typeof);
106106

107107
int last_group_count = 0;
@@ -122,17 +122,15 @@ int main(int argc, const char *argv[]) {
122122
if (verbose_print)
123123
print(evaluated_ast->to_string());
124124

125-
if (evaluated_ast->type == ast::ASTNodeType::GROUPING) {
125+
if (typeid(*evaluated_ast) == typeid(ast::Grouping)) {
126126
std::shared_ptr<ast::Grouping> grouping = std::static_pointer_cast<ast::Grouping>(evaluated_ast);
127-
if (!grouping->nodes.empty()) {
128-
if (last_group_count != grouping->nodes.size()) {
129-
ast::node_reference last_node = grouping->nodes.back();
130-
ast::node_reference print_instruction = std::make_shared<ast::PrintInstruction>(last_node);
131-
language::evaluate(print_instruction->accept(interpreter.get()), global_scope);
132-
// print_instruction->accept(interpreter.get());
133-
// print(grouping->nodes.back()->to_string());
134-
last_group_count = grouping->nodes.size();
135-
}
127+
if (!grouping->nodes.empty() && last_group_count != grouping->nodes.size()) {
128+
ast::node_reference last_node = grouping->nodes.back();
129+
ast::node_reference print_instruction = std::make_shared<ast::PrintInstruction>(last_node);
130+
language::evaluate(print_instruction->accept(interpreter.get()), global_scope);
131+
// print_instruction->accept(interpreter.get());
132+
// print(grouping->nodes.back()->to_string());
133+
last_group_count = grouping->nodes.size();
136134
}
137135
}
138136

0 commit comments

Comments
 (0)