| 50 | == Conditions == |
| 51 | |
| 52 | * true |
| 53 | * false |
| 54 | * comparison (== <> < > <= >=) |
| 55 | * E1 and E2 |
| 56 | * E1 or E2 |
| 57 | * not E |
| 58 | * String literal |
| 59 | * ( E ) |
| 60 | * .METHOD(ARGS) |
| 61 | * Bare Symbol |
| 62 | |
| 63 | Possible methods: |
| 64 | |
| 65 | * .defined('FOO') |
| 66 | * .environ('FOO') |
| 67 | * .definedOrEnviron('FOO') |
| 68 | * .cobraVer |
| 69 | * .platform |
| 70 | * .opSys |
| 71 | |
| 72 | == Open Questions == |
| 73 | |
| 74 | * Could methods return various kinds of objects instead of just strings? For example, a Version object that does the right thing for comparisons. |
| 75 | |
| 76 | == Implementation == |
| 77 | |
| 78 | There is no implementation at this time. If we implement this, it's unlikely that all of it will be implemented at once. However, it would be ideal to complete the design and then to implement a strict subset so that future additions to the language do not break any code. |