diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | parse.y | 68 |
2 files changed, 14 insertions, 59 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 new literals, tRATIONAL and tIMAGINARY. @@ -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 |