scala で gnu global を使う

gnu global がないと生きていけない体なので scala でも使えるようにしました。ヤッタネェ!

https://github.com/lyricallogical/global_scala_support

手抜き実装なので、宣言と定義の区別がつかず、宣言も全て定義扱いになってしまいますが、勘弁してください。いや、見分けるのは難しくないのですが、パターンの中から id だけを抜き出すみたいなのがかなり難しそうだったので…

type synonym というか type alias というか、は無視しちゃっています。これは ExistentialDcl とかに出てくる分を無視するのが難しそう、かつ重要度低そうだったので、そうしました。
同じことが val にも言えるのですが、さすがにこちらはないとまずい…というか G[o.T] forSome { val o: U } とか誰も使ってないと思うので、問題にはならないでしょう。知らない人のほうが多そう。

scala 全然知らないので、何か問題があったら教えてください。
おしまい。

追記:小崎さんの ruby サポートを参考にさせて頂きました。ほとんどそのままですね。