mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
parse.y: simplify numerics
* parse.y (simple_numeric): integrate numeric literals and simplify numeric rules. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
856a9afb98
commit
e176b8e1c1
2 changed files with 20 additions and 65 deletions
|
@ -1,4 +1,7 @@
|
||||||
Fri Aug 2 23:13:18 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Fri Aug 2 23:14:16 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* parse.y (simple_numeric): integrate numeric literals and simplify
|
||||||
|
numeric rules.
|
||||||
|
|
||||||
* ext/ripper/eventids2.c (ripper_init_eventids2): ripper support for
|
* ext/ripper/eventids2.c (ripper_init_eventids2): ripper support for
|
||||||
new literals, tRATIONAL and tIMAGINARY.
|
new literals, tRATIONAL and tIMAGINARY.
|
||||||
|
|
80
parse.y
80
parse.y
|
@ -761,7 +761,7 @@ static void token_info_pop(struct parser_params*, const char *token);
|
||||||
%type <node> singleton strings string string1 xstring regexp
|
%type <node> singleton strings string string1 xstring regexp
|
||||||
%type <node> string_contents xstring_contents regexp_contents string_content
|
%type <node> string_contents xstring_contents regexp_contents string_content
|
||||||
%type <node> words symbols symbol_list qwords qsymbols word_list qword_list qsym_list word
|
%type <node> words symbols symbol_list qwords qsymbols word_list qword_list qsym_list word
|
||||||
%type <node> literal numeric dsym cpath
|
%type <node> literal numeric simple_numeric dsym cpath
|
||||||
%type <node> top_compstmt top_stmts top_stmt
|
%type <node> top_compstmt top_stmts top_stmt
|
||||||
%type <node> bodystmt compstmt stmts stmt_or_begin stmt expr arg primary command command_call method_call
|
%type <node> bodystmt compstmt stmts stmt_or_begin stmt expr arg primary command command_call method_call
|
||||||
%type <node> expr_value arg_value primary_value fcall
|
%type <node> expr_value arg_value primary_value fcall
|
||||||
|
@ -2110,7 +2110,7 @@ arg : lhs '=' arg
|
||||||
$$ = dispatch3(binary, $1, ripper_intern("**"), $3);
|
$$ = dispatch3(binary, $1, ripper_intern("**"), $3);
|
||||||
%*/
|
%*/
|
||||||
}
|
}
|
||||||
| tUMINUS_NUM tINTEGER tPOW arg
|
| tUMINUS_NUM simple_numeric tPOW arg
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
$$ = NEW_CALL(call_bin_op($2, tPOW, $4), tUMINUS, 0);
|
$$ = NEW_CALL(call_bin_op($2, tPOW, $4), tUMINUS, 0);
|
||||||
|
@ -2119,33 +2119,6 @@ arg : lhs '=' arg
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $$);
|
$$ = dispatch2(unary, ripper_intern("-@"), $$);
|
||||||
%*/
|
%*/
|
||||||
}
|
}
|
||||||
| tUMINUS_NUM tFLOAT tPOW arg
|
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
$$ = NEW_CALL(call_bin_op($2, tPOW, $4), tUMINUS, 0);
|
|
||||||
/*%
|
|
||||||
$$ = dispatch3(binary, $2, ripper_intern("**"), $4);
|
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $$);
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
| tUMINUS_NUM tRATIONAL tPOW arg
|
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
$$ = NEW_CALL(call_bin_op($2, tPOW, $4), tUMINUS, 0);
|
|
||||||
/*%
|
|
||||||
$$ = dispatch3(binary, $2, ripper_intern("**"), $4);
|
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $$);
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
| tUMINUS_NUM tIMAGINARY tPOW arg
|
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
$$ = NEW_CALL(call_bin_op($2, tPOW, $4), tUMINUS, 0);
|
|
||||||
/*%
|
|
||||||
$$ = dispatch3(binary, $2, ripper_intern("**"), $4);
|
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $$);
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
| tUPLUS arg
|
| tUPLUS arg
|
||||||
{
|
{
|
||||||
/*%%%*/
|
/*%%%*/
|
||||||
|
@ -4310,42 +4283,21 @@ dsym : tSYMBEG xstring_contents tSTRING_END
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
numeric : tINTEGER
|
numeric : simple_numeric
|
||||||
|
| tUMINUS_NUM simple_numeric %prec tLOWEST
|
||||||
|
{
|
||||||
|
/*%%%*/
|
||||||
|
$$ = negate_lit($2);
|
||||||
|
/*%
|
||||||
|
$$ = dispatch2(unary, ripper_intern("-@"), $2);
|
||||||
|
%*/
|
||||||
|
}
|
||||||
|
;
|
||||||
|
|
||||||
|
simple_numeric : tINTEGER
|
||||||
| tFLOAT
|
| tFLOAT
|
||||||
| tRATIONAL
|
| tRATIONAL
|
||||||
| tIMAGINARY
|
| tIMAGINARY
|
||||||
| tUMINUS_NUM tINTEGER %prec tLOWEST
|
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
$$ = negate_lit($2);
|
|
||||||
/*%
|
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $2);
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
| tUMINUS_NUM tFLOAT %prec tLOWEST
|
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
$$ = negate_lit($2);
|
|
||||||
/*%
|
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $2);
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
| tUMINUS_NUM tRATIONAL %prec tLOWEST
|
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
$$ = negate_lit($2);
|
|
||||||
/*%
|
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $2);
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
| tUMINUS_NUM tIMAGINARY %prec tLOWEST
|
|
||||||
{
|
|
||||||
/*%%%*/
|
|
||||||
$$ = negate_lit($2);
|
|
||||||
/*%
|
|
||||||
$$ = dispatch2(unary, ripper_intern("-@"), $2);
|
|
||||||
%*/
|
|
||||||
}
|
|
||||||
;
|
;
|
||||||
|
|
||||||
user_variable : tIDENTIFIER
|
user_variable : tIDENTIFIER
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue