DRAKON.SU https://forum.drakon.su/ |
|
PowerShell скрипт преобразования javascript.tcl в php.tcl https://forum.drakon.su/viewtopic.php?f=145&t=7347 |
Страница 1 из 1 |
Автор: | pme [ Понедельник, 11 Декабрь, 2023 21:56 ] | ||
Заголовок сообщения: | PowerShell скрипт преобразования javascript.tcl в php.tcl | ||
День добрый! Сделал скрипт Код: $javascriptContent = Get-Content javascript.tcl -Raw $wordMap = @{ '// Autogenerated with DRAKON Editor \$version' = "// Autogenerated with DRAKON Editor $version" '\"js\"' = '"php"' '\"var \$' = '"\$' '\"var\"' = '""' '\\nvar ' = '\n ' '_var \"' = '_var "\$' '; var ' = '; ' 'javascript' = 'PHP' '\$coll_var.length' = 'count\($coll_var\)' '\$keys_var.length' = 'count\($keys_var\)' 'Object.keys' = 'array_keys' #'return \"\$variable === \$constant\"' = 'return append "\$" "$variable === $constant"' } $phpContent = $javascriptContent foreach ($key in $wordMap.Keys) { $phpContent = $phpContent -replace $key, $wordMap[$key] } # пришлось делать отдельно $wordMap = @{ 'return \"\\\$' = 'return "$' } foreach ($key in $wordMap.Keys) { $phpContent = $phpContent -replace $key, $wordMap[$key] } $php_KeyWords = @" __halt_compiler abstract and array as break callable case catch class clone const continue declare default die do echo else elseif empty enddeclare endfor endforeach endif endswitch endwhile eval exit extends final finally fn for foreach function global goto if implements include include_once instanceof insteadof interface isset list match namespace new or print private protected public require require_once return static switch throw trait try unset use var while xor yield "@ # Заменяем текст между "variable keywords {" и "}" $phpContent = $phpContent -replace "(?s)(?<=variable keywords {).*?(?=})", $php_KeyWords $phpContent | Set-Content php.tcl Для начала хватает. Но захотелось использовать switch . Но код генерируется такой: Код: function switch_RUN($operator) { // item 60001 if (operator === '>') { // item 14 echo $operator; } else { // item 60002 if (operator === '===') { // item 15 echo $operator; } else { // item 16 echo $operator; } } } Теряется символ $. Предполагаю, что за это отвечает в javascript.tcl строка Код: return "$variable === $constant" Как бы сделать, чтобы символ $ не терялся? Заранее признателен.
|
Автор: | Степан Митькин [ Вторник, 19 Декабрь, 2023 11:35 ] |
Заголовок сообщения: | Re: PowerShell скрипт преобразования javascript.tcl в php.tc |
Попробуйте заменить функцию compare в вашем php-генераторе на такую: Код: proc compare { variable constant } {
return "\$$variable === $constant" } |
Автор: | pme [ Пятница, 29 Март, 2024 23:43 ] |
Заголовок сообщения: | Re: PowerShell скрипт преобразования javascript.tcl в php.tc |
Спасибо! Обновил код скрипта PowerShell |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |