1111use PHPJava \Compiler \Lang \Assembler \Statements \ExpressionStatementAssembler ;
1212use PHPJava \Compiler \Lang \Assembler \Statements \ForStatementAssembler ;
1313use PHPJava \Compiler \Lang \Assembler \Statements \IfStatementAssembler ;
14+ use PHPJava \Compiler \Lang \Assembler \Structure \Accessor \Imports ;
1415use PHPJava \Compiler \Lang \Assembler \Traits \Bindable ;
16+ use PHPJava \Compiler \Lang \Assembler \Traits \ImportManageable ;
1517use PHPJava \Compiler \Lang \Assembler \Traits \NodeExtractable ;
1618use PHPJava \Compiler \Lang \Assembler \Traits \OperationManageable ;
1719use PHPJava \Exceptions \AssembleStructureException ;
@@ -24,6 +26,8 @@ class StatementProcessor extends AbstractProcessor
2426 use Bindable;
2527 use NodeExtractable;
2628
29+ protected $ imports = [];
30+
2731 /**
2832 * @param Node[] $nodes
2933 */
@@ -66,6 +70,12 @@ public function execute(array $nodes, ?callable $callback = null): array
6670 $ entryPointClassAssembler
6771 ->assemble ();
6872 break ;
73+ case \PhpParser \Node \Stmt \Use_::class:
74+ /**
75+ * @var \PhpParser\Node\Stmt\Use_ $statement
76+ */
77+ $ this ->imports [] = $ statement ;
78+ break ;
6979 case \PhpParser \Node \Stmt \Class_::class:
7080 /**
7181 * @var \PhpParser\Node\Stmt\Class_ $statement
@@ -74,6 +84,7 @@ public function execute(array $nodes, ?callable $callback = null): array
7484 ->setStreamReader ($ this ->getStreamReader ())
7585 ->setNamespace ($ this ->getNamespace ())
7686 ->setStructureAccessorsLocator ($ this ->getStructureAccessorsLocator ())
87+ ->setImportsAccessor ($ this ->getImportsAccessor () ?? new Imports ($ this ->imports ))
7788 ->assemble ();
7889 break ;
7990 case \PhpParser \Node \Stmt \If_::class:
0 commit comments