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.