Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

ひしだまの変更履歴

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

Java 四則演算解析実行クラス

2006-05-31 03:16:50 | PG(Java)

Javaで四則演算の式を解釈して実行(計算)するクラスをちょっと作ってみた。
コンフィグファイルとかを読み込むルーチンを作ると、こういうのが欲しくなることがある。友人も欲しがってたし。
こういったクラスは絶対どこかで誰かが公開してると思うんだけど…なかなか見つからない。

んで自作してみると、やはりちょいと面倒ながら、面白い。字句解析や構文解析のページをちょっと調べてみると、懐かしのlexやyaccを思い出すなぁ。
今回はそんなに凝る気は無いので適当だけど、括弧の解釈部分なんかは汚くなってしまってちょっと悔しい。
でも他の演算子は比較的容易に追加できるよう作ったつもりなので、そのうちもう少し追加してみよう。

Javaには字句解析用に、StreamTokenizerというクラスがあるらしい。でも
・1つの演算子が2文字以上の場合に対応できない
・数値は自動的に判断できるが、負の符号と減算の演算子を区別できない
・エラーが起きたときに文字列のどの部分で起きたかを表示できない
といった欠点があったので、結局字句解析部分も自作してしまった。

数値判断といえば、十六進数等の文字列をintとかlongに変換するメソッドも無いんだよね…。
逆に数値を十六進数の文字列に変換したり、桁数を指定して0埋めの十進数の文字列に変換したりしたいことがたまにあるんだけど、なんでJavaには書式指定のライブラリが無いんだろうなぁ?
これも絶対どこかで誰かが公開してそうだけどー…。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

Eclipse3へ行こう

2006-05-31 00:32:48 | PG(Java)

遅ればせながら、Eclipse2から3へ移行。
とりあえずインストール方法JUnit関連を更新。
他のページはEclipse2のままだけど、おいおい変えていこう…いつになるやら(爆)

なぜEclipse3への移行が今頃なのかと言うと、Eclipse2が壊れたのが原因…。
会社のヘボいパソコンあまりにもノロいので、Eclipse2の起動時にアイコンをばしばしクリックしていたら二重起動して競合してしまったらしく、Eclipse2の領域が壊れてしまったのだ!
というのがけっこう昔の話(苦笑)
仕事ではJavaから離れてたので放ってたんだけど、どうせ再インストールするなら新しいバージョンにするよねぇ。

使い勝手が良くなる分には当然全然問題ないんだけど、ソースの自動フォーマットなんかではjavadocの書式が変わったりしちゃうので、ちょっと困ることがあるかもしれない。
CVSはそれも違いとして認識しちゃうからねー。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

他人のメイク

2006-05-30 02:43:23 | PG(UNIX)

他人が書いたmakefileを見ると、知らない文法が使われていたりする。
こういったものを調べると、けっこうな勉強になります。

んでこれタイトルは「中級者向け」にしてみたけど、どうなんでしょうね?

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

dbx thread when access

2006-05-28 22:07:25 | PG(UNIX)

dbxのメモを追加。

  • スレッド関連について。C#とかVB.NETとかのVisual Studioといったツールでもブレークポイントを設定したりできるが、スレッド毎に止めたり実行したりできる分、dbxの方が優秀だなー。
  • stop/trace/whenについて。特にaccessの使い方。これらをうまく組み合わせると、いちいちブレークポイントで止めてコマンドを打ったりしなくてもよくなって、便利。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ftpを使った自動転送

2006-05-28 02:41:03 | PG(UNIX)

ftp内で使える代表的なコマンドをちょっとまとめてみた。
いつも、lsとdirで表示されるのはリモートとローカルのどっちだろう?とか悩んでしまうので(爆)

userというコマンドの存在を教えてもらったので、標準入力からコマンド群を指定してftp転送できるようになった(嬉)
今までユーザーIDとパスワード入力がネックだったので、これで解決。
まぁエラー処理は無視してますが(汗)

ついでにncftpの説明もちょっと変更。と言っても元々大した事は書いてないんだけど…。

さらについでに、ヒアドキュメント(here-document)という言葉をメモに追加。
これ、上手い日本語訳は無いのかなぁ??

ここ文書」?!

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする