summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/op.cc42
-rw-r--r--src/op.h2
2 files changed, 23 insertions, 21 deletions
diff --git a/src/op.cc b/src/op.cc
index 23f47f73..7f2418b1 100644
--- a/src/op.cc
+++ b/src/op.cc
@@ -48,31 +48,31 @@ void intrusive_ptr_release(const expr_t::op_t * op)
op->release();
}
-namespace {
- value_t split_cons_expr(expr_t::ptr_op_t op)
- {
- if (op->kind == expr_t::op_t::O_CONS) {
- value_t seq;
- seq.push_back(expr_value(op->left()));
-
- expr_t::ptr_op_t next = op->right();
- while (next) {
- expr_t::ptr_op_t value_op;
- if (next->kind == expr_t::op_t::O_CONS) {
- value_op = next->left();
- next = next->has_right() ? next->right() : NULL;
- } else {
- value_op = next;
- next = NULL;
- }
- seq.push_back(expr_value(value_op));
+value_t split_cons_expr(expr_t::ptr_op_t op)
+{
+ if (op->kind == expr_t::op_t::O_CONS) {
+ value_t seq;
+ seq.push_back(expr_value(op->left()));
+
+ expr_t::ptr_op_t next = op->right();
+ while (next) {
+ expr_t::ptr_op_t value_op;
+ if (next->kind == expr_t::op_t::O_CONS) {
+ value_op = next->left();
+ next = next->has_right() ? next->right() : NULL;
+ } else {
+ value_op = next;
+ next = NULL;
}
- return seq;
- } else {
- return expr_value(op);
+ seq.push_back(expr_value(value_op));
}
+ return seq;
+ } else {
+ return expr_value(op);
}
+}
+namespace {
inline void check_type_context(scope_t& scope, value_t& result)
{
if (scope.type_required() &&
diff --git a/src/op.h b/src/op.h
index 03fcf816..973ba67f 100644
--- a/src/op.h
+++ b/src/op.h
@@ -371,6 +371,8 @@ expr_t::op_t::wrap_functor(expr_t::func_t fobj) {
string op_context(const expr_t::ptr_op_t op,
const expr_t::ptr_op_t locus = NULL);
+value_t split_cons_expr(expr_t::ptr_op_t op);
+
} // namespace ledger
#endif // _OP_H