use strict;
use warnings;

use Test::More;

plan tests => 1;

use PPR;

my $hello_world = <<'END_SOURCE';

 ''=~('(?{'.('`'|'%').('['^'-').('`'|'!').('`'|',').'"'.('['^'.').('['^'(').('`'
 |+                                                                           ((
 ((                                                                           ((
 ((                                                                           ((
 ((                               '%')))))))))))))                            .(
 ((                            '{'))^'[').('^'^(('`')|                        ((
 ((                       '+')))))).'.'.('^'^('`'|'.')).                      +(
 ((                     '^'))                         ^(((                    ((
 ((                   '`')                              )))                   ))
 |+                 '/')                                  ).(                 ((
 ((               '^')                                   )  ))^               +(
 ((              '`')                                    )   |((              ((
 ((             '.')                                  ))  )    )))            ).
 ((           ';')                                   )     .    (((           ((
 ((         '['                                    ))       ))   ))^          ((
 ((        '('                                   ))           )   )).         +(
 ((       '`'                                ))|+              (   '!'        ))
 .(      '['                             ^'"'                   )   .+(       ((
 ((      '{'                         ))))                        ^   '['      ).
 ((      (((                '\\')))))                            .   '"'      .(
 ((      '`'              ))                                     ^    ((      ((
 ((      '('             ))                                       )   ))      ))
 .(      '`'            |                                         (   ((      ((
 ((      '%'            )                                          )))))      ))
 .(      '`'           |                                              ((      ((
 ((      ','           )          )))))).('`'|',').('`'|'/').','.(('{')^      ((
 ((      '['           ))))).("\{"^    "\,").(    (    (   "\`"))|     (      ((
 ((      '/'           )          ) )))  ).(  ((  (    ( ((  '['  )))  )      ))
 ^+      ')'           )          . ('`'|"\,").(  (    ( '`'))|"\$").  (      ((
 ((      '!'           )          )               )    )               )      .+
 ((      ((   (((     (           (               (    ((              (      ((
 ((      ((   (  '\\')            )               )     ))             )      ))
 ))      ))   )                   )               )     ) )            )      ))
 .+      ((   (  '"'               ))).';"})');$:=       ( '.')^'~';$~=       ((
 ((      ((    (                              (          (          (         ((
 ((       (     (                            (          (           (         ((
 ((        (     (                            ( '@'    )            )         ))
 ))         )      )))                              ))             )          ))
 ))          )       )                  )))))))|'(';$^=(')')^      (          ((
 ((           (      (                '[')))))));$/='`'|'.';$,     =          ((
 ((            (     (               '('))))))^'}';$\='`'|"\!";   (           $:
 )=             (   (                ')'))  ^'}';$~=('*')|  '`';  (           $^
 )=              ( (                 '+')  )              ^  '_' ;            $/
 =(               ((                 '&'   )))|'@';$,="\["&   '~'             ;(
 $\                )                                            =             ((
 ((                (                                           (              ((
 ((                (                                          (               ((
 ((               (       (                                  (                ((
 ((               (        (                                (                 ((
 ((               (          (                             (                  ((
 ((               (            (                          (                   ((
 ((              (               (                       (   (                ((
 ((              (                 (                    (     (               ((
 ((             (                    ','              ))       )              ))
 ))            )                          )))))))))))            )            ))
 ))                                                                           ))
 ))                                                                           ))
 ))                                                                           ))
 )))))))))))))))))))))))))))^'|';$:='.'^'~';$~='@'|'(';$^=')'^'[';$/='`'|'.';#;#

END_SOURCE

ok $hello_world =~ m{ \A (?&PerlOWS) (?&PerlDocument) (?&PerlOWS) \Z  $PPR::GRAMMAR }xms 
    => "matched Acme::Eyedrops Hello, World!";

done_testing();