ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

Java四則演算クラスに変数追加

2006-06-03 00:32:10 | PG(Java)

作成中のJavaの四則演算クラスに変数と代入演算子と、ついでにカンマ演算子を追加。

変数は単純にMapに放り込むことにする。また、先頭が数字から始まるものは数値、それ以外を変数名として認識するという、超アバウト設計(爆)
これにより、アンダーバーだろうがピリオドだろうが日本語だろうがダブルクォーテーションだろうが、演算子として使っていない文字は全て変数名に使えるという…恐ろしい(笑)

代入演算子はちょっとハマった。今までと同じように二項演算子のクラスから派生させてみたけど、「a=b=1」を試してみたら『「a=b」が変数ではない』というエラー。それは確かに変数じゃないよ
普通の二項演算子は左結合だけど、代入演算子だけは右結合だったんですなぁ。改めて気付く事実。
まぁこれについては昨日三項演算子を作ったときの方法を応用してすぐ修正できた。
(三項演算子も、そういう意味では右結合なんだ)

あとは、Javaには無いけどC言語にあるカンマ演算子を追加。
これが無いと変数の代入を列挙したりできないから。「a=1,b=2,a+b」みたいな。
「&&」が1と0でなく値で表現するようにしたので「(a=1)&&(b=2)&& a+b」で代用できなくはないけど、括弧が余計に必要だし、0を代入するとそこで終わってしまう(爆)
しかもこれ、「(a==1)&&(b==2)&&(a+b !=0)」の間違いに見えるよなー。

指数演算子も追加してみようと思ったけど、単項演算子より優先順位が高いのか低いのかよく分からなかったので保留。
「-」よりは低くていい気もするが、「!」とか「~」よりは高い気がするし。
普通の数学では、「-x^2」(ここでの^はべき乗の意味ね)は、どういう扱いになるんだっけ?


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Java四則演算クラスに論理演... | トップ | Javaってちょっと変? »
最新の画像もっと見る

コメントを投稿

PG(Java)」カテゴリの最新記事