Author: cbrisson
Date: Mon Feb 20 15:12:06 2017
New Revision: 1783776

URL: http://svn.apache.org/viewvc?rev=1783776&view=rev
Log:
[engine] allow expressions inside []: $foo[$bar + 1]

Modified:
    velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
    
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm
    
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp

Modified: velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt?rev=1783776&r1=1783775&r2=1783776&view=diff
==============================================================================
--- velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt 
(original)
+++ velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt Mon 
Feb 20 15:12:06 2017
@@ -1040,7 +1040,7 @@ TOKEN:
 |   <FALSE: "false">
 }
 
-<DIRECTIVE,REFMOD2>
+<DIRECTIVE,REFMOD2,REFINDEX>
 TOKEN :
 {
     <MINUS: "-">
@@ -1782,12 +1782,8 @@ void IntegerRange() : {}
 void IndexParameter() #void: {}
 {
     (<WHITESPACE>|<NEWLINE>)*
-    (
-        StringLiteral()
-        | IntegerLiteral()
-        | True()
-        | False()
-        | Reference()
+        (
+            Expression()
         )
     (<WHITESPACE>|<NEWLINE>)*
 }

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm?rev=1783776&r1=1783775&r2=1783776&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/array.vm
 Mon Feb 20 15:12:06 2017
@@ -40,3 +40,9 @@ $p.m( [ $A.g(1), $title ])
 $pp.messageFormat( [ $Abc.get($sti), $title, $ti, $sti, 'bodytext' ], 
$subtopicTemplate)
 #set ($args = [ $pp.nQuestions, $pass, $units ] )
 
+## expression in index
+
+#set($arr = [ 0, 1, 2, 3 ])
+#set($index = 1)
+
+$arr[$index + $index * 2]

Modified: 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp
URL: 
http://svn.apache.org/viewvc/velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp?rev=1783776&r1=1783775&r2=1783776&view=diff
==============================================================================
--- 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp
 (original)
+++ 
velocity/engine/trunk/velocity-engine-core/src/test/resources/templates/compare/array.cmp
 Mon Feb 20 15:12:06 2017
@@ -20,3 +20,6 @@ a
 $p.m( [ $A.g(1), $title ])
 $pp.messageFormat( [ $Abc.get($sti), $title, $ti, $sti, 'bodytext' ], 
$subtopicTemplate)
 
+
+
+3


Reply via email to