@@ -40,26 +40,26 @@ function _extract_subexpression!(expr::Expression, root::Int)
4040 n = length (expr. nodes)
4141 # The whole subexpression is continuous in the tape
4242 first_out = findfirst ((root+ 1 ): n) do i
43- expr. nodes[i]. parent < root
43+ return expr. nodes[i]. parent < root
4444 end
4545 if isnothing (first_out)
4646 I = root: n
4747 else
48- I = root .+ (0 : (first_out - 1 ))
48+ I = root .+ (0 : (first_out- 1 ))
4949 end
5050 first_value = findfirst (I) do i
51- expr. nodes[i]. type == NODE_VALUE
51+ return expr. nodes[i]. type == NODE_VALUE
5252 end
5353 if isnothing (first_value)
5454 V = nothing
5555 else
5656 last_value = findlast (I) do i
57- expr. nodes[i]. type == NODE_VALUE
57+ return expr. nodes[i]. type == NODE_VALUE
5858 end
5959 V = expr. nodes[I[first_value]]. index: expr. nodes[I[last_value]]. index
6060 end
6161 if ! isnothing (first_out)
62- for i in last (I)+ 1 : n
62+ for i in ( last (I)+ 1 ) : n
6363 node = expr. nodes[i]
6464 index = node. index
6565 if node. type == NODE_VALUE && ! isnothing (V)
8080function _extract_subexpression! (data:: Model , expr:: Expression , root:: Int )
8181 parent = expr. nodes[root]. parent
8282 I, V = _extract_subexpression! (expr, root)
83- subexpr = Expression (expr. nodes[I], isnothing (V) ? Float64[] : expr. values[V])
83+ subexpr =
84+ Expression (expr. nodes[I], isnothing (V) ? Float64[] : expr. values[V])
8485 push! (data. expressions, subexpr)
8586 index = ExpressionIndex (length (data. expressions))
8687 expr. nodes[root] = Node (NODE_SUBEXPRESSION, index. value, parent)
@@ -119,7 +120,8 @@ function parse_expression(
119120 _parent_node = stack[i][1 ]
120121 if _parent_node > first (I)
121122 @assert _parent_node > last (I)
122- stack[i] = (_parent_node - length (I) + 1 , stack[i][2 ])
123+ stack[i] =
124+ (_parent_node - length (I) + 1 , stack[i][2 ])
123125 end
124126 end
125127 end
@@ -128,15 +130,27 @@ function parse_expression(
128130 __expr, __node = val
129131 if _expr === __expr && __node > first (I)
130132 @assert __node > last (I)
131- data. cache[key] = (__expr, __node - length (I) + 1 )
133+ data. cache[key] =
134+ (__expr, __node - length (I) + 1 )
132135 end
133136 end
134137 end
135138 data. cache[arg] = subexpr
136139 end
137- parse_expression (data, expr, subexpr:: ExpressionIndex , parent_node)
140+ parse_expression (
141+ data,
142+ expr,
143+ subexpr:: ExpressionIndex ,
144+ parent_node,
145+ )
138146 else
139- _parse_without_recursion_inner (stack, data, expr, arg, parent_node)
147+ _parse_without_recursion_inner (
148+ stack,
149+ data,
150+ expr,
151+ arg,
152+ parent_node,
153+ )
140154 data. cache[arg] = (expr, length (expr. nodes))
141155 end
142156 else
0 commit comments