Syntactic ambiguities impact code completion

Three alternatives start with "( DataUse ... " which is also recursive:

  • DataElementUse: when no DataElement is specified
  • PredefinedFunctionCall: binary functions
  • CastDataUse

To resolve the ambiguities, syntactic predicates are used which seem to cause issues with auto-completion (see also &3, #4 (closed), #122).

To avoid the need for syntactic predicates, the ambiguities need to be resolved in the grammar and the specification, Part 8, Clauses 6.2.39 and 6.2.40, meaning:

  1. new [DataType] will be mandatory (currently optional)
  2. Casting will specify the data type first, e.g. (<DataType> DataUse)

Predefined function can remain as they are for the time being (new issue may be added to streamline them as well).