|
|
Le 10/07/2016 17:49, William F Pokorny a écrit :
> On 07/10/2016 11:30 AM, William F Pokorny wrote:
>> On 07/10/2016 08:37 AM, Le_Forgeron wrote:
> ...
>> OK. If the optionality is what we are trying to indicate, I think we
>> probably want something like :
>>
>> COLOR_VECTOR:
>> [rgb] float | (promoted to 3 value vector)
>> [rg0] <2 Term Vector> |
>> [rgb] <3_Term_Vector> |
>> [rgbf] <4_Term_Vector> |
>> rgbt <4_Term_Vector> |
>> [ rgbft ] <5_Term_Vector> |
>> srgb <3_Term_Vector> |
>> srgbf <4_Term_Vector> |
>> srgbt <4_Term_Vector> |
>> srgbft <5_Term_Vector>
>>
>> Bill P.
>
> Argh... Just popped into my head the line:
>
> [rg0] <2 Term Vector> |
>
> is more like:
>
> [rgb] <2 Term Vector> | (blue is zero in this case)
>
> there is of course no "rg0". :-)
>
> Bill P.
IMHO, you are missing that, at another level, the missing terms are automatically
created from existing input when needed.
float get promoted to 3D, 2D get completed to 3D with 0 as the last term and so on
(including 2D expended to 4D and 5D when needed)... but some too-short expression can
give you a warning (such as "Suspicious expression after rgbf.")
On the same line, providing a 5D for a 4D (e.g. rgbf) will also give you a warning
(that's not a promotion/extension, rather a reduction).
Yet, it is valid syntax. (even if the 5th term get ignored).
On the same line, when "<N_Term_Vector>" is used, it can be any expression (including
+,-,* and /... and even some within ?: ternary operator ) which result in such values,
at the end.
You are going to have very hard to have a readable syntax if you want to list all
possible cases for just "rgb xxxxx"
Post a reply to this message
|
|