The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -T

use 5.006;
use strict;
use warnings;
use warnings FATAL => 'all';
use Data::Dumper;


use Test::More;

plan tests => 4;


use lib 'lib';

use Parse::Gnaw;
use Parse::Gnaw::LinkedListDimensions2;
use Parse::Gnaw::LinkedListConstants;
use Parse::Gnaw::Blocks::Letter;
use Parse::Gnaw::Blocks::LetterConstants;


rule('abgl', 'a','b','g','l');
rule('abcl', 'a','b','c','l');
rule('afkp', 'a','f','k','p');
rule('afki', 'a','f','k','i');


# we're going to construct a basic 2-dimensional string linked list to parse
# but we're not going to run a grammar on it.
# we're just going to see that the 2D linked list got created correctly.

my $raw_2d_string=<<'RAWSTRING';
abcd
efgh
ijkl
mnop
RAWSTRING

my $string1=Parse::Gnaw::LinkedListDimensions2->new(string=>$raw_2d_string);
my $string2=Parse::Gnaw::LinkedListDimensions2->new(string=>$raw_2d_string);
my $string3=Parse::Gnaw::LinkedListDimensions2->new(string=>$raw_2d_string);
my $string4=Parse::Gnaw::LinkedListDimensions2->new(string=>$raw_2d_string);



ok(    $string1->parse('abgl'),   "parse 2d string with abgl rule");
ok(not($string2->parse('abcl')),  "parse 2d string with abcl rule");
ok(    $string3->parse('afkp'),   "parse 2d string with afkp rule");
ok(not($string4->parse('afki')),  "parse 2d string with afki rule");

__DATA__