Define causality and/or block diagram connection semantic (depending on context)
connector RealInput = input Real; connector RealOutput = output Real; block Integrator RealInput u; RealOutput y; protected Real x; equation der(x) = u; y = x; end Integrator;
class_definition :
[ encapsulated ]
[ partial ]
( class | model | record | block | connector | type |
package | function )
IDENT class_specifier
class_specifier :
string_comment composition end IDENT
| "=" base_prefix name [ array_subscripts ] [ class_modification ] comment
| "=" enumeration "(" ( [enum_list] | ":" ) ")" comment
base_prefix :
type_prefix
composition :
element_list
{ public element_list |
protected element_list |
equation_clause |
algorithm_clause
}
[ external [ language_specification ]
[ external_function_call ] [ annotation ";" ]
[ annotation ";" ] ]
element_list :
{ element ";" | annotation ";" }
element :
import_clause |
extends_clause |
[ final ]
[ inner | outer ]
( ( class_definition | component_clause) |
replaceable ( class_definition | component_clause)
[constraining_clause comment])
component_clause:
type_prefix type_specifier [ array_subscripts ] component_list
type_prefix :
[ flow ]
[ discrete | parameter | constant ] [ input | output ]
The prefixes input and output have a slightly different semantic meaning depending on the context where they are used:
block FirstOrder
input Real u;
...
end FirstOrder;
model UseFirstOrder
FirstOrder firstOrder(u=time); // binding equation for u
...
end UseFirstOrder;
The output prefix does not have a particular effect in a model or
block component and is ignored.