@@ -472,15 +472,18 @@ function namespace_defaults(sys)
472472 for (k, v) in pairs (defs))
473473end
474474
475- function namespace_equations (sys:: AbstractSystem )
475+ function namespace_equations (sys:: AbstractSystem , ivs = independent_variables (sys) )
476476 eqs = equations (sys)
477477 isempty (eqs) && return Equation[]
478- map (eq -> namespace_equation (eq, sys), eqs)
478+ map (eq -> namespace_equation (eq, sys; ivs ), eqs)
479479end
480480
481- function namespace_equation (eq:: Equation , sys, n = nameof (sys))
482- _lhs = namespace_expr (eq. lhs, sys, n)
483- _rhs = namespace_expr (eq. rhs, sys, n)
481+ function namespace_equation (eq:: Equation ,
482+ sys,
483+ n = nameof (sys);
484+ ivs = independent_variables (sys))
485+ _lhs = namespace_expr (eq. lhs, sys, n; ivs)
486+ _rhs = namespace_expr (eq. rhs, sys, n; ivs)
484487 _lhs ~ _rhs
485488end
486489
@@ -490,30 +493,29 @@ function namespace_assignment(eq::Assignment, sys)
490493 Assignment (_lhs, _rhs)
491494end
492495
493- function namespace_expr (O, sys, n = nameof (sys))
494- ivs = independent_variables (sys)
496+ function namespace_expr (O, sys, n = nameof (sys); ivs = independent_variables (sys))
495497 O = unwrap (O)
496498 if any (isequal (O), ivs)
497499 return O
498500 elseif istree (O)
499501 T = typeof (O)
500502 renamed = let sys = sys, n = n, T = T
501- map (a -> namespace_expr (a, sys, n):: Any , arguments (O))
503+ map (a -> namespace_expr (a, sys, n; ivs ):: Any , arguments (O))
502504 end
503505 if isvariable (O)
504506 # Use renamespace so the scope is correct, and make sure to use the
505507 # metadata from the rescoped variable
506508 rescoped = renamespace (n, O)
507509 similarterm (O, operation (rescoped), renamed,
508- metadata = metadata (rescoped)):: T
510+ metadata = metadata (rescoped)):: T
509511 else
510512 similarterm (O, operation (O), renamed, metadata = metadata (O)):: T
511513 end
512514 elseif isvariable (O)
513515 renamespace (n, O)
514516 elseif O isa Array
515517 let sys = sys, n = n
516- map (o -> namespace_expr (o, sys, n), O)
518+ map (o -> namespace_expr (o, sys, n; ivs ), O)
517519 end
518520 else
519521 O
@@ -661,20 +663,6 @@ function SymbolicIndexingInterface.is_param_sym(sys::AbstractSystem, sym)
661663 ! isnothing (SymbolicIndexingInterface. param_sym_to_index (sys, sym))
662664end
663665
664- struct AbstractSysToExpr
665- sys:: AbstractSystem
666- states:: Vector
667- end
668- AbstractSysToExpr (sys) = AbstractSysToExpr (sys, states (sys))
669- function (f:: AbstractSysToExpr )(O)
670- ! istree (O) && return toexpr (O)
671- any (isequal (O), f. states) && return nameof (operation (O)) # variables
672- if issym (operation (O))
673- return build_expr (:call , Any[nameof (operation (O)); f .(arguments (O))])
674- end
675- return build_expr (:call , Any[operation (O); f .(arguments (O))])
676- end
677-
678666# ##
679667# ## System utils
680668# ##
0 commit comments