WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
Это статья о языке программирования, об алгоритме синтаксического анализа см. Синтаксический анализ.
Parser
Семантика мультипарадигменный
Класс языка язык программирования и процедурный язык программирования[d]
Тип исполнения Интерпретатор компилирующего типа
Появился в 1997
Автор
Система типов динамическая
Испытал влияние Perl, Java, C++, HTML
Лицензия GNU GPL
Сайт parser.ru

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

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

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

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

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

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

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

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

section_id	name		uri
1		Главная		/
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>

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

Недостатки

Примечания

    Ссылки

    Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

    Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

    Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




    Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

    Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

    2019-2024
    WikiSort.ru - проект по пересортировке и дополнению контента Википедии