2 # Copyright (C) 2001-2006, The Perl Foundation.
7 use lib qw( t . lib ../lib ../../lib );
10 use Parrot::Test tests => 2;
11 use Parrot::Test::PGE;
15 t/library/pge_examples.t - Parrot Grammar Engine tests of examples
19 % prove t/compilers/pge/pge_examples.t
24 pir_output_is( <<'CODE', <<'OUT', "This made Parrot m4 fail" );
27 load_bytecode "PGE.pbc"
30 p6rule = compreg "PGE::Perl6Regex"
32 .local pmc rulesub_a, rulesub_b
33 rulesub_a = p6rule( "a" )
34 rulesub_b = p6rule( "^(<[b]>)" )
36 .local string input_string
37 input_string = "_____________________________________________________________________"
39 rulesub_b( input_string )
44 rulesub_a( input_string )
55 pir_output_is( <<'CODE', <<'OUT', "parse FASTA" );
57 # Grok fasta files, which usually contain DNA, RNA or protein sequences.
58 # http://en.wikipedia.org/wiki/FASTA_format
61 load_bytecode 'PGE.pbc'
62 load_bytecode 'PGE/Perl6Grammar.pbc'
64 .local string fasta_grammar
65 fasta_grammar = <<'END_FASTA_GRAMMAR'
68 regex databank { <Bio::Fasta::entry>+ }
69 regex entry { <Bio::Fasta::desc_line> \n <Bio::Fasta::sequence> }
70 regex desc_line { <Bio::Fasta::start_entry> <Bio::Fasta::id> \s+ <Bio::Fasta::desc> }
71 regex start_entry { \> }
74 regex sequence { (<-[>]>*) }
80 >gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]
81 LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSFWGATVITNLFSAIPYIGTNLV
82 EWIWGGFSVDKATLNRFFAFHFILPFTMVALAGVHLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLG
83 LLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIVIL
84 GLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGX
86 >poly_a teasing the parser with DNA
87 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
91 p6grammar = compreg "PGE::Perl6Grammar"
93 ( code ) = p6grammar.'compile'(fasta_grammar, 'target'=>'PIR')
100 fasta_rule = get_global ['Bio::Fasta'], "databank"
102 ( match ) = fasta_rule( fasta )
104 # TODO: Extract named or positional captures
110 >gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus]
111 LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSFWGATVITNLFSAIPYIGTNLV
112 EWIWGGFSVDKATLNRFFAFHFILPFTMVALAGVHLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLG
113 LLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIVIL
114 GLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGX
116 >poly_a teasing the parser with DNA
117 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
122 # cperl-indent-level: 4
125 # vim: expandtab shiftwidth=4: