[
https://issues.apache.org/jira/browse/VELOCITY-631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12639613#action_12639613
]
Nathan Bubna commented on VELOCITY-631:
---------------------------------------
I'm messing around with this off and on today, though i'm anything but an
expert on the parser. It looks like putting a space between the reference and
the #set is a perfect workaround, as #set then gobbles that space up. Here's
some perhaps useful debug output from my latest version of the test (with
ParserTokenManager.debugPrint = true). If anyone more parser-savvy happens to
read this and have an insight, that would be swell...
Running org.apache.velocity.test.issues.Velocity631TestCase
[info] Expectation: $a
[info] Template: $a #set($b = 1)
$ : going to 5 (0) pushing cur state : 3
REF_TERM : stack pop (0) : lparen=0 newstate=3
#set : going to 0 (0) pushing cur state : 3
$ : going to 5 (1) pushing cur state : 0
REF_TERM : stack pop (1) : lparen=1 newstate=0
stack pop (0) : lparen=0 newstate=3
[info] Result: $a
[info] Expectation: $a
[info] Template: $a#set($b = 1)
$ : going to 5 (0) pushing cur state : 3
stack pop (0) : lparen=0 newstate=3
# : going to 0 (0) pushing cur state : 3
$ : going to 5 (1) pushing cur state : 0
REF_TERM : stack pop (1) : lparen=1 newstate=0
[error] Parser Exception: $a#set($b = 1)
Encountered "=" at line 1, column 11.
Was expecting:
<RPAREN> ...
org.apache.velocity.runtime.parser.ParseException: Encountered "=" at line 1,
column 11.
Was expecting:
<RPAREN> ...
at
org.apache.velocity.runtime.parser.Parser.generateParseException(Parser.java:3437)
at
org.apache.velocity.runtime.parser.Parser.jj_consume_token(Parser.java:3316)
at org.apache.velocity.runtime.parser.Parser.Directive(Parser.java:833)
at org.apache.velocity.runtime.parser.Parser.Statement(Parser.java:373)
at org.apache.velocity.runtime.parser.Parser.process(Parser.java:311)
at org.apache.velocity.runtime.parser.Parser.parse(Parser.java:105)
I can see that the $a#set version is not recognizing the #set, but i don't know
how to fix that...
> VTL Creates parse error, but shouldn't
> --------------------------------------
>
> Key: VELOCITY-631
> URL: https://issues.apache.org/jira/browse/VELOCITY-631
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 1.6-beta1
> Reporter: Byron Foster
> Attachments: Velocity631TestCase.java
>
>
> The following creates a parse exception, but should not:
> #macro(test $x)$x#set($i=1)#end
> Exception:
> Threw: org.apache.velocity.exception.ParseErrorException
> msg: Encountered "=" at /foo.vm[line 2, column 25]
> Was expecting one of:
> <RPAREN> ...
> <WHITESPACE> ...
> <WHITESPACE> ...
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]