Opened 9 years ago
Last modified 9 years ago
#4317 new defect
Allow $ in component references and type names in mos scripts
| Reported by: | Adrian Pop | Owned by: | Martin Sjölund |
|---|---|---|---|
| Priority: | high | Milestone: | Future |
| Component: | Parser | Version: | |
| Keywords: | Cc: | Willi Braun |
Description
Currently we don't allow the $ char in mos scripts but some of the code we generate for example for parameter sensitivity use the $ sign:
https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/parametersensitivity.html
The problem is that one cannot use val($x, 0) and any other functions that have a variable name containing $ as input.
Change History (7)
comment:1 by , 9 years ago
| Summary: | Allow $ component references and type names in mos scripts → Allow $ in component references and type names in mos scripts |
|---|
comment:2 by , 9 years ago
follow-up: 5 comment:4 by , 9 years ago
Another way would be to use quoted identifiers, i.e. '$Sensitivities' is Modelica compliant.
comment:5 by , 9 years ago
Replying to adrpo:
Another way would be to use quoted identifiers, i.e.
'$Sensitivities'is Modelica compliant.
That would be Modelica-compliant but maybe not unique.
I propose to use something like --sensitivitiesPrefix="whatever" to change the prefix for the sensitivities analysis and to use something Modelica compliant as default value (e.g. Sensitivities).
follow-up: 7 comment:6 by , 9 years ago
Replying to adrpo:
I don't think is a problem to allow it in mos scripts only.
I don't like to have the $ in order to make it easier (or even possible) to exchange models and results between Modelica tools.
comment:7 by , 9 years ago
Replying to lochel:
Replying to adrpo:
I don't think is a problem to allow it in mos scripts only.
I don't like to have the $ in order to make it easier (or even possible) to exchange models and results between Modelica tools.
True, but on another note we are quite consistent with the use of $ in generated names.
However, in this case, I guess we should not do that so the variables can be used easily, so I support your proposal with --sensitivitiesPrefix="whatever". The default could be _omcSensitivities.

I am not sure if we should allow $ in component references. Is there really no better way to generate unique names for those generated variables? One option would be to use a user-definable prefix.