まつもと ゆきひろです
In message "[ruby-dev:227] Re: '@' in yylex()"
on 97/08/24, 石塚圭樹 <keiju / bc.mbn.or.jp> 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;