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 Data::Dumper;
use lib 'lib';

use warnings FATAL => 'all';
use Test::More;

plan tests => 4;

use Parse::Gnaw;

# a fully automated rule
rule('rule1', 
	'a', 
	'b',
);


# a mixed rule, some automated, some manual.
rule('rule2', 
	'c', 
	call('rule1'),
);



{

print Dumper $rule1;
print Dumper $rule2;

ok(scalar(@$rule1)==3, "check rule1 is size 3");
ok(scalar(@$rule2)==3, "check rule2 is size 3");

ok($rule2->[2]->[0] eq 'call', 		"check the call function turned into a 'call' string");
ok($rule2->[2]->[1] eq 'rule1', 	"check the name of called subroutine got formatted correctly");

# print out contents for debug purposes.


}

__DATA__


$VAR1 = [
          [
            'rule',
            'rule1',
            {
              'methodname' => 'rule',
              'filename' => 't/gnaw_call.t',
              'linenum' => 17,
              'payload' => 'rule1',
              'quantifier' => '',
              'package' => 'main'
            }
          ],
          [
            'lit',
            'a',
            {
              'methodname' => 'lit',
              'filename' => 't/gnaw_call.t',
              'linenum' => 17,
              'payload' => 'a',
              'package' => 'main'
            }
          ],
          [
            'lit',
            'b',
            {
              'methodname' => 'lit',
              'filename' => 't/gnaw_call.t',
              'linenum' => 17,
              'payload' => 'b',
              'package' => 'main'
            }
          ]
        ];
$VAR1 = [
          [
            'rule',
            'rule2',
            {
              'methodname' => 'rule',
              'filename' => 't/gnaw_call.t',
              'linenum' => 24,
              'payload' => 'rule2',
              'quantifier' => '',
              'package' => 'main'
            }
          ],
          [
            'lit',
            'c',
            {
              'methodname' => 'lit',
              'filename' => 't/gnaw_call.t',
              'linenum' => 24,
              'payload' => 'c',
              'package' => 'main'
            }
          ],
          [
            'call',
            'rule1',
            {
              'methodname' => 'call',
              'filename' => 't/gnaw_call.t',
              'payload' => 'rule1',
              'linenum' => 24,
              'package' => 'main'
            }
          ]
        ];