1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
use 5.010;
use warnings;
use Test::More;
plan tests => 1;
my $relation;
{
use Regexp::Grammars;
qr{
<grammar: Main>
# FIX THIS (CURRENTLY NOT WORKING CORRECTLY)...
# <debug: same>
<objrule: Axiom::Expr=Relation>
(?:
\( <[args=Relation]> \) <.ImpliesToken> \( <[args=Relation]> \)
<type=(?{ 'implies' })>
|
<[args=Expr]> <.EqualsToken> <[args=Expr]>
<type=(?{ 'equals' })>
)
<token: ImpliesToken> -\>
<token: Expr> [A-Z]
<token: EqualsToken> =
}xms;
$relation = qr{
<extends: Main>
<Relation>
}xms;
}
ok '(A = B) -> (B = A)' =~ qr/\A$relation\Z/ => 'Correctly matched trailing autospace';
|