-
Notifications
You must be signed in to change notification settings - Fork 44
Open
Description
Test expression:
if (pi < 1) { }}
(issue mentioned some time ago on p5p IRC channel)
Implications: another example where Perl uses FUN0
to parse code differently
How PPI
parses it:
ppi-dump.pl 'if (pi < 1) { }}'
PPI::Document
PPI::Statement::Compound
PPI::Token::Word 'if'
PPI::Token::Whitespace ' '
PPI::Structure::Condition ( ... )
PPI::Statement::Expression
PPI::Token::Word 'pi'
PPI::Token::Whitespace ' '
PPI::Token::Operator '<'
PPI::Token::Whitespace ' '
PPI::Token::Number '1'
PPI::Token::Whitespace ' '
PPI::Structure::Block { ... }
PPI::Token::Whitespace ' '
PPI::Statement::UnmatchedBrace
PPI::Token::Structure '}'
How Perl parses it
Depends on prototype of pi
:
sub pi ();
- treats
<
as comparison operator
- treats
sub pi;
- treats
<
as opening token of<>
- treats