next up previous contents
Next: Data definitions with AST Up: Data definitions with CoSy-fSDL Previous: Import a flat form

   
Inheritance declarations for CoSy-fSDL


\begin{verbsyntax}\onerule{InheritanceDeclarations}{'FINER' FinerDecl *}
\onerule{FinerDecl}{Ident // '<' ';'}
\end{verbsyntax}

The CoSy-fSDL flatform does not contain inheritance information because domains are flattened. Because checks the types of rule predicates against the data model, and performs some type inference, inheritance information is often lacking. To support the CoSy-fSDL flatform information, the user may specify inheritance declarations in the -specification himself. These declare flatform types (domains and operators) to be more specific (finer) than others. In particular this is required, when the type inference algorithm of infers that two types are non-compatible which are different in the flatform but were compatible in the original CoSy-fSDL specification. E.g. consider two domains SimpleSTMT_Assign and STMT_Assign, where SimpleSTMT is a sub-domain of STMT. In the flatform the inheritance relation of SimpleSTMT and STMT is lost. If the user specifies FINER SimpleSTMT < STMT;, the type inference algorithm will know that both types are compatible.

Note that finer types stand to the left.



Uwe Assmann
1998-12-22