Use standalone yapp parse driver

databind
Vitaliy Filippov 2014-12-05 15:32:07 +03:00
parent 6e4713ac83
commit c86ac3e832
3 changed files with 1956 additions and 1479 deletions

File diff suppressed because it is too large Load Diff

View File

@ -10,9 +10,10 @@
package VMXTemplate::Parser; package VMXTemplate::Parser;
use strict; use strict;
use base qw(Parse::Yapp::Driver VMXTemplate::Compiler); use VMXTemplate::Compiler;
use VMXTemplate::Utils; use VMXTemplate::Utils;
<<$driver>> <<$driver>>
our @ISA = qw(Parse::Yapp::Driver VMXTemplate::Compiler);
<<$head>> <<$head>>
sub new sub new
@ -26,7 +27,7 @@ sub new
<<$states>>, <<$states>>,
yyrules => yyrules =>
<<$rules>>, <<$rules>>,
#line 29 "template.skel.pm" #line 30 "template.skel.pm"
), $class; ), $class;
$self->{options} = $options; $self->{options} = $options;
return $self; return $self;

View File

@ -1,6 +1,6 @@
# Контекстно-свободная Parse::Yapp-грамматика шаблонизатора # Контекстно-свободная Parse::Yapp-грамматика шаблонизатора
# #
# Компилировать так: yapp -o VMXTemplate/Parser.pm -t template.skel.pm template.yp # Компилировать так: yapp -s -o VMXTemplate/Parser.pm -t template.skel.pm template.yp
# #
# {{ двойные скобки }} нужно исключительно чтобы маркеры начала и конца подстановки # {{ двойные скобки }} нужно исключительно чтобы маркеры начала и конца подстановки
# были уникальны в грамматике. Вместо них обычно используются { одинарные }, а # были уникальны в грамматике. Вместо них обычно используются { одинарные }, а