You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@velocity.apache.org by cb...@apache.org on 2019/12/12 19:59:12 UTC

svn commit: r1871284 - /velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt

Author: cbrisson
Date: Thu Dec 12 19:59:11 2019
New Revision: 1871284

URL: http://svn.apache.org/viewvc?rev=1871284&view=rev
Log:
[engine][VELOCITY-923] Fix parser regression

Modified:
    velocity/engine/trunk/velocity-engine-core/src/main/parser/Parser.jjt

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=1871284&r1=1871283&r2=1871284&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 Thu Dec 12 19:59:11 2019
@@ -771,6 +771,7 @@ TOKEN:
      switchTo(REFINDEX);
    }
    |
+   /* we need to give precedence to the logical 'or' here, it's a hack to avoid multiplying parsing modes */
    <LOGICAL_OR_2: "||">
    {
        stateStackPop();
@@ -1574,6 +1575,7 @@ boolean Statement(boolean afterNewline)
 |   (<WHITESPACE>) #Text { return false; }
 |   (<SUFFIX>) #Text { return true; }
 |   LOOKAHEAD(2) EndingZeroWidthWhitespace() { return afterNewline; }
+|   (<LOGICAL_OR_2>) #Text { return afterNewline; } // needed here since it can be triggered in <REFERENCE> mode out of any boolean evaluation
 |   (<ZERO_WIDTH_WHITESPACE>) #Text { afterNewline = !afterNewline; return false; }
 }