Skip to content

Commit 8d1cf25

Browse files
feat: implement vars! for state machine operators
1 parent 1f7fb2e commit 8d1cf25

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
@@ -401,6 +401,25 @@ vars(eq::Equation; op = Differential) = vars!(Set(), eq; op = op)
401401
function vars!(vars, eq::Equation; op = Differential)
402402
(vars!(vars, eq.lhs; op = op); vars!(vars, eq.rhs; op = op); vars)
403403
end
404+
function vars!(vars, O::AbstractSystem; op = Differential)
405+
for eq in equations(O)
406+
vars!(vars, eq; op)
407+
end
408+
return vars
409+
end
410+
function vars!(vars, O::Transition; op = Differential)
411+
vars!(vars, O.from)
412+
vars!(vars, O.to)
413+
vars!(vars, O.cond; op)
414+
return vars
415+
end
416+
function vars!(vars, O::InitialState; op = Differential)
417+
vars!(vars, O.s; op)
418+
return vars
419+
end
420+
function vars!(vars, O::StateMachineOperator; op = Differential)
421+
error("Unhandled state machine operator")
422+
end
404423
function vars!(vars, O; op = Differential)
405424
if isvariable(O)
406425
if iscall(O) && operation(O) === getindex && iscalledparameter(first(arguments(O)))

0 commit comments

Comments
 (0)