diff -Naur Template-Toolkit-2.08/parser/Grammar.pm.skel Template-Toolk +it-2.08-bitop/parser/Grammar.pm.skel --- Template-Toolkit-2.08/parser/Grammar.pm.skel Fri Jun 7 19: +29:08 2002 +++ Template-Toolkit-2.08-bitop/parser/Grammar.pm.skel Wed Nov 27 21: +36:36 2002 @@ -106,10 +106,11 @@ my @cmpop = keys %CMPOP; # my @binop = qw( + - * % ); # '/' above, in @tokens my @binop = qw( - * % ); # '+' and '/' above, in @t +okens + my @bitop = qw( & ^ ); # fill lexer table, slice by slice, with reserved words and opera +tors - @$LEXTABLE{ @RESERVED, @cmpop, @binop, @tokens } - = ( @RESERVED, ('CMPOP') x @cmpop, ('BINOP') x @binop, @tokens + ); + @$LEXTABLE{ @RESERVED, @cmpop, @binop, @bitop, @tokens } + = ( @RESERVED, ('CMPOP') x @cmpop, ('BINOP') x @binop, ('BITOP +') x @bitop, @tokens ); }
diff -Naur Template-Toolkit-2.08/parser/Parser.yp Template-Toolkit-2.0 +8-bitop/parser/Parser.yp --- Template-Toolkit-2.08/parser/Parser.yp Fri Jul 19 23:22:57 20 +02 +++ Template-Toolkit-2.08-bitop/parser/Parser.yp Wed Nov 27 21: +34:19 2002 @@ -50,6 +50,7 @@ %left DOT %left CMPOP %left BINOP +%left BITOP %left '+' %left '/' %left DIV @@ -358,6 +359,7 @@ ; expr: expr BINOP expr { "$_[1] $_[2] $_[3]" + } + | expr BITOP expr { "$_[1] $_[2] $_[3]" + } | expr '/' expr { "$_[1] $_[2] $_[3]" + } | expr '+' expr { "$_[1] $_[2] $_[3]" + } | expr DIV expr { "int($_[1] / $_[3])" + }
In reply to Bitwise Operations for Template Toolkit by rob_au
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |