Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[...]**0..1 to [...]? for dec_number
Also strip call to filter_number().
  • Loading branch information
FROGGS committed Oct 3, 2013
1 parent d30b53e commit 6f84eb5
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 20 deletions.
18 changes: 1 addition & 17 deletions src/Perl6/Actions.nqp
Expand Up @@ -5186,19 +5186,6 @@ class Perl6::Actions is HLL::Actions does STDActions {
}
}

# filter out underscores and similar stuff
sub filter_number($n) {
my int $i := 0;
my str $allowed := '0123456789';
my str $result := '';
while $i < nqp::chars($n) {
my $char := nqp::substr($n, $i, 1);
$result := $result ~ $char if nqp::index($allowed, $char) >= 0;
$i++;
}
$result;
}

method escale($/) {
make $<sign> eq '-'
?? nqp::neg_I($<decint>.ast, $<decint>.ast)
Expand All @@ -5207,12 +5194,9 @@ class Perl6::Actions is HLL::Actions does STDActions {

method dec_number($/) {
# say("dec_number: $/");
my $int := $<int> ?? filter_number(~$<int>) !! "0";
my $frac := $<frac> ?? filter_number(~$<frac>) !! "0";
if $<escale> {
my $e := nqp::islist($<escale>) ?? $<escale>[0] !! $<escale>;
# say('dec_number exponent: ' ~ ~$e.ast);
make radcalc($/, 10, $<coeff>, 10, nqp::unbox_i($e.ast), :num);
make radcalc($/, 10, $<coeff>, 10, nqp::unbox_i($<escale>.ast), :num);
} else {
make radcalc($/, 10, $<coeff>);
}
Expand Down
4 changes: 2 additions & 2 deletions src/Perl6/Grammar.nqp
Expand Up @@ -2760,8 +2760,8 @@ grammar Perl6::Grammar is HLL::Grammar does STD {
token dec_number {
:dba('decimal number')
[
| $<coeff> = [ '.' <frac=.decint> ] <escale>**0..1
| $<coeff> = [ <int=.decint> '.' <frac=.decint> ] <escale>**0..1
| $<coeff> = [ '.' <frac=.decint> ] <escale>?
| $<coeff> = [ <int=.decint> '.' <frac=.decint> ] <escale>?
| $<coeff> = [ <int=.decint> ] <escale>
]
}
Expand Down
2 changes: 1 addition & 1 deletion tools/build/NQP_REVISION
@@ -1 +1 @@
2013.09-95-gff08120
2013.09-99-g7d0611b

0 comments on commit 6f84eb5

Please sign in to comment.