Parser
- Это статья о языке программирования, об алгоритме синтаксического анализа см. Синтаксический анализ.
![]() |
|
| Семантика: | |
|---|---|
| Тип исполнения: | |
| Появился в: | |
| Автор(ы): | |
| Типизация данных: | |
| Испытал влияние: | |
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>
Десятки полезных примеров размещены на сайте проекта.
[править] Критика
- Являясь макроязыком, Parser не позволяет быстро отделить логику от дизайна.
- Отсутствуют удобные инструментарии, например, для автоматического создания понятных адресов.
[править] См. также
[править] Ссылки
- Официальный сайт языка программирования Parser
- Документация Parser
- Сообщество пользователей Parser
- Хостинги с Parser
| Основные языки программирования (сравнение IDE история хронология) | |
|---|---|
| Используемые в разработке |
Ада APL Язык ассемблера ActionScript ABAP/4 AutoIt AWK Бейсик Си Кобол C++ C# Cω Clarion Clojure ColdFusion Common Lisp D dBase Delphi Eiffel Erlang Euphoria F# Форт Фортран Gambas Go Groovy HAL/S Haskell Icon Java JavaScript Limbo Lua Object Pascal Objective-C OCaml Oz Parser Паскаль Perl PHP PowerBASIC PureBasic Python ПЛ/1 Пролог Ruby Scala Scheme Smalltalk SQL PL/SQL Tcl Vala Visual Basic (.NET) |
| Академические | |
| IEC 61131-3 | |
| Прочие | |
| Эзотерические | |
| Визуальные | |


