MarpaX-Languages-C-AST

 view release on metacpan or  search on metacpan

t/scan.t  view on Meta::CPAN

#!perl
use strict;
use warnings FATAL => 'all';
use Test::More tests => 12;
use Test::Differences;
use Clone qw/clone/;

BEGIN {
    push(@INC, 'inc');
    use_ok( 'MarpaX::Languages::C::Scan' ) || print "Bail out!\n";
}

$ENV{MARPAX_LANGUAGES_C_AST_T_SCAN} = 1;
my $filename = File::Spec->catfile('inc', 'scan.c');
my $c = MarpaX::Languages::C::Scan->new(filename => $filename);

my_eq_or_diff($c->defines_no_args,
              {
               'MACRO_NO_ARGS_01' => [ 'MACRO_NO_ARGS_01', '', '' ],
               'MACRO_NO_ARGS_02' => [ 'MACRO_NO_ARGS_02 something', 'something', '' ]
              },
              'defines_no_args');
my_eq_or_diff($c->defines_args,
              {
               'MACRO_NO_ARGS_04' =>
               [
                "MACRO_NO_ARGS_04 (b,    c) something(b) + else(c) \\\ncontinued",
                [
                 'b',
                 'c'
                ],
                "something(b) + else(c) \\\ncontinued",
                ''
               ],
               'MACRO_NO_ARGS_03' =>
               [
                'MACRO_NO_ARGS_03(a)',
                [
                 'a'
                ],
                '',
                ''
               ]
              },
              'defines_args');
ok(defined($c->includes), 'includes');
my_eq_or_diff($c->parsed_fdecls,
              [
               [
                'int',
                'func1',
                [
                 [
                  'int',
                  'x1',
                  undef,
                  'int x1',
                  ''
                 ],
                 [
                  'double',
                  'x2',
                  undef,
                  'double *x2',
                  ''



( run in 2.115 seconds using v1.01-cache-2.11-cpan-5735350b133 )