#!/usr/bin/perl use dag; use Data::Dumper; undef($/); my $input = <>; $input =~ /\n%%(.|\n)*\n%%/; my $grammar = dag::parse($&); $grammar -> complete(); my ($before,$after) = ($`,$'); print $before; $Data::Dumper::Varname = 'grammar'; my $dump = Dumper($grammar); $dump =~ s/\\\\/\\/g; $dump =~ s/\\'/'/g; $dump =~ s/'XXXDAGXXX sub/sub/g; $dump =~ s/\}XXXDAGXXX'/\}/g; print "my $dump\n"; print 'my $grammar = $grammar1;',"\n"; print '$dag::typeof = \&typeof;',"\n"; print 'dag::run($grammar, shift);',"\n"; print $after;