PPIx-EditorTools

 view release on metacpan or  search on metacpan

t/10-lexer.t  view on Meta::CPAN

#!/usr/bin/perl

use strict;

BEGIN {
	$^W = 1;
}

use Test::More;
use Test::Differences;
use PPI;

BEGIN {
	if ( $PPI::VERSION =~ /_/ ) {
		plan skip_all => "Need released version of PPI. You have $PPI::VERSION";
		exit 0;
	}
}

my @cases = (
	{   code => <<'END_CODE',
use strict; use warnings;
use Abc;

my $global = 42;

sub qwer {
}

END_CODE
		expected => [
			[ 'keyword',    1, 1,  3 ],
			[ 'Whitespace', 1, 4,  1 ],
			[ 'pragma',     1, 5,  6 ],
			[ 'Structure',  1, 11, 1 ],
			[ 'Whitespace', 1, 12, 1 ],
			[ 'keyword',    1, 13, 3 ],
			[ 'Whitespace', 1, 16, 1 ],
			[ 'pragma',     1, 17, 8 ],
			[ 'Structure',  1, 25, 1 ],
			[ 'Whitespace', 1, 26, 1 ],
			[ 'keyword',    2, 1,  3 ],
			[ 'Whitespace', 2, 4,  1 ],
			[ 'Word',       2, 5,  3 ],
			[ 'Structure',  2, 8,  1 ],
			[ 'Whitespace', 2, 9,  1 ],
			[ 'Whitespace', 3, 1,  1 ],
			[ 'keyword',    4, 1,  2 ],
			[ 'Whitespace', 4, 3,  1 ],
			[ 'Symbol',     4, 4,  7 ],
			[ 'Whitespace', 4, 11, 1 ],
			[ 'Operator',   4, 12, 1 ],
			[ 'Whitespace', 4, 13, 1 ],
			[ 'Number',     4, 14, 2 ],
			[ 'Structure',  4, 16, 1 ],
			[ 'Whitespace', 4, 17, 1 ],
			[ 'Whitespace', 5, 1,  1 ],
			[ 'keyword',    6, 1,  3 ],
			[ 'Whitespace', 6, 4,  1 ],
			[ 'Word',       6, 5,  4 ],
			[ 'Whitespace', 6, 9,  1 ],
			[ 'Structure',  6, 10, 1 ],
			[ 'Whitespace', 6, 11, 1 ],
			[ 'Structure',  7, 1,  1 ],
			[ 'Whitespace', 7, 2,  1 ],
			[ 'Whitespace', 8, 1,  1 ],
		],
	},
	{   code => <<'END_CODE',
sub return func method before after around override augment



( run in 3.270 seconds using v1.01-cache-2.11-cpan-0d23b851a93 )