URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 114535
[ Назад ]

Исходное сообщение
"Релиз php-parser 0.5, парсера кода PHP"

Отправлено opennews , 08-Июн-18 17:58 
Подготовлен (https://github.com/z7zmey/php-parser/releases/tag/v0.5.0) новый выпуск php-parser (https://github.com/z7zmey/php-parser), библиотеки для синтаксического разбора исходного кода на языке  PHP в абстрактное синтаксическое дерево. Полностью поддерживается синтаксис PHP 5 и PHP 7, включая разбор пространств имён
и возможность обработки PHP-файлов  с некорректным синтаксисом. Проект может использоваться для создания статических анализаторов, утилит рефакторинга и сбора метрик. Код проекта написан на языке Go c использованием библиотек goyacc (https://godoc.org/golang.org/x/tools/cmd/goyacc) и golex (https://github.com/cznic/golex), и распространяется (https://github.com/z7zmey/php-parser) под лиценизей MIT.

URL: https://github.com/z7zmey/php-parser/releases/tag/v0.5.0
Новость: https://www.opennet.me/opennews/art.shtml?num=48739


Содержание

Сообщения в этом обсуждении
"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 17:58 
Парсер пхп на go? Надо было на js делать для полноты картины

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 18:57 
Тогда уж на пхп

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 19:28 
парсер на PHP уже написан и встроен в PHP
http://php.net/manual/ru/function.token-get-all.php

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Шерстяной , 08-Июн-18 21:51 
https://github.com/nikic/PHP-Parser

не благодарите


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Григорий Федорович Конин , 08-Июн-18 23:54 
для чего вам хватит? Оно же ни в неймспейсы, ни даже в классы не умеет.

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено trdm , 08-Июн-18 22:13 
а мне и на сях хватит:
https://github.com/universal-ctags/ctags/blob/master/parsers...

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 18:04 
А чем оно лучше nikic/PHP-Parser. Парсера php на php от одного из ключевых разработчиков самого php?

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Vadym Slizov , 08-Июн-18 18:11 
Это полный аналог nikic/PHP-Parser только на Go. Ну и еще он немного быстре, по моим замерам приблизительно в 5 раз.

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 18:14 
personal home parser

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 18:39 
> возможность обработки PHP-файлов с некорректным синтаксисом.

Приличный парсер при обнаружении некорректного синтаксиса должен ругнуться и вылететь. Но не в случае с PHP.


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 19:06 
для PHP парсер с такой логикой пишется в три строчки...

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 19:07 
Ты не прав, для реадкторов/IDE для любого ЯП это краегоульная фича

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 19:47 
собрался выполнять код при помощи подсвечивалки синтаксиса?

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Vadym Slizov , 08-Июн-18 20:09 
> собрался выполнять код при помощи подсвечивалки синтаксиса?

Вы очевидно не поняли назначение данной библиотеки. Она не нацелена на исполнение кода. Основное назначение - перевод текстового представления исходников в пригодный для машинной обработки AST. Это как раз нужно для создания IDE, статических анализаторов, утилит автоматизированого рефакторинга либо для сбора метрик.


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 20:20 
приведи мне IDE, написанную на шаблонизаторе "персонал хоум пейджь"

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено KonstantinB , 08-Июн-18 20:29 
Ты не понял нифига.

Не IDE на PHP, а IDE для PHP.

Вот запускаешь тот же PHPStorm, пишешь невалидный PHP-код, он красненьким подсвечивается. Понятно теперь?


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 20:48 
а, все, теперь понял. Звиняйте, пацаны. Я опорочил имя Аноним

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Vadym Slizov , 08-Июн-18 20:51 
> приведи мне IDE, написанную на шаблонизаторе "персонал хоум пейджь"

https://github.com/felixfbecker/php-language-server реализует функции IDE для VSCode. А под капотом использует https://github.com/microsoft/tolerant-php-parser который, между прочим, тоже написан на PHP.


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 19:23 
а как насчет конвертации полученого AST в go исходники?

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Vadym Slizov , 08-Июн-18 19:56 
> а как насчет конвертации полученого AST в go исходники?

В стандартной библиотеки Go присутствует пакет AST и его можно использовать для генерации Go исходников. Самое сложное это сконвертировать абстрактное дерево PHP в абстрактное дерево Go.
Cтруктура этих языков очень разная, и я склонен верить что это практически нереализуемая задача.


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 23:47 
Почему не реализуемая. Практическую ценность будет иметь продукт, который 90% кода переведет (вполне реально), а 10% снабдит каментом "не шмагла" и оставит как есть. Экономия времени все равно будет нехилая.

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено KonstantinB , 08-Июн-18 20:30 
> а как насчет конвертации полученого AST в go исходники?

Это невозможно. Даже если выбросить eval() и подобное, что делать с нестрогой динамической типизацией?


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 08-Июн-18 20:45 
Субсет. У FB было параллельно с LLVM, не помню, как называлось.

"Релиз php-parser 0.5, парсера кода PHP"
Отправлено KonstantinB , 08-Июн-18 21:21 
У FB субсет был недолго, из него получился свой язык Hack, который, хоть и похож на PHP, но совсем не PHP.

Для проекта, который на субсете пишется по определенным правилам, это, конечно, возможно. Но смысла в этом не наблюдаю: существующий сколь-либо крупный проект на сабсет вменяемыми усилиями не переделать. А если писать новый проект - если нужна нормальная типизация и компиляция в нативный код, зачем его вообще писать на PHP, тем более, что ни один фреймворк под такие требования не подойдет?


"Релиз php-parser 0.5, парсера кода PHP"
Отправлено Аноним , 09-Июн-18 03:22 
А на чем тогда писать?