or download this
use Parse::RecDescent;
use Data::Dumper;
...
my $parser=Parse::RecDescent->new($grammar);
my $result = $parser->start("(SBARQ (WHNP (WP Who))(SQ (VP (VBZ says)(
+, ,)(S (SBAR (`` ``)(IN If)(S (NP (PRP you))(VP (VBP do)(RB n<t)(VP (
+VB look)(ADJP (JJ good)))))(, ,)(S (NP (PRP we))(VP (VBP do)(RB n<t)(
+VP (VB look)(ADJP (JJ good)('' <<)))))))))(? ?))");
print Dumper($result);