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
()
| 247 | // expression: a && b && c && (d || e) |
| 248 | // ast: call(_&&_, [a, b, c, call(_||_, [d, e])]) |
| 249 | func variadicLogicalOperatorASTs() EnvOption { |
| 250 | return features(featureVariadicLogicalASTs, true) |
| 251 | } |
| 252 | |
| 253 | // Macros option extends the macro set configured in the environment. |
| 254 | // |