MarpaX-Languages-C-AST
view release on metacpan or search on metacpan
#!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 )