The Idea
A group would be like [>= 10 OR < 6] or [windows OR macOS].
Makes no sense to have AND, because a system can't be Windows and macOS, a CPU can't be x64 and x86. However, a version can be >= 7 AND < 10.
But instead of creating AND just for that, I think I'm going to either: use intervals; or use something like SQL's INBETWEEN.
So like [[7;10)] would be between 7 and 10, excluding 10 (the outer brackets are because this is still a group nonetheless). With INBETWEEN, it'd be like INBETWEEN 7 10. Problem is exclusion would have to be done like INBETWEEN 7 9 but it's undeniably easier to implement and simpler to explain.
Nesting
To make this even better, nesting!!
[>= 10 OR [INBETWEEN 5 7]]
By the way, OR is a LRS operator (left and right sides) while INBETWEEN is a RrS operator (Right and Corner Right sides).
They need to be enclosed. [>= 10 OR == 5 OR == 7] is invalid. Do something like [>= 10 OR [== 5 OR == 7]] instead.
Summary
In summary:
[>= 10 OR < 6] greater than 10 or lower than 6 or equal to 10
[windows OR macOS] either windows or macOS
- still deciding on INBETWEEN or intervals
- nesting is fun!!
- rules
The Idea
A group would be like
[>= 10 OR < 6]or[windows OR macOS].Makes no sense to have AND, because a system can't be Windows and macOS, a CPU can't be x64 and x86. However, a version can be >= 7 AND < 10.
But instead of creating AND just for that, I think I'm going to either: use intervals; or use something like SQL's INBETWEEN.
So like [[7;10)] would be between 7 and 10, excluding 10 (the outer brackets are because this is still a group nonetheless). With INBETWEEN, it'd be like
INBETWEEN 7 10. Problem is exclusion would have to be done likeINBETWEEN 7 9but it's undeniably easier to implement and simpler to explain.Nesting
To make this even better, nesting!!
[>= 10 OR [INBETWEEN 5 7]]By the way, OR is a LRS operator (left and right sides) while INBETWEEN is a RrS operator (Right and Corner Right sides).
They need to be enclosed.
[>= 10 OR == 5 OR == 7]is invalid. Do something like[>= 10 OR [== 5 OR == 7]]instead.Summary
In summary:
[>= 10 OR < 6]greater than 10 or lower than 6 or equal to 10[windows OR macOS]either windows or macOS