Correct missing parentheses in dADL type identifiers.
The parentheses around the optional type identifier is missing in the dADL grammar
The example on type information ( from the ADL document) looks like this: destinations = < Â Â Â Â ["seville"] = (TOURIST_DESTINATION) < Â Â Â Â .... >
Note that the parentheses around the type id. It doesn't seem to be supported by the current grammar.
Status
Assignee
Unassigned
Reporter
Thomas Beale
Raised By
Rong Chen
Change Description
The following changes are made (note that these changes allow both non-parenthesised and parenthesised forms of dADL to exist, even in the same archetype).
In the dADL grammar rules, the following rule is updated:
type_identifier:
'(' V_TYPE_IDENTIFIER ')'
| '(' V_GENERIC_TYPE_IDENTIFIER ')'
| V_TYPE_IDENTIFIER
| V_GENERIC_TYPE_IDENTIFIER
In the cADL scanner rules, a new pattern match needs to be added in the V_C_DOMAIN_TYPE section:
-- the following version matches a type name without () and is deprecated
[A-Z]{IDCHAR}*[ \n]*< -- match a pattern like
-- 'Type_Identifier whitespace <'
-- the following version is correct ADL 1.4/ADL 1.5
\([A-Z]{IDCHAR}*\)[ \n]*< -- match a pattern like
-- '(Type_Identifier) whitespace <'
Impact Analysis
This change will mean that numerous existing archetypes containing inline dADL C_DV_QUANTITY sections would not parse, e.g. http://svn.openehr.org/knowledge/archetypes/dev/adl/openehr/ehr/entry/observation/openEHR-EHR-OBSERVATION.blood_gases.v1.html.
Tools should therefore allow the current non-parenthesised form of a typed dADL section as well as the parenthesised form required by this change. Tools that perform modifications to archetypes should silently replace the old form by the new form.