Andrew Patterson wrote:
> I have a vague recollection of discussing this before,
> but I can't for the life of me work out what the
> "list_open" field in AOM C_STRING class is
> for. It is described as being for when a
> constraint is "non-exhaustive" but I don't know what
> this means in practical terms. I also can't
> work out how the "non-exhaustive" lists would be
> specified in ADL - I was guessing
>
> "a","b", ...
>
>
In dADL, the feature you are thinking of is there to allow the parser to
correctly determine the types of:
<1.0, 2.0, 3.0> -> List<Integer>
<1.0> -> Integer
<1.0, ...> -> List<Integer>
same syntax for any other basic type. It's not a wonderful piece of
syntax design, but it enabled us to stick to the goal of having no
typing information at all for basic types in dADL
In C_STRING, list_open is a constraint flag that says whether or not
only the values in the list are allowed to be used; True = other values
possible (i.e. the listed values are just 'preferred'). The same syntax
is used, e.g. {"a", "b", ...} is an open list.
- thomas beale