Expression evaluation implementation for TVMScript parser. Parameters ---------- node : Union[doc.expr, doc.Expression] The root node of AST tree node of expression to evaluate. dict_globals : Optional[Dict[str, Any]] The optional global value table for expression e
(
node: doc.expr | doc.Expression,
dict_globals: dict[str, Any] | None,
)
| 499 | |
| 500 | |
| 501 | def _eval_expr( |
| 502 | node: doc.expr | doc.Expression, |
| 503 | dict_globals: dict[str, Any] | None, |
| 504 | ) -> Any: |
| 505 | """Expression evaluation implementation for TVMScript parser. |
| 506 | |
| 507 | Parameters |
| 508 | ---------- |
| 509 | node : Union[doc.expr, doc.Expression] |
| 510 | The root node of AST tree node of expression to evaluate. |
| 511 | |
| 512 | dict_globals : Optional[Dict[str, Any]] |
| 513 | The optional global value table for expression evaluation. |
| 514 | |
| 515 | Returns |
| 516 | ------- |
| 517 | res : Any |
| 518 | The evaluation result. |
| 519 | """ |
| 520 | node = doc.from_doc(node) |
| 521 | if isinstance(node, ast.expr): |
| 522 | node = ast.Expression(body=node) |
| 523 | assert isinstance(node, ast.Expression), "Expects an ast.Expression, but gets: " + str(node) |
| 524 | if dict_globals is None: |
| 525 | dict_globals = {} |
| 526 | node = ast.fix_missing_locations(node) |
| 527 | exe = compile(node, filename="<ast>", mode="eval") |
| 528 | return eval(exe, dict_globals) # pylint: disable=eval-used |
| 529 | |
| 530 | |
| 531 | def _eval_op( |
no test coverage detected
searching dependent graphs…