Skip to content

Commit a963354

Browse files
feat: implement vars! for state machine operators
1 parent cb84bdc commit a963354

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/utils.jl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,25 @@ vars(eq::Equation; op = Differential) = vars!(Set(), eq; op = op)
391391
function vars!(vars, eq::Equation; op = Differential)
392392
(vars!(vars, eq.lhs; op = op); vars!(vars, eq.rhs; op = op); vars)
393393
end
394+
function vars!(vars, O::AbstractSystem; op = Differential)
395+
for eq in equations(O)
396+
vars!(vars, eq; op)
397+
end
398+
return vars
399+
end
400+
function vars!(vars, O::Transition; op = Differential)
401+
vars!(vars, O.from)
402+
vars!(vars, O.to)
403+
vars!(vars, O.cond; op)
404+
return vars
405+
end
406+
function vars!(vars, O::InitialState; op = Differential)
407+
vars!(vars, O.s; op)
408+
return vars
409+
end
410+
function vars!(vars, O::StateMachineOperator; op = Differential)
411+
error("Unhandled state machine operator")
412+
end
394413
function vars!(vars, O; op = Differential)
395414
if isvariable(O)
396415
if iscall(O) && operation(O) === getindex && iscalledparameter(first(arguments(O)))

0 commit comments

Comments
 (0)