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

In [ruby-list :11661 ] the message: "[ruby-list:11661] Re: [racc] help
me [Re: parser generator] ", on Jan/21 20:14(JST) YANAGAWA Kazuhisa
writes:

>> おぉ!! そんな裏技があるとは, 全然気がつきませんでした(^^;;;

>semantic action をとっぱらって %token でトークンの定義をズラズラ並べる
>だけですから.syntax の表現はどちらも同じ....いまのところ.で,

そうなんですよね. yaccのサブセットって感じですし...

>racc にも -v オプションはあったりするんですね.多分同じような情報が得
>られると思います.

うーん. そうでもないみたいです.

>> ruby/parse.yですと
>> 
>> 		| kCLASS tLSHFT expr term
>> 		    {
>>                             :

>これをこのままいかして semantic action のほうで self と定数を見分ける
>ようにしたらよいような.
>
>    | TkCLASS TkLSHIFT expr term
>      .
>        case v_[1]
>        when TkSELF
>          :
>        when TkCONSTANT
>          :
>        else
>          :
>        end
>      .
>
>っていうかんじ.#1 と #2 を省いて expr のアクションで適当に値を返して
>やる.

うーん. そういう感じ方が良いんですかね?

取り敢えず.

    | TkCLASS TkLSHFT TkSELF statements TkEND .
    .
    | TkCLASS TkLSHFT TkCONSTANT statements TkEND .
    .
    | TkCLASS TkLSHFT limited_dflt statements TkEND .
    .

ってしたんですが... 

後者ですと例外が増えると収集つかないかもって気もしますしね...

__
................................石塚 圭樹@日本ラショナルソフトェア...
----------------------------------->> e-mail: keiju / rational.com <<---