[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

永井@知能.九工大です.

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7310] Re: modulo

From: toyofuku@...
Date: 1998-04-02 09:38:55 UTC
List: ruby-list #7310
  豊福@パパイヤです。

私
>   +!, -!, *!, /! みたいなのに alias できて演算子として
> 使えればいいんですがダメですかね。

  "+!other" は "+! other" と "+ !other" で ambiguous
でまずいかとも思ったんですが、
"foo.bar!other" は "foo.bar!(other)" と解釈されるんで、
"+!" もいいかと parse.y をいじってみました。

  採用されないような気がするので全演算をいじるのは
やめて "+!" と "*!" だけにしました。

*** parse.y.orig	Mon Feb  9 19:56:33 1998
--- parse.y	Tue Mar 17 09:43:56 1998
***************
*** 199,204 ****
--- 199,206 ----
  %token LBRACK           /* [ */
  %token LBRACE           /* { */
  %token STAR             /* * */
+ %token APLUS            /* +! */
+ %token AMULT            /* *! */
  %token SYMBEG
  
  /*
***************
*** 219,226 ****
  %left  '|' '^'
  %left  '&'
  %left  LSHFT RSHFT
! %left  '+' '-'
! %left  '*' '/' '%'
  %right '!' '~' UPLUS UMINUS
  %right POW
  
--- 221,228 ----
  %left  '|' '^'
  %left  '&'
  %left  LSHFT RSHFT
! %left  '+' '-' APLUS
! %left  '*' '/' '%' AMULT
  %right '!' '~' UPLUS UMINUS
  %right POW
  
***************
*** 506,513 ****
--- 508,517 ----
  		| LSHFT		{ $$ = LSHFT; }
  		| RSHFT		{ $$ = RSHFT; }
  		| '+'		{ $$ = '+'; }
+ 		| APLUS		{ $$ = APLUS; }
  		| '-'		{ $$ = '-'; }
  		| '*'		{ $$ = '*'; }
+ 		| AMULT		{ $$ = AMULT; }
  		| STAR		{ $$ = '*'; }
  		| '/'		{ $$ = '/'; }
  		| '%'		{ $$ = '%'; }
***************
*** 585,590 ****
--- 589,598 ----
  		    {
  			$$ = call_op($1, '+', 1, $3);
  		    }
+ 		| arg APLUS arg
+ 		    {
+ 			$$ = call_op($1, APLUS, 1, $3);
+ 		    }
  		| arg '-' arg
  		    {
  		        $$ = call_op($1, '-', 1, $3);
***************
*** 593,598 ****
--- 601,610 ----
  		    {
  		        $$ = call_op($1, '*', 1, $3);
  		    }
+ 		| arg AMULT arg
+ 		    {
+ 			$$ = call_op($1, AMULT, 1, $3);
+ 		    }
  		| arg '/' arg
  		    {
  			$$ = call_op($1, '/', 1, $3);
***************
*** 2188,2193 ****
--- 2200,2209 ----
  	    lex_state = EXPR_BEG;
  	    return OP_ASGN;
  	}
+ 	else if (c == '!') {
+ 	    lex_state = EXPR_BEG;
+ 	    return AMULT;
+ 	}
  	pushback(c);
  	if (lex_state == EXPR_ARG && space_seen && !isspace(c)){
  	    arg_ambiguous();
***************
*** 2362,2367 ****
--- 2378,2386 ----
  	    if (c == '@') {
  		return UPLUS;
  	    }
+ 	    else if (c == '!') {
+ 		return APLUS;
+ 	    }
  	    pushback(c);
  	    return '+';
  	}
***************
*** 2370,2375 ****
--- 2389,2398 ----
  	    yylval.id = '+';
  	    return OP_ASGN;
  	}
+ 	else if (c == '!') {
+ 	    lex_state = EXPR_BEG;
+ 	    return APLUS;
+ 	}
  	if (lex_state == EXPR_ARG) {
  	    if (space_seen && !isspace(c)) {
  		arg_ambiguous();
***************
*** 3709,3718 ****
--- 3732,3744 ----
  static struct op_tbl rb_op_tbl[] = {
      DOT2,	"..",
      '+',	"+",
+     APLUS,	"+!",
      '-',	"-",
      '+',	"+(binary)",
+     APLUS,	"+!(binary)",
      '-',	"-(binary)",
      '*',	"*",
+     AMULT,	"*!",
      '/',	"/",
      '%',	"%",
      POW,	"**",
---
			豊福@パパイヤ
			unbound@papaya.juice.or.jp
			toyofuku@juice.or.jp

In This Thread

Prev Next