Evaluates expression and returns its result. In case of NameError caused by undefined "variant" identifier returns VARIANT_EXPRESSION marker.
(exp, variables)
| 160 | VARIANT_EXPRESSION = object() |
| 161 | |
| 162 | def _EvalExpression(exp, variables): |
| 163 | """Evaluates expression and returns its result. In case of NameError caused by |
| 164 | undefined "variant" identifier returns VARIANT_EXPRESSION marker. |
| 165 | """ |
| 166 | |
| 167 | try: |
| 168 | return eval(exp, variables) |
| 169 | except NameError as e: |
| 170 | identifier = re.match("name '(.*)' is not defined", str(e)).group(1) |
| 171 | # If it's not a variant expression, it points to a missing build flag. |
| 172 | assert identifier == "variant", INITIALIZATION_ERROR % identifier |
| 173 | return VARIANT_EXPRESSION |
| 174 | |
| 175 | |
| 176 | def _EvalVariantExpression( |
no test coverage detected