Parser

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Это статья о языке программирования, об алгоритме синтаксического анализа см. Синтаксический анализ.
Parser
Parser.png
Семантика:

мультипарадигменный

Тип исполнения:

Интерпретатор компилирующего типа

Появился в:

1997

Автор(ы):

Александр Петросян

Типизация данных:

динамическая

Испытал влияние:

Perl, Java, C++, HTML

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

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

Содержание

[править] Отличия 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>

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

[править] Критика

[править] См. также

[править] Ссылки

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках