java

ANTLRで生成したパーサーで構文解析

前回の続きです。 JavaParser.csとJavaLexer.csを使ってみましょう。 まずはVisualStudioでC#のコンソールアプリケーションプロジェクトを作成してください。 JavaParser.csと同じ階層に作成するとパーサを作り直したときeclipseに消されてしまうので気をつ…

eclipseでANTLRを使うためのインストールメモとビルド

ANTLRとはパーサジェネレータです。ANTLR - Wikipediayacc、bison、JavaCCの類のやつですね。 ANTLRはEBNFのような形式の文法ファイルから、 レキサー(スキャナー)とパーサーを生成します。 詳しくはWikipediaや後述するANTLR IDEのページを参照してください…

JavaCCとJJTreeを使ってjavaコードをC++へ変換 その2

第1回目 前回のエントリにあった、System::new_array/System::delete_arrayの実装について説明します。 javaでは以下のように要素の数が異なる配列の作成が可能です。 int v[][] = { { 0, 1, 2}, { 0, 1} }; これはC++では以下のように表現できます。 int **…

ディレクトリ内のクラスをリフレクションを用いて列挙する

トランスレータの実装方法を模索していた時にリフレクションを用いてクラスの内部構造を書き出すという事を考えていました。 これだとメソッドの実装に手を入れるのが困難なため採用しなかったんですけど、折角なので出来たところまで書いておこうと思います…

JavaCCとJJTreeを使ってjavaコードをC++へ変換 その1

これはjavaのコードをC++のコードへ変換するために必要な項目をまとめたメモです。(随時修正してます。) 社内用のトランスレータなのでいろんな制限があります。 javaのクラスライブラリは使えない。 コードはC++にそのまま持っていけそうな書き方しかできな…

CLDC,MIDP,MEXAでJarInflater第2回 JarInflaterクラスの作成

第1回目作成と言ってもできてある物を公開するだけですが。 以下のリンクから取得してくださいまし。 彩色アゲハ蝶 - プログラム - CLDC+MIDP+MEXA対応JarInflater htmlアップしたらsyntaxhighlighterが効かなくなってるんですよね。謎です。アップしたディ…

CLDC,MIDP,MEXAでJarInflater第1回 zipフォーマットについて学ぶ

DoJaのJarInflaterが便利すぎるのでS!アプリでも同様のクラスを使いたい。 ところがCLDC,MIDP,MEXAにはそのようなクラスは用意されていません。 ないなら作ればいいじゃない! というわけで同様の機能を持ったクラスを作成しましょう。 jarといってもただのz…

unsigned intをlongで表現する

int intnum = 0x80000000; System.out.println(intnum); long uintnum = intnum & 0xffffffffL; System.out.println(uintnum);結果 ‐2147483648 2147483648

SleipnirでJavaアプレットが動作しない。

Sleipnirのバージョンは2.8.3。XPのSP3適用後にJAVAアプレットが動作しなくなっていた。 Sleipnirのアップデートのせいなのか、OSのアップデートのせいなのか明確でない。 以前にも同じようなことがあってそのときは以下の方法で対処することができた。 http…

Shear Sort

http://www.cs.rit.edu/~atk/Java/Sorting/sorting.html Shear Sortはやい。 Odd-Even Transposition Sort と Shear Sortは並行アルゴリズムらしい。 なんでシングルプロセッサの僕のマシンでこんな違いがあるんだ? デモと、このソースでは内容が違うのだろ…