-
-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Closed
Description
Symfony version(s) affected
5.3.7
Description
ExpressionLanguage is unable to parse decimal numbers without leading zeros.
Invalid expressions:
"-.1"
"0-.1"
"0+.1"
".1"
Valid expressions:
"-0.1"
"0-0.1"
"0+0.1"
How to reproduce
>>> $el = new ExpressionLanguage;
=> Symfony\Component\ExpressionLanguage {#4544}
>>> $el->parse('-0.1', [])->getNodes()->dump();
=> "(- 0.1)"
>>> $el->parse('-.1', [])->getNodes()->dump();
Symfony\Component\ExpressionLanguage\SyntaxError with message 'Unexpected token "punctuation" of value "." around position 2 for expression `-.1`.'
>>> $el->parse('0-.1', [])->getNodes()->dump()
Symfony\Component\ExpressionLanguage\SyntaxError with message 'Unexpected token "punctuation" of value "." around position 3 for expression `0-.1`.'
>>> $el->parse('0+.1', [])->getNodes()->dump()
Symfony\Component\ExpressionLanguage\SyntaxError with message 'Unexpected token "punctuation" of value "." around position 3 for expression `0+.1`.'
>>> $el->parse('0+0.1', [])->getNodes()->dump()
=> "(0 + 0.1)"
>>> $el->parse('.1', [])->getNodes()->dump()
Symfony\Component\ExpressionLanguage\SyntaxError with message 'Unexpected token "punctuation" of value "." around position 1 for expression `.1`.'
Possible Solution
No response
Additional Context
No response