@@ -3285,18 +3285,25 @@ function dump_unknowns(sys::AbstractSystem)
32853285 end
32863286end
32873287
3288- # syntax:
3289- # varname = "D(" varname ")" | arrvar | maybe_dummy_var
3290- # arrvar = maybe_dummy_var "[idxs...]"
3291- # idxs = int | int "," idxs
3292- # maybe_dummy_var = namespacedvar | namespacedvar "(t)" |
3293- # namespacedvar "(t)" "ˍ" ts | namespacedvar "ˍ" ts |
3294- # namespacedvar "ˍ" ts "(t)"
3295- # ts = "t" | "t" ts
3296- # namespacedvar = ident "₊" namespacedvar | ident "." namespacedvar | ident
3297- #
3298- # I'd write a regex to validate this, but https://xkcd.com/1171/
3288+ """
3289+ $(TYPEDSIGNATURES)
3290+
3291+ Return the variable in `sys` referred to by its string representation `str`.
3292+ Roughly supports the following CFG:
3293+
3294+ ```
3295+ varname = "D(" varname ")" | arrvar | maybe_dummy_var
3296+ arrvar = maybe_dummy_var "[idxs...]"
3297+ idxs = int | int "," idxs
3298+ maybe_dummy_var = namespacedvar | namespacedvar "(t)" |
3299+ namespacedvar "(t)" "ˍ" ts | namespacedvar "ˍ" ts |
3300+ namespacedvar "ˍ" ts "(t)"
3301+ ts = "t" | "t" ts
3302+ namespacedvar = ident "₊" namespacedvar | ident "." namespacedvar | ident
3303+ ```
3304+ """
32993305function parse_variable (sys:: AbstractSystem , str:: AbstractString )
3306+ # I'd write a regex to validate `str`, but https://xkcd.com/1171/
33003307 str = strip (str)
33013308 derivative_level = 0
33023309 while startswith (str, " D(" ) && endswith (str, " )" )
0 commit comments