Parse-FSM

 view release on metacpan or  search on metacpan

t/Error.t  view on Meta::CPAN

use Test::More;

use_ok 'Parse::FSM::Error', 'error', 'warning';

#------------------------------------------------------------------------------
my $warn; 
$SIG{__WARN__} = sub {$warn = shift};

sub t_error { 
	my($args, $expected_message) = @_;
	my $test_name = "[line ".((caller)[2])."]";

	(my $expected_error   = $expected_message) =~ s/XXX/Error/;
	(my $expected_warning = $expected_message) =~ s/XXX/Warning/;
	
	eval {	error(@$args) };
	is		$@, $expected_error, "$test_name die()";
	
			$warn = "";
			warning(@$args);
	is 		$warn, $expected_warning, "$test_name warning()";

t/FSM-parser.t  view on Meta::CPAN

is $parser->get_token, undef;


#------------------------------------------------------------------------------
done_testing;


#------------------------------------------------------------------------------
sub t_grammar {
	my($rules, $start_rule, $grammar) = @_;
	my $test = "[line ".(caller)[2]."]";
	
	# build with add_rule
	$fsm = new_ok('Parse::FSM');
	for my $rule (@$rules) {
		$fsm->add_rule(@$rule);
	}
	defined($start_rule) and $fsm->start_rule($start_rule);
	isa_ok $parser = $fsm->parser, 'Parse::FSM::Driver';

	# build with parse_grammar

t/Lexer.t  view on Meta::CPAN

	else {
		unlink $file; 
	}
	push @TEMP, $file;
	return $file;
}

#------------------------------------------------------------------------------
sub t_get {
	my($file, $line_nr, @tokens) = @_;
	my $id = "[line ".(caller)[2]."]";
	
	$file =~ s/\\/\//g if defined $file;
	
	if (@tokens) {
		while (my($type, $value) = splice(@tokens, 0, 2)) {
			is_deeply 	$lex->get_token, [$type, $value],
						"$id [".dump($type)." => ".dump($value)."]";
	
			my $lex_file = $lex->file;
			$lex_file =~ s/\\/\//g if defined $lex_file;

t/Lexer.t  view on Meta::CPAN

	}
	else {
		is	$lex->get_token, undef, "$id EOF";
		is	$lex->get_token, undef, "$id EOF";
	}
}

#------------------------------------------------------------------------------
sub t_error { 
	my($error_msg, $expected_message) = @_;
	my $line_nr = (caller)[2];
	my $test_name = "[line $line_nr]";

	(my $expected_error   = $expected_message) =~ s/XXX/Error/;
	(my $expected_warning = $expected_message) =~ s/XXX/Warning/;
	
	eval {	$lex->error($error_msg) };
	is		$@, $expected_error, "$test_name die()";
	
			$warn = "";
			$lex->warning($error_msg);



( run in 1.084 second using v1.01-cache-2.11-cpan-a3c8064c92c )