Commit a54ea07e authored by Tom Niget's avatar Tom Niget

Handle import aliases

parent 0a0cdfd7
# coding: utf-8 # coding: utf-8
from typon import is_cpp from typon import is_cpp
import sys from sys import stdout as truc
test = (2 + 3) * 4 test = (2 + 3) * 4
glob = 5 glob = 5
......
...@@ -386,14 +386,19 @@ class BlockVisitor(NodeVisitor): ...@@ -386,14 +386,19 @@ class BlockVisitor(NodeVisitor):
if alias.name == "typon": if alias.name == "typon":
yield "" yield ""
else: else:
yield f'#include "python/{alias.name}.hpp"' yield from self.import_module(alias.name)
#raise NotImplementedError(node) #raise NotImplementedError(node)
def import_module(self, name: str) -> Iterable[str]:
yield f'#include "python/{name}.hpp"'
def visit_ImportFrom(self, node: ast.ImportFrom) -> Iterable[str]: def visit_ImportFrom(self, node: ast.ImportFrom) -> Iterable[str]:
if node.module == "typon": if node.module == "typon":
yield "" yield ""
else: else:
raise NotImplementedError(node) yield from self.import_module(node.module)
for alias in node.names:
yield f"auto& {alias.asname or alias.name} = {node.module}.{alias.name};"
def visit_FunctionDef(self, node: ast.FunctionDef) -> Iterable[str]: def visit_FunctionDef(self, node: ast.FunctionDef) -> Iterable[str]:
templ, args = self.process_args(node.args) templ, args = self.process_args(node.args)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment