LINUX.ORG.RU

Релиз парсера PHP, написанного на Go

 , , ,


0

4

php-parser — библиотека для синтаксического разбора исходников PHP в абстрактное синтаксическое дерево. Может использоваться для создания статических анализаторов, утилит рефакторинга и сбора метрик.

Список изменений можно посмотреть по ссылке.

>>> Подробности



Проверено: Shaman007 ()

Без смузи работает?

anonymous ()

парсера написанного на Go

И куда катится мир...

Odalist ★★★★★ ()

Очень странный выбор языка для такой задачи.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

И Go и PHP -язычки для хипстеров. Так что неудивительно.

anonymous ()
Ответ на: комментарий от RazrFalcon

Не могу согласится. Golang довольно простой и быстрый, а наличие golex и goyacc делают его неплохим выбором для создания парсера.

z7zmey ()
Ответ на: комментарий от z7zmey

Си тоже простой, но писать на нём парсер - самоубийство.

GC, отсутствие ADT и итераторов - это странный набор для парсера.

наличие golex и goyacc

Это почти у любого языка есть.

Просто не понятна цель проекта. Для анализаторов и форматеров python подошел бы лучше.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

В моем случае был выбор PHP vs Golang и я выброл второй вариант хотя в первом уже реализован отличный парсер, написанный одним из контрибьюторов PHP.

С ADT и итераторами пока не ощутил проблем, возможно потому что мне пока не с чем сравнивать кроме PHP. Да и с GC, признаю, мне скорее всего придется повоевать но позже. Но в общем суть понял.

Я планирую в будущем написать language-server в противовес реализации на PHP. Для меня отдельным плюсом будет что Go компиилруется в единый бинарник без зависимостей.

z7zmey ()

Молодец, теперь напиши парсер Go на PHP

loz ★★★★★ ()

Ого, какие крутые новости на ЛОРе поперли. Релиз(0.5.0!!!) парсера, добавление символа в Юникод. Дальше, что?! Такое:

О УЖАС! ШАМАН СДЕЛАЛ ЛЕВЫЙ КЛИК МЫШКОЙ!
МАКСКОМ НА САМОМ ДЕЛЕ ПОЛЬЗУЕТ ВЕНДУ!

fang90 ★★★★★ ()

Ехал ненужно через реку Видит ненужно - в реке ненужно Сунул ненужно ненужно в ненужно Ненужно ненужно ненужно ненужно

dimgel ()
Ответ на: комментарий от Odalist

Зачем рассуждать о том, что тебе непонятно? facepalm.svg

anonymous ()
Ответ на: комментарий от z7zmey

ты не даешь c++ программистам почувствовать себя илитой :)

mrdeath ★★★★★ ()
Ответ на: комментарий от RazrFalcon

я стесняюсь спросить, чем же питон лучше для анализаторов?

mrdeath ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Си тоже простой, но писать на нём парсер - самоубийство.

И с каких пор программирование НКА на Си стало проблемой? Все это реализуется довольно просто, если знать как.

A-234 ★★★★★ ()
Ответ на: комментарий от RazrFalcon

As usual растоман не смог пройти мимо.

Golang довольно простой и быстрый

Си тоже простой, но писать на нём парсер - самоубийство

А также показать нулевые познания в логике.

anonymous ()
Ответ на: комментарий от buddhist

Тормоза на ровном месте. Во множестве парсеров можно вообще без аллокаций обойтись.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от A-234

И с каких пор программирование НКА на Си стало проблемой?

С тех пор, как появились языки получше.

tailgunner ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Во множестве парсеров можно вообще без аллокаций обойтись.

И что же эти парсеры будут выдавать на выходе? Неужели AST?

eao197 ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Мне кажется, вы путаете лексеры (разбирают входной поток на токены/лексемы) и парсеры (анализирующие поток токенов и реализующих синтаксический разбор).

eao197 ★★★★★ ()

Думаю, что этот парсер врядли поможет самому PHP.

bbk123 ★★★★★ ()
Ответ на: комментарий от eao197

Там вообще мутная терминология. Есть ещё токенайзеры и прочие. Под парсером сейчас понимается всё, что разбирает какие-либо данные.

Но я оценил вашу попытку придраться к словам. ЧТД.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Но я оценил вашу попытку придраться к словам. ЧТД.

Новость говорит именно о синтаксическом парсере, который дает на выходе AST. Вы бросили какашку в сторону GC и сказали, что многие парсеры не нуждаются в аллокации памяти вообще. При этом максимум, который можно получить от таких парсеров, — это токены, но вовсе не AST. Посему непонятно, с какого хрена вы сюда со своими какашками пришли и чем вам GC не угодил в подобного рода задачах.

eao197 ★★★★★ ()
Ответ на: комментарий от tailgunner

В любой другой язык в смысле? Потому что не вижу препятствий к встраиванию в экосистему того же языка, на котором написан парсер.

buddhist ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Под парсером сейчас понимается всё, что разбирает какие-либо данные.

Под парсером для языка программирования понимается вполне конкретная вещь. Я бы тоже хотел понять, как парсер (для языка программирования, конечно) можно написать без выделения памяти.

tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Вообще разделение на лексер/парсер довольно устоявшееся (года так с 75-го)

buddhist ★★★★★ ()
Ответ на: комментарий от bbk123

Не помню, чтобы похаписты просили о помощи.

wxw ★★★★★ ()
Ответ на: комментарий от buddhist

GC мешает встраивать парсер в виде библиотеки.

В любой другой язык в смысле?

Естественно.

tailgunner ★★★★★ ()
Ответ на: комментарий от buddhist

В академических кругах - да. А в реальном мире парсером называют что угодно.

RazrFalcon ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Ага, давайте обсудим программы, которые по запросу выдают номер позиции сайта в яндексе.

vzzo ★★★ ()
Ответ на: комментарий от RazrFalcon

Феерическое невежество.
Прям в палату мер и весов.

anonymous ()
Ответ на: комментарий от RazrFalcon

ты лучше ссылки дай где пишут парсеры не на го без аллокаций :)

mrdeath ★★★★★ ()
Ответ на: комментарий от mrdeath

Этот может на полном серьезе и ссылку на strtok дать.

eao197 ★★★★★ ()
Ответ на: комментарий от mrdeath

кроме парсера, я бы не отказался бы еще от примеров реализации бд без аллокаций. Может там рядышком еще есть какие-нибудь видео кодеки, которые bd жмут в килобайт без потерь качества?

mrdeath ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Вы считаете, что этот список как-то доказывает ваше некорректное утверждение? :)

htower_ ()
Ответ на: комментарий от RazrFalcon

Не стоит смущаться своего мнения, будьте смелее и жизнь станет попроще.

A-234 ★★★★★ ()
Ответ на: комментарий от htower_

А разве нет? По ссылке куча проектов которые называют себя парсерами, при этом парсерами (в оригинальном смысле) не являются.

RazrFalcon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.