修复 import 多个 module

pull/1/head
韩天峰 2 years ago
parent 9acc849e1b
commit d789fc3ed8
  1. 17
      src/Python/Translator.php

@ -277,10 +277,13 @@ class Translator extends \PhpAot\Core\Translator
function parseImport($node) function parseImport($node)
{ {
$name = $node->names[0]; $out = '';
$module = $name->name; foreach ($node->names as $name) {
$as = empty($name->asname) ? $module : $name->asname; $module = $name->name;
return "\$$as = PyCore::import('$module')"; $as = empty($name->asname) ? $module : $name->asname;
$out .= $this->getIndent() . "\$$as = PyCore::import('$module');\n";
}
return $out;
} }
function parseTarget($target) function parseTarget($target)
@ -523,7 +526,7 @@ class Translator extends \PhpAot\Core\Translator
$line = "$target += $value;"; $line = "$target += $value;";
break; break;
case 'Import': case 'Import':
$line = $this->parseImport($node) . ';'; $line = $this->parseImport($node);
break; break;
case 'Expr': case 'Expr':
$line = $this->parseExpr($node); $line = $this->parseExpr($node);
@ -596,7 +599,7 @@ class Translator extends \PhpAot\Core\Translator
$this->addLine($line, $lines); $this->addLine($line, $lines);
} }
function parseBody($tree) function parseBody($tree): string
{ {
$lines = []; $lines = [];
foreach ($tree as $node) { foreach ($tree as $node) {
@ -608,7 +611,7 @@ class Translator extends \PhpAot\Core\Translator
return implode(PHP_EOL, $lines); return implode(PHP_EOL, $lines);
} }
function convert($tree) function convert($tree): void
{ {
$this->prepare($tree); $this->prepare($tree);
$output = '<?php' . PHP_EOL; $output = '<?php' . PHP_EOL;

Loading…
Cancel
Save