Parser

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску

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

Свежий релиз — 3.4.0 — выпущен 17.11.2009.

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

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

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

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

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

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

Это сам файл с таблицей (sections.cfg) <source lang="text"> section_id name uri 1 Главная / 2 Новости /news/ 3 Контакты /contacts/ 4 Цены /price/ 5 Ваше мнение /gbook/ </source>

Скрипт с html-кодом (например, index.html) <source lang="html4strict"> @main[]

  1. Это main - главный метод. С него начинается обработка программы.
  2. Кстати, решетка в начале строки означает линейный комментарий.

<html>

  <head>
     <title>Parser в Википедии</title>
  </head>
  <body>
     ^navigation[]
  </body>

</html>


@navigation[]

  1. А здесь загружаем таблицу из файла sections.cfg
  2. Пробегаемся по всем строкам и выводим колонки uri и name

$sections[^table::load[sections.cfg]]

    ^sections.menu{
  • <a href="$sections.uri">$sections.name</a>
  • }

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

Критика

См. также

Ссылки

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....