From b80630cd6f48308c7fc987f036ecdfd97548016f Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 3 Oct 2012 12:08:14 -0500 Subject: allow sections to be field lookups too --- lib/Text/Xslate/Syntax/Handlebars.pm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'lib/Text/Xslate/Syntax/Handlebars.pm') diff --git a/lib/Text/Xslate/Syntax/Handlebars.pm b/lib/Text/Xslate/Syntax/Handlebars.pm index b58a716..b43fcd7 100644 --- a/lib/Text/Xslate/Syntax/Handlebars.pm +++ b/lib/Text/Xslate/Syntax/Handlebars.pm @@ -214,25 +214,24 @@ sub std_block { my $inverted = $symbol->id eq '^'; - if ($self->token->arity ne 'name') { - $self->_unexpected("block name", $self->token); + my $name = $self->expression(0); + if ($name->arity ne 'variable' && $name->arity ne 'field') { + $self->_unexpected("opening block name", $self->token); } - my $name = $self->token->nud($self); - $self->advance; $self->advance(';'); my $body = $self->statements; $self->advance('/'); + my $closing_name = $self->expression(0); - if ($self->token->arity ne 'name') { - $self->_unexpected("block name", $self->token); + if ($closing_name->arity ne 'variable' && $closing_name->arity ne 'field') { + $self->_unexpected("closing block name", $self->token); } - if ($self->token->id ne $name->id) { + if ($closing_name->id ne $name->id) { # XXX $self->_unexpected('/' . $name->id, $self->token); } - - $self->advance; + $self->advance(';'); my $iterations = $inverted ? ($self->make_ternary( -- cgit v1.2.3-54-g00ecf