From: matz@... (Yukihiro Matsumoto) Date: 1997-08-25T12:11:35+09:00 Subject: [ruby-dev:230] Re: '@' in yylex() まつもと ゆきひろです In message "[ruby-dev:227] Re: '@' in yylex()" on 97/08/24, 石塚圭樹 writes: |けいじゅ@日本ラショナルです. |そういう意味では, ruby って結構微妙な文法なんですよねえ... 微妙です.厳密にはBNFとかで書けません.lexerとの協調動作で実 現しています. |$0a = 1 | |は OK なんですが, | |$1a = 1 | |は NG ですよね? $0a が許されるんだから, $1a も許されてもいいんじゃない |でしょうかねえ? そうかもしれませんねえ.直しておきましょうか. --- parse.y~ Sat Aug 23 20:01:34 1997 +++ parse.y Mon Aug 25 12:01:18 1997 @@ -2593,2 +2593,3 @@ case '7': case '8': case '9': + tokadd('$'); while (isdigit(c)) { @@ -2597,5 +2598,6 @@ } + if (is_identchar(c)) break; /* normal variable like `$1a' */ pushback(c); tokfix(); - yylval.node = NEW_NTH_REF(atoi(tok())); + yylval.node = NEW_NTH_REF(atoi(tok()+1)); return NTH_REF;