Advertisement
Guest User

Untitled

a guest
May 10th, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.47 KB | None | 0 0
  1. #!/usr/bin/perl --
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. use 5.014;
  7.  
  8. use Data::Dumper;
  9.  
  10. my $rules = join("\n",
  11.     map { "<token: $_>\n  $_\n" } "A" .. "Z"
  12. );
  13.  
  14. my $grammar = do {
  15.     use re 'eval';
  16.     use Regexp::Grammars;
  17.     my $regexps = {};
  18.     foreach my $rule ( "A" .. "Z" ) {
  19.         $regexps->{$rule} = qr{
  20.             ^ <$rule> $
  21.    
  22.             $rules
  23.         }xims;
  24.     }
  25.     $regexps;
  26. };
  27.  
  28. foreach ( "A".."Z" ) {
  29.     say $_, $_ =~ $grammar->{$_} ? " win" : " fail";
  30. }
  31. #warn Dumper( $grammar->{W} );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement