@@ -3285,18 +3285,25 @@ function dump_unknowns(sys::AbstractSystem)
3285
3285
end
3286
3286
end
3287
3287
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
+ """
3299
3305
function parse_variable (sys:: AbstractSystem , str:: AbstractString )
3306
+ # I'd write a regex to validate `str`, but https://xkcd.com/1171/
3300
3307
str = strip (str)
3301
3308
derivative_level = 0
3302
3309
while startswith (str, " D(" ) && endswith (str, " )" )
0 commit comments