App-ErrorCalculator
view release on metacpan or search on metacpan
lib/App/ErrorCalculator.pm view on Meta::CPAN
);
$outlabel->show;
# Entries
my $funcentry = Gtk2::Entry->new;
$table->attach_defaults(
$funcentry, 1, 2, # left/right
1, 2, # top/bottom
);
$funcentry->signal_connect(
activate => \&_validate_func,
);
$funcentry->signal_connect(
changed => \&_validate_func,
);
$funcentry->set_text('f = a * x^2');
$funcentry->show;
my $inentry = Gtk2::Entry->new;
$table->attach_defaults(
$inentry, 1, 2, # left/right
2, 3, # top/bottom
);
$inentry->signal_connect(
lib/App/ErrorCalculator.pm view on Meta::CPAN
3, 4, # top/bottom
);
$outentry->show;
# buttons
my $valbutton = Gtk2::Button->new('Validate');
$table->attach_defaults(
$valbutton, 2, 3, # left/right
1, 2, # top/bottom
);
$valbutton->signal_connect( clicked => \&_validate_func );
$valbutton->show;
my $inbutton = Gtk2::Button->new('Select File');
$table->attach_defaults(
$inbutton, 2, 3, # left/right
2, 3, # top/bottom
);
$inbutton->signal_connect(
clicked => sub {
_run_fileselection(
lib/App/ErrorCalculator.pm view on Meta::CPAN
eval { $func = $Math::Symbolic::Parser->parse($body) };
return() if not defined $func or $@;
my $var = $nobj->name;
# function must not be recursive
return() if grep {$var eq $_} $func->signature;
$func = $func->apply_derivatives()->simplify();
return($nobj, $func);
}
my ($name, $body);
sub _validate_func {
my $f = $funcentry->get_text;
($name, $body) = _parse_function($f);
if (not defined $name) {
$funclabel->set_text('Invalid Function');
}
else {
$funclabel->set_text('Valid Function ');
}
}
( run in 0.240 second using v1.01-cache-2.11-cpan-4d50c553e7e )