Previous Entry Share Next Entry
2016-01

PEG (Parsing Expression Grammars)

давно хотел с ними поиграться, да все некогда было.
офигенная штука. много раз до этого пробовал писать разные парсеры, руками и тулзами – и всё какое-то жутко раковое, многослойное, громоздкое, етц. или требует выворачивать мозг под ограничения грамматики.

а тут пишется и пишется... мысли о DSL’ях резко стали на порядок реалистичнее :)
да что там говорить, парсер + генератор кода для “стековой VM” умещаются на страницу кода вместе с обвязкой!

microbasic

а, да, еще есть другие PEG (Program Expression Graphs), на них тоже надо обязательно посмотреть…


  • 1
murkt November 24th, 2010
Суровые инструменты для работы используешь :)

wizzard0 November 24th, 2010
фплане? :)

для питона мне от IDE нужно в основном подсветка и дерево файлов

murkt November 24th, 2010
Что-то не заметил тут дерева файлов :)

wizzard0 November 24th, 2010
Э... Не, серьезно, я в упор не вижу тут чего-то, что выиграло бы от того, что я ткнул бы в иконку Visual Studio или pydev вместо idle :)

А вообще большинство кода пишу в VS, в основном из-за потребности в mixed-language проектах (python + C# + JS + C)

murkt November 24th, 2010
Ну фиг знает, хоткеи (просто для редактирования пригодные) меняются ведь от редактора к редактору. Если нужно написать больше одной-двух строк кода, не всегда удобно и приятно использовать не то, что обычно используешь. А тут страница целиком, напряжно было бы.

izhurnal.blogspot.com November 24th, 2010
После где-то 5-6-го редактора, на эти мелочи перестаешь обращать внимания. Ну если, конечно, это не vi.

wizzard0 November 24th, 2010
"пикать и портить текст" :D

В винде все-таки хоткеи текстбоксов унифицированы.
Но студией я действительно умею рулить хоткеями очень быстро, соглашусь.

Кстати, вопрос в тему - не нашел пока ни одной вменяемой консоли\шелла, ни для *nix ни для win. Какие-нибудь советы можешь дать?

murkt November 24th, 2010
Питоновская консоль/шелл? Сейчас один условно адекватный ответ - ipython. Из доступных сортов говна - это лучшее :)

Если просто шелл, чтоб удобный коммандлайн был, то я использую zsh.

izhurnal.blogspot.com November 24th, 2010
tclsh? irb? *уворачивась от тупых и острых предметов*

wizzard0 November 24th, 2010
tclsh хм, что-то в этом есть.

irb ненене, вот уж не знаю чем, но не нравится мне руби. хотя все равно разберусь рано или поздно, но пока не хочу.

murkt November 25th, 2010
ipython тоже можно как комманд-лайн шелл использовать. Полный отстой!

wizzard0 November 24th, 2010
вот дебаггер в веркзеуге охуенен, если уж про питоновские консоли.

понятно в общем.

izhurnal.blogspot.com November 24th, 2010
В чем суровость-то?

murkt November 24th, 2010
В незамутненности.

izhurnal.blogspot.com November 24th, 2010
Эээ... У меня всегда редакторы выглядели именно так — текст и полоса меню сверху.:)

murkt November 24th, 2010
В моем редакторе и полосы меню сверху нет, потому что не нужна.

Не в панельках же вопрос, ну :)

izhurnal.blogspot.com November 24th, 2010
Я оставляю, чтобы было. Наличие буковок «File Edit...» придаёт икебане законченность и концептуальную целостность. ;)

wizzard0 November 24th, 2010
Незамутненность наше всё)

izhurnal.blogspot.com November 24th, 2010
Ох. Судя по коду на скрине — вкусняшка. Надо бы погуглить, если ли что-нибудь такое для Рубей, а то мало ли когда пригодится.

С другой стороны, когда пишешь на питоне или руби, они сами себе нехилый DSL. И когда возникает потребность запилить какие-нибудь конфиги, первая мысль: нельзя ли их оформить в синтаксисе руби, чтобы оно само себя парсило.

wizzard0 November 24th, 2010
https://github.com/aquasync/ruby-ometa

мне не сколько для конфигов, тут много парсить чужое по работе понадобилось.

izhurnal.blogspot.com November 24th, 2010
Благодарю. :)

gds November 24th, 2010
а у меня другая история -- статические парсеры не подходят, и думал, что брать. Не понравились ограничения PEG (с другой стороны, они не критичны были особо), плюс не было библиотек сходу, поэтому чесал репку, что же брать. В итоге -- сейчас потихоньку реализую earley parser.

wizzard0 November 24th, 2010
Ага, я читал те посты. Если удастся сделать что-то на GLR, будет тоже интересно послушать.

  • 1
?

Log in

No account? Create an account