Parser

Это статья о языке программирования, об алгоритме синтаксического анализа см. Синтаксический анализ.

Parser — объектно-ориентированный скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере с поддержкой CGI. Разработан Студией Артемия Лебедева и выпущен под лицензией, сходной с GNU GPL. Язык специально спроектирован и оптимизирован для того, чтобы было удобно создавать простые сайты. Работа с формами, cookies, табличными файлами, базами данных и XML — часть языка, а модульность языка позволяет легко наращивать функциональность.

Parser
Изображение логотипа
Семантикамультипарадигменный
Класс языкаязык программирования и процедурный язык программирования
Тип исполненияИнтерпретатор компилирующего типа
Появился в1997
Автор

Константин Моршнев

Александр Петросян
Выпуск
Система типовдинамическая
Испытал влияниеPerl, Java, C++, HTML
ЛицензияGNU GPL
Сайтparser.ru

Отличия Parser от других языков программирования

Parser в известном смысле — макроязык, в котором нет оператора print. Весь текст, набранный в исходном файле, по сути, большой оператор print, а конструкции Parser являются погруженными в текст.Получается, что вы не пишете программу, которая выводит текст — наоборот, в имеющийся текст вы добавляете логику и организацию, блоки (методы), на которые вы разбиваете HTML-код.

В каждый каталог, с которым будет работать Parser, можно класть файл auto.p, в котором будут описаны основные настройки и методы.Особенностью является наследственность (наличие в нескольких каталогах по пути к скрипту) и безусловное подключение этого файла.Таким образом, вывод меню можно описать лишь в одном файле, и он автоматически будет применен ко всему сайту.

Некоторые ограничения (например, работа с изображениями) легко устраняются использованием сторонних консольных утилит и shell-скриптов.

Пример программы

Пример вывода меню на основе информации, взятой из конфигурационного файла (CSV, разделенный табуляциями)

Это сам файл с таблицей (sections.cfg)

section_idnameuri1Главная/2Новости/news/3Контакты/contacts/4Цены/price/5Ваше мнение/gbook/

Скрипт с html-кодом (например, index.html)

@main[]# Это main - главный метод. С него начинается обработка программы.# Кстати, решетка в начале строки означает линейный комментарий.<html>   <head>      <title>Parser в Википедии</title>   </head>   <body>      ^navigation[]   </body></html>@navigation[]# А здесь загружаем таблицу из файла sections.cfg# Пробегаемся по всем строкам и выводим колонки uri и name$sections[^table::load[sections.cfg]]<ul>   ^sections.menu{      <li>          <a href="$sections.uri">$sections.name</a>      </li>   }</ul>

Десятки полезных примеров размещены на сайте проекта.

Недостатки

  • Найти хостера, поддерживающего parser, почти нереально.
  • Являясь макроязыком, Parser не позволяет быстро отделить логику от дизайна.
  • Отсутствуют удобные инструментарии, например, для автоматического создания понятных адресов.

Примечания

Ссылки


🔥 Top keywords: Заглавная страницаЯндексДуров, Павел ВалерьевичСлужебная:ПоискYouTubeЛунин, Андрей АлексеевичПодносова, Ирина ЛеонидовнаВКонтактеФоллаут (телесериал)WildberriesTelegramРеал Мадрид (футбольный клуб)Богуславская, Зоя БорисовнаДуров, Валерий СемёновичРоссияXVideosСписок умерших в 2024 годуЧикатило, Андрей РомановичFallout (серия игр)Список игроков НХЛ, забросивших 500 и более шайбПопков, Михаил ВикторовичOzon17 апреляИльин, Иван АлександровичMail.ruСёгун (мини-сериал, 2024)Слово пацана. Кровь на асфальтеПутин, Владимир ВладимировичЛига чемпионов УЕФАГагарина, Елена ЮрьевнаБишимбаев, Куандык ВалихановичЛига чемпионов УЕФА 2023/2024Турнир претендентов по шахматам 2024Манчестер СитиMGM-140 ATACMSРоссийский миротворческий контингент в Нагорном КарабахеЗагоризонтный радиолокаторПинапВодительское удостоверение в Российской Федерации