variadicLogicalOperatorASTs flatten like-operator chained logical expressions into a single variadic call with N-terms. This behavior is useful when serializing to a protocol buffer as it will reduce the number of recursive calls needed to deserialize the AST later. For example, given the following
()
| 232 | // expression: a && b && c && (d || e) |
| 233 | // ast: call(_&&_, [a, b, c, call(_||_, [d, e])]) |
| 234 | func variadicLogicalOperatorASTs() EnvOption { |
| 235 | return features(featureVariadicLogicalASTs, true) |
| 236 | } |
| 237 | |
| 238 | // Macros option extends the macro set configured in the environment. |
| 239 | // |