.wrap now allows barewords for parameter names
authorTony Cook <tony@develop-help.com>
Fri, 8 May 2015 07:37:11 +0000 (17:37 +1000)
committerTony Cook <tony@develop-help.com>
Sun, 17 May 2015 12:30:14 +0000 (22:30 +1000)
site/cgi-bin/modules/Squirrel/Template/Parser.pm

index d24813769e8d902a2bb1dc196c570d96c9a8171d..0128d7667337007196a4cf38417de45ad0103aa3 100644 (file)
@@ -2,7 +2,7 @@ package Squirrel::Template::Parser;
 use strict;
 use Squirrel::Template::Constants qw(:token :node);
 
-our $VERSION = "1.020";
+our $VERSION = "1.021";
 
 use constant TOK => 0;
 use constant TMPLT => 1;
@@ -451,7 +451,6 @@ sub _parse_ext_wrap {
     $self->[TOK]->unget($end);
   }
 
-
   # it's not really the filename (yet)
   my $tokens = Squirrel::Template::Expr::Tokenizer->new($wrap->[NODE_WRAP_FILENAME]);
 
@@ -464,22 +463,12 @@ sub _parse_ext_wrap {
 
   my @result;
   my $next = $tokens->get;
-  my @args;
+  my $args = [];
   if ($next->[0] eq 'op,') {
     unless (eval {
-      while ($next->[0] eq 'op,') {
-       my $key;
-       my $value;
-       $key = $parser->parse_tokens($tokens);
-       my $colon = $tokens->get;
-       $colon->[0] eq 'op:'
-         or die [ error => "Expected : but found $colon->[0]" ];
-       $value = $parser->parse_tokens($tokens);
-       push @args, [ $key, $value ];
-       $next = $tokens->get;
-      }
+      $args = $parser->parse_pairs($tokens);
 
-      if ($next->[0] ne 'eof') {
+      if ($tokens->peektype ne 'eof') {
        die [ error => "Expected , or eof but found $next->[0]" ];
       }
       1;
@@ -503,7 +492,7 @@ sub _parse_ext_wrap {
   }
   $wrap->[NODE_WRAP_CONTENT] = $content;
   $wrap->[NODE_WRAP_FILENAME] = $name_expr;
-  $wrap->[NODE_WRAP_ARGS] = \@args;
+  $wrap->[NODE_WRAP_ARGS] = $args;
   $wrap->[NODE_WRAP_END] = $end;
 
   if (@errors) {