diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-06 17:06:07 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2021-01-06 17:06:07 +0900 |
| commit | 74c9502bd45fd70926c86ce564c2d5d1df9a6dd0 (patch) | |
| tree | 4dbf22f15e482bf082712286bcf0daa5e51aa41c /mrbgems/mruby-compiler | |
| parent | 1341e53961b3e99ac67d803e5ead677e976d18c4 (diff) | |
| parent | 456878ba06358a77d4ab9312fdc69bf780f8fdf4 (diff) | |
| download | mruby-74c9502bd45fd70926c86ce564c2d5d1df9a6dd0.tar.gz mruby-74c9502bd45fd70926c86ce564c2d5d1df9a6dd0.zip | |
Merge branch 'improve-source-scanning-for-presym' of https://github.com/shuujii/mruby into shuujii-improve-source-scanning-for-presym
Diffstat (limited to 'mrbgems/mruby-compiler')
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 26 | ||||
| -rw-r--r-- | mrbgems/mruby-compiler/core/parse.y | 154 | ||||
| -rw-r--r-- | mrbgems/mruby-compiler/core/y.tab.c | 154 | ||||
| -rw-r--r-- | mrbgems/mruby-compiler/mrbgem.rake | 6 |
4 files changed, 170 insertions, 170 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 4ac092176..00a33021f 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -819,7 +819,7 @@ for_body(codegen_scope *s, node *tree) genop_2(s, OP_BLOCK, cursp(), s->irep->rlen-1); push();pop(); /* space for a block */ pop(); - idx = new_sym(s, MRB_SYM(each)); + idx = new_sym(s, MRB_SYM_2(s->mrb, each)); genop_3(s, OP_SENDB, cursp(), idx, 0); } @@ -1547,14 +1547,14 @@ codegen(codegen_scope *s, node *tree, int val) gen_move(s, cursp(), exc, 0); push_n(2); pop_n(2); /* space for one arg and a block */ pop(); - genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_SYM(__case_eqq)), 1); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_SYM_2(s->mrb, __case_eqq)), 1); } else { if (n4) { codegen(s, n4->car, VAL); } else { - genop_2(s, OP_GETCONST, cursp(), new_sym(s, MRB_SYM(StandardError))); + genop_2(s, OP_GETCONST, cursp(), new_sym(s, MRB_SYM_2(s->mrb, StandardError))); push(); } pop(); @@ -1668,7 +1668,7 @@ codegen(codegen_scope *s, node *tree, int val) { node *n = tree->car->cdr; mrb_sym mid = nsym(n->cdr->car); - mrb_sym mnil = MRB_SYM_Q(nil); + mrb_sym mnil = MRB_SYM_Q_2(s->mrb, nil); if (mid == mnil && n->cdr->cdr->car == NULL) { nil_p = TRUE; codegen(s, n->car, VAL); @@ -1804,10 +1804,10 @@ codegen(codegen_scope *s, node *tree, int val) gen_move(s, cursp(), head, 0); push(); push(); pop(); pop(); pop(); if (nint(n->car->car) == NODE_SPLAT) { - genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_SYM(__case_eqq)), 1); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_SYM_2(s->mrb, __case_eqq)), 1); } else { - genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM(eqq)), 1); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_OPSYM_2(s->mrb, eqq)), 1); } } else { @@ -2333,7 +2333,7 @@ codegen(codegen_scope *s, node *tree, int val) pop_n(n+1); genop_2S(s, OP_BLKPUSH, cursp(), (ainfo<<4)|(lv & 0xf)); if (sendv) n = CALL_MAXARGS; - genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_SYM(call)), n); + genop_3(s, OP_SEND, cursp(), new_sym(s, MRB_SYM_2(s->mrb, call)), n); if (val) push(); } break; @@ -2582,7 +2582,7 @@ codegen(codegen_scope *s, node *tree, int val) default: if (val) { - int sym = new_sym(s, MRB_OPSYM(minus)); + int sym = new_sym(s, MRB_OPSYM_2(s->mrb, minus)); codegen(s, tree, VAL); pop(); genop_3(s, OP_SEND, cursp(), sym, 0); @@ -2655,7 +2655,7 @@ codegen(codegen_scope *s, node *tree, int val) { node *n; int ai = mrb_gc_arena_save(s->mrb); - int sym = new_sym(s, MRB_SYM(Kernel)); + int sym = new_sym(s, MRB_SYM_2(s->mrb, Kernel)); genop_1(s, OP_LOADSELF, cursp()); push(); @@ -2674,7 +2674,7 @@ codegen(codegen_scope *s, node *tree, int val) } push(); /* for block */ pop_n(3); - sym = new_sym(s, MRB_OPSYM(tick)); /* ` */ + sym = new_sym(s, MRB_OPSYM_2(s->mrb, tick)); /* ` */ genop_3(s, OP_SEND, cursp(), sym, 1); if (val) push(); mrb_gc_arena_restore(s->mrb, ai); @@ -2694,7 +2694,7 @@ codegen(codegen_scope *s, node *tree, int val) genop_bs(s, OP_STRING, cursp(), off); push(); push(); pop_n(3); - sym = new_sym(s, MRB_OPSYM(tick)); /* ` */ + sym = new_sym(s, MRB_OPSYM_2(s->mrb, tick)); /* ` */ genop_3(s, OP_SEND, cursp(), sym, 1); if (val) push(); mrb_gc_arena_restore(s->mrb, ai); @@ -2735,7 +2735,7 @@ codegen(codegen_scope *s, node *tree, int val) } push(); /* space for a block */ pop_n(argc+2); - sym = new_sym(s, MRB_SYM(compile)); + sym = new_sym(s, MRB_SYM_2(s->mrb, compile)); genop_3(s, OP_SEND, cursp(), sym, argc); mrb_gc_arena_restore(s->mrb, ai); push(); @@ -2789,7 +2789,7 @@ codegen(codegen_scope *s, node *tree, int val) } push(); /* space for a block */ pop_n(argc+2); - sym = new_sym(s, MRB_SYM(compile)); + sym = new_sym(s, MRB_SYM_2(s->mrb, compile)); genop_3(s, OP_SEND, cursp(), sym, argc); mrb_gc_arena_restore(s->mrb, ai); push(); diff --git a/mrbgems/mruby-compiler/core/parse.y b/mrbgems/mruby-compiler/core/parse.y index a5f3f93de..0be251ef5 100644 --- a/mrbgems/mruby-compiler/core/parse.y +++ b/mrbgems/mruby-compiler/core/parse.y @@ -89,7 +89,7 @@ intern_gen(parser_state *p, const char *s, size_t len) } #define intern(s,len) intern_gen(p,(s),(len)) -#define intern_lit(s) mrb_intern_lit(p->mrb, s) +#define intern_op(op) MRB_OPSYM_2(p->mrb, op) static void cons_free_gen(parser_state *p, node *cons) @@ -315,14 +315,14 @@ static void local_add_blk(parser_state *p, mrb_sym blk) { /* allocate register for block */ - local_add_f(p, blk ? blk : MRB_OPSYM(and)); + local_add_f(p, blk ? blk : intern_op(and)); } static void local_add_kw(parser_state *p, mrb_sym kwd) { /* allocate register for keywords hash */ - local_add_f(p, kwd ? kwd : MRB_OPSYM(pow)); + local_add_f(p, kwd ? kwd : intern_op(pow)); } static node* @@ -960,13 +960,13 @@ new_op_asgn(parser_state *p, node *a, mrb_sym op, node *b) static node* new_imaginary(parser_state *p, node *imaginary) { - return new_call(p, new_const(p, MRB_SYM(Kernel)), MRB_SYM(Complex), list1(list2(list3((node*)NODE_INT, (node*)strdup("0"), nint(10)), imaginary)), 1); + return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Complex), list1(list2(list3((node*)NODE_INT, (node*)strdup("0"), nint(10)), imaginary)), 1); } static node* new_rational(parser_state *p, node *rational) { - return new_call(p, new_const(p, MRB_SYM(Kernel)), MRB_SYM(Rational), list1(list1(rational)), 1); + return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Rational), list1(list1(rational)), 1); } /* (:int . i) */ @@ -1707,7 +1707,7 @@ command_asgn : lhs '=' command_rhs } | primary_value '[' opt_call_args ']' tOP_ASGN command_rhs { - $$ = new_op_asgn(p, new_call(p, $1, MRB_OPSYM(aref), $3, '.'), $5, $6); + $$ = new_op_asgn(p, new_call(p, $1, intern_op(aref), $3, '.'), $5, $6); } | primary_value call_op tIDENTIFIER tOP_ASGN command_rhs { @@ -1963,7 +1963,7 @@ mlhs_node : variable } | primary_value '[' opt_call_args ']' { - $$ = new_call(p, $1, MRB_OPSYM(aref), $3, '.'); + $$ = new_call(p, $1, intern_op(aref), $3, '.'); } | primary_value call_op tIDENTIFIER { @@ -2002,7 +2002,7 @@ lhs : variable } | primary_value '[' opt_call_args ']' { - $$ = new_call(p, $1, MRB_OPSYM(aref), $3, '.'); + $$ = new_call(p, $1, intern_op(aref), $3, '.'); } | primary_value call_op tIDENTIFIER { @@ -2090,36 +2090,36 @@ undef_list : fsym } ; -op : '|' { $$ = MRB_OPSYM(or); } - | '^' { $$ = MRB_OPSYM(xor); } - | '&' { $$ = MRB_OPSYM(and); } - | tCMP { $$ = MRB_OPSYM(cmp); } - | tEQ { $$ = MRB_OPSYM(eq); } - | tEQQ { $$ = MRB_OPSYM(eqq); } - | tMATCH { $$ = MRB_OPSYM(match); } - | tNMATCH { $$ = MRB_OPSYM(nmatch); } - | '>' { $$ = MRB_OPSYM(gt); } - | tGEQ { $$ = MRB_OPSYM(ge); } - | '<' { $$ = MRB_OPSYM(lt); } - | tLEQ { $$ = MRB_OPSYM(le); } - | tNEQ { $$ = MRB_OPSYM(neq); } - | tLSHFT { $$ = MRB_OPSYM(lshift); } - | tRSHFT { $$ = MRB_OPSYM(rshift); } - | '+' { $$ = MRB_OPSYM(add); } - | '-' { $$ = MRB_OPSYM(sub); } - | '*' { $$ = MRB_OPSYM(mul); } - | tSTAR { $$ = MRB_OPSYM(mul); } - | '/' { $$ = MRB_OPSYM(div); } - | '%' { $$ = MRB_OPSYM(mod); } - | tPOW { $$ = MRB_OPSYM(pow); } - | tDSTAR { $$ = MRB_OPSYM(pow); } - | '!' { $$ = MRB_OPSYM(not); } - | '~' { $$ = MRB_OPSYM(neg); } - | tUPLUS { $$ = MRB_OPSYM(plus); } - | tUMINUS { $$ = MRB_OPSYM(minus); } - | tAREF { $$ = MRB_OPSYM(aref); } - | tASET { $$ = MRB_OPSYM(aset); } - | '`' { $$ = MRB_OPSYM(tick); } +op : '|' { $$ = intern_op(or); } + | '^' { $$ = intern_op(xor); } + | '&' { $$ = intern_op(and); } + | tCMP { $$ = intern_op(cmp); } + | tEQ { $$ = intern_op(eq); } + | tEQQ { $$ = intern_op(eqq); } + | tMATCH { $$ = intern_op(match); } + | tNMATCH { $$ = intern_op(nmatch); } + | '>' { $$ = intern_op(gt); } + | tGEQ { $$ = intern_op(ge); } + | '<' { $$ = intern_op(lt); } + | tLEQ { $$ = intern_op(le); } + | tNEQ { $$ = intern_op(neq); } + | tLSHFT { $$ = intern_op(lshift); } + | tRSHFT { $$ = intern_op(rshift); } + | '+' { $$ = intern_op(add); } + | '-' { $$ = intern_op(sub); } + | '*' { $$ = intern_op(mul); } + | tSTAR { $$ = intern_op(mul); } + | '/' { $$ = intern_op(div); } + | '%' { $$ = intern_op(mod); } + | tPOW { $$ = intern_op(pow); } + | tDSTAR { $$ = intern_op(pow); } + | '!' { $$ = intern_op(not); } + | '~' { $$ = intern_op(neg); } + | tUPLUS { $$ = intern_op(plus); } + | tUMINUS { $$ = intern_op(minus); } + | tAREF { $$ = intern_op(aref); } + | tASET { $$ = intern_op(aset); } + | '`' { $$ = intern_op(tick); } ; reswords : keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__ @@ -2146,7 +2146,7 @@ arg : lhs '=' arg_rhs } | primary_value '[' opt_call_args ']' tOP_ASGN arg_rhs { - $$ = new_op_asgn(p, new_call(p, $1, MRB_OPSYM(aref), $3, '.'), $5, $6); + $$ = new_op_asgn(p, new_call(p, $1, intern_op(aref), $3, '.'), $5, $6); } | primary_value call_op tIDENTIFIER tOP_ASGN arg_rhs { @@ -2401,14 +2401,14 @@ paren_args : '(' opt_call_args ')' | '(' args comma tBDOT3 rparen { #if 1 - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); $$ = cons(push($2, new_splat(p, new_lvar(p, r))), new_block_arg(p, new_lvar(p, b))); #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); $$ = cons(list2(push($2, new_splat(p, new_lvar(p, r))), new_kw_hash(p, list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))))), new_block_arg(p, new_lvar(p, b))); @@ -2417,16 +2417,16 @@ paren_args : '(' opt_call_args ')' | '(' tBDOT3 rparen { #if 1 - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); if (local_var_p(p, r) && local_var_p(p, b)) { $$ = cons(list1(new_splat(p, new_lvar(p, r))), new_block_arg(p, new_lvar(p, b))); } #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); if (local_var_p(p, r) && local_var_p(p, k) && local_var_p(p, b)) { $$ = cons(list2(new_splat(p, new_lvar(p, r)), new_kw_hash(p, list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))))), @@ -3115,11 +3115,11 @@ method_call : operation paren_args } | primary_value call_op paren_args { - $$ = new_call(p, $1, MRB_SYM(call), $3, $2); + $$ = new_call(p, $1, MRB_SYM_2(p->mrb, call), $3, $2); } | primary_value tCOLON2 paren_args { - $$ = new_call(p, $1, MRB_SYM(call), $3, tCOLON2); + $$ = new_call(p, $1, MRB_SYM_2(p->mrb, call), $3, tCOLON2); } | keyword_super paren_args { @@ -3131,7 +3131,7 @@ method_call : operation paren_args } | primary_value '[' opt_call_args ']' { - $$ = new_call(p, $1, MRB_OPSYM(aref), $3, '.'); + $$ = new_call(p, $1, intern_op(aref), $3, '.'); } ; @@ -3514,15 +3514,15 @@ f_arglist_paren : '(' f_args rparen { #if 1 /* til real keyword args implemented */ - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); local_add_f(p, r); $$ = new_args(p, $2, 0, r, 0, new_args_tail(p, 0, 0, b)); #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); local_add_f(p, r); local_add_f(p, k); $$ = new_args(p, $2, 0, r, 0, new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b)); @@ -3532,15 +3532,15 @@ f_arglist_paren : '(' f_args rparen { #if 1 /* til real keyword args implemented */ - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); local_add_f(p, r); $$ = new_args(p, 0, 0, r, 0, new_args_tail(p, 0, 0, b)); #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); local_add_f(p, r); local_add_f(p, k); $$ = new_args(p, 0, 0, r, 0, new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b)); @@ -3706,7 +3706,7 @@ f_args : f_arg ',' f_optarg ',' f_rest_arg opt_args_tail } | /* none */ { - local_add_f(p, MRB_OPSYM(and)); + local_add_f(p, intern_op(and)); $$ = new_args(p, 0, 0, 0, 0, 0); } ; @@ -3830,7 +3830,7 @@ f_rest_arg : restarg_mark tIDENTIFIER } | restarg_mark { - local_add_f(p, MRB_OPSYM(mul)); + local_add_f(p, intern_op(mul)); $$ = -1; } ; @@ -5215,7 +5215,7 @@ parser_yylex(parser_state *p) case '*': if ((c = nextc(p)) == '*') { if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(pow); + pylval.id = intern_op(pow); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5233,7 +5233,7 @@ parser_yylex(parser_state *p) } else { if (c == '=') { - pylval.id = MRB_OPSYM(mul); + pylval.id = intern_op(mul); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5349,7 +5349,7 @@ parser_yylex(parser_state *p) } if (c == '<') { if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(lshift); + pylval.id = intern_op(lshift); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5371,7 +5371,7 @@ parser_yylex(parser_state *p) } if (c == '>') { if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(rshift); + pylval.id = intern_op(rshift); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5479,7 +5479,7 @@ parser_yylex(parser_state *p) if ((c = nextc(p)) == '&') { p->lstate = EXPR_BEG; if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(andand); + pylval.id = intern_op(andand); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5491,7 +5491,7 @@ parser_yylex(parser_state *p) return tANDDOT; } else if (c == '=') { - pylval.id = MRB_OPSYM(and); + pylval.id = intern_op(and); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5518,7 +5518,7 @@ parser_yylex(parser_state *p) if ((c = nextc(p)) == '|') { p->lstate = EXPR_BEG; if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(oror); + pylval.id = intern_op(oror); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5526,7 +5526,7 @@ parser_yylex(parser_state *p) return tOROP; } if (c == '=') { - pylval.id = MRB_OPSYM(or); + pylval.id = intern_op(or); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5550,7 +5550,7 @@ parser_yylex(parser_state *p) return '+'; } if (c == '=') { - pylval.id = MRB_OPSYM(add); + pylval.id = intern_op(add); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5578,7 +5578,7 @@ parser_yylex(parser_state *p) return '-'; } if (c == '=') { - pylval.id = MRB_OPSYM(sub); + pylval.id = intern_op(sub); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5901,7 +5901,7 @@ parser_yylex(parser_state *p) return tREGEXP_BEG; } if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(div); + pylval.id = intern_op(div); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -5920,7 +5920,7 @@ parser_yylex(parser_state *p) case '^': if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(xor); + pylval.id = intern_op(xor); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -6098,7 +6098,7 @@ parser_yylex(parser_state *p) } } if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(mod); + pylval.id = intern_op(mod); p->lstate = EXPR_BEG; return tOP_ASGN; } diff --git a/mrbgems/mruby-compiler/core/y.tab.c b/mrbgems/mruby-compiler/core/y.tab.c index a16038eb2..0709bfa74 100644 --- a/mrbgems/mruby-compiler/core/y.tab.c +++ b/mrbgems/mruby-compiler/core/y.tab.c @@ -152,7 +152,7 @@ intern_gen(parser_state *p, const char *s, size_t len) } #define intern(s,len) intern_gen(p,(s),(len)) -#define intern_lit(s) mrb_intern_lit(p->mrb, s) +#define intern_op(op) MRB_OPSYM_2(p->mrb, op) static void cons_free_gen(parser_state *p, node *cons) @@ -378,14 +378,14 @@ static void local_add_blk(parser_state *p, mrb_sym blk) { /* allocate register for block */ - local_add_f(p, blk ? blk : MRB_OPSYM(and)); + local_add_f(p, blk ? blk : intern_op(and)); } static void local_add_kw(parser_state *p, mrb_sym kwd) { /* allocate register for keywords hash */ - local_add_f(p, kwd ? kwd : MRB_OPSYM(pow)); + local_add_f(p, kwd ? kwd : intern_op(pow)); } static node* @@ -1023,13 +1023,13 @@ new_op_asgn(parser_state *p, node *a, mrb_sym op, node *b) static node* new_imaginary(parser_state *p, node *imaginary) { - return new_call(p, new_const(p, MRB_SYM(Kernel)), MRB_SYM(Complex), list1(list2(list3((node*)NODE_INT, (node*)strdup("0"), nint(10)), imaginary)), 1); + return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Complex), list1(list2(list3((node*)NODE_INT, (node*)strdup("0"), nint(10)), imaginary)), 1); } static node* new_rational(parser_state *p, node *rational) { - return new_call(p, new_const(p, MRB_SYM(Kernel)), MRB_SYM(Rational), list1(list1(rational)), 1); + return new_call(p, new_const(p, MRB_SYM_2(p->mrb, Kernel)), MRB_SYM_2(p->mrb, Rational), list1(list1(rational)), 1); } /* (:int . i) */ @@ -6148,7 +6148,7 @@ yyreduce: case 36: #line 1709 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), MRB_OPSYM(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } #line 6154 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -6551,7 +6551,7 @@ yyreduce: case 93: #line 1965 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), MRB_OPSYM(aref), (yyvsp[-1].nd), '.'); + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } #line 6557 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -6620,7 +6620,7 @@ yyreduce: case 101: #line 2004 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), MRB_OPSYM(aref), (yyvsp[-1].nd), '.'); + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } #line 6626 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -6761,181 +6761,181 @@ yyreduce: case 124: #line 2093 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(or); } + { (yyval.id) = intern_op(or); } #line 6766 "mrbgems/mruby-compiler/core/y.tab.c" break; case 125: #line 2094 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(xor); } + { (yyval.id) = intern_op(xor); } #line 6772 "mrbgems/mruby-compiler/core/y.tab.c" break; case 126: #line 2095 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(and); } + { (yyval.id) = intern_op(and); } #line 6778 "mrbgems/mruby-compiler/core/y.tab.c" break; case 127: #line 2096 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(cmp); } + { (yyval.id) = intern_op(cmp); } #line 6784 "mrbgems/mruby-compiler/core/y.tab.c" break; case 128: #line 2097 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(eq); } + { (yyval.id) = intern_op(eq); } #line 6790 "mrbgems/mruby-compiler/core/y.tab.c" break; case 129: #line 2098 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(eqq); } + { (yyval.id) = intern_op(eqq); } #line 6796 "mrbgems/mruby-compiler/core/y.tab.c" break; case 130: #line 2099 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(match); } + { (yyval.id) = intern_op(match); } #line 6802 "mrbgems/mruby-compiler/core/y.tab.c" break; case 131: #line 2100 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(nmatch); } + { (yyval.id) = intern_op(nmatch); } #line 6808 "mrbgems/mruby-compiler/core/y.tab.c" break; case 132: #line 2101 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(gt); } + { (yyval.id) = intern_op(gt); } #line 6814 "mrbgems/mruby-compiler/core/y.tab.c" break; case 133: #line 2102 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(ge); } + { (yyval.id) = intern_op(ge); } #line 6820 "mrbgems/mruby-compiler/core/y.tab.c" break; case 134: #line 2103 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(lt); } + { (yyval.id) = intern_op(lt); } #line 6826 "mrbgems/mruby-compiler/core/y.tab.c" break; case 135: #line 2104 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(le); } + { (yyval.id) = intern_op(le); } #line 6832 "mrbgems/mruby-compiler/core/y.tab.c" break; case 136: #line 2105 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(neq); } + { (yyval.id) = intern_op(neq); } #line 6838 "mrbgems/mruby-compiler/core/y.tab.c" break; case 137: #line 2106 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(lshift); } + { (yyval.id) = intern_op(lshift); } #line 6844 "mrbgems/mruby-compiler/core/y.tab.c" break; case 138: #line 2107 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(rshift); } + { (yyval.id) = intern_op(rshift); } #line 6850 "mrbgems/mruby-compiler/core/y.tab.c" break; case 139: #line 2108 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(add); } + { (yyval.id) = intern_op(add); } #line 6856 "mrbgems/mruby-compiler/core/y.tab.c" break; case 140: #line 2109 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(sub); } + { (yyval.id) = intern_op(sub); } #line 6862 "mrbgems/mruby-compiler/core/y.tab.c" break; case 141: #line 2110 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(mul); } + { (yyval.id) = intern_op(mul); } #line 6868 "mrbgems/mruby-compiler/core/y.tab.c" break; case 142: #line 2111 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(mul); } + { (yyval.id) = intern_op(mul); } #line 6874 "mrbgems/mruby-compiler/core/y.tab.c" break; case 143: #line 2112 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(div); } + { (yyval.id) = intern_op(div); } #line 6880 "mrbgems/mruby-compiler/core/y.tab.c" break; case 144: #line 2113 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(mod); } + { (yyval.id) = intern_op(mod); } #line 6886 "mrbgems/mruby-compiler/core/y.tab.c" break; case 145: #line 2114 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(pow); } + { (yyval.id) = intern_op(pow); } #line 6892 "mrbgems/mruby-compiler/core/y.tab.c" break; case 146: #line 2115 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(pow); } + { (yyval.id) = intern_op(pow); } #line 6898 "mrbgems/mruby-compiler/core/y.tab.c" break; case 147: #line 2116 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(not); } + { (yyval.id) = intern_op(not); } #line 6904 "mrbgems/mruby-compiler/core/y.tab.c" break; case 148: #line 2117 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(neg); } + { (yyval.id) = intern_op(neg); } #line 6910 "mrbgems/mruby-compiler/core/y.tab.c" break; case 149: #line 2118 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(plus); } + { (yyval.id) = intern_op(plus); } #line 6916 "mrbgems/mruby-compiler/core/y.tab.c" break; case 150: #line 2119 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(minus); } + { (yyval.id) = intern_op(minus); } #line 6922 "mrbgems/mruby-compiler/core/y.tab.c" break; case 151: #line 2120 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(aref); } + { (yyval.id) = intern_op(aref); } #line 6928 "mrbgems/mruby-compiler/core/y.tab.c" break; case 152: #line 2121 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(aset); } + { (yyval.id) = intern_op(aset); } #line 6934 "mrbgems/mruby-compiler/core/y.tab.c" break; case 153: #line 2122 "mrbgems/mruby-compiler/core/parse.y" - { (yyval.id) = MRB_OPSYM(tick); } + { (yyval.id) = intern_op(tick); } #line 6940 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -6958,7 +6958,7 @@ yyreduce: case 196: #line 2148 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), MRB_OPSYM(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); + (yyval.nd) = new_op_asgn(p, new_call(p, (yyvsp[-5].nd), intern_op(aref), (yyvsp[-3].nd), '.'), (yyvsp[-1].id), (yyvsp[0].nd)); } #line 6964 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -7426,14 +7426,14 @@ yyreduce: #line 2402 "mrbgems/mruby-compiler/core/parse.y" { #if 1 - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); (yyval.nd) = cons(push((yyvsp[-3].nd), new_splat(p, new_lvar(p, r))), new_block_arg(p, new_lvar(p, b))); #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); (yyval.nd) = cons(list2(push((yyvsp[-3].nd), new_splat(p, new_lvar(p, r))), new_kw_hash(p, list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))))), new_block_arg(p, new_lvar(p, b))); @@ -7446,16 +7446,16 @@ yyreduce: #line 2418 "mrbgems/mruby-compiler/core/parse.y" { #if 1 - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); if (local_var_p(p, r) && local_var_p(p, b)) { (yyval.nd) = cons(list1(new_splat(p, new_lvar(p, r))), new_block_arg(p, new_lvar(p, b))); } #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); if (local_var_p(p, r) && local_var_p(p, k) && local_var_p(p, b)) { (yyval.nd) = cons(list2(new_splat(p, new_lvar(p, r)), new_kw_hash(p, list1(cons(new_kw_rest_args(p, 0), new_lvar(p, k))))), @@ -8555,7 +8555,7 @@ yyreduce: case 406: #line 3117 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), (yyvsp[-1].num)); + (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), (yyvsp[-1].num)); } #line 8561 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -8563,7 +8563,7 @@ yyreduce: case 407: #line 3121 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM(call), (yyvsp[0].nd), tCOLON2); + (yyval.nd) = new_call(p, (yyvsp[-2].nd), MRB_SYM_2(p->mrb, call), (yyvsp[0].nd), tCOLON2); } #line 8569 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -8587,7 +8587,7 @@ yyreduce: case 410: #line 3133 "mrbgems/mruby-compiler/core/parse.y" { - (yyval.nd) = new_call(p, (yyvsp[-3].nd), MRB_OPSYM(aref), (yyvsp[-1].nd), '.'); + (yyval.nd) = new_call(p, (yyvsp[-3].nd), intern_op(aref), (yyvsp[-1].nd), '.'); } #line 8593 "mrbgems/mruby-compiler/core/y.tab.c" break; @@ -9103,15 +9103,15 @@ yyreduce: { #if 1 /* til real keyword args implemented */ - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); local_add_f(p, r); (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, r, 0, new_args_tail(p, 0, 0, b)); #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); local_add_f(p, r); local_add_f(p, k); (yyval.nd) = new_args(p, (yyvsp[-3].nd), 0, r, 0, new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b)); @@ -9125,15 +9125,15 @@ yyreduce: { #if 1 /* til real keyword args implemented */ - mrb_sym r = MRB_OPSYM(mul); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym b = intern_op(and); local_add_f(p, r); (yyval.nd) = new_args(p, 0, 0, r, 0, new_args_tail(p, 0, 0, b)); #else - mrb_sym r = MRB_OPSYM(mul); - mrb_sym k = MRB_OPSYM(pow); - mrb_sym b = MRB_OPSYM(and); + mrb_sym r = intern_op(mul); + mrb_sym k = intern_op(pow); + mrb_sym b = intern_op(and); local_add_f(p, r); local_add_f(p, k); (yyval.nd) = new_args(p, 0, 0, r, 0, new_args_tail(p, 0, new_kw_rest_args(p, nsym(k)), b)); @@ -9406,7 +9406,7 @@ yyreduce: case 533: #line 3708 "mrbgems/mruby-compiler/core/parse.y" { - local_add_f(p, MRB_OPSYM(and)); + local_add_f(p, intern_op(and)); (yyval.nd) = new_args(p, 0, 0, 0, 0, 0); } #line 9413 "mrbgems/mruby-compiler/core/y.tab.c" @@ -9590,7 +9590,7 @@ yyreduce: case 556: #line 3832 "mrbgems/mruby-compiler/core/parse.y" { - local_add_f(p, MRB_OPSYM(mul)); + local_add_f(p, intern_op(mul)); (yyval.id) = -1; } #line 9597 "mrbgems/mruby-compiler/core/y.tab.c" @@ -11216,7 +11216,7 @@ parser_yylex(parser_state *p) case '*': if ((c = nextc(p)) == '*') { if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(pow); + pylval.id = intern_op(pow); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11234,7 +11234,7 @@ parser_yylex(parser_state *p) } else { if (c == '=') { - pylval.id = MRB_OPSYM(mul); + pylval.id = intern_op(mul); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11350,7 +11350,7 @@ parser_yylex(parser_state *p) } if (c == '<') { if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(lshift); + pylval.id = intern_op(lshift); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11372,7 +11372,7 @@ parser_yylex(parser_state *p) } if (c == '>') { if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(rshift); + pylval.id = intern_op(rshift); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11480,7 +11480,7 @@ parser_yylex(parser_state *p) if ((c = nextc(p)) == '&') { p->lstate = EXPR_BEG; if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(andand); + pylval.id = intern_op(andand); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11492,7 +11492,7 @@ parser_yylex(parser_state *p) return tANDDOT; } else if (c == '=') { - pylval.id = MRB_OPSYM(and); + pylval.id = intern_op(and); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11519,7 +11519,7 @@ parser_yylex(parser_state *p) if ((c = nextc(p)) == '|') { p->lstate = EXPR_BEG; if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(oror); + pylval.id = intern_op(oror); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11527,7 +11527,7 @@ parser_yylex(parser_state *p) return tOROP; } if (c == '=') { - pylval.id = MRB_OPSYM(or); + pylval.id = intern_op(or); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11551,7 +11551,7 @@ parser_yylex(parser_state *p) return '+'; } if (c == '=') { - pylval.id = MRB_OPSYM(add); + pylval.id = intern_op(add); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11579,7 +11579,7 @@ parser_yylex(parser_state *p) return '-'; } if (c == '=') { - pylval.id = MRB_OPSYM(sub); + pylval.id = intern_op(sub); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11902,7 +11902,7 @@ parser_yylex(parser_state *p) return tREGEXP_BEG; } if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(div); + pylval.id = intern_op(div); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -11921,7 +11921,7 @@ parser_yylex(parser_state *p) case '^': if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(xor); + pylval.id = intern_op(xor); p->lstate = EXPR_BEG; return tOP_ASGN; } @@ -12099,7 +12099,7 @@ parser_yylex(parser_state *p) } } if ((c = nextc(p)) == '=') { - pylval.id = MRB_OPSYM(mod); + pylval.id = intern_op(mod); p->lstate = EXPR_BEG; return tOP_ASGN; } diff --git a/mrbgems/mruby-compiler/mrbgem.rake b/mrbgems/mruby-compiler/mrbgem.rake index 70f9e19d8..da910537a 100644 --- a/mrbgems/mruby-compiler/mrbgem.rake +++ b/mrbgems/mruby-compiler/mrbgem.rake @@ -5,13 +5,13 @@ MRuby::Gem::Specification.new 'mruby-compiler' do |spec| as_cxx_srcs = %w[codegen y.tab].map{|name| "#{dir}/core/#{name}.c"} objs = Dir.glob("#{dir}/core/*.c").map do |src| - dst = src.pathmap("#{build_dir}/core/%n") if build.cxx_exception_enabled? && as_cxx_srcs.include?(src) - build.compile_as_cxx(src, "#{dst}.cxx") + build.compile_as_cxx(src) else - objfile(dst) + objfile(src.pathmap("#{build_dir}/core/%n")) end end + objs << objfile("#{build_dir}/core/y.tab") build.libmruby_core_objs << objs lex_def = "#{dir}/core/lex.def" |
