| Укропопарсер v0.01 |
[Apr. 10th, 2008|12:58 pm] |
Как показывают отзывы на вот это, и в ЖЖ, и в оффлайне, что вещь стоит того чтобы ее продолжать, так -- за дело же! Будем придумывать синтаксис.
Думаю что для простоты нужно взять за основу нечто посередине между перлом и жабаскриптом, первый из-за того что его Укропопарсер легче написать на перле как source-filter, а последний оттого что синтаксис простой. Пока возьмем перла, пусть уж будет для начала $укроп++, а там посмотрим приживется или нет.
Итак, source-filter:
use strict;
package Ukrop;
my %n = (
'взад' => 'return',
'або' => 'else',
'то' => '{',
'отож' => '}',
'так' => '',
'нехай' => 'my',
'кажи' => 'print',
'дiйство' => 'sub',
'доки' => 'while',
'якщо' => 'if',
'довжина' => 'length',
'геть' => 'break',
'вiдрiжемочиєщо'=> 'chomp',
);
my $k = join('|', sort keys %n);
$k = qr/\b$k\b/;
use Filter::Simple sub { s/($k)/$n{$1}/g };
и как вызывать:
use strict;
use lib '.';
use Ukrop;
доки (<>) то
вiдрiжемочиєщо;
кажи "ти казав: $_\n";
так отож
|
|
|