diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-08-02 14:14:18 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-08-02 14:14:18 +0000 |
commit | e176b8e1c1227435ee2002cf851a9768fa76375f (patch) | |
tree | 1088434e3b427e20ff6a0431f2f39fcfb42492c2 /parse.y | |
parent | 856a9afb98b8443a8b32483a97e271560af6de1b (diff) | |
download | ruby-e176b8e1c1227435ee2002cf851a9768fa76375f.tar.gz |
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
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 68 |
1 files changed, 10 insertions, 58 deletions
@@ -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> 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> literal numeric dsym cpath +%type <node> literal numeric simple_numeric dsym cpath %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> expr_value arg_value primary_value fcall @@ -2110,7 +2110,7 @@ arg : lhs '=' arg $$ = 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); @@ -2119,33 +2119,6 @@ arg : lhs '=' arg $$ = 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 { /*%%%*/ @@ -4310,11 +4283,8 @@ dsym : tSYMBEG xstring_contents tSTRING_END } ; -numeric : tINTEGER - | tFLOAT - | tRATIONAL - | tIMAGINARY - | tUMINUS_NUM tINTEGER %prec tLOWEST +numeric : simple_numeric + | tUMINUS_NUM simple_numeric %prec tLOWEST { /*%%%*/ $$ = negate_lit($2); @@ -4322,30 +4292,12 @@ numeric : tINTEGER $$ = 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); - %*/ - } + ; + +simple_numeric : tINTEGER + | tFLOAT + | tRATIONAL + | tIMAGINARY ; user_variable : tIDENTIFIER |